diff options
author | Ron Yorston <rmy@pobox.com> | 2012-03-22 15:48:57 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2012-03-22 15:48:57 +0000 |
commit | 9db164d6e39050d09f38288c6045cd2a2cbf6d63 (patch) | |
tree | ea5dc2d28d15da0de25c197ed7d059c3656af1a0 | |
parent | 1118c95535ea51961437089fc3dece5ab4ea7e1b (diff) | |
parent | d84b175cb6948eb17f847313bf912174e2f934e1 (diff) | |
download | busybox-w32-9db164d6e39050d09f38288c6045cd2a2cbf6d63.tar.gz busybox-w32-9db164d6e39050d09f38288c6045cd2a2cbf6d63.tar.bz2 busybox-w32-9db164d6e39050d09f38288c6045cd2a2cbf6d63.zip |
Merge commit 'd84b175cb6948eb17f847313bf912174e2f934e1' into merge
Conflicts:
include/platform.h
74 files changed, 3961 insertions, 466 deletions
@@ -70,7 +70,9 @@ create a known starting point. | |||
70 | Other starting configurations (mostly used for testing purposes) include | 70 | Other starting configurations (mostly used for testing purposes) include |
71 | "make allbareconfig" (enables all applets but disables all optional features), | 71 | "make allbareconfig" (enables all applets but disables all optional features), |
72 | "make allyesconfig" (enables absolutely everything including debug features), | 72 | "make allyesconfig" (enables absolutely everything including debug features), |
73 | and "make randconfig" (produce a random configuration). | 73 | and "make randconfig" (produce a random configuration). The configs/ directory |
74 | contains a number of additional configuration files ending in _defconfig which | ||
75 | are useful in specific cases. "make help" will list them. | ||
74 | 76 | ||
75 | Configuring BusyBox produces a file ".config", which can be saved for future | 77 | Configuring BusyBox produces a file ".config", which can be saved for future |
76 | use. Run "make oldconfig" to bring a .config file from an older version of | 78 | use. Run "make oldconfig" to bring a .config file from an older version of |
@@ -97,7 +99,7 @@ first argument to determine which applet to behave as, for example | |||
97 | "./busybox cat LICENSE". (Running the busybox applet with no arguments gives | 99 | "./busybox cat LICENSE". (Running the busybox applet with no arguments gives |
98 | a list of all enabled applets.) The standalone shell can also call busybox | 100 | a list of all enabled applets.) The standalone shell can also call busybox |
99 | applets without links to busybox under other names in the filesystem. You can | 101 | applets without links to busybox under other names in the filesystem. You can |
100 | also configure a standaone install capability into the busybox base applet, | 102 | also configure a standalone install capability into the busybox base applet, |
101 | and then install such links at runtime with one of "busybox --install" (for | 103 | and then install such links at runtime with one of "busybox --install" (for |
102 | hardlinks) or "busybox --install -s" (for symlinks). | 104 | hardlinks) or "busybox --install -s" (for symlinks). |
103 | 105 | ||
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 1 | 1 | VERSION = 1 |
2 | PATCHLEVEL = 19 | 2 | PATCHLEVEL = 19 |
3 | SUBLEVEL = 0 | 3 | SUBLEVEL = 0 |
4 | EXTRAVERSION = .git | 4 | EXTRAVERSION = |
5 | NAME = Unnamed | 5 | NAME = Unnamed |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
@@ -1044,7 +1044,7 @@ rpm: FORCE | |||
1044 | # Brief documentation of the typical targets used | 1044 | # Brief documentation of the typical targets used |
1045 | # --------------------------------------------------------------------------- | 1045 | # --------------------------------------------------------------------------- |
1046 | 1046 | ||
1047 | boards := $(wildcard $(srctree)/arch/$(ARCH)/configs/*_defconfig) | 1047 | boards := $(wildcard $(srctree)/configs/*_defconfig) |
1048 | boards := $(notdir $(boards)) | 1048 | boards := $(notdir $(boards)) |
1049 | 1049 | ||
1050 | -include $(srctree)/Makefile.help | 1050 | -include $(srctree)/Makefile.help |
@@ -1133,15 +1133,6 @@ clean: $(clean-dirs) | |||
1133 | -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \ | 1133 | -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \ |
1134 | -type f -print | xargs rm -f | 1134 | -type f -print | xargs rm -f |
1135 | 1135 | ||
1136 | help: | ||
1137 | @echo ' Building external modules.' | ||
1138 | @echo ' Syntax: make -C path/to/kernel/src M=$$PWD target' | ||
1139 | @echo '' | ||
1140 | @echo ' modules - default target, build the module(s)' | ||
1141 | @echo ' modules_install - install the module' | ||
1142 | @echo ' clean - remove generated files in module directory only' | ||
1143 | @echo '' | ||
1144 | |||
1145 | # Dummies... | 1136 | # Dummies... |
1146 | PHONY += prepare scripts | 1137 | PHONY += prepare scripts |
1147 | prepare: ; | 1138 | prepare: ; |
diff --git a/Makefile.help b/Makefile.help index 999d0298e..119dd6f89 100644 --- a/Makefile.help +++ b/Makefile.help | |||
@@ -25,6 +25,10 @@ help: | |||
25 | @echo ' You can use these commands if the commands on the host' | 25 | @echo ' You can use these commands if the commands on the host' |
26 | @echo ' is unusable. Afterwards use it like:' | 26 | @echo ' is unusable. Afterwards use it like:' |
27 | @echo ' make SED="$(objtree)/sed"' | 27 | @echo ' make SED="$(objtree)/sed"' |
28 | @$(if $(boards), \ | ||
29 | $(foreach b, $(boards), \ | ||
30 | printf " %-21s - Build for %s\\n" $(b) $(subst _defconfig,,$(b));) \ | ||
31 | echo '') | ||
28 | @echo | 32 | @echo |
29 | @echo 'Installation:' | 33 | @echo 'Installation:' |
30 | @echo ' install - install busybox into CONFIG_PREFIX' | 34 | @echo ' install - install busybox into CONFIG_PREFIX' |
@@ -45,7 +45,7 @@ Using busybox: | |||
45 | run (I.E. "./busybox ls -l /proc"). | 45 | run (I.E. "./busybox ls -l /proc"). |
46 | 46 | ||
47 | The "standalone shell" mode is an easy way to try out busybox; this is a | 47 | The "standalone shell" mode is an easy way to try out busybox; this is a |
48 | command shell that calls the builtin applets without needing them to be | 48 | command shell that calls the built-in applets without needing them to be |
49 | installed in the path. (Note that this requires /proc to be mounted, if | 49 | installed in the path. (Note that this requires /proc to be mounted, if |
50 | testing from a boot floppy or in a chroot environment.) | 50 | testing from a boot floppy or in a chroot environment.) |
51 | 51 | ||
@@ -170,7 +170,7 @@ Portability: | |||
170 | MacOS X, Solaris, Cygwin, or the BSD Fork Du Jour). This generally involves | 170 | MacOS X, Solaris, Cygwin, or the BSD Fork Du Jour). This generally involves |
171 | a different kernel and a different C library at the same time. While it | 171 | a different kernel and a different C library at the same time. While it |
172 | should be possible to port the majority of the code to work in one of | 172 | should be possible to port the majority of the code to work in one of |
173 | these environments, don't be suprised if it doesn't work out of the box. If | 173 | these environments, don't be surprised if it doesn't work out of the box. If |
174 | you're into that sort of thing, start small (selecting just a few applets) | 174 | you're into that sort of thing, start small (selecting just a few applets) |
175 | and work your way up. | 175 | and work your way up. |
176 | 176 | ||
diff --git a/archival/libarchive/get_header_tar.c b/archival/libarchive/get_header_tar.c index f73cd338e..79caff55a 100644 --- a/archival/libarchive/get_header_tar.c +++ b/archival/libarchive/get_header_tar.c | |||
@@ -348,10 +348,20 @@ char FAST_FUNC get_header_tar(archive_handle_t *archive_handle) | |||
348 | /* Set bits 12-15 of the files mode */ | 348 | /* Set bits 12-15 of the files mode */ |
349 | /* (typeflag was not trashed because chksum does not use getOctal) */ | 349 | /* (typeflag was not trashed because chksum does not use getOctal) */ |
350 | switch (tar.typeflag) { | 350 | switch (tar.typeflag) { |
351 | /* busybox identifies hard links as being regular files with 0 size and a link name */ | 351 | case '1': /* hardlink */ |
352 | case '1': | 352 | /* we mark hardlinks as regular files with zero size and a link name */ |
353 | file_header->mode |= S_IFREG; | 353 | file_header->mode |= S_IFREG; |
354 | break; | 354 | /* on size of link fields from star(4) |
355 | * ... For tar archives written by pre POSIX.1-1988 | ||
356 | * implementations, the size field usually contains the size of | ||
357 | * the file and needs to be ignored as no data may follow this | ||
358 | * header type. For POSIX.1- 1988 compliant archives, the size | ||
359 | * field needs to be 0. For POSIX.1-2001 compliant archives, | ||
360 | * the size field may be non zero, indicating that file data is | ||
361 | * included in the archive. | ||
362 | * i.e; always assume this is zero for safety. | ||
363 | */ | ||
364 | goto size0; | ||
355 | case '7': | 365 | case '7': |
356 | /* case 0: */ | 366 | /* case 0: */ |
357 | case '0': | 367 | case '0': |
diff --git a/archival/tar.c b/archival/tar.c index 612b2119b..e7963b0b4 100644 --- a/archival/tar.c +++ b/archival/tar.c | |||
@@ -926,7 +926,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv) | |||
926 | /* Prepend '-' to the first argument if required */ | 926 | /* Prepend '-' to the first argument if required */ |
927 | opt_complementary = "--:" // first arg is options | 927 | opt_complementary = "--:" // first arg is options |
928 | "tt:vv:" // count -t,-v | 928 | "tt:vv:" // count -t,-v |
929 | "X::T::" // cumulative lists | 929 | IF_FEATURE_TAR_FROM("X::T::") // cumulative lists |
930 | #if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM | 930 | #if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM |
931 | "\xff::" // cumulative lists for --exclude | 931 | "\xff::" // cumulative lists for --exclude |
932 | #endif | 932 | #endif |
diff --git a/TEST_config_nommu b/configs/TEST_nommu_defconfig index 905f65296..905f65296 100644 --- a/TEST_config_nommu +++ b/configs/TEST_nommu_defconfig | |||
diff --git a/TEST_config_noprintf b/configs/TEST_noprintf_defconfig index b72e12856..b72e12856 100644 --- a/TEST_config_noprintf +++ b/configs/TEST_noprintf_defconfig | |||
diff --git a/TEST_config_rh9 b/configs/TEST_rh9_defconfig index 23094e391..23094e391 100644 --- a/TEST_config_rh9 +++ b/configs/TEST_rh9_defconfig | |||
diff --git a/configs/android_defconfig b/configs/android_defconfig new file mode 100644 index 000000000..7e5232a84 --- /dev/null +++ b/configs/android_defconfig | |||
@@ -0,0 +1,1014 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Busybox version: 1.19.0.git | ||
4 | # Wed Jun 29 12:01:57 2011 | ||
5 | # | ||
6 | CONFIG_HAVE_DOT_CONFIG=y | ||
7 | |||
8 | # | ||
9 | # Busybox Settings | ||
10 | # | ||
11 | |||
12 | # | ||
13 | # General Configuration | ||
14 | # | ||
15 | # CONFIG_DESKTOP is not set | ||
16 | # CONFIG_EXTRA_COMPAT is not set | ||
17 | # CONFIG_INCLUDE_SUSv2 is not set | ||
18 | # CONFIG_USE_PORTABLE_CODE is not set | ||
19 | CONFIG_PLATFORM_LINUX=y | ||
20 | CONFIG_FEATURE_BUFFERS_USE_MALLOC=y | ||
21 | # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set | ||
22 | # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set | ||
23 | # CONFIG_SHOW_USAGE is not set | ||
24 | # CONFIG_FEATURE_VERBOSE_USAGE is not set | ||
25 | # CONFIG_FEATURE_COMPRESS_USAGE is not set | ||
26 | # CONFIG_FEATURE_INSTALLER is not set | ||
27 | # CONFIG_INSTALL_NO_USR is not set | ||
28 | # CONFIG_LOCALE_SUPPORT is not set | ||
29 | # CONFIG_UNICODE_SUPPORT is not set | ||
30 | # CONFIG_UNICODE_USING_LOCALE is not set | ||
31 | # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set | ||
32 | CONFIG_SUBST_WCHAR=0 | ||
33 | CONFIG_LAST_SUPPORTED_WCHAR=0 | ||
34 | # CONFIG_UNICODE_COMBINING_WCHARS is not set | ||
35 | # CONFIG_UNICODE_WIDE_WCHARS is not set | ||
36 | # CONFIG_UNICODE_BIDI_SUPPORT is not set | ||
37 | # CONFIG_UNICODE_NEUTRAL_TABLE is not set | ||
38 | # CONFIG_UNICODE_PRESERVE_BROKEN is not set | ||
39 | # CONFIG_LONG_OPTS is not set | ||
40 | # CONFIG_FEATURE_DEVPTS is not set | ||
41 | # CONFIG_FEATURE_CLEAN_UP is not set | ||
42 | # CONFIG_FEATURE_UTMP is not set | ||
43 | # CONFIG_FEATURE_WTMP is not set | ||
44 | # CONFIG_FEATURE_PIDFILE is not set | ||
45 | # CONFIG_FEATURE_SUID is not set | ||
46 | # CONFIG_FEATURE_SUID_CONFIG is not set | ||
47 | # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set | ||
48 | # CONFIG_SELINUX is not set | ||
49 | # CONFIG_FEATURE_PREFER_APPLETS is not set | ||
50 | CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" | ||
51 | CONFIG_FEATURE_SYSLOG=y | ||
52 | # CONFIG_FEATURE_HAVE_RPC is not set | ||
53 | |||
54 | # | ||
55 | # Build Options | ||
56 | # | ||
57 | # CONFIG_STATIC is not set | ||
58 | # CONFIG_PIE is not set | ||
59 | # CONFIG_NOMMU is not set | ||
60 | # CONFIG_BUILD_LIBBUSYBOX is not set | ||
61 | # CONFIG_FEATURE_INDIVIDUAL is not set | ||
62 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set | ||
63 | # CONFIG_LFS is not set | ||
64 | CONFIG_CROSS_COMPILER_PREFIX="arm-eabi-" | ||
65 | # | ||
66 | # Removed: | ||
67 | # warning flags: | ||
68 | # -Wno-multichar -W -Wall -Wno-unused -Winit-self -Wpointer-arith | ||
69 | # -Werror=return-type -Werror=non-virtual-dtor -Werror=address | ||
70 | # -Werror=sequence-point -Wstrict-aliasing=2 -Wno-undef -Wno-shadow | ||
71 | # bbox already adds these: | ||
72 | # -ffunction-sections -fomit-frame-pointer | ||
73 | # should be not needed, or even increases code size: | ||
74 | # -finline-functions -fno-inline-functions-called-once -finline-limit=64 | ||
75 | # -fstack-protector -fno-strict-aliasing -fno-exceptions -funwind-tables | ||
76 | # -fmessage-length=0 (only affects error message format) | ||
77 | # todo: do we need these? - | ||
78 | # -fno-short-enums | ||
79 | # -fgcse-after-reload | ||
80 | # -frerun-cse-after-loop | ||
81 | # -frename-registers | ||
82 | CONFIG_EXTRA_CFLAGS="-I$A/system/core/include -I$A/bionic/libc/arch-arm/include -I$A/bionic/libc/include -I$A/bionic/libc/kernel/common -I$A/bionic/libc/kernel/arch-arm -I$A/bionic/libm/include -I$A/bionic/libm/include/arch/arm -include $A/system/core/include/arch/linux-arm/AndroidConfig.h -I$A/system/core/include/arch/linux-arm/ -DANDROID -DSK_RELEASE -nostdlib -march=armv7-a -msoft-float -mfloat-abi=softfp -mfpu=neon -mthumb -mthumb-interwork -fpic -fno-short-enums -fgcse-after-reload -frerun-cse-after-loop -frename-registers" | ||
83 | |||
84 | # | ||
85 | # Debugging Options | ||
86 | # | ||
87 | # CONFIG_DEBUG is not set | ||
88 | # CONFIG_DEBUG_PESSIMIZE is not set | ||
89 | # CONFIG_WERROR is not set | ||
90 | CONFIG_NO_DEBUG_LIB=y | ||
91 | # CONFIG_DMALLOC is not set | ||
92 | # CONFIG_EFENCE is not set | ||
93 | |||
94 | # | ||
95 | # Installation Options ("make install" behavior) | ||
96 | # | ||
97 | CONFIG_INSTALL_APPLET_SYMLINKS=y | ||
98 | # CONFIG_INSTALL_APPLET_HARDLINKS is not set | ||
99 | # CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set | ||
100 | # CONFIG_INSTALL_APPLET_DONT is not set | ||
101 | # CONFIG_INSTALL_SH_APPLET_SYMLINK is not set | ||
102 | # CONFIG_INSTALL_SH_APPLET_HARDLINK is not set | ||
103 | # CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set | ||
104 | CONFIG_PREFIX="./_install" | ||
105 | |||
106 | # | ||
107 | # Busybox Library Tuning | ||
108 | # | ||
109 | # CONFIG_FEATURE_SYSTEMD is not set | ||
110 | # CONFIG_FEATURE_RTMINMAX is not set | ||
111 | CONFIG_PASSWORD_MINLEN=6 | ||
112 | CONFIG_MD5_SIZE_VS_SPEED=2 | ||
113 | # CONFIG_FEATURE_FAST_TOP is not set | ||
114 | # CONFIG_FEATURE_ETC_NETWORKS is not set | ||
115 | CONFIG_FEATURE_USE_TERMIOS=y | ||
116 | # CONFIG_FEATURE_EDITING is not set | ||
117 | CONFIG_FEATURE_EDITING_MAX_LEN=0 | ||
118 | # CONFIG_FEATURE_EDITING_VI is not set | ||
119 | CONFIG_FEATURE_EDITING_HISTORY=0 | ||
120 | # CONFIG_FEATURE_EDITING_SAVEHISTORY is not set | ||
121 | # CONFIG_FEATURE_TAB_COMPLETION is not set | ||
122 | # CONFIG_FEATURE_USERNAME_COMPLETION is not set | ||
123 | # CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set | ||
124 | # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set | ||
125 | # CONFIG_FEATURE_NON_POSIX_CP is not set | ||
126 | # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set | ||
127 | CONFIG_FEATURE_COPYBUF_KB=4 | ||
128 | # CONFIG_FEATURE_SKIP_ROOTFS is not set | ||
129 | # CONFIG_MONOTONIC_SYSCALL is not set | ||
130 | # CONFIG_IOCTL_HEX2STR_ERROR is not set | ||
131 | # CONFIG_FEATURE_HWIB is not set | ||
132 | |||
133 | # | ||
134 | # Applets | ||
135 | # | ||
136 | |||
137 | # | ||
138 | # Archival Utilities | ||
139 | # | ||
140 | CONFIG_FEATURE_SEAMLESS_XZ=y | ||
141 | CONFIG_FEATURE_SEAMLESS_LZMA=y | ||
142 | CONFIG_FEATURE_SEAMLESS_BZ2=y | ||
143 | CONFIG_FEATURE_SEAMLESS_GZ=y | ||
144 | CONFIG_FEATURE_SEAMLESS_Z=y | ||
145 | CONFIG_AR=y | ||
146 | CONFIG_FEATURE_AR_LONG_FILENAMES=y | ||
147 | CONFIG_FEATURE_AR_CREATE=y | ||
148 | CONFIG_BUNZIP2=y | ||
149 | CONFIG_BZIP2=y | ||
150 | CONFIG_CPIO=y | ||
151 | CONFIG_FEATURE_CPIO_O=y | ||
152 | CONFIG_FEATURE_CPIO_P=y | ||
153 | CONFIG_DPKG=y | ||
154 | CONFIG_DPKG_DEB=y | ||
155 | # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set | ||
156 | CONFIG_GUNZIP=y | ||
157 | CONFIG_GZIP=y | ||
158 | # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set | ||
159 | CONFIG_LZOP=y | ||
160 | CONFIG_LZOP_COMPR_HIGH=y | ||
161 | CONFIG_RPM2CPIO=y | ||
162 | CONFIG_RPM=y | ||
163 | CONFIG_TAR=y | ||
164 | CONFIG_FEATURE_TAR_CREATE=y | ||
165 | CONFIG_FEATURE_TAR_AUTODETECT=y | ||
166 | CONFIG_FEATURE_TAR_FROM=y | ||
167 | CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y | ||
168 | CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y | ||
169 | CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y | ||
170 | # CONFIG_FEATURE_TAR_LONG_OPTIONS is not set | ||
171 | # CONFIG_FEATURE_TAR_TO_COMMAND is not set | ||
172 | CONFIG_FEATURE_TAR_UNAME_GNAME=y | ||
173 | CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y | ||
174 | # CONFIG_FEATURE_TAR_SELINUX is not set | ||
175 | CONFIG_UNCOMPRESS=y | ||
176 | CONFIG_UNLZMA=y | ||
177 | CONFIG_FEATURE_LZMA_FAST=y | ||
178 | CONFIG_LZMA=y | ||
179 | CONFIG_UNXZ=y | ||
180 | CONFIG_XZ=y | ||
181 | CONFIG_UNZIP=y | ||
182 | |||
183 | # | ||
184 | # Coreutils | ||
185 | # | ||
186 | CONFIG_BASENAME=y | ||
187 | CONFIG_CAT=y | ||
188 | # CONFIG_DATE is not set | ||
189 | # CONFIG_FEATURE_DATE_ISOFMT is not set | ||
190 | # CONFIG_FEATURE_DATE_NANO is not set | ||
191 | # CONFIG_FEATURE_DATE_COMPAT is not set | ||
192 | # CONFIG_ID is not set | ||
193 | # CONFIG_GROUPS is not set | ||
194 | CONFIG_TEST=y | ||
195 | CONFIG_FEATURE_TEST_64=y | ||
196 | CONFIG_TOUCH=y | ||
197 | CONFIG_TR=y | ||
198 | CONFIG_FEATURE_TR_CLASSES=y | ||
199 | CONFIG_FEATURE_TR_EQUIV=y | ||
200 | CONFIG_BASE64=y | ||
201 | CONFIG_CAL=y | ||
202 | CONFIG_CATV=y | ||
203 | CONFIG_CHGRP=y | ||
204 | CONFIG_CHMOD=y | ||
205 | CONFIG_CHOWN=y | ||
206 | # CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set | ||
207 | CONFIG_CHROOT=y | ||
208 | CONFIG_CKSUM=y | ||
209 | CONFIG_COMM=y | ||
210 | CONFIG_CP=y | ||
211 | # CONFIG_FEATURE_CP_LONG_OPTIONS is not set | ||
212 | CONFIG_CUT=y | ||
213 | CONFIG_DD=y | ||
214 | CONFIG_FEATURE_DD_SIGNAL_HANDLING=y | ||
215 | CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y | ||
216 | CONFIG_FEATURE_DD_IBS_OBS=y | ||
217 | # CONFIG_DF is not set | ||
218 | # CONFIG_FEATURE_DF_FANCY is not set | ||
219 | CONFIG_DIRNAME=y | ||
220 | CONFIG_DOS2UNIX=y | ||
221 | CONFIG_UNIX2DOS=y | ||
222 | CONFIG_DU=y | ||
223 | CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y | ||
224 | CONFIG_ECHO=y | ||
225 | CONFIG_FEATURE_FANCY_ECHO=y | ||
226 | # CONFIG_ENV is not set | ||
227 | # CONFIG_FEATURE_ENV_LONG_OPTIONS is not set | ||
228 | CONFIG_EXPAND=y | ||
229 | # CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set | ||
230 | # CONFIG_EXPR is not set | ||
231 | # CONFIG_EXPR_MATH_SUPPORT_64 is not set | ||
232 | CONFIG_FALSE=y | ||
233 | CONFIG_FOLD=y | ||
234 | # CONFIG_FSYNC is not set | ||
235 | CONFIG_HEAD=y | ||
236 | CONFIG_FEATURE_FANCY_HEAD=y | ||
237 | # CONFIG_HOSTID is not set | ||
238 | CONFIG_INSTALL=y | ||
239 | # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set | ||
240 | CONFIG_LN=y | ||
241 | # CONFIG_LOGNAME is not set | ||
242 | CONFIG_LS=y | ||
243 | CONFIG_FEATURE_LS_FILETYPES=y | ||
244 | CONFIG_FEATURE_LS_FOLLOWLINKS=y | ||
245 | CONFIG_FEATURE_LS_RECURSIVE=y | ||
246 | CONFIG_FEATURE_LS_SORTFILES=y | ||
247 | CONFIG_FEATURE_LS_TIMESTAMPS=y | ||
248 | CONFIG_FEATURE_LS_USERNAME=y | ||
249 | # CONFIG_FEATURE_LS_COLOR is not set | ||
250 | # CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set | ||
251 | CONFIG_MD5SUM=y | ||
252 | CONFIG_MKDIR=y | ||
253 | # CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set | ||
254 | CONFIG_MKFIFO=y | ||
255 | CONFIG_MKNOD=y | ||
256 | CONFIG_MV=y | ||
257 | # CONFIG_FEATURE_MV_LONG_OPTIONS is not set | ||
258 | CONFIG_NICE=y | ||
259 | CONFIG_NOHUP=y | ||
260 | CONFIG_OD=y | ||
261 | CONFIG_PRINTENV=y | ||
262 | CONFIG_PRINTF=y | ||
263 | CONFIG_PWD=y | ||
264 | CONFIG_READLINK=y | ||
265 | CONFIG_FEATURE_READLINK_FOLLOW=y | ||
266 | CONFIG_REALPATH=y | ||
267 | CONFIG_RM=y | ||
268 | CONFIG_RMDIR=y | ||
269 | # CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set | ||
270 | CONFIG_SEQ=y | ||
271 | CONFIG_SHA1SUM=y | ||
272 | CONFIG_SHA256SUM=y | ||
273 | CONFIG_SHA512SUM=y | ||
274 | CONFIG_SLEEP=y | ||
275 | CONFIG_FEATURE_FANCY_SLEEP=y | ||
276 | CONFIG_FEATURE_FLOAT_SLEEP=y | ||
277 | CONFIG_SORT=y | ||
278 | CONFIG_FEATURE_SORT_BIG=y | ||
279 | CONFIG_SPLIT=y | ||
280 | CONFIG_FEATURE_SPLIT_FANCY=y | ||
281 | # CONFIG_STAT is not set | ||
282 | # CONFIG_FEATURE_STAT_FORMAT is not set | ||
283 | CONFIG_STTY=y | ||
284 | CONFIG_SUM=y | ||
285 | CONFIG_SYNC=y | ||
286 | CONFIG_TAC=y | ||
287 | CONFIG_TAIL=y | ||
288 | CONFIG_FEATURE_FANCY_TAIL=y | ||
289 | CONFIG_TEE=y | ||
290 | CONFIG_FEATURE_TEE_USE_BLOCK_IO=y | ||
291 | CONFIG_TRUE=y | ||
292 | # CONFIG_TTY is not set | ||
293 | CONFIG_UNAME=y | ||
294 | CONFIG_UNEXPAND=y | ||
295 | # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set | ||
296 | CONFIG_UNIQ=y | ||
297 | # CONFIG_USLEEP is not set | ||
298 | CONFIG_UUDECODE=y | ||
299 | CONFIG_UUENCODE=y | ||
300 | CONFIG_WC=y | ||
301 | CONFIG_FEATURE_WC_LARGE=y | ||
302 | # CONFIG_WHO is not set | ||
303 | CONFIG_WHOAMI=y | ||
304 | CONFIG_YES=y | ||
305 | |||
306 | # | ||
307 | # Common options for cp and mv | ||
308 | # | ||
309 | CONFIG_FEATURE_PRESERVE_HARDLINKS=y | ||
310 | |||
311 | # | ||
312 | # Common options for ls, more and telnet | ||
313 | # | ||
314 | CONFIG_FEATURE_AUTOWIDTH=y | ||
315 | |||
316 | # | ||
317 | # Common options for df, du, ls | ||
318 | # | ||
319 | CONFIG_FEATURE_HUMAN_READABLE=y | ||
320 | |||
321 | # | ||
322 | # Common options for md5sum, sha1sum, sha256sum, sha512sum | ||
323 | # | ||
324 | CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y | ||
325 | |||
326 | # | ||
327 | # Console Utilities | ||
328 | # | ||
329 | CONFIG_CHVT=y | ||
330 | CONFIG_FGCONSOLE=y | ||
331 | CONFIG_CLEAR=y | ||
332 | CONFIG_DEALLOCVT=y | ||
333 | CONFIG_DUMPKMAP=y | ||
334 | # CONFIG_KBD_MODE is not set | ||
335 | # CONFIG_LOADFONT is not set | ||
336 | CONFIG_LOADKMAP=y | ||
337 | CONFIG_OPENVT=y | ||
338 | CONFIG_RESET=y | ||
339 | CONFIG_RESIZE=y | ||
340 | CONFIG_FEATURE_RESIZE_PRINT=y | ||
341 | CONFIG_SETCONSOLE=y | ||
342 | # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set | ||
343 | # CONFIG_SETFONT is not set | ||
344 | # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set | ||
345 | CONFIG_DEFAULT_SETFONT_DIR="" | ||
346 | CONFIG_SETKEYCODES=y | ||
347 | CONFIG_SETLOGCONS=y | ||
348 | CONFIG_SHOWKEY=y | ||
349 | # CONFIG_FEATURE_LOADFONT_PSF2 is not set | ||
350 | # CONFIG_FEATURE_LOADFONT_RAW is not set | ||
351 | |||
352 | # | ||
353 | # Debian Utilities | ||
354 | # | ||
355 | CONFIG_MKTEMP=y | ||
356 | CONFIG_PIPE_PROGRESS=y | ||
357 | CONFIG_RUN_PARTS=y | ||
358 | # CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set | ||
359 | CONFIG_FEATURE_RUN_PARTS_FANCY=y | ||
360 | CONFIG_START_STOP_DAEMON=y | ||
361 | CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y | ||
362 | # CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set | ||
363 | CONFIG_WHICH=y | ||
364 | |||
365 | # | ||
366 | # Editors | ||
367 | # | ||
368 | CONFIG_PATCH=y | ||
369 | # CONFIG_VI is not set | ||
370 | CONFIG_FEATURE_VI_MAX_LEN=0 | ||
371 | # CONFIG_FEATURE_VI_8BIT is not set | ||
372 | # CONFIG_FEATURE_VI_COLON is not set | ||
373 | # CONFIG_FEATURE_VI_YANKMARK is not set | ||
374 | # CONFIG_FEATURE_VI_SEARCH is not set | ||
375 | # CONFIG_FEATURE_VI_REGEX_SEARCH is not set | ||
376 | # CONFIG_FEATURE_VI_USE_SIGNALS is not set | ||
377 | # CONFIG_FEATURE_VI_DOT_CMD is not set | ||
378 | # CONFIG_FEATURE_VI_READONLY is not set | ||
379 | # CONFIG_FEATURE_VI_SETOPTS is not set | ||
380 | # CONFIG_FEATURE_VI_SET is not set | ||
381 | # CONFIG_FEATURE_VI_WIN_RESIZE is not set | ||
382 | # CONFIG_FEATURE_VI_ASK_TERMINAL is not set | ||
383 | # CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set | ||
384 | # CONFIG_AWK is not set | ||
385 | # CONFIG_FEATURE_AWK_LIBM is not set | ||
386 | CONFIG_CMP=y | ||
387 | CONFIG_DIFF=y | ||
388 | # CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set | ||
389 | CONFIG_FEATURE_DIFF_DIR=y | ||
390 | # CONFIG_ED is not set | ||
391 | # CONFIG_SED is not set | ||
392 | # CONFIG_FEATURE_ALLOW_EXEC is not set | ||
393 | |||
394 | # | ||
395 | # Finding Utilities | ||
396 | # | ||
397 | # CONFIG_FIND is not set | ||
398 | # CONFIG_FEATURE_FIND_PRINT0 is not set | ||
399 | # CONFIG_FEATURE_FIND_MTIME is not set | ||
400 | # CONFIG_FEATURE_FIND_MMIN is not set | ||
401 | # CONFIG_FEATURE_FIND_PERM is not set | ||
402 | # CONFIG_FEATURE_FIND_TYPE is not set | ||
403 | # CONFIG_FEATURE_FIND_XDEV is not set | ||
404 | # CONFIG_FEATURE_FIND_MAXDEPTH is not set | ||
405 | # CONFIG_FEATURE_FIND_NEWER is not set | ||
406 | # CONFIG_FEATURE_FIND_INUM is not set | ||
407 | # CONFIG_FEATURE_FIND_EXEC is not set | ||
408 | # CONFIG_FEATURE_FIND_USER is not set | ||
409 | # CONFIG_FEATURE_FIND_GROUP is not set | ||
410 | # CONFIG_FEATURE_FIND_NOT is not set | ||
411 | # CONFIG_FEATURE_FIND_DEPTH is not set | ||
412 | # CONFIG_FEATURE_FIND_PAREN is not set | ||
413 | # CONFIG_FEATURE_FIND_SIZE is not set | ||
414 | # CONFIG_FEATURE_FIND_PRUNE is not set | ||
415 | # CONFIG_FEATURE_FIND_DELETE is not set | ||
416 | # CONFIG_FEATURE_FIND_PATH is not set | ||
417 | # CONFIG_FEATURE_FIND_REGEX is not set | ||
418 | # CONFIG_FEATURE_FIND_CONTEXT is not set | ||
419 | # CONFIG_FEATURE_FIND_LINKS is not set | ||
420 | # CONFIG_GREP is not set | ||
421 | # CONFIG_FEATURE_GREP_EGREP_ALIAS is not set | ||
422 | # CONFIG_FEATURE_GREP_FGREP_ALIAS is not set | ||
423 | # CONFIG_FEATURE_GREP_CONTEXT is not set | ||
424 | CONFIG_XARGS=y | ||
425 | CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y | ||
426 | CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y | ||
427 | CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y | ||
428 | CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y | ||
429 | |||
430 | # | ||
431 | # Init Utilities | ||
432 | # | ||
433 | # CONFIG_BOOTCHARTD is not set | ||
434 | # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set | ||
435 | # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set | ||
436 | CONFIG_HALT=y | ||
437 | # CONFIG_FEATURE_CALL_TELINIT is not set | ||
438 | CONFIG_TELINIT_PATH="" | ||
439 | CONFIG_INIT=y | ||
440 | CONFIG_FEATURE_USE_INITTAB=y | ||
441 | # CONFIG_FEATURE_KILL_REMOVED is not set | ||
442 | CONFIG_FEATURE_KILL_DELAY=0 | ||
443 | CONFIG_FEATURE_INIT_SCTTY=y | ||
444 | CONFIG_FEATURE_INIT_SYSLOG=y | ||
445 | CONFIG_FEATURE_EXTRA_QUIET=y | ||
446 | CONFIG_FEATURE_INIT_COREDUMPS=y | ||
447 | CONFIG_FEATURE_INITRD=y | ||
448 | CONFIG_INIT_TERMINAL_TYPE="linux" | ||
449 | CONFIG_MESG=y | ||
450 | CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y | ||
451 | |||
452 | # | ||
453 | # Login/Password Management Utilities | ||
454 | # | ||
455 | # CONFIG_ADD_SHELL is not set | ||
456 | # CONFIG_REMOVE_SHELL is not set | ||
457 | # CONFIG_FEATURE_SHADOWPASSWDS is not set | ||
458 | # CONFIG_USE_BB_PWD_GRP is not set | ||
459 | # CONFIG_USE_BB_SHADOW is not set | ||
460 | # CONFIG_USE_BB_CRYPT is not set | ||
461 | # CONFIG_USE_BB_CRYPT_SHA is not set | ||
462 | # CONFIG_ADDUSER is not set | ||
463 | # CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set | ||
464 | # CONFIG_FEATURE_CHECK_NAMES is not set | ||
465 | CONFIG_FIRST_SYSTEM_ID=0 | ||
466 | CONFIG_LAST_SYSTEM_ID=0 | ||
467 | # CONFIG_ADDGROUP is not set | ||
468 | # CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set | ||
469 | # CONFIG_FEATURE_ADDUSER_TO_GROUP is not set | ||
470 | # CONFIG_DELUSER is not set | ||
471 | # CONFIG_DELGROUP is not set | ||
472 | # CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set | ||
473 | # CONFIG_GETTY is not set | ||
474 | # CONFIG_LOGIN is not set | ||
475 | # CONFIG_PAM is not set | ||
476 | # CONFIG_LOGIN_SCRIPTS is not set | ||
477 | # CONFIG_FEATURE_NOLOGIN is not set | ||
478 | # CONFIG_FEATURE_SECURETTY is not set | ||
479 | # CONFIG_PASSWD is not set | ||
480 | # CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set | ||
481 | # CONFIG_CRYPTPW is not set | ||
482 | # CONFIG_CHPASSWD is not set | ||
483 | # CONFIG_SU is not set | ||
484 | # CONFIG_FEATURE_SU_SYSLOG is not set | ||
485 | # CONFIG_FEATURE_SU_CHECKS_SHELLS is not set | ||
486 | # CONFIG_SULOGIN is not set | ||
487 | # CONFIG_VLOCK is not set | ||
488 | |||
489 | # | ||
490 | # Linux Ext2 FS Progs | ||
491 | # | ||
492 | CONFIG_CHATTR=y | ||
493 | # CONFIG_FSCK is not set | ||
494 | CONFIG_LSATTR=y | ||
495 | CONFIG_TUNE2FS=y | ||
496 | |||
497 | # | ||
498 | # Linux Module Utilities | ||
499 | # | ||
500 | CONFIG_MODINFO=y | ||
501 | CONFIG_MODPROBE_SMALL=y | ||
502 | CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y | ||
503 | CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y | ||
504 | # CONFIG_INSMOD is not set | ||
505 | # CONFIG_RMMOD is not set | ||
506 | # CONFIG_LSMOD is not set | ||
507 | # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set | ||
508 | # CONFIG_MODPROBE is not set | ||
509 | # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set | ||
510 | # CONFIG_DEPMOD is not set | ||
511 | |||
512 | # | ||
513 | # Options common to multiple modutils | ||
514 | # | ||
515 | # CONFIG_FEATURE_2_4_MODULES is not set | ||
516 | # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set | ||
517 | # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set | ||
518 | # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set | ||
519 | # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set | ||
520 | # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set | ||
521 | # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set | ||
522 | # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set | ||
523 | # CONFIG_FEATURE_MODUTILS_ALIAS is not set | ||
524 | # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set | ||
525 | CONFIG_DEFAULT_MODULES_DIR="/lib/modules" | ||
526 | CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" | ||
527 | |||
528 | # | ||
529 | # Linux System Utilities | ||
530 | # | ||
531 | CONFIG_BLOCKDEV=y | ||
532 | CONFIG_REV=y | ||
533 | # CONFIG_ACPID is not set | ||
534 | # CONFIG_FEATURE_ACPID_COMPAT is not set | ||
535 | CONFIG_BLKID=y | ||
536 | # CONFIG_FEATURE_BLKID_TYPE is not set | ||
537 | CONFIG_DMESG=y | ||
538 | CONFIG_FEATURE_DMESG_PRETTY=y | ||
539 | CONFIG_FBSET=y | ||
540 | CONFIG_FEATURE_FBSET_FANCY=y | ||
541 | CONFIG_FEATURE_FBSET_READMODE=y | ||
542 | CONFIG_FDFLUSH=y | ||
543 | CONFIG_FDFORMAT=y | ||
544 | CONFIG_FDISK=y | ||
545 | CONFIG_FDISK_SUPPORT_LARGE_DISKS=y | ||
546 | CONFIG_FEATURE_FDISK_WRITABLE=y | ||
547 | # CONFIG_FEATURE_AIX_LABEL is not set | ||
548 | # CONFIG_FEATURE_SGI_LABEL is not set | ||
549 | # CONFIG_FEATURE_SUN_LABEL is not set | ||
550 | # CONFIG_FEATURE_OSF_LABEL is not set | ||
551 | # CONFIG_FEATURE_GPT_LABEL is not set | ||
552 | CONFIG_FEATURE_FDISK_ADVANCED=y | ||
553 | CONFIG_FINDFS=y | ||
554 | CONFIG_FLOCK=y | ||
555 | CONFIG_FREERAMDISK=y | ||
556 | # CONFIG_FSCK_MINIX is not set | ||
557 | # CONFIG_MKFS_EXT2 is not set | ||
558 | # CONFIG_MKFS_MINIX is not set | ||
559 | # CONFIG_FEATURE_MINIX2 is not set | ||
560 | # CONFIG_MKFS_REISER is not set | ||
561 | # CONFIG_MKFS_VFAT is not set | ||
562 | CONFIG_GETOPT=y | ||
563 | CONFIG_FEATURE_GETOPT_LONG=y | ||
564 | CONFIG_HEXDUMP=y | ||
565 | CONFIG_FEATURE_HEXDUMP_REVERSE=y | ||
566 | CONFIG_HD=y | ||
567 | # CONFIG_HWCLOCK is not set | ||
568 | # CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set | ||
569 | # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set | ||
570 | # CONFIG_IPCRM is not set | ||
571 | # CONFIG_IPCS is not set | ||
572 | CONFIG_LOSETUP=y | ||
573 | CONFIG_LSPCI=y | ||
574 | CONFIG_LSUSB=y | ||
575 | # CONFIG_MDEV is not set | ||
576 | # CONFIG_FEATURE_MDEV_CONF is not set | ||
577 | # CONFIG_FEATURE_MDEV_RENAME is not set | ||
578 | # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set | ||
579 | # CONFIG_FEATURE_MDEV_EXEC is not set | ||
580 | # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set | ||
581 | CONFIG_MKSWAP=y | ||
582 | CONFIG_FEATURE_MKSWAP_UUID=y | ||
583 | CONFIG_MORE=y | ||
584 | # CONFIG_MOUNT is not set | ||
585 | # CONFIG_FEATURE_MOUNT_FAKE is not set | ||
586 | # CONFIG_FEATURE_MOUNT_VERBOSE is not set | ||
587 | # CONFIG_FEATURE_MOUNT_HELPERS is not set | ||
588 | # CONFIG_FEATURE_MOUNT_LABEL is not set | ||
589 | # CONFIG_FEATURE_MOUNT_NFS is not set | ||
590 | # CONFIG_FEATURE_MOUNT_CIFS is not set | ||
591 | # CONFIG_FEATURE_MOUNT_FLAGS is not set | ||
592 | # CONFIG_FEATURE_MOUNT_FSTAB is not set | ||
593 | # CONFIG_PIVOT_ROOT is not set | ||
594 | # CONFIG_RDATE is not set | ||
595 | CONFIG_RDEV=y | ||
596 | CONFIG_READPROFILE=y | ||
597 | CONFIG_RTCWAKE=y | ||
598 | CONFIG_SCRIPT=y | ||
599 | CONFIG_SCRIPTREPLAY=y | ||
600 | # CONFIG_SETARCH is not set | ||
601 | # CONFIG_SWAPONOFF is not set | ||
602 | # CONFIG_FEATURE_SWAPON_PRI is not set | ||
603 | # CONFIG_SWITCH_ROOT is not set | ||
604 | # CONFIG_UMOUNT is not set | ||
605 | # CONFIG_FEATURE_UMOUNT_ALL is not set | ||
606 | # CONFIG_FEATURE_MOUNT_LOOP is not set | ||
607 | # CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set | ||
608 | # CONFIG_FEATURE_MTAB_SUPPORT is not set | ||
609 | CONFIG_VOLUMEID=y | ||
610 | |||
611 | # | ||
612 | # Filesystem/Volume identification | ||
613 | # | ||
614 | CONFIG_FEATURE_VOLUMEID_EXT=y | ||
615 | CONFIG_FEATURE_VOLUMEID_BTRFS=y | ||
616 | CONFIG_FEATURE_VOLUMEID_REISERFS=y | ||
617 | CONFIG_FEATURE_VOLUMEID_FAT=y | ||
618 | CONFIG_FEATURE_VOLUMEID_HFS=y | ||
619 | CONFIG_FEATURE_VOLUMEID_JFS=y | ||
620 | CONFIG_FEATURE_VOLUMEID_XFS=y | ||
621 | CONFIG_FEATURE_VOLUMEID_NTFS=y | ||
622 | CONFIG_FEATURE_VOLUMEID_ISO9660=y | ||
623 | CONFIG_FEATURE_VOLUMEID_UDF=y | ||
624 | CONFIG_FEATURE_VOLUMEID_LUKS=y | ||
625 | CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y | ||
626 | CONFIG_FEATURE_VOLUMEID_CRAMFS=y | ||
627 | CONFIG_FEATURE_VOLUMEID_ROMFS=y | ||
628 | CONFIG_FEATURE_VOLUMEID_SYSV=y | ||
629 | CONFIG_FEATURE_VOLUMEID_OCFS2=y | ||
630 | CONFIG_FEATURE_VOLUMEID_LINUXRAID=y | ||
631 | |||
632 | # | ||
633 | # Miscellaneous Utilities | ||
634 | # | ||
635 | # CONFIG_CONSPY is not set | ||
636 | # CONFIG_NANDWRITE is not set | ||
637 | CONFIG_NANDDUMP=y | ||
638 | CONFIG_SETSERIAL=y | ||
639 | # CONFIG_UBIATTACH is not set | ||
640 | # CONFIG_UBIDETACH is not set | ||
641 | # CONFIG_UBIMKVOL is not set | ||
642 | # CONFIG_UBIRMVOL is not set | ||
643 | # CONFIG_UBIRSVOL is not set | ||
644 | # CONFIG_UBIUPDATEVOL is not set | ||
645 | # CONFIG_ADJTIMEX is not set | ||
646 | # CONFIG_BBCONFIG is not set | ||
647 | # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set | ||
648 | CONFIG_BEEP=y | ||
649 | CONFIG_FEATURE_BEEP_FREQ=4000 | ||
650 | CONFIG_FEATURE_BEEP_LENGTH_MS=30 | ||
651 | CONFIG_CHAT=y | ||
652 | CONFIG_FEATURE_CHAT_NOFAIL=y | ||
653 | # CONFIG_FEATURE_CHAT_TTY_HIFI is not set | ||
654 | CONFIG_FEATURE_CHAT_IMPLICIT_CR=y | ||
655 | CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y | ||
656 | CONFIG_FEATURE_CHAT_SEND_ESCAPES=y | ||
657 | CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y | ||
658 | CONFIG_FEATURE_CHAT_CLR_ABORT=y | ||
659 | CONFIG_CHRT=y | ||
660 | # CONFIG_CROND is not set | ||
661 | # CONFIG_FEATURE_CROND_D is not set | ||
662 | # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set | ||
663 | CONFIG_FEATURE_CROND_DIR="" | ||
664 | # CONFIG_CRONTAB is not set | ||
665 | CONFIG_DC=y | ||
666 | CONFIG_FEATURE_DC_LIBM=y | ||
667 | # CONFIG_DEVFSD is not set | ||
668 | # CONFIG_DEVFSD_MODLOAD is not set | ||
669 | # CONFIG_DEVFSD_FG_NP is not set | ||
670 | # CONFIG_DEVFSD_VERBOSE is not set | ||
671 | # CONFIG_FEATURE_DEVFS is not set | ||
672 | CONFIG_DEVMEM=y | ||
673 | # CONFIG_EJECT is not set | ||
674 | # CONFIG_FEATURE_EJECT_SCSI is not set | ||
675 | CONFIG_FBSPLASH=y | ||
676 | CONFIG_FLASHCP=y | ||
677 | CONFIG_FLASH_LOCK=y | ||
678 | CONFIG_FLASH_UNLOCK=y | ||
679 | # CONFIG_FLASH_ERASEALL is not set | ||
680 | # CONFIG_IONICE is not set | ||
681 | CONFIG_INOTIFYD=y | ||
682 | # CONFIG_LAST is not set | ||
683 | # CONFIG_FEATURE_LAST_SMALL is not set | ||
684 | # CONFIG_FEATURE_LAST_FANCY is not set | ||
685 | # CONFIG_LESS is not set | ||
686 | CONFIG_FEATURE_LESS_MAXLINES=0 | ||
687 | # CONFIG_FEATURE_LESS_BRACKETS is not set | ||
688 | # CONFIG_FEATURE_LESS_FLAGS is not set | ||
689 | # CONFIG_FEATURE_LESS_MARKS is not set | ||
690 | # CONFIG_FEATURE_LESS_REGEXP is not set | ||
691 | # CONFIG_FEATURE_LESS_WINCH is not set | ||
692 | # CONFIG_FEATURE_LESS_DASHCMD is not set | ||
693 | # CONFIG_FEATURE_LESS_LINENUMS is not set | ||
694 | CONFIG_HDPARM=y | ||
695 | CONFIG_FEATURE_HDPARM_GET_IDENTITY=y | ||
696 | CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y | ||
697 | CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y | ||
698 | CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y | ||
699 | CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y | ||
700 | CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y | ||
701 | CONFIG_MAKEDEVS=y | ||
702 | # CONFIG_FEATURE_MAKEDEVS_LEAF is not set | ||
703 | CONFIG_FEATURE_MAKEDEVS_TABLE=y | ||
704 | CONFIG_MAN=y | ||
705 | # CONFIG_MICROCOM is not set | ||
706 | # CONFIG_MOUNTPOINT is not set | ||
707 | # CONFIG_MT is not set | ||
708 | CONFIG_RAIDAUTORUN=y | ||
709 | # CONFIG_READAHEAD is not set | ||
710 | # CONFIG_RFKILL is not set | ||
711 | # CONFIG_RUNLEVEL is not set | ||
712 | CONFIG_RX=y | ||
713 | CONFIG_SETSID=y | ||
714 | CONFIG_STRINGS=y | ||
715 | # CONFIG_TASKSET is not set | ||
716 | # CONFIG_FEATURE_TASKSET_FANCY is not set | ||
717 | CONFIG_TIME=y | ||
718 | CONFIG_TIMEOUT=y | ||
719 | CONFIG_TTYSIZE=y | ||
720 | CONFIG_VOLNAME=y | ||
721 | # CONFIG_WALL is not set | ||
722 | # CONFIG_WATCHDOG is not set | ||
723 | |||
724 | # | ||
725 | # Networking Utilities | ||
726 | # | ||
727 | # CONFIG_NAMEIF is not set | ||
728 | # CONFIG_FEATURE_NAMEIF_EXTENDED is not set | ||
729 | CONFIG_NBDCLIENT=y | ||
730 | CONFIG_NC=y | ||
731 | CONFIG_NC_SERVER=y | ||
732 | CONFIG_NC_EXTRA=y | ||
733 | # CONFIG_NC_110_COMPAT is not set | ||
734 | # CONFIG_PING is not set | ||
735 | # CONFIG_PING6 is not set | ||
736 | # CONFIG_FEATURE_FANCY_PING is not set | ||
737 | CONFIG_WHOIS=y | ||
738 | # CONFIG_FEATURE_IPV6 is not set | ||
739 | # CONFIG_FEATURE_UNIX_LOCAL is not set | ||
740 | # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set | ||
741 | # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set | ||
742 | CONFIG_ARP=y | ||
743 | # CONFIG_ARPING is not set | ||
744 | # CONFIG_BRCTL is not set | ||
745 | # CONFIG_FEATURE_BRCTL_FANCY is not set | ||
746 | # CONFIG_FEATURE_BRCTL_SHOW is not set | ||
747 | CONFIG_DNSD=y | ||
748 | # CONFIG_ETHER_WAKE is not set | ||
749 | CONFIG_FAKEIDENTD=y | ||
750 | CONFIG_FTPD=y | ||
751 | CONFIG_FEATURE_FTP_WRITE=y | ||
752 | CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y | ||
753 | CONFIG_FTPGET=y | ||
754 | CONFIG_FTPPUT=y | ||
755 | # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set | ||
756 | # CONFIG_HOSTNAME is not set | ||
757 | CONFIG_HTTPD=y | ||
758 | CONFIG_FEATURE_HTTPD_RANGES=y | ||
759 | CONFIG_FEATURE_HTTPD_USE_SENDFILE=y | ||
760 | CONFIG_FEATURE_HTTPD_SETUID=y | ||
761 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y | ||
762 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set | ||
763 | CONFIG_FEATURE_HTTPD_CGI=y | ||
764 | CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y | ||
765 | CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y | ||
766 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y | ||
767 | CONFIG_FEATURE_HTTPD_ERROR_PAGES=y | ||
768 | CONFIG_FEATURE_HTTPD_PROXY=y | ||
769 | CONFIG_FEATURE_HTTPD_GZIP=y | ||
770 | CONFIG_IFCONFIG=y | ||
771 | CONFIG_FEATURE_IFCONFIG_STATUS=y | ||
772 | # CONFIG_FEATURE_IFCONFIG_SLIP is not set | ||
773 | CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y | ||
774 | CONFIG_FEATURE_IFCONFIG_HW=y | ||
775 | CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y | ||
776 | # CONFIG_IFENSLAVE is not set | ||
777 | # CONFIG_IFPLUGD is not set | ||
778 | CONFIG_IFUPDOWN=y | ||
779 | CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" | ||
780 | CONFIG_FEATURE_IFUPDOWN_IP=y | ||
781 | CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y | ||
782 | # CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set | ||
783 | CONFIG_FEATURE_IFUPDOWN_IPV4=y | ||
784 | # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set | ||
785 | CONFIG_FEATURE_IFUPDOWN_MAPPING=y | ||
786 | # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set | ||
787 | # CONFIG_INETD is not set | ||
788 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set | ||
789 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set | ||
790 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set | ||
791 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set | ||
792 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set | ||
793 | # CONFIG_FEATURE_INETD_RPC is not set | ||
794 | CONFIG_IP=y | ||
795 | CONFIG_FEATURE_IP_ADDRESS=y | ||
796 | CONFIG_FEATURE_IP_LINK=y | ||
797 | CONFIG_FEATURE_IP_ROUTE=y | ||
798 | CONFIG_FEATURE_IP_TUNNEL=y | ||
799 | CONFIG_FEATURE_IP_RULE=y | ||
800 | CONFIG_FEATURE_IP_SHORT_FORMS=y | ||
801 | # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set | ||
802 | CONFIG_IPADDR=y | ||
803 | CONFIG_IPLINK=y | ||
804 | CONFIG_IPROUTE=y | ||
805 | CONFIG_IPTUNNEL=y | ||
806 | CONFIG_IPRULE=y | ||
807 | CONFIG_IPCALC=y | ||
808 | CONFIG_FEATURE_IPCALC_FANCY=y | ||
809 | # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set | ||
810 | CONFIG_NETSTAT=y | ||
811 | CONFIG_FEATURE_NETSTAT_WIDE=y | ||
812 | CONFIG_FEATURE_NETSTAT_PRG=y | ||
813 | # CONFIG_NSLOOKUP is not set | ||
814 | # CONFIG_NTPD is not set | ||
815 | # CONFIG_FEATURE_NTPD_SERVER is not set | ||
816 | CONFIG_PSCAN=y | ||
817 | CONFIG_ROUTE=y | ||
818 | # CONFIG_SLATTACH is not set | ||
819 | CONFIG_TCPSVD=y | ||
820 | # CONFIG_TELNET is not set | ||
821 | # CONFIG_FEATURE_TELNET_TTYPE is not set | ||
822 | # CONFIG_FEATURE_TELNET_AUTOLOGIN is not set | ||
823 | # CONFIG_TELNETD is not set | ||
824 | # CONFIG_FEATURE_TELNETD_STANDALONE is not set | ||
825 | # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set | ||
826 | # CONFIG_TFTP is not set | ||
827 | # CONFIG_TFTPD is not set | ||
828 | # CONFIG_FEATURE_TFTP_GET is not set | ||
829 | # CONFIG_FEATURE_TFTP_PUT is not set | ||
830 | # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set | ||
831 | # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set | ||
832 | # CONFIG_TFTP_DEBUG is not set | ||
833 | # CONFIG_TRACEROUTE is not set | ||
834 | # CONFIG_TRACEROUTE6 is not set | ||
835 | # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set | ||
836 | # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set | ||
837 | # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set | ||
838 | CONFIG_TUNCTL=y | ||
839 | CONFIG_FEATURE_TUNCTL_UG=y | ||
840 | # CONFIG_UDHCPD is not set | ||
841 | # CONFIG_DHCPRELAY is not set | ||
842 | # CONFIG_DUMPLEASES is not set | ||
843 | # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set | ||
844 | # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set | ||
845 | CONFIG_DHCPD_LEASES_FILE="" | ||
846 | CONFIG_UDHCPC=y | ||
847 | CONFIG_FEATURE_UDHCPC_ARPING=y | ||
848 | # CONFIG_FEATURE_UDHCP_PORT is not set | ||
849 | CONFIG_UDHCP_DEBUG=9 | ||
850 | CONFIG_FEATURE_UDHCP_RFC3397=y | ||
851 | CONFIG_FEATURE_UDHCP_8021Q=y | ||
852 | CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" | ||
853 | CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 | ||
854 | CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" | ||
855 | # CONFIG_UDPSVD is not set | ||
856 | # CONFIG_VCONFIG is not set | ||
857 | CONFIG_WGET=y | ||
858 | CONFIG_FEATURE_WGET_STATUSBAR=y | ||
859 | CONFIG_FEATURE_WGET_AUTHENTICATION=y | ||
860 | # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set | ||
861 | CONFIG_FEATURE_WGET_TIMEOUT=y | ||
862 | # CONFIG_ZCIP is not set | ||
863 | |||
864 | # | ||
865 | # Print Utilities | ||
866 | # | ||
867 | CONFIG_LPD=y | ||
868 | CONFIG_LPR=y | ||
869 | CONFIG_LPQ=y | ||
870 | |||
871 | # | ||
872 | # Mail Utilities | ||
873 | # | ||
874 | CONFIG_MAKEMIME=y | ||
875 | CONFIG_FEATURE_MIME_CHARSET="us-ascii" | ||
876 | CONFIG_POPMAILDIR=y | ||
877 | CONFIG_FEATURE_POPMAILDIR_DELIVERY=y | ||
878 | CONFIG_REFORMIME=y | ||
879 | CONFIG_FEATURE_REFORMIME_COMPAT=y | ||
880 | CONFIG_SENDMAIL=y | ||
881 | |||
882 | # | ||
883 | # Process Utilities | ||
884 | # | ||
885 | CONFIG_IOSTAT=y | ||
886 | CONFIG_MPSTAT=y | ||
887 | CONFIG_NMETER=y | ||
888 | CONFIG_PMAP=y | ||
889 | CONFIG_POWERTOP=y | ||
890 | CONFIG_PSTREE=y | ||
891 | CONFIG_PWDX=y | ||
892 | CONFIG_SMEMCAP=y | ||
893 | # CONFIG_FREE is not set | ||
894 | CONFIG_FUSER=y | ||
895 | # CONFIG_KILL is not set | ||
896 | # CONFIG_KILLALL is not set | ||
897 | # CONFIG_KILLALL5 is not set | ||
898 | # CONFIG_PGREP is not set | ||
899 | CONFIG_PIDOF=y | ||
900 | CONFIG_FEATURE_PIDOF_SINGLE=y | ||
901 | CONFIG_FEATURE_PIDOF_OMIT=y | ||
902 | # CONFIG_PKILL is not set | ||
903 | # CONFIG_PS is not set | ||
904 | # CONFIG_FEATURE_PS_WIDE is not set | ||
905 | # CONFIG_FEATURE_PS_TIME is not set | ||
906 | # CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set | ||
907 | # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set | ||
908 | CONFIG_RENICE=y | ||
909 | CONFIG_BB_SYSCTL=y | ||
910 | CONFIG_TOP=y | ||
911 | CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y | ||
912 | CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y | ||
913 | CONFIG_FEATURE_TOP_SMP_CPU=y | ||
914 | CONFIG_FEATURE_TOP_DECIMALS=y | ||
915 | CONFIG_FEATURE_TOP_SMP_PROCESS=y | ||
916 | CONFIG_FEATURE_TOPMEM=y | ||
917 | CONFIG_FEATURE_SHOW_THREADS=y | ||
918 | # CONFIG_UPTIME is not set | ||
919 | CONFIG_WATCH=y | ||
920 | |||
921 | # | ||
922 | # Runit Utilities | ||
923 | # | ||
924 | CONFIG_RUNSV=y | ||
925 | CONFIG_RUNSVDIR=y | ||
926 | # CONFIG_FEATURE_RUNSVDIR_LOG is not set | ||
927 | CONFIG_SV=y | ||
928 | CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" | ||
929 | CONFIG_SVLOGD=y | ||
930 | CONFIG_CHPST=y | ||
931 | CONFIG_SETUIDGID=y | ||
932 | CONFIG_ENVUIDGID=y | ||
933 | CONFIG_ENVDIR=y | ||
934 | CONFIG_SOFTLIMIT=y | ||
935 | # CONFIG_CHCON is not set | ||
936 | # CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set | ||
937 | # CONFIG_GETENFORCE is not set | ||
938 | # CONFIG_GETSEBOOL is not set | ||
939 | # CONFIG_LOAD_POLICY is not set | ||
940 | # CONFIG_MATCHPATHCON is not set | ||
941 | # CONFIG_RESTORECON is not set | ||
942 | # CONFIG_RUNCON is not set | ||
943 | # CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set | ||
944 | # CONFIG_SELINUXENABLED is not set | ||
945 | # CONFIG_SETENFORCE is not set | ||
946 | # CONFIG_SETFILES is not set | ||
947 | # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set | ||
948 | # CONFIG_SETSEBOOL is not set | ||
949 | # CONFIG_SESTATUS is not set | ||
950 | |||
951 | # | ||
952 | # Shells | ||
953 | # | ||
954 | # CONFIG_ASH is not set | ||
955 | # CONFIG_ASH_BASH_COMPAT is not set | ||
956 | # CONFIG_ASH_IDLE_TIMEOUT is not set | ||
957 | # CONFIG_ASH_JOB_CONTROL is not set | ||
958 | # CONFIG_ASH_ALIAS is not set | ||
959 | # CONFIG_ASH_GETOPTS is not set | ||
960 | # CONFIG_ASH_BUILTIN_ECHO is not set | ||
961 | # CONFIG_ASH_BUILTIN_PRINTF is not set | ||
962 | # CONFIG_ASH_BUILTIN_TEST is not set | ||
963 | # CONFIG_ASH_CMDCMD is not set | ||
964 | # CONFIG_ASH_MAIL is not set | ||
965 | # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set | ||
966 | # CONFIG_ASH_RANDOM_SUPPORT is not set | ||
967 | # CONFIG_ASH_EXPAND_PRMT is not set | ||
968 | CONFIG_CTTYHACK=y | ||
969 | # CONFIG_HUSH is not set | ||
970 | # CONFIG_HUSH_BASH_COMPAT is not set | ||
971 | # CONFIG_HUSH_BRACE_EXPANSION is not set | ||
972 | # CONFIG_HUSH_HELP is not set | ||
973 | # CONFIG_HUSH_INTERACTIVE is not set | ||
974 | # CONFIG_HUSH_SAVEHISTORY is not set | ||
975 | # CONFIG_HUSH_JOB is not set | ||
976 | # CONFIG_HUSH_TICK is not set | ||
977 | # CONFIG_HUSH_IF is not set | ||
978 | # CONFIG_HUSH_LOOPS is not set | ||
979 | # CONFIG_HUSH_CASE is not set | ||
980 | # CONFIG_HUSH_FUNCTIONS is not set | ||
981 | # CONFIG_HUSH_LOCAL is not set | ||
982 | # CONFIG_HUSH_RANDOM_SUPPORT is not set | ||
983 | # CONFIG_HUSH_EXPORT_N is not set | ||
984 | # CONFIG_HUSH_MODE_X is not set | ||
985 | # CONFIG_MSH is not set | ||
986 | # CONFIG_FEATURE_SH_IS_ASH is not set | ||
987 | # CONFIG_FEATURE_SH_IS_HUSH is not set | ||
988 | CONFIG_FEATURE_SH_IS_NONE=y | ||
989 | # CONFIG_FEATURE_BASH_IS_ASH is not set | ||
990 | # CONFIG_FEATURE_BASH_IS_HUSH is not set | ||
991 | CONFIG_FEATURE_BASH_IS_NONE=y | ||
992 | # CONFIG_SH_MATH_SUPPORT is not set | ||
993 | # CONFIG_SH_MATH_SUPPORT_64 is not set | ||
994 | # CONFIG_FEATURE_SH_EXTRA_QUIET is not set | ||
995 | # CONFIG_FEATURE_SH_STANDALONE is not set | ||
996 | # CONFIG_FEATURE_SH_NOFORK is not set | ||
997 | # CONFIG_FEATURE_SH_HISTFILESIZE is not set | ||
998 | |||
999 | # | ||
1000 | # System Logging Utilities | ||
1001 | # | ||
1002 | # CONFIG_SYSLOGD is not set | ||
1003 | # CONFIG_FEATURE_ROTATE_LOGFILE is not set | ||
1004 | # CONFIG_FEATURE_REMOTE_LOG is not set | ||
1005 | # CONFIG_FEATURE_SYSLOGD_DUP is not set | ||
1006 | # CONFIG_FEATURE_SYSLOGD_CFG is not set | ||
1007 | CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 | ||
1008 | # CONFIG_FEATURE_IPC_SYSLOG is not set | ||
1009 | CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 | ||
1010 | # CONFIG_LOGREAD is not set | ||
1011 | # CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set | ||
1012 | CONFIG_KLOGD=y | ||
1013 | CONFIG_FEATURE_KLOGD_KLOGCTL=y | ||
1014 | # CONFIG_LOGGER is not set | ||
diff --git a/configs/cygwin_defconfig b/configs/cygwin_defconfig new file mode 100644 index 000000000..cc2d643e1 --- /dev/null +++ b/configs/cygwin_defconfig | |||
@@ -0,0 +1,997 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Busybox version: 1.19.0.git | ||
4 | # Sun Jul 10 12:48:50 2011 | ||
5 | # | ||
6 | CONFIG_HAVE_DOT_CONFIG=y | ||
7 | |||
8 | # | ||
9 | # Busybox Settings | ||
10 | # | ||
11 | |||
12 | # | ||
13 | # General Configuration | ||
14 | # | ||
15 | CONFIG_DESKTOP=y | ||
16 | # CONFIG_EXTRA_COMPAT is not set | ||
17 | CONFIG_INCLUDE_SUSv2=y | ||
18 | # CONFIG_USE_PORTABLE_CODE is not set | ||
19 | CONFIG_PLATFORM_LINUX=y | ||
20 | CONFIG_FEATURE_BUFFERS_USE_MALLOC=y | ||
21 | # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set | ||
22 | # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set | ||
23 | CONFIG_SHOW_USAGE=y | ||
24 | CONFIG_FEATURE_VERBOSE_USAGE=y | ||
25 | CONFIG_FEATURE_COMPRESS_USAGE=y | ||
26 | CONFIG_FEATURE_INSTALLER=y | ||
27 | # CONFIG_INSTALL_NO_USR is not set | ||
28 | # CONFIG_LOCALE_SUPPORT is not set | ||
29 | CONFIG_UNICODE_SUPPORT=y | ||
30 | # CONFIG_UNICODE_USING_LOCALE is not set | ||
31 | # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set | ||
32 | CONFIG_SUBST_WCHAR=65533 | ||
33 | CONFIG_LAST_SUPPORTED_WCHAR=0 | ||
34 | # CONFIG_UNICODE_COMBINING_WCHARS is not set | ||
35 | # CONFIG_UNICODE_WIDE_WCHARS is not set | ||
36 | # CONFIG_UNICODE_BIDI_SUPPORT is not set | ||
37 | # CONFIG_UNICODE_NEUTRAL_TABLE is not set | ||
38 | # CONFIG_UNICODE_PRESERVE_BROKEN is not set | ||
39 | CONFIG_LONG_OPTS=y | ||
40 | CONFIG_FEATURE_DEVPTS=y | ||
41 | # CONFIG_FEATURE_CLEAN_UP is not set | ||
42 | # CONFIG_FEATURE_UTMP is not set | ||
43 | # CONFIG_FEATURE_WTMP is not set | ||
44 | CONFIG_FEATURE_PIDFILE=y | ||
45 | CONFIG_FEATURE_SUID=y | ||
46 | # CONFIG_FEATURE_SUID_CONFIG is not set | ||
47 | # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set | ||
48 | # CONFIG_SELINUX is not set | ||
49 | # CONFIG_FEATURE_PREFER_APPLETS is not set | ||
50 | CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" | ||
51 | CONFIG_FEATURE_SYSLOG=y | ||
52 | # CONFIG_FEATURE_HAVE_RPC is not set | ||
53 | |||
54 | # | ||
55 | # Build Options | ||
56 | # | ||
57 | # CONFIG_STATIC is not set | ||
58 | # CONFIG_PIE is not set | ||
59 | # CONFIG_NOMMU is not set | ||
60 | # CONFIG_BUILD_LIBBUSYBOX is not set | ||
61 | # CONFIG_FEATURE_INDIVIDUAL is not set | ||
62 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set | ||
63 | CONFIG_LFS=y | ||
64 | CONFIG_CROSS_COMPILER_PREFIX="" | ||
65 | CONFIG_EXTRA_CFLAGS="" | ||
66 | |||
67 | # | ||
68 | # Debugging Options | ||
69 | # | ||
70 | # CONFIG_DEBUG is not set | ||
71 | # CONFIG_DEBUG_PESSIMIZE is not set | ||
72 | # CONFIG_WERROR is not set | ||
73 | CONFIG_NO_DEBUG_LIB=y | ||
74 | # CONFIG_DMALLOC is not set | ||
75 | # CONFIG_EFENCE is not set | ||
76 | |||
77 | # | ||
78 | # Installation Options ("make install" behavior) | ||
79 | # | ||
80 | CONFIG_INSTALL_APPLET_SYMLINKS=y | ||
81 | # CONFIG_INSTALL_APPLET_HARDLINKS is not set | ||
82 | # CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set | ||
83 | # CONFIG_INSTALL_APPLET_DONT is not set | ||
84 | # CONFIG_INSTALL_SH_APPLET_SYMLINK is not set | ||
85 | # CONFIG_INSTALL_SH_APPLET_HARDLINK is not set | ||
86 | # CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set | ||
87 | CONFIG_PREFIX="./_install" | ||
88 | |||
89 | # | ||
90 | # Busybox Library Tuning | ||
91 | # | ||
92 | # CONFIG_FEATURE_SYSTEMD is not set | ||
93 | CONFIG_FEATURE_RTMINMAX=y | ||
94 | CONFIG_PASSWORD_MINLEN=6 | ||
95 | CONFIG_MD5_SIZE_VS_SPEED=2 | ||
96 | CONFIG_FEATURE_FAST_TOP=y | ||
97 | # CONFIG_FEATURE_ETC_NETWORKS is not set | ||
98 | CONFIG_FEATURE_USE_TERMIOS=y | ||
99 | CONFIG_FEATURE_EDITING=y | ||
100 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 | ||
101 | # CONFIG_FEATURE_EDITING_VI is not set | ||
102 | CONFIG_FEATURE_EDITING_HISTORY=255 | ||
103 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y | ||
104 | CONFIG_FEATURE_TAB_COMPLETION=y | ||
105 | # CONFIG_FEATURE_USERNAME_COMPLETION is not set | ||
106 | CONFIG_FEATURE_EDITING_FANCY_PROMPT=y | ||
107 | # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set | ||
108 | CONFIG_FEATURE_NON_POSIX_CP=y | ||
109 | # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set | ||
110 | CONFIG_FEATURE_COPYBUF_KB=4 | ||
111 | CONFIG_FEATURE_SKIP_ROOTFS=y | ||
112 | # CONFIG_MONOTONIC_SYSCALL is not set | ||
113 | CONFIG_IOCTL_HEX2STR_ERROR=y | ||
114 | CONFIG_FEATURE_HWIB=y | ||
115 | |||
116 | # | ||
117 | # Applets | ||
118 | # | ||
119 | |||
120 | # | ||
121 | # Archival Utilities | ||
122 | # | ||
123 | CONFIG_FEATURE_SEAMLESS_XZ=y | ||
124 | CONFIG_FEATURE_SEAMLESS_LZMA=y | ||
125 | CONFIG_FEATURE_SEAMLESS_BZ2=y | ||
126 | CONFIG_FEATURE_SEAMLESS_GZ=y | ||
127 | # CONFIG_FEATURE_SEAMLESS_Z is not set | ||
128 | # CONFIG_AR is not set | ||
129 | # CONFIG_FEATURE_AR_LONG_FILENAMES is not set | ||
130 | # CONFIG_FEATURE_AR_CREATE is not set | ||
131 | CONFIG_BUNZIP2=y | ||
132 | CONFIG_BZIP2=y | ||
133 | CONFIG_CPIO=y | ||
134 | CONFIG_FEATURE_CPIO_O=y | ||
135 | CONFIG_FEATURE_CPIO_P=y | ||
136 | # CONFIG_DPKG is not set | ||
137 | # CONFIG_DPKG_DEB is not set | ||
138 | # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set | ||
139 | CONFIG_GUNZIP=y | ||
140 | CONFIG_GZIP=y | ||
141 | CONFIG_FEATURE_GZIP_LONG_OPTIONS=y | ||
142 | CONFIG_LZOP=y | ||
143 | # CONFIG_LZOP_COMPR_HIGH is not set | ||
144 | CONFIG_RPM2CPIO=y | ||
145 | CONFIG_RPM=y | ||
146 | CONFIG_TAR=y | ||
147 | CONFIG_FEATURE_TAR_CREATE=y | ||
148 | CONFIG_FEATURE_TAR_AUTODETECT=y | ||
149 | CONFIG_FEATURE_TAR_FROM=y | ||
150 | CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y | ||
151 | CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y | ||
152 | CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y | ||
153 | CONFIG_FEATURE_TAR_LONG_OPTIONS=y | ||
154 | CONFIG_FEATURE_TAR_TO_COMMAND=y | ||
155 | CONFIG_FEATURE_TAR_UNAME_GNAME=y | ||
156 | CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y | ||
157 | # CONFIG_FEATURE_TAR_SELINUX is not set | ||
158 | # CONFIG_UNCOMPRESS is not set | ||
159 | CONFIG_UNLZMA=y | ||
160 | CONFIG_FEATURE_LZMA_FAST=y | ||
161 | CONFIG_LZMA=y | ||
162 | CONFIG_UNXZ=y | ||
163 | CONFIG_XZ=y | ||
164 | CONFIG_UNZIP=y | ||
165 | |||
166 | # | ||
167 | # Coreutils | ||
168 | # | ||
169 | CONFIG_BASENAME=y | ||
170 | CONFIG_CAT=y | ||
171 | CONFIG_DATE=y | ||
172 | CONFIG_FEATURE_DATE_ISOFMT=y | ||
173 | # CONFIG_FEATURE_DATE_NANO is not set | ||
174 | CONFIG_FEATURE_DATE_COMPAT=y | ||
175 | CONFIG_ID=y | ||
176 | CONFIG_GROUPS=y | ||
177 | CONFIG_TEST=y | ||
178 | CONFIG_FEATURE_TEST_64=y | ||
179 | CONFIG_TOUCH=y | ||
180 | CONFIG_TR=y | ||
181 | CONFIG_FEATURE_TR_CLASSES=y | ||
182 | CONFIG_FEATURE_TR_EQUIV=y | ||
183 | CONFIG_BASE64=y | ||
184 | CONFIG_CAL=y | ||
185 | CONFIG_CATV=y | ||
186 | CONFIG_CHGRP=y | ||
187 | CONFIG_CHMOD=y | ||
188 | CONFIG_CHOWN=y | ||
189 | CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y | ||
190 | CONFIG_CHROOT=y | ||
191 | CONFIG_CKSUM=y | ||
192 | CONFIG_COMM=y | ||
193 | CONFIG_CP=y | ||
194 | CONFIG_FEATURE_CP_LONG_OPTIONS=y | ||
195 | CONFIG_CUT=y | ||
196 | CONFIG_DD=y | ||
197 | CONFIG_FEATURE_DD_SIGNAL_HANDLING=y | ||
198 | CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y | ||
199 | CONFIG_FEATURE_DD_IBS_OBS=y | ||
200 | CONFIG_DF=y | ||
201 | CONFIG_FEATURE_DF_FANCY=y | ||
202 | CONFIG_DIRNAME=y | ||
203 | CONFIG_DOS2UNIX=y | ||
204 | CONFIG_UNIX2DOS=y | ||
205 | CONFIG_DU=y | ||
206 | # CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set | ||
207 | CONFIG_ECHO=y | ||
208 | CONFIG_FEATURE_FANCY_ECHO=y | ||
209 | CONFIG_ENV=y | ||
210 | CONFIG_FEATURE_ENV_LONG_OPTIONS=y | ||
211 | CONFIG_EXPAND=y | ||
212 | CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y | ||
213 | CONFIG_EXPR=y | ||
214 | CONFIG_EXPR_MATH_SUPPORT_64=y | ||
215 | CONFIG_FALSE=y | ||
216 | CONFIG_FOLD=y | ||
217 | CONFIG_FSYNC=y | ||
218 | CONFIG_HEAD=y | ||
219 | CONFIG_FEATURE_FANCY_HEAD=y | ||
220 | CONFIG_HOSTID=y | ||
221 | CONFIG_INSTALL=y | ||
222 | CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y | ||
223 | CONFIG_LN=y | ||
224 | CONFIG_LOGNAME=y | ||
225 | CONFIG_LS=y | ||
226 | CONFIG_FEATURE_LS_FILETYPES=y | ||
227 | CONFIG_FEATURE_LS_FOLLOWLINKS=y | ||
228 | CONFIG_FEATURE_LS_RECURSIVE=y | ||
229 | CONFIG_FEATURE_LS_SORTFILES=y | ||
230 | CONFIG_FEATURE_LS_TIMESTAMPS=y | ||
231 | CONFIG_FEATURE_LS_USERNAME=y | ||
232 | CONFIG_FEATURE_LS_COLOR=y | ||
233 | CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y | ||
234 | CONFIG_MD5SUM=y | ||
235 | CONFIG_MKDIR=y | ||
236 | CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y | ||
237 | CONFIG_MKFIFO=y | ||
238 | CONFIG_MKNOD=y | ||
239 | CONFIG_MV=y | ||
240 | CONFIG_FEATURE_MV_LONG_OPTIONS=y | ||
241 | CONFIG_NICE=y | ||
242 | CONFIG_NOHUP=y | ||
243 | CONFIG_OD=y | ||
244 | CONFIG_PRINTENV=y | ||
245 | CONFIG_PRINTF=y | ||
246 | CONFIG_PWD=y | ||
247 | CONFIG_READLINK=y | ||
248 | CONFIG_FEATURE_READLINK_FOLLOW=y | ||
249 | CONFIG_REALPATH=y | ||
250 | CONFIG_RM=y | ||
251 | CONFIG_RMDIR=y | ||
252 | CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y | ||
253 | CONFIG_SEQ=y | ||
254 | CONFIG_SHA1SUM=y | ||
255 | CONFIG_SHA256SUM=y | ||
256 | CONFIG_SHA512SUM=y | ||
257 | CONFIG_SLEEP=y | ||
258 | CONFIG_FEATURE_FANCY_SLEEP=y | ||
259 | CONFIG_FEATURE_FLOAT_SLEEP=y | ||
260 | CONFIG_SORT=y | ||
261 | CONFIG_FEATURE_SORT_BIG=y | ||
262 | CONFIG_SPLIT=y | ||
263 | CONFIG_FEATURE_SPLIT_FANCY=y | ||
264 | # CONFIG_STAT is not set | ||
265 | # CONFIG_FEATURE_STAT_FORMAT is not set | ||
266 | CONFIG_STTY=y | ||
267 | CONFIG_SUM=y | ||
268 | CONFIG_SYNC=y | ||
269 | CONFIG_TAC=y | ||
270 | CONFIG_TAIL=y | ||
271 | CONFIG_FEATURE_FANCY_TAIL=y | ||
272 | CONFIG_TEE=y | ||
273 | CONFIG_FEATURE_TEE_USE_BLOCK_IO=y | ||
274 | CONFIG_TRUE=y | ||
275 | CONFIG_TTY=y | ||
276 | CONFIG_UNAME=y | ||
277 | CONFIG_UNEXPAND=y | ||
278 | CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y | ||
279 | CONFIG_UNIQ=y | ||
280 | CONFIG_USLEEP=y | ||
281 | CONFIG_UUDECODE=y | ||
282 | CONFIG_UUENCODE=y | ||
283 | CONFIG_WC=y | ||
284 | CONFIG_FEATURE_WC_LARGE=y | ||
285 | # CONFIG_WHO is not set | ||
286 | CONFIG_WHOAMI=y | ||
287 | CONFIG_YES=y | ||
288 | |||
289 | # | ||
290 | # Common options for cp and mv | ||
291 | # | ||
292 | CONFIG_FEATURE_PRESERVE_HARDLINKS=y | ||
293 | |||
294 | # | ||
295 | # Common options for ls, more and telnet | ||
296 | # | ||
297 | CONFIG_FEATURE_AUTOWIDTH=y | ||
298 | |||
299 | # | ||
300 | # Common options for df, du, ls | ||
301 | # | ||
302 | CONFIG_FEATURE_HUMAN_READABLE=y | ||
303 | |||
304 | # | ||
305 | # Common options for md5sum, sha1sum, sha256sum, sha512sum | ||
306 | # | ||
307 | CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y | ||
308 | |||
309 | # | ||
310 | # Console Utilities | ||
311 | # | ||
312 | # CONFIG_CHVT is not set | ||
313 | # CONFIG_FGCONSOLE is not set | ||
314 | CONFIG_CLEAR=y | ||
315 | # CONFIG_DEALLOCVT is not set | ||
316 | # CONFIG_DUMPKMAP is not set | ||
317 | # CONFIG_KBD_MODE is not set | ||
318 | # CONFIG_LOADFONT is not set | ||
319 | # CONFIG_LOADKMAP is not set | ||
320 | # CONFIG_OPENVT is not set | ||
321 | CONFIG_RESET=y | ||
322 | CONFIG_RESIZE=y | ||
323 | CONFIG_FEATURE_RESIZE_PRINT=y | ||
324 | # CONFIG_SETCONSOLE is not set | ||
325 | # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set | ||
326 | # CONFIG_SETFONT is not set | ||
327 | # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set | ||
328 | CONFIG_DEFAULT_SETFONT_DIR="" | ||
329 | # CONFIG_SETKEYCODES is not set | ||
330 | # CONFIG_SETLOGCONS is not set | ||
331 | # CONFIG_SHOWKEY is not set | ||
332 | # CONFIG_FEATURE_LOADFONT_PSF2 is not set | ||
333 | # CONFIG_FEATURE_LOADFONT_RAW is not set | ||
334 | |||
335 | # | ||
336 | # Debian Utilities | ||
337 | # | ||
338 | CONFIG_MKTEMP=y | ||
339 | CONFIG_PIPE_PROGRESS=y | ||
340 | CONFIG_RUN_PARTS=y | ||
341 | CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y | ||
342 | CONFIG_FEATURE_RUN_PARTS_FANCY=y | ||
343 | CONFIG_START_STOP_DAEMON=y | ||
344 | CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y | ||
345 | CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y | ||
346 | CONFIG_WHICH=y | ||
347 | |||
348 | # | ||
349 | # Editors | ||
350 | # | ||
351 | CONFIG_PATCH=y | ||
352 | CONFIG_VI=y | ||
353 | CONFIG_FEATURE_VI_MAX_LEN=4096 | ||
354 | # CONFIG_FEATURE_VI_8BIT is not set | ||
355 | CONFIG_FEATURE_VI_COLON=y | ||
356 | CONFIG_FEATURE_VI_YANKMARK=y | ||
357 | CONFIG_FEATURE_VI_SEARCH=y | ||
358 | # CONFIG_FEATURE_VI_REGEX_SEARCH is not set | ||
359 | CONFIG_FEATURE_VI_USE_SIGNALS=y | ||
360 | CONFIG_FEATURE_VI_DOT_CMD=y | ||
361 | CONFIG_FEATURE_VI_READONLY=y | ||
362 | CONFIG_FEATURE_VI_SETOPTS=y | ||
363 | CONFIG_FEATURE_VI_SET=y | ||
364 | CONFIG_FEATURE_VI_WIN_RESIZE=y | ||
365 | CONFIG_FEATURE_VI_ASK_TERMINAL=y | ||
366 | CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y | ||
367 | CONFIG_AWK=y | ||
368 | CONFIG_FEATURE_AWK_LIBM=y | ||
369 | CONFIG_CMP=y | ||
370 | CONFIG_DIFF=y | ||
371 | CONFIG_FEATURE_DIFF_LONG_OPTIONS=y | ||
372 | CONFIG_FEATURE_DIFF_DIR=y | ||
373 | CONFIG_ED=y | ||
374 | CONFIG_SED=y | ||
375 | CONFIG_FEATURE_ALLOW_EXEC=y | ||
376 | |||
377 | # | ||
378 | # Finding Utilities | ||
379 | # | ||
380 | CONFIG_FIND=y | ||
381 | CONFIG_FEATURE_FIND_PRINT0=y | ||
382 | CONFIG_FEATURE_FIND_MTIME=y | ||
383 | CONFIG_FEATURE_FIND_MMIN=y | ||
384 | CONFIG_FEATURE_FIND_PERM=y | ||
385 | CONFIG_FEATURE_FIND_TYPE=y | ||
386 | CONFIG_FEATURE_FIND_XDEV=y | ||
387 | CONFIG_FEATURE_FIND_MAXDEPTH=y | ||
388 | CONFIG_FEATURE_FIND_NEWER=y | ||
389 | CONFIG_FEATURE_FIND_INUM=y | ||
390 | CONFIG_FEATURE_FIND_EXEC=y | ||
391 | CONFIG_FEATURE_FIND_USER=y | ||
392 | CONFIG_FEATURE_FIND_GROUP=y | ||
393 | CONFIG_FEATURE_FIND_NOT=y | ||
394 | CONFIG_FEATURE_FIND_DEPTH=y | ||
395 | CONFIG_FEATURE_FIND_PAREN=y | ||
396 | CONFIG_FEATURE_FIND_SIZE=y | ||
397 | CONFIG_FEATURE_FIND_PRUNE=y | ||
398 | CONFIG_FEATURE_FIND_DELETE=y | ||
399 | CONFIG_FEATURE_FIND_PATH=y | ||
400 | CONFIG_FEATURE_FIND_REGEX=y | ||
401 | # CONFIG_FEATURE_FIND_CONTEXT is not set | ||
402 | CONFIG_FEATURE_FIND_LINKS=y | ||
403 | CONFIG_GREP=y | ||
404 | CONFIG_FEATURE_GREP_EGREP_ALIAS=y | ||
405 | CONFIG_FEATURE_GREP_FGREP_ALIAS=y | ||
406 | CONFIG_FEATURE_GREP_CONTEXT=y | ||
407 | CONFIG_XARGS=y | ||
408 | CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y | ||
409 | CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y | ||
410 | CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y | ||
411 | CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y | ||
412 | |||
413 | # | ||
414 | # Init Utilities | ||
415 | # | ||
416 | # CONFIG_BOOTCHARTD is not set | ||
417 | # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set | ||
418 | # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set | ||
419 | # CONFIG_HALT is not set | ||
420 | # CONFIG_FEATURE_CALL_TELINIT is not set | ||
421 | CONFIG_TELINIT_PATH="" | ||
422 | # CONFIG_INIT is not set | ||
423 | # CONFIG_FEATURE_USE_INITTAB is not set | ||
424 | # CONFIG_FEATURE_KILL_REMOVED is not set | ||
425 | CONFIG_FEATURE_KILL_DELAY=0 | ||
426 | # CONFIG_FEATURE_INIT_SCTTY is not set | ||
427 | # CONFIG_FEATURE_INIT_SYSLOG is not set | ||
428 | # CONFIG_FEATURE_EXTRA_QUIET is not set | ||
429 | # CONFIG_FEATURE_INIT_COREDUMPS is not set | ||
430 | # CONFIG_FEATURE_INITRD is not set | ||
431 | CONFIG_INIT_TERMINAL_TYPE="" | ||
432 | CONFIG_MESG=y | ||
433 | CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y | ||
434 | |||
435 | # | ||
436 | # Login/Password Management Utilities | ||
437 | # | ||
438 | CONFIG_ADD_SHELL=y | ||
439 | CONFIG_REMOVE_SHELL=y | ||
440 | CONFIG_FEATURE_SHADOWPASSWDS=y | ||
441 | CONFIG_USE_BB_PWD_GRP=y | ||
442 | CONFIG_USE_BB_SHADOW=y | ||
443 | CONFIG_USE_BB_CRYPT=y | ||
444 | CONFIG_USE_BB_CRYPT_SHA=y | ||
445 | CONFIG_ADDUSER=y | ||
446 | CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y | ||
447 | # CONFIG_FEATURE_CHECK_NAMES is not set | ||
448 | CONFIG_FIRST_SYSTEM_ID=100 | ||
449 | CONFIG_LAST_SYSTEM_ID=999 | ||
450 | CONFIG_ADDGROUP=y | ||
451 | CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y | ||
452 | CONFIG_FEATURE_ADDUSER_TO_GROUP=y | ||
453 | CONFIG_DELUSER=y | ||
454 | CONFIG_DELGROUP=y | ||
455 | CONFIG_FEATURE_DEL_USER_FROM_GROUP=y | ||
456 | # CONFIG_GETTY is not set | ||
457 | CONFIG_LOGIN=y | ||
458 | # CONFIG_PAM is not set | ||
459 | CONFIG_LOGIN_SCRIPTS=y | ||
460 | CONFIG_FEATURE_NOLOGIN=y | ||
461 | CONFIG_FEATURE_SECURETTY=y | ||
462 | CONFIG_PASSWD=y | ||
463 | CONFIG_FEATURE_PASSWD_WEAK_CHECK=y | ||
464 | CONFIG_CRYPTPW=y | ||
465 | CONFIG_CHPASSWD=y | ||
466 | CONFIG_SU=y | ||
467 | CONFIG_FEATURE_SU_SYSLOG=y | ||
468 | CONFIG_FEATURE_SU_CHECKS_SHELLS=y | ||
469 | CONFIG_SULOGIN=y | ||
470 | CONFIG_VLOCK=y | ||
471 | |||
472 | # | ||
473 | # Linux Ext2 FS Progs | ||
474 | # | ||
475 | CONFIG_CHATTR=y | ||
476 | # CONFIG_FSCK is not set | ||
477 | # CONFIG_LSATTR is not set | ||
478 | # CONFIG_TUNE2FS is not set | ||
479 | |||
480 | # | ||
481 | # Linux Module Utilities | ||
482 | # | ||
483 | # CONFIG_MODINFO is not set | ||
484 | # CONFIG_MODPROBE_SMALL is not set | ||
485 | # CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set | ||
486 | # CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set | ||
487 | # CONFIG_INSMOD is not set | ||
488 | # CONFIG_RMMOD is not set | ||
489 | # CONFIG_LSMOD is not set | ||
490 | # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set | ||
491 | # CONFIG_MODPROBE is not set | ||
492 | # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set | ||
493 | # CONFIG_DEPMOD is not set | ||
494 | |||
495 | # | ||
496 | # Options common to multiple modutils | ||
497 | # | ||
498 | # CONFIG_FEATURE_2_4_MODULES is not set | ||
499 | # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set | ||
500 | # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set | ||
501 | # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set | ||
502 | # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set | ||
503 | # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set | ||
504 | # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set | ||
505 | # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set | ||
506 | # CONFIG_FEATURE_MODUTILS_ALIAS is not set | ||
507 | # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set | ||
508 | CONFIG_DEFAULT_MODULES_DIR="" | ||
509 | CONFIG_DEFAULT_DEPMOD_FILE="" | ||
510 | |||
511 | # | ||
512 | # Linux System Utilities | ||
513 | # | ||
514 | # CONFIG_BLOCKDEV is not set | ||
515 | CONFIG_REV=y | ||
516 | # CONFIG_ACPID is not set | ||
517 | # CONFIG_FEATURE_ACPID_COMPAT is not set | ||
518 | # CONFIG_BLKID is not set | ||
519 | # CONFIG_FEATURE_BLKID_TYPE is not set | ||
520 | # CONFIG_DMESG is not set | ||
521 | # CONFIG_FEATURE_DMESG_PRETTY is not set | ||
522 | # CONFIG_FBSET is not set | ||
523 | # CONFIG_FEATURE_FBSET_FANCY is not set | ||
524 | # CONFIG_FEATURE_FBSET_READMODE is not set | ||
525 | # CONFIG_FDFLUSH is not set | ||
526 | # CONFIG_FDFORMAT is not set | ||
527 | # CONFIG_FDISK is not set | ||
528 | # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set | ||
529 | # CONFIG_FEATURE_FDISK_WRITABLE is not set | ||
530 | # CONFIG_FEATURE_AIX_LABEL is not set | ||
531 | # CONFIG_FEATURE_SGI_LABEL is not set | ||
532 | # CONFIG_FEATURE_SUN_LABEL is not set | ||
533 | # CONFIG_FEATURE_OSF_LABEL is not set | ||
534 | # CONFIG_FEATURE_GPT_LABEL is not set | ||
535 | # CONFIG_FEATURE_FDISK_ADVANCED is not set | ||
536 | # CONFIG_FINDFS is not set | ||
537 | CONFIG_FLOCK=y | ||
538 | # CONFIG_FREERAMDISK is not set | ||
539 | CONFIG_FSCK_MINIX=y | ||
540 | # CONFIG_MKFS_EXT2 is not set | ||
541 | # CONFIG_MKFS_MINIX is not set | ||
542 | CONFIG_FEATURE_MINIX2=y | ||
543 | # CONFIG_MKFS_REISER is not set | ||
544 | # CONFIG_MKFS_VFAT is not set | ||
545 | CONFIG_GETOPT=y | ||
546 | CONFIG_FEATURE_GETOPT_LONG=y | ||
547 | CONFIG_HEXDUMP=y | ||
548 | CONFIG_FEATURE_HEXDUMP_REVERSE=y | ||
549 | CONFIG_HD=y | ||
550 | # CONFIG_HWCLOCK is not set | ||
551 | # CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set | ||
552 | # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set | ||
553 | CONFIG_IPCRM=y | ||
554 | # CONFIG_IPCS is not set | ||
555 | # CONFIG_LOSETUP is not set | ||
556 | # CONFIG_LSPCI is not set | ||
557 | # CONFIG_LSUSB is not set | ||
558 | # CONFIG_MDEV is not set | ||
559 | # CONFIG_FEATURE_MDEV_CONF is not set | ||
560 | # CONFIG_FEATURE_MDEV_RENAME is not set | ||
561 | # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set | ||
562 | # CONFIG_FEATURE_MDEV_EXEC is not set | ||
563 | # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set | ||
564 | CONFIG_MKSWAP=y | ||
565 | CONFIG_FEATURE_MKSWAP_UUID=y | ||
566 | CONFIG_MORE=y | ||
567 | # CONFIG_MOUNT is not set | ||
568 | # CONFIG_FEATURE_MOUNT_FAKE is not set | ||
569 | # CONFIG_FEATURE_MOUNT_VERBOSE is not set | ||
570 | # CONFIG_FEATURE_MOUNT_HELPERS is not set | ||
571 | # CONFIG_FEATURE_MOUNT_LABEL is not set | ||
572 | # CONFIG_FEATURE_MOUNT_NFS is not set | ||
573 | # CONFIG_FEATURE_MOUNT_CIFS is not set | ||
574 | # CONFIG_FEATURE_MOUNT_FLAGS is not set | ||
575 | # CONFIG_FEATURE_MOUNT_FSTAB is not set | ||
576 | # CONFIG_PIVOT_ROOT is not set | ||
577 | # CONFIG_RDATE is not set | ||
578 | CONFIG_RDEV=y | ||
579 | CONFIG_READPROFILE=y | ||
580 | # CONFIG_RTCWAKE is not set | ||
581 | CONFIG_SCRIPT=y | ||
582 | CONFIG_SCRIPTREPLAY=y | ||
583 | # CONFIG_SETARCH is not set | ||
584 | # CONFIG_SWAPONOFF is not set | ||
585 | # CONFIG_FEATURE_SWAPON_PRI is not set | ||
586 | # CONFIG_SWITCH_ROOT is not set | ||
587 | # CONFIG_UMOUNT is not set | ||
588 | # CONFIG_FEATURE_UMOUNT_ALL is not set | ||
589 | # CONFIG_FEATURE_MOUNT_LOOP is not set | ||
590 | # CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set | ||
591 | # CONFIG_FEATURE_MTAB_SUPPORT is not set | ||
592 | # CONFIG_VOLUMEID is not set | ||
593 | # CONFIG_FEATURE_VOLUMEID_EXT is not set | ||
594 | # CONFIG_FEATURE_VOLUMEID_BTRFS is not set | ||
595 | # CONFIG_FEATURE_VOLUMEID_REISERFS is not set | ||
596 | # CONFIG_FEATURE_VOLUMEID_FAT is not set | ||
597 | # CONFIG_FEATURE_VOLUMEID_HFS is not set | ||
598 | # CONFIG_FEATURE_VOLUMEID_JFS is not set | ||
599 | # CONFIG_FEATURE_VOLUMEID_XFS is not set | ||
600 | # CONFIG_FEATURE_VOLUMEID_NTFS is not set | ||
601 | # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set | ||
602 | # CONFIG_FEATURE_VOLUMEID_UDF is not set | ||
603 | # CONFIG_FEATURE_VOLUMEID_LUKS is not set | ||
604 | # CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set | ||
605 | # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set | ||
606 | # CONFIG_FEATURE_VOLUMEID_ROMFS is not set | ||
607 | # CONFIG_FEATURE_VOLUMEID_SYSV is not set | ||
608 | # CONFIG_FEATURE_VOLUMEID_OCFS2 is not set | ||
609 | # CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set | ||
610 | |||
611 | # | ||
612 | # Miscellaneous Utilities | ||
613 | # | ||
614 | # CONFIG_CONSPY is not set | ||
615 | # CONFIG_NANDWRITE is not set | ||
616 | # CONFIG_NANDDUMP is not set | ||
617 | # CONFIG_SETSERIAL is not set | ||
618 | # CONFIG_UBIATTACH is not set | ||
619 | # CONFIG_UBIDETACH is not set | ||
620 | # CONFIG_UBIMKVOL is not set | ||
621 | # CONFIG_UBIRMVOL is not set | ||
622 | # CONFIG_UBIRSVOL is not set | ||
623 | # CONFIG_UBIUPDATEVOL is not set | ||
624 | # CONFIG_ADJTIMEX is not set | ||
625 | # CONFIG_BBCONFIG is not set | ||
626 | # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set | ||
627 | # CONFIG_BEEP is not set | ||
628 | CONFIG_FEATURE_BEEP_FREQ=0 | ||
629 | CONFIG_FEATURE_BEEP_LENGTH_MS=0 | ||
630 | CONFIG_CHAT=y | ||
631 | CONFIG_FEATURE_CHAT_NOFAIL=y | ||
632 | # CONFIG_FEATURE_CHAT_TTY_HIFI is not set | ||
633 | CONFIG_FEATURE_CHAT_IMPLICIT_CR=y | ||
634 | CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y | ||
635 | CONFIG_FEATURE_CHAT_SEND_ESCAPES=y | ||
636 | CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y | ||
637 | CONFIG_FEATURE_CHAT_CLR_ABORT=y | ||
638 | CONFIG_CHRT=y | ||
639 | CONFIG_CROND=y | ||
640 | CONFIG_FEATURE_CROND_D=y | ||
641 | CONFIG_FEATURE_CROND_CALL_SENDMAIL=y | ||
642 | CONFIG_FEATURE_CROND_DIR="/var/spool/cron" | ||
643 | CONFIG_CRONTAB=y | ||
644 | CONFIG_DC=y | ||
645 | CONFIG_FEATURE_DC_LIBM=y | ||
646 | # CONFIG_DEVFSD is not set | ||
647 | # CONFIG_DEVFSD_MODLOAD is not set | ||
648 | # CONFIG_DEVFSD_FG_NP is not set | ||
649 | # CONFIG_DEVFSD_VERBOSE is not set | ||
650 | # CONFIG_FEATURE_DEVFS is not set | ||
651 | CONFIG_DEVMEM=y | ||
652 | # CONFIG_EJECT is not set | ||
653 | # CONFIG_FEATURE_EJECT_SCSI is not set | ||
654 | # CONFIG_FBSPLASH is not set | ||
655 | # CONFIG_FLASHCP is not set | ||
656 | # CONFIG_FLASH_LOCK is not set | ||
657 | # CONFIG_FLASH_UNLOCK is not set | ||
658 | # CONFIG_FLASH_ERASEALL is not set | ||
659 | # CONFIG_IONICE is not set | ||
660 | # CONFIG_INOTIFYD is not set | ||
661 | # CONFIG_LAST is not set | ||
662 | # CONFIG_FEATURE_LAST_SMALL is not set | ||
663 | # CONFIG_FEATURE_LAST_FANCY is not set | ||
664 | CONFIG_LESS=y | ||
665 | CONFIG_FEATURE_LESS_MAXLINES=9999999 | ||
666 | CONFIG_FEATURE_LESS_BRACKETS=y | ||
667 | CONFIG_FEATURE_LESS_FLAGS=y | ||
668 | CONFIG_FEATURE_LESS_MARKS=y | ||
669 | CONFIG_FEATURE_LESS_REGEXP=y | ||
670 | CONFIG_FEATURE_LESS_WINCH=y | ||
671 | CONFIG_FEATURE_LESS_DASHCMD=y | ||
672 | CONFIG_FEATURE_LESS_LINENUMS=y | ||
673 | # CONFIG_HDPARM is not set | ||
674 | # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set | ||
675 | # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set | ||
676 | # CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set | ||
677 | # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set | ||
678 | # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set | ||
679 | # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set | ||
680 | # CONFIG_MAKEDEVS is not set | ||
681 | # CONFIG_FEATURE_MAKEDEVS_LEAF is not set | ||
682 | # CONFIG_FEATURE_MAKEDEVS_TABLE is not set | ||
683 | CONFIG_MAN=y | ||
684 | # CONFIG_MICROCOM is not set | ||
685 | # CONFIG_MOUNTPOINT is not set | ||
686 | CONFIG_MT=y | ||
687 | # CONFIG_RAIDAUTORUN is not set | ||
688 | # CONFIG_READAHEAD is not set | ||
689 | # CONFIG_RFKILL is not set | ||
690 | # CONFIG_RUNLEVEL is not set | ||
691 | # CONFIG_RX is not set | ||
692 | CONFIG_SETSID=y | ||
693 | CONFIG_STRINGS=y | ||
694 | # CONFIG_TASKSET is not set | ||
695 | # CONFIG_FEATURE_TASKSET_FANCY is not set | ||
696 | CONFIG_TIME=y | ||
697 | CONFIG_TIMEOUT=y | ||
698 | CONFIG_TTYSIZE=y | ||
699 | CONFIG_VOLNAME=y | ||
700 | # CONFIG_WALL is not set | ||
701 | # CONFIG_WATCHDOG is not set | ||
702 | |||
703 | # | ||
704 | # Networking Utilities | ||
705 | # | ||
706 | # CONFIG_NAMEIF is not set | ||
707 | # CONFIG_FEATURE_NAMEIF_EXTENDED is not set | ||
708 | # CONFIG_NBDCLIENT is not set | ||
709 | CONFIG_NC=y | ||
710 | CONFIG_NC_SERVER=y | ||
711 | CONFIG_NC_EXTRA=y | ||
712 | # CONFIG_NC_110_COMPAT is not set | ||
713 | # CONFIG_PING is not set | ||
714 | # CONFIG_PING6 is not set | ||
715 | # CONFIG_FEATURE_FANCY_PING is not set | ||
716 | CONFIG_WHOIS=y | ||
717 | CONFIG_FEATURE_IPV6=y | ||
718 | # CONFIG_FEATURE_UNIX_LOCAL is not set | ||
719 | CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y | ||
720 | # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set | ||
721 | # CONFIG_ARP is not set | ||
722 | # CONFIG_ARPING is not set | ||
723 | # CONFIG_BRCTL is not set | ||
724 | # CONFIG_FEATURE_BRCTL_FANCY is not set | ||
725 | # CONFIG_FEATURE_BRCTL_SHOW is not set | ||
726 | CONFIG_DNSD=y | ||
727 | # CONFIG_ETHER_WAKE is not set | ||
728 | CONFIG_FAKEIDENTD=y | ||
729 | CONFIG_FTPD=y | ||
730 | CONFIG_FEATURE_FTP_WRITE=y | ||
731 | CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y | ||
732 | CONFIG_FTPGET=y | ||
733 | CONFIG_FTPPUT=y | ||
734 | CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y | ||
735 | CONFIG_HOSTNAME=y | ||
736 | CONFIG_HTTPD=y | ||
737 | CONFIG_FEATURE_HTTPD_RANGES=y | ||
738 | # CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set | ||
739 | CONFIG_FEATURE_HTTPD_SETUID=y | ||
740 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y | ||
741 | CONFIG_FEATURE_HTTPD_AUTH_MD5=y | ||
742 | CONFIG_FEATURE_HTTPD_CGI=y | ||
743 | CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y | ||
744 | CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y | ||
745 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y | ||
746 | CONFIG_FEATURE_HTTPD_ERROR_PAGES=y | ||
747 | CONFIG_FEATURE_HTTPD_PROXY=y | ||
748 | CONFIG_FEATURE_HTTPD_GZIP=y | ||
749 | # CONFIG_IFCONFIG is not set | ||
750 | # CONFIG_FEATURE_IFCONFIG_STATUS is not set | ||
751 | # CONFIG_FEATURE_IFCONFIG_SLIP is not set | ||
752 | # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set | ||
753 | # CONFIG_FEATURE_IFCONFIG_HW is not set | ||
754 | # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set | ||
755 | # CONFIG_IFENSLAVE is not set | ||
756 | # CONFIG_IFPLUGD is not set | ||
757 | # CONFIG_IFUPDOWN is not set | ||
758 | CONFIG_IFUPDOWN_IFSTATE_PATH="" | ||
759 | # CONFIG_FEATURE_IFUPDOWN_IP is not set | ||
760 | # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set | ||
761 | # CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set | ||
762 | # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set | ||
763 | # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set | ||
764 | # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set | ||
765 | # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set | ||
766 | CONFIG_INETD=y | ||
767 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y | ||
768 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y | ||
769 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y | ||
770 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y | ||
771 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y | ||
772 | # CONFIG_FEATURE_INETD_RPC is not set | ||
773 | # CONFIG_IP is not set | ||
774 | # CONFIG_FEATURE_IP_ADDRESS is not set | ||
775 | # CONFIG_FEATURE_IP_LINK is not set | ||
776 | # CONFIG_FEATURE_IP_ROUTE is not set | ||
777 | # CONFIG_FEATURE_IP_TUNNEL is not set | ||
778 | # CONFIG_FEATURE_IP_RULE is not set | ||
779 | # CONFIG_FEATURE_IP_SHORT_FORMS is not set | ||
780 | # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set | ||
781 | # CONFIG_IPADDR is not set | ||
782 | # CONFIG_IPLINK is not set | ||
783 | # CONFIG_IPROUTE is not set | ||
784 | # CONFIG_IPTUNNEL is not set | ||
785 | # CONFIG_IPRULE is not set | ||
786 | CONFIG_IPCALC=y | ||
787 | CONFIG_FEATURE_IPCALC_FANCY=y | ||
788 | CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y | ||
789 | # CONFIG_NETSTAT is not set | ||
790 | # CONFIG_FEATURE_NETSTAT_WIDE is not set | ||
791 | # CONFIG_FEATURE_NETSTAT_PRG is not set | ||
792 | # CONFIG_NSLOOKUP is not set | ||
793 | # CONFIG_NTPD is not set | ||
794 | # CONFIG_FEATURE_NTPD_SERVER is not set | ||
795 | CONFIG_PSCAN=y | ||
796 | # CONFIG_ROUTE is not set | ||
797 | # CONFIG_SLATTACH is not set | ||
798 | CONFIG_TCPSVD=y | ||
799 | CONFIG_TELNET=y | ||
800 | CONFIG_FEATURE_TELNET_TTYPE=y | ||
801 | CONFIG_FEATURE_TELNET_AUTOLOGIN=y | ||
802 | CONFIG_TELNETD=y | ||
803 | CONFIG_FEATURE_TELNETD_STANDALONE=y | ||
804 | CONFIG_FEATURE_TELNETD_INETD_WAIT=y | ||
805 | CONFIG_TFTP=y | ||
806 | CONFIG_TFTPD=y | ||
807 | |||
808 | # | ||
809 | # Common options for tftp/tftpd | ||
810 | # | ||
811 | CONFIG_FEATURE_TFTP_GET=y | ||
812 | CONFIG_FEATURE_TFTP_PUT=y | ||
813 | CONFIG_FEATURE_TFTP_BLOCKSIZE=y | ||
814 | CONFIG_FEATURE_TFTP_PROGRESS_BAR=y | ||
815 | # CONFIG_TFTP_DEBUG is not set | ||
816 | # CONFIG_TRACEROUTE is not set | ||
817 | # CONFIG_TRACEROUTE6 is not set | ||
818 | # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set | ||
819 | # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set | ||
820 | # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set | ||
821 | # CONFIG_TUNCTL is not set | ||
822 | # CONFIG_FEATURE_TUNCTL_UG is not set | ||
823 | # CONFIG_UDHCPD is not set | ||
824 | # CONFIG_DHCPRELAY is not set | ||
825 | # CONFIG_DUMPLEASES is not set | ||
826 | # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set | ||
827 | # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set | ||
828 | CONFIG_DHCPD_LEASES_FILE="" | ||
829 | # CONFIG_UDHCPC is not set | ||
830 | # CONFIG_FEATURE_UDHCPC_ARPING is not set | ||
831 | # CONFIG_FEATURE_UDHCP_PORT is not set | ||
832 | CONFIG_UDHCP_DEBUG=0 | ||
833 | # CONFIG_FEATURE_UDHCP_RFC3397 is not set | ||
834 | # CONFIG_FEATURE_UDHCP_8021Q is not set | ||
835 | CONFIG_UDHCPC_DEFAULT_SCRIPT="" | ||
836 | CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 | ||
837 | CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" | ||
838 | CONFIG_UDPSVD=y | ||
839 | # CONFIG_VCONFIG is not set | ||
840 | CONFIG_WGET=y | ||
841 | CONFIG_FEATURE_WGET_STATUSBAR=y | ||
842 | CONFIG_FEATURE_WGET_AUTHENTICATION=y | ||
843 | CONFIG_FEATURE_WGET_LONG_OPTIONS=y | ||
844 | CONFIG_FEATURE_WGET_TIMEOUT=y | ||
845 | # CONFIG_ZCIP is not set | ||
846 | |||
847 | # | ||
848 | # Print Utilities | ||
849 | # | ||
850 | CONFIG_LPD=y | ||
851 | CONFIG_LPR=y | ||
852 | CONFIG_LPQ=y | ||
853 | |||
854 | # | ||
855 | # Mail Utilities | ||
856 | # | ||
857 | CONFIG_MAKEMIME=y | ||
858 | CONFIG_FEATURE_MIME_CHARSET="us-ascii" | ||
859 | CONFIG_POPMAILDIR=y | ||
860 | CONFIG_FEATURE_POPMAILDIR_DELIVERY=y | ||
861 | CONFIG_REFORMIME=y | ||
862 | CONFIG_FEATURE_REFORMIME_COMPAT=y | ||
863 | CONFIG_SENDMAIL=y | ||
864 | |||
865 | # | ||
866 | # Process Utilities | ||
867 | # | ||
868 | CONFIG_IOSTAT=y | ||
869 | CONFIG_MPSTAT=y | ||
870 | CONFIG_NMETER=y | ||
871 | # CONFIG_PMAP is not set | ||
872 | # CONFIG_POWERTOP is not set | ||
873 | CONFIG_PSTREE=y | ||
874 | CONFIG_PWDX=y | ||
875 | CONFIG_SMEMCAP=y | ||
876 | # CONFIG_FREE is not set | ||
877 | CONFIG_FUSER=y | ||
878 | CONFIG_KILL=y | ||
879 | CONFIG_KILLALL=y | ||
880 | CONFIG_KILLALL5=y | ||
881 | CONFIG_PGREP=y | ||
882 | CONFIG_PIDOF=y | ||
883 | CONFIG_FEATURE_PIDOF_SINGLE=y | ||
884 | CONFIG_FEATURE_PIDOF_OMIT=y | ||
885 | CONFIG_PKILL=y | ||
886 | CONFIG_PS=y | ||
887 | CONFIG_FEATURE_PS_WIDE=y | ||
888 | # CONFIG_FEATURE_PS_TIME is not set | ||
889 | CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y | ||
890 | # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set | ||
891 | CONFIG_RENICE=y | ||
892 | CONFIG_BB_SYSCTL=y | ||
893 | CONFIG_TOP=y | ||
894 | CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y | ||
895 | CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y | ||
896 | CONFIG_FEATURE_TOP_SMP_CPU=y | ||
897 | CONFIG_FEATURE_TOP_DECIMALS=y | ||
898 | CONFIG_FEATURE_TOP_SMP_PROCESS=y | ||
899 | CONFIG_FEATURE_TOPMEM=y | ||
900 | # CONFIG_FEATURE_SHOW_THREADS is not set | ||
901 | # CONFIG_UPTIME is not set | ||
902 | CONFIG_WATCH=y | ||
903 | |||
904 | # | ||
905 | # Runit Utilities | ||
906 | # | ||
907 | CONFIG_RUNSV=y | ||
908 | CONFIG_RUNSVDIR=y | ||
909 | # CONFIG_FEATURE_RUNSVDIR_LOG is not set | ||
910 | CONFIG_SV=y | ||
911 | CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" | ||
912 | CONFIG_SVLOGD=y | ||
913 | CONFIG_CHPST=y | ||
914 | CONFIG_SETUIDGID=y | ||
915 | CONFIG_ENVUIDGID=y | ||
916 | CONFIG_ENVDIR=y | ||
917 | CONFIG_SOFTLIMIT=y | ||
918 | # CONFIG_CHCON is not set | ||
919 | # CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set | ||
920 | # CONFIG_GETENFORCE is not set | ||
921 | # CONFIG_GETSEBOOL is not set | ||
922 | # CONFIG_LOAD_POLICY is not set | ||
923 | # CONFIG_MATCHPATHCON is not set | ||
924 | # CONFIG_RESTORECON is not set | ||
925 | # CONFIG_RUNCON is not set | ||
926 | # CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set | ||
927 | # CONFIG_SELINUXENABLED is not set | ||
928 | # CONFIG_SETENFORCE is not set | ||
929 | # CONFIG_SETFILES is not set | ||
930 | # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set | ||
931 | # CONFIG_SETSEBOOL is not set | ||
932 | # CONFIG_SESTATUS is not set | ||
933 | |||
934 | # | ||
935 | # Shells | ||
936 | # | ||
937 | CONFIG_ASH=y | ||
938 | CONFIG_ASH_BASH_COMPAT=y | ||
939 | # CONFIG_ASH_IDLE_TIMEOUT is not set | ||
940 | CONFIG_ASH_JOB_CONTROL=y | ||
941 | CONFIG_ASH_ALIAS=y | ||
942 | CONFIG_ASH_GETOPTS=y | ||
943 | CONFIG_ASH_BUILTIN_ECHO=y | ||
944 | CONFIG_ASH_BUILTIN_PRINTF=y | ||
945 | CONFIG_ASH_BUILTIN_TEST=y | ||
946 | CONFIG_ASH_CMDCMD=y | ||
947 | # CONFIG_ASH_MAIL is not set | ||
948 | CONFIG_ASH_OPTIMIZE_FOR_SIZE=y | ||
949 | CONFIG_ASH_RANDOM_SUPPORT=y | ||
950 | CONFIG_ASH_EXPAND_PRMT=y | ||
951 | # CONFIG_CTTYHACK is not set | ||
952 | CONFIG_HUSH=y | ||
953 | CONFIG_HUSH_BASH_COMPAT=y | ||
954 | CONFIG_HUSH_BRACE_EXPANSION=y | ||
955 | CONFIG_HUSH_HELP=y | ||
956 | CONFIG_HUSH_INTERACTIVE=y | ||
957 | CONFIG_HUSH_SAVEHISTORY=y | ||
958 | CONFIG_HUSH_JOB=y | ||
959 | CONFIG_HUSH_TICK=y | ||
960 | CONFIG_HUSH_IF=y | ||
961 | CONFIG_HUSH_LOOPS=y | ||
962 | CONFIG_HUSH_CASE=y | ||
963 | CONFIG_HUSH_FUNCTIONS=y | ||
964 | CONFIG_HUSH_LOCAL=y | ||
965 | CONFIG_HUSH_RANDOM_SUPPORT=y | ||
966 | CONFIG_HUSH_EXPORT_N=y | ||
967 | CONFIG_HUSH_MODE_X=y | ||
968 | # CONFIG_MSH is not set | ||
969 | CONFIG_FEATURE_SH_IS_ASH=y | ||
970 | # CONFIG_FEATURE_SH_IS_HUSH is not set | ||
971 | # CONFIG_FEATURE_SH_IS_NONE is not set | ||
972 | # CONFIG_FEATURE_BASH_IS_ASH is not set | ||
973 | # CONFIG_FEATURE_BASH_IS_HUSH is not set | ||
974 | CONFIG_FEATURE_BASH_IS_NONE=y | ||
975 | CONFIG_SH_MATH_SUPPORT=y | ||
976 | CONFIG_SH_MATH_SUPPORT_64=y | ||
977 | CONFIG_FEATURE_SH_EXTRA_QUIET=y | ||
978 | # CONFIG_FEATURE_SH_STANDALONE is not set | ||
979 | # CONFIG_FEATURE_SH_NOFORK is not set | ||
980 | CONFIG_FEATURE_SH_HISTFILESIZE=y | ||
981 | |||
982 | # | ||
983 | # System Logging Utilities | ||
984 | # | ||
985 | CONFIG_SYSLOGD=y | ||
986 | CONFIG_FEATURE_ROTATE_LOGFILE=y | ||
987 | CONFIG_FEATURE_REMOTE_LOG=y | ||
988 | CONFIG_FEATURE_SYSLOGD_DUP=y | ||
989 | CONFIG_FEATURE_SYSLOGD_CFG=y | ||
990 | CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 | ||
991 | CONFIG_FEATURE_IPC_SYSLOG=y | ||
992 | CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 | ||
993 | CONFIG_LOGREAD=y | ||
994 | CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y | ||
995 | # CONFIG_KLOGD is not set | ||
996 | # CONFIG_FEATURE_KLOGD_KLOGCTL is not set | ||
997 | CONFIG_LOGGER=y | ||
diff --git a/configs/freebsd_defconfig b/configs/freebsd_defconfig new file mode 100644 index 000000000..5f2985be1 --- /dev/null +++ b/configs/freebsd_defconfig | |||
@@ -0,0 +1,970 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Busybox version: 1.18.1 | ||
4 | # Tue Dec 21 19:47:40 2010 | ||
5 | # | ||
6 | CONFIG_HAVE_DOT_CONFIG=y | ||
7 | |||
8 | # | ||
9 | # Busybox Settings | ||
10 | # | ||
11 | |||
12 | # | ||
13 | # General Configuration | ||
14 | # | ||
15 | # CONFIG_DESKTOP is not set | ||
16 | # CONFIG_EXTRA_COMPAT is not set | ||
17 | CONFIG_INCLUDE_SUSv2=y | ||
18 | CONFIG_USE_PORTABLE_CODE=y | ||
19 | # CONFIG_PLATFORM_LINUX is not set | ||
20 | CONFIG_FEATURE_BUFFERS_USE_MALLOC=y | ||
21 | # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set | ||
22 | # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set | ||
23 | CONFIG_SHOW_USAGE=y | ||
24 | CONFIG_FEATURE_VERBOSE_USAGE=y | ||
25 | CONFIG_FEATURE_COMPRESS_USAGE=y | ||
26 | CONFIG_FEATURE_INSTALLER=y | ||
27 | # CONFIG_INSTALL_NO_USR is not set | ||
28 | CONFIG_LOCALE_SUPPORT=y | ||
29 | CONFIG_UNICODE_SUPPORT=y | ||
30 | # CONFIG_UNICODE_USING_LOCALE is not set | ||
31 | # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set | ||
32 | CONFIG_SUBST_WCHAR=63 | ||
33 | CONFIG_LAST_SUPPORTED_WCHAR=767 | ||
34 | # CONFIG_UNICODE_COMBINING_WCHARS is not set | ||
35 | # CONFIG_UNICODE_WIDE_WCHARS is not set | ||
36 | # CONFIG_UNICODE_BIDI_SUPPORT is not set | ||
37 | # CONFIG_UNICODE_NEUTRAL_TABLE is not set | ||
38 | # CONFIG_UNICODE_PRESERVE_BROKEN is not set | ||
39 | CONFIG_LONG_OPTS=y | ||
40 | CONFIG_FEATURE_DEVPTS=y | ||
41 | # CONFIG_FEATURE_CLEAN_UP is not set | ||
42 | # CONFIG_FEATURE_WTMP is not set | ||
43 | # CONFIG_FEATURE_UTMP is not set | ||
44 | CONFIG_FEATURE_PIDFILE=y | ||
45 | CONFIG_FEATURE_SUID=y | ||
46 | CONFIG_FEATURE_SUID_CONFIG=y | ||
47 | CONFIG_FEATURE_SUID_CONFIG_QUIET=y | ||
48 | # CONFIG_SELINUX is not set | ||
49 | # CONFIG_FEATURE_PREFER_APPLETS is not set | ||
50 | CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" | ||
51 | CONFIG_FEATURE_SYSLOG=y | ||
52 | # CONFIG_FEATURE_HAVE_RPC is not set | ||
53 | |||
54 | # | ||
55 | # Build Options | ||
56 | # | ||
57 | # CONFIG_STATIC is not set | ||
58 | # CONFIG_PIE is not set | ||
59 | # CONFIG_NOMMU is not set | ||
60 | # CONFIG_BUILD_LIBBUSYBOX is not set | ||
61 | # CONFIG_FEATURE_INDIVIDUAL is not set | ||
62 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set | ||
63 | CONFIG_LFS=y | ||
64 | CONFIG_CROSS_COMPILER_PREFIX="" | ||
65 | CONFIG_EXTRA_CFLAGS="" | ||
66 | |||
67 | # | ||
68 | # Debugging Options | ||
69 | # | ||
70 | # CONFIG_DEBUG is not set | ||
71 | # CONFIG_DEBUG_PESSIMIZE is not set | ||
72 | # CONFIG_WERROR is not set | ||
73 | CONFIG_NO_DEBUG_LIB=y | ||
74 | # CONFIG_DMALLOC is not set | ||
75 | # CONFIG_EFENCE is not set | ||
76 | |||
77 | # | ||
78 | # Installation Options ("make install" behavior) | ||
79 | # | ||
80 | CONFIG_INSTALL_APPLET_SYMLINKS=y | ||
81 | # CONFIG_INSTALL_APPLET_HARDLINKS is not set | ||
82 | # CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set | ||
83 | # CONFIG_INSTALL_APPLET_DONT is not set | ||
84 | # CONFIG_INSTALL_SH_APPLET_SYMLINK is not set | ||
85 | # CONFIG_INSTALL_SH_APPLET_HARDLINK is not set | ||
86 | # CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set | ||
87 | CONFIG_PREFIX="./_install" | ||
88 | |||
89 | # | ||
90 | # Busybox Library Tuning | ||
91 | # | ||
92 | CONFIG_PASSWORD_MINLEN=6 | ||
93 | CONFIG_MD5_SIZE_VS_SPEED=2 | ||
94 | CONFIG_FEATURE_FAST_TOP=y | ||
95 | # CONFIG_FEATURE_ETC_NETWORKS is not set | ||
96 | CONFIG_FEATURE_USE_TERMIOS=y | ||
97 | CONFIG_FEATURE_EDITING=y | ||
98 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 | ||
99 | # CONFIG_FEATURE_EDITING_VI is not set | ||
100 | CONFIG_FEATURE_EDITING_HISTORY=30 | ||
101 | # CONFIG_FEATURE_EDITING_SAVEHISTORY is not set | ||
102 | CONFIG_FEATURE_TAB_COMPLETION=y | ||
103 | # CONFIG_FEATURE_USERNAME_COMPLETION is not set | ||
104 | # CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set | ||
105 | # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set | ||
106 | CONFIG_FEATURE_NON_POSIX_CP=y | ||
107 | # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set | ||
108 | CONFIG_FEATURE_COPYBUF_KB=4 | ||
109 | # CONFIG_MONOTONIC_SYSCALL is not set | ||
110 | CONFIG_IOCTL_HEX2STR_ERROR=y | ||
111 | CONFIG_FEATURE_HWIB=y | ||
112 | |||
113 | # | ||
114 | # Applets | ||
115 | # | ||
116 | |||
117 | # | ||
118 | # Archival Utilities | ||
119 | # | ||
120 | CONFIG_FEATURE_SEAMLESS_XZ=y | ||
121 | CONFIG_FEATURE_SEAMLESS_LZMA=y | ||
122 | CONFIG_FEATURE_SEAMLESS_BZ2=y | ||
123 | CONFIG_FEATURE_SEAMLESS_GZ=y | ||
124 | CONFIG_FEATURE_SEAMLESS_Z=y | ||
125 | CONFIG_AR=y | ||
126 | CONFIG_FEATURE_AR_LONG_FILENAMES=y | ||
127 | CONFIG_FEATURE_AR_CREATE=y | ||
128 | CONFIG_BUNZIP2=y | ||
129 | CONFIG_BZIP2=y | ||
130 | CONFIG_CPIO=y | ||
131 | # CONFIG_FEATURE_CPIO_O is not set | ||
132 | # CONFIG_FEATURE_CPIO_P is not set | ||
133 | # CONFIG_DPKG is not set | ||
134 | # CONFIG_DPKG_DEB is not set | ||
135 | # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set | ||
136 | CONFIG_GUNZIP=y | ||
137 | CONFIG_GZIP=y | ||
138 | CONFIG_FEATURE_GZIP_LONG_OPTIONS=y | ||
139 | CONFIG_LZOP=y | ||
140 | # CONFIG_LZOP_COMPR_HIGH is not set | ||
141 | CONFIG_RPM2CPIO=y | ||
142 | CONFIG_RPM=y | ||
143 | CONFIG_TAR=y | ||
144 | CONFIG_FEATURE_TAR_CREATE=y | ||
145 | CONFIG_FEATURE_TAR_AUTODETECT=y | ||
146 | CONFIG_FEATURE_TAR_FROM=y | ||
147 | CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y | ||
148 | CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y | ||
149 | CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y | ||
150 | CONFIG_FEATURE_TAR_LONG_OPTIONS=y | ||
151 | CONFIG_FEATURE_TAR_TO_COMMAND=y | ||
152 | # CONFIG_FEATURE_TAR_UNAME_GNAME is not set | ||
153 | CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y | ||
154 | # CONFIG_FEATURE_TAR_SELINUX is not set | ||
155 | CONFIG_UNCOMPRESS=y | ||
156 | CONFIG_UNLZMA=y | ||
157 | CONFIG_FEATURE_LZMA_FAST=y | ||
158 | CONFIG_LZMA=y | ||
159 | CONFIG_UNXZ=y | ||
160 | CONFIG_XZ=y | ||
161 | CONFIG_UNZIP=y | ||
162 | |||
163 | # | ||
164 | # Coreutils | ||
165 | # | ||
166 | CONFIG_BASENAME=y | ||
167 | CONFIG_CAT=y | ||
168 | # CONFIG_DATE is not set | ||
169 | # CONFIG_FEATURE_DATE_ISOFMT is not set | ||
170 | # CONFIG_FEATURE_DATE_NANO is not set | ||
171 | # CONFIG_FEATURE_DATE_COMPAT is not set | ||
172 | CONFIG_TEST=y | ||
173 | CONFIG_FEATURE_TEST_64=y | ||
174 | CONFIG_TR=y | ||
175 | CONFIG_FEATURE_TR_CLASSES=y | ||
176 | CONFIG_FEATURE_TR_EQUIV=y | ||
177 | # CONFIG_BASE64 is not set | ||
178 | CONFIG_CAL=y | ||
179 | CONFIG_CATV=y | ||
180 | CONFIG_CHGRP=y | ||
181 | CONFIG_CHMOD=y | ||
182 | CONFIG_CHOWN=y | ||
183 | CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y | ||
184 | CONFIG_CHROOT=y | ||
185 | CONFIG_CKSUM=y | ||
186 | CONFIG_COMM=y | ||
187 | CONFIG_CP=y | ||
188 | CONFIG_FEATURE_CP_LONG_OPTIONS=y | ||
189 | CONFIG_CUT=y | ||
190 | CONFIG_DD=y | ||
191 | CONFIG_FEATURE_DD_SIGNAL_HANDLING=y | ||
192 | CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y | ||
193 | CONFIG_FEATURE_DD_IBS_OBS=y | ||
194 | # CONFIG_DF is not set | ||
195 | # CONFIG_FEATURE_DF_FANCY is not set | ||
196 | CONFIG_DIRNAME=y | ||
197 | CONFIG_DOS2UNIX=y | ||
198 | CONFIG_UNIX2DOS=y | ||
199 | CONFIG_DU=y | ||
200 | CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y | ||
201 | CONFIG_ECHO=y | ||
202 | CONFIG_FEATURE_FANCY_ECHO=y | ||
203 | CONFIG_ENV=y | ||
204 | CONFIG_FEATURE_ENV_LONG_OPTIONS=y | ||
205 | CONFIG_EXPAND=y | ||
206 | CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y | ||
207 | CONFIG_EXPR=y | ||
208 | CONFIG_EXPR_MATH_SUPPORT_64=y | ||
209 | CONFIG_FALSE=y | ||
210 | CONFIG_FOLD=y | ||
211 | CONFIG_FSYNC=y | ||
212 | CONFIG_HEAD=y | ||
213 | CONFIG_FEATURE_FANCY_HEAD=y | ||
214 | CONFIG_HOSTID=y | ||
215 | CONFIG_ID=y | ||
216 | CONFIG_INSTALL=y | ||
217 | CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y | ||
218 | CONFIG_LENGTH=y | ||
219 | CONFIG_LN=y | ||
220 | CONFIG_LOGNAME=y | ||
221 | CONFIG_LS=y | ||
222 | CONFIG_FEATURE_LS_FILETYPES=y | ||
223 | CONFIG_FEATURE_LS_FOLLOWLINKS=y | ||
224 | CONFIG_FEATURE_LS_RECURSIVE=y | ||
225 | CONFIG_FEATURE_LS_SORTFILES=y | ||
226 | CONFIG_FEATURE_LS_TIMESTAMPS=y | ||
227 | CONFIG_FEATURE_LS_USERNAME=y | ||
228 | CONFIG_FEATURE_LS_COLOR=y | ||
229 | CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y | ||
230 | CONFIG_MD5SUM=y | ||
231 | CONFIG_MKDIR=y | ||
232 | CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y | ||
233 | CONFIG_MKFIFO=y | ||
234 | # CONFIG_MKNOD is not set | ||
235 | CONFIG_MV=y | ||
236 | CONFIG_FEATURE_MV_LONG_OPTIONS=y | ||
237 | CONFIG_NICE=y | ||
238 | CONFIG_NOHUP=y | ||
239 | CONFIG_OD=y | ||
240 | CONFIG_PRINTENV=y | ||
241 | CONFIG_PRINTF=y | ||
242 | CONFIG_PWD=y | ||
243 | CONFIG_READLINK=y | ||
244 | CONFIG_FEATURE_READLINK_FOLLOW=y | ||
245 | CONFIG_REALPATH=y | ||
246 | CONFIG_RM=y | ||
247 | CONFIG_RMDIR=y | ||
248 | # CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set | ||
249 | CONFIG_SEQ=y | ||
250 | CONFIG_SHA1SUM=y | ||
251 | CONFIG_SHA256SUM=y | ||
252 | CONFIG_SHA512SUM=y | ||
253 | CONFIG_SLEEP=y | ||
254 | CONFIG_FEATURE_FANCY_SLEEP=y | ||
255 | CONFIG_FEATURE_FLOAT_SLEEP=y | ||
256 | CONFIG_SORT=y | ||
257 | CONFIG_FEATURE_SORT_BIG=y | ||
258 | CONFIG_SPLIT=y | ||
259 | CONFIG_FEATURE_SPLIT_FANCY=y | ||
260 | # CONFIG_STAT is not set | ||
261 | # CONFIG_FEATURE_STAT_FORMAT is not set | ||
262 | # CONFIG_STTY is not set | ||
263 | CONFIG_SUM=y | ||
264 | CONFIG_SYNC=y | ||
265 | # CONFIG_TAC is not set | ||
266 | CONFIG_TAIL=y | ||
267 | CONFIG_FEATURE_FANCY_TAIL=y | ||
268 | CONFIG_TEE=y | ||
269 | CONFIG_FEATURE_TEE_USE_BLOCK_IO=y | ||
270 | CONFIG_TOUCH=y | ||
271 | CONFIG_TRUE=y | ||
272 | CONFIG_TTY=y | ||
273 | CONFIG_UNAME=y | ||
274 | CONFIG_UNEXPAND=y | ||
275 | CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y | ||
276 | CONFIG_UNIQ=y | ||
277 | CONFIG_USLEEP=y | ||
278 | CONFIG_UUDECODE=y | ||
279 | CONFIG_UUENCODE=y | ||
280 | CONFIG_WC=y | ||
281 | CONFIG_FEATURE_WC_LARGE=y | ||
282 | # CONFIG_WHO is not set | ||
283 | CONFIG_WHOAMI=y | ||
284 | CONFIG_YES=y | ||
285 | |||
286 | # | ||
287 | # Common options for cp and mv | ||
288 | # | ||
289 | CONFIG_FEATURE_PRESERVE_HARDLINKS=y | ||
290 | |||
291 | # | ||
292 | # Common options for ls, more and telnet | ||
293 | # | ||
294 | CONFIG_FEATURE_AUTOWIDTH=y | ||
295 | |||
296 | # | ||
297 | # Common options for df, du, ls | ||
298 | # | ||
299 | CONFIG_FEATURE_HUMAN_READABLE=y | ||
300 | |||
301 | # | ||
302 | # Common options for md5sum, sha1sum, sha256sum, sha512sum | ||
303 | # | ||
304 | CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y | ||
305 | |||
306 | # | ||
307 | # Console Utilities | ||
308 | # | ||
309 | # CONFIG_CHVT is not set | ||
310 | # CONFIG_FGCONSOLE is not set | ||
311 | CONFIG_CLEAR=y | ||
312 | # CONFIG_DEALLOCVT is not set | ||
313 | # CONFIG_DUMPKMAP is not set | ||
314 | # CONFIG_KBD_MODE is not set | ||
315 | # CONFIG_LOADFONT is not set | ||
316 | # CONFIG_LOADKMAP is not set | ||
317 | # CONFIG_OPENVT is not set | ||
318 | CONFIG_RESET=y | ||
319 | CONFIG_RESIZE=y | ||
320 | CONFIG_FEATURE_RESIZE_PRINT=y | ||
321 | # CONFIG_SETCONSOLE is not set | ||
322 | # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set | ||
323 | # CONFIG_SETFONT is not set | ||
324 | # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set | ||
325 | CONFIG_DEFAULT_SETFONT_DIR="" | ||
326 | # CONFIG_SETKEYCODES is not set | ||
327 | # CONFIG_SETLOGCONS is not set | ||
328 | # CONFIG_SHOWKEY is not set | ||
329 | # CONFIG_FEATURE_LOADFONT_PSF2 is not set | ||
330 | # CONFIG_FEATURE_LOADFONT_RAW is not set | ||
331 | |||
332 | # | ||
333 | # Debian Utilities | ||
334 | # | ||
335 | CONFIG_MKTEMP=y | ||
336 | CONFIG_PIPE_PROGRESS=y | ||
337 | CONFIG_RUN_PARTS=y | ||
338 | CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y | ||
339 | CONFIG_FEATURE_RUN_PARTS_FANCY=y | ||
340 | # CONFIG_START_STOP_DAEMON is not set | ||
341 | # CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set | ||
342 | # CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set | ||
343 | CONFIG_WHICH=y | ||
344 | |||
345 | # | ||
346 | # Editors | ||
347 | # | ||
348 | CONFIG_PATCH=y | ||
349 | CONFIG_AWK=y | ||
350 | CONFIG_FEATURE_AWK_LIBM=y | ||
351 | CONFIG_CMP=y | ||
352 | CONFIG_DIFF=y | ||
353 | CONFIG_FEATURE_DIFF_LONG_OPTIONS=y | ||
354 | CONFIG_FEATURE_DIFF_DIR=y | ||
355 | CONFIG_ED=y | ||
356 | CONFIG_SED=y | ||
357 | CONFIG_VI=y | ||
358 | CONFIG_FEATURE_VI_MAX_LEN=1024 | ||
359 | CONFIG_FEATURE_VI_8BIT=y | ||
360 | CONFIG_FEATURE_VI_COLON=y | ||
361 | CONFIG_FEATURE_VI_YANKMARK=y | ||
362 | CONFIG_FEATURE_VI_SEARCH=y | ||
363 | CONFIG_FEATURE_VI_USE_SIGNALS=y | ||
364 | CONFIG_FEATURE_VI_DOT_CMD=y | ||
365 | CONFIG_FEATURE_VI_READONLY=y | ||
366 | CONFIG_FEATURE_VI_SETOPTS=y | ||
367 | CONFIG_FEATURE_VI_SET=y | ||
368 | CONFIG_FEATURE_VI_WIN_RESIZE=y | ||
369 | CONFIG_FEATURE_VI_ASK_TERMINAL=y | ||
370 | CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y | ||
371 | CONFIG_FEATURE_ALLOW_EXEC=y | ||
372 | |||
373 | # | ||
374 | # Finding Utilities | ||
375 | # | ||
376 | CONFIG_FIND=y | ||
377 | CONFIG_FEATURE_FIND_PRINT0=y | ||
378 | CONFIG_FEATURE_FIND_MTIME=y | ||
379 | CONFIG_FEATURE_FIND_MMIN=y | ||
380 | CONFIG_FEATURE_FIND_PERM=y | ||
381 | CONFIG_FEATURE_FIND_TYPE=y | ||
382 | CONFIG_FEATURE_FIND_XDEV=y | ||
383 | CONFIG_FEATURE_FIND_MAXDEPTH=y | ||
384 | CONFIG_FEATURE_FIND_NEWER=y | ||
385 | CONFIG_FEATURE_FIND_INUM=y | ||
386 | CONFIG_FEATURE_FIND_EXEC=y | ||
387 | CONFIG_FEATURE_FIND_USER=y | ||
388 | CONFIG_FEATURE_FIND_GROUP=y | ||
389 | CONFIG_FEATURE_FIND_NOT=y | ||
390 | CONFIG_FEATURE_FIND_DEPTH=y | ||
391 | CONFIG_FEATURE_FIND_PAREN=y | ||
392 | CONFIG_FEATURE_FIND_SIZE=y | ||
393 | CONFIG_FEATURE_FIND_PRUNE=y | ||
394 | CONFIG_FEATURE_FIND_DELETE=y | ||
395 | CONFIG_FEATURE_FIND_PATH=y | ||
396 | CONFIG_FEATURE_FIND_REGEX=y | ||
397 | # CONFIG_FEATURE_FIND_CONTEXT is not set | ||
398 | CONFIG_FEATURE_FIND_LINKS=y | ||
399 | CONFIG_GREP=y | ||
400 | CONFIG_FEATURE_GREP_EGREP_ALIAS=y | ||
401 | CONFIG_FEATURE_GREP_FGREP_ALIAS=y | ||
402 | CONFIG_FEATURE_GREP_CONTEXT=y | ||
403 | CONFIG_XARGS=y | ||
404 | CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y | ||
405 | CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y | ||
406 | CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y | ||
407 | CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y | ||
408 | |||
409 | # | ||
410 | # Init Utilities | ||
411 | # | ||
412 | # CONFIG_BOOTCHARTD is not set | ||
413 | # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set | ||
414 | # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set | ||
415 | # CONFIG_HALT is not set | ||
416 | # CONFIG_FEATURE_CALL_TELINIT is not set | ||
417 | CONFIG_TELINIT_PATH="" | ||
418 | # CONFIG_INIT is not set | ||
419 | # CONFIG_FEATURE_USE_INITTAB is not set | ||
420 | # CONFIG_FEATURE_KILL_REMOVED is not set | ||
421 | CONFIG_FEATURE_KILL_DELAY=0 | ||
422 | # CONFIG_FEATURE_INIT_SCTTY is not set | ||
423 | # CONFIG_FEATURE_INIT_SYSLOG is not set | ||
424 | # CONFIG_FEATURE_EXTRA_QUIET is not set | ||
425 | # CONFIG_FEATURE_INIT_COREDUMPS is not set | ||
426 | # CONFIG_FEATURE_INITRD is not set | ||
427 | CONFIG_INIT_TERMINAL_TYPE="" | ||
428 | # CONFIG_MESG is not set | ||
429 | |||
430 | # | ||
431 | # Login/Password Management Utilities | ||
432 | # | ||
433 | # CONFIG_ADD_SHELL is not set | ||
434 | # CONFIG_REMOVE_SHELL is not set | ||
435 | # CONFIG_FEATURE_SHADOWPASSWDS is not set | ||
436 | CONFIG_USE_BB_PWD_GRP=y | ||
437 | # CONFIG_USE_BB_SHADOW is not set | ||
438 | # CONFIG_USE_BB_CRYPT is not set | ||
439 | # CONFIG_USE_BB_CRYPT_SHA is not set | ||
440 | # CONFIG_ADDUSER is not set | ||
441 | # CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set | ||
442 | # CONFIG_FEATURE_CHECK_NAMES is not set | ||
443 | CONFIG_FIRST_SYSTEM_ID=100 | ||
444 | CONFIG_LAST_SYSTEM_ID=999 | ||
445 | CONFIG_ADDGROUP=y | ||
446 | CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y | ||
447 | CONFIG_FEATURE_ADDUSER_TO_GROUP=y | ||
448 | # CONFIG_DELUSER is not set | ||
449 | CONFIG_DELGROUP=y | ||
450 | CONFIG_FEATURE_DEL_USER_FROM_GROUP=y | ||
451 | # CONFIG_GETTY is not set | ||
452 | # CONFIG_LOGIN is not set | ||
453 | # CONFIG_PAM is not set | ||
454 | # CONFIG_LOGIN_SCRIPTS is not set | ||
455 | # CONFIG_FEATURE_NOLOGIN is not set | ||
456 | # CONFIG_FEATURE_SECURETTY is not set | ||
457 | # CONFIG_PASSWD is not set | ||
458 | # CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set | ||
459 | # CONFIG_CRYPTPW is not set | ||
460 | # CONFIG_CHPASSWD is not set | ||
461 | # CONFIG_SU is not set | ||
462 | # CONFIG_FEATURE_SU_SYSLOG is not set | ||
463 | # CONFIG_FEATURE_SU_CHECKS_SHELLS is not set | ||
464 | # CONFIG_SULOGIN is not set | ||
465 | # CONFIG_VLOCK is not set | ||
466 | |||
467 | # | ||
468 | # Linux Ext2 FS Progs | ||
469 | # | ||
470 | CONFIG_CHATTR=y | ||
471 | # CONFIG_FSCK is not set | ||
472 | # CONFIG_LSATTR is not set | ||
473 | # CONFIG_TUNE2FS is not set | ||
474 | # CONFIG_MODINFO is not set | ||
475 | # CONFIG_MODPROBE_SMALL is not set | ||
476 | # CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set | ||
477 | # CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set | ||
478 | # CONFIG_INSMOD is not set | ||
479 | # CONFIG_RMMOD is not set | ||
480 | # CONFIG_LSMOD is not set | ||
481 | # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set | ||
482 | # CONFIG_MODPROBE is not set | ||
483 | # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set | ||
484 | # CONFIG_DEPMOD is not set | ||
485 | # CONFIG_FEATURE_2_4_MODULES is not set | ||
486 | # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set | ||
487 | # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set | ||
488 | # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set | ||
489 | # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set | ||
490 | # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set | ||
491 | # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set | ||
492 | # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set | ||
493 | # CONFIG_FEATURE_MODUTILS_ALIAS is not set | ||
494 | # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set | ||
495 | CONFIG_DEFAULT_MODULES_DIR="" | ||
496 | CONFIG_DEFAULT_DEPMOD_FILE="" | ||
497 | |||
498 | # | ||
499 | # Linux System Utilities | ||
500 | # | ||
501 | # CONFIG_BLOCKDEV is not set | ||
502 | CONFIG_REV=y | ||
503 | # CONFIG_ACPID is not set | ||
504 | # CONFIG_FEATURE_ACPID_COMPAT is not set | ||
505 | # CONFIG_BLKID is not set | ||
506 | # CONFIG_DMESG is not set | ||
507 | # CONFIG_FEATURE_DMESG_PRETTY is not set | ||
508 | # CONFIG_FBSET is not set | ||
509 | # CONFIG_FEATURE_FBSET_FANCY is not set | ||
510 | # CONFIG_FEATURE_FBSET_READMODE is not set | ||
511 | # CONFIG_FDFLUSH is not set | ||
512 | # CONFIG_FDFORMAT is not set | ||
513 | # CONFIG_FDISK is not set | ||
514 | CONFIG_FDISK_SUPPORT_LARGE_DISKS=y | ||
515 | # CONFIG_FEATURE_FDISK_WRITABLE is not set | ||
516 | # CONFIG_FEATURE_AIX_LABEL is not set | ||
517 | # CONFIG_FEATURE_SGI_LABEL is not set | ||
518 | # CONFIG_FEATURE_SUN_LABEL is not set | ||
519 | # CONFIG_FEATURE_OSF_LABEL is not set | ||
520 | # CONFIG_FEATURE_GPT_LABEL is not set | ||
521 | # CONFIG_FEATURE_FDISK_ADVANCED is not set | ||
522 | # CONFIG_FINDFS is not set | ||
523 | CONFIG_FLOCK=y | ||
524 | # CONFIG_FREERAMDISK is not set | ||
525 | # CONFIG_FSCK_MINIX is not set | ||
526 | # CONFIG_MKFS_EXT2 is not set | ||
527 | # CONFIG_MKFS_MINIX is not set | ||
528 | # CONFIG_FEATURE_MINIX2 is not set | ||
529 | # CONFIG_MKFS_REISER is not set | ||
530 | # CONFIG_MKFS_VFAT is not set | ||
531 | CONFIG_GETOPT=y | ||
532 | CONFIG_FEATURE_GETOPT_LONG=y | ||
533 | CONFIG_HEXDUMP=y | ||
534 | # CONFIG_FEATURE_HEXDUMP_REVERSE is not set | ||
535 | CONFIG_HD=y | ||
536 | # CONFIG_HWCLOCK is not set | ||
537 | # CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set | ||
538 | # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set | ||
539 | # CONFIG_IPCRM is not set | ||
540 | # CONFIG_IPCS is not set | ||
541 | # CONFIG_LOSETUP is not set | ||
542 | CONFIG_LSPCI=y | ||
543 | CONFIG_LSUSB=y | ||
544 | # CONFIG_MDEV is not set | ||
545 | # CONFIG_FEATURE_MDEV_CONF is not set | ||
546 | # CONFIG_FEATURE_MDEV_RENAME is not set | ||
547 | # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set | ||
548 | # CONFIG_FEATURE_MDEV_EXEC is not set | ||
549 | # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set | ||
550 | # CONFIG_MKSWAP is not set | ||
551 | # CONFIG_FEATURE_MKSWAP_UUID is not set | ||
552 | CONFIG_MORE=y | ||
553 | # CONFIG_MOUNT is not set | ||
554 | # CONFIG_FEATURE_MOUNT_FAKE is not set | ||
555 | # CONFIG_FEATURE_MOUNT_VERBOSE is not set | ||
556 | # CONFIG_FEATURE_MOUNT_HELPERS is not set | ||
557 | # CONFIG_FEATURE_MOUNT_LABEL is not set | ||
558 | # CONFIG_FEATURE_MOUNT_NFS is not set | ||
559 | # CONFIG_FEATURE_MOUNT_CIFS is not set | ||
560 | # CONFIG_FEATURE_MOUNT_FLAGS is not set | ||
561 | # CONFIG_FEATURE_MOUNT_FSTAB is not set | ||
562 | # CONFIG_PIVOT_ROOT is not set | ||
563 | # CONFIG_RDATE is not set | ||
564 | # CONFIG_RDEV is not set | ||
565 | CONFIG_READPROFILE=y | ||
566 | # CONFIG_RTCWAKE is not set | ||
567 | # CONFIG_SCRIPT is not set | ||
568 | CONFIG_SCRIPTREPLAY=y | ||
569 | # CONFIG_SETARCH is not set | ||
570 | # CONFIG_SWAPONOFF is not set | ||
571 | # CONFIG_FEATURE_SWAPON_PRI is not set | ||
572 | # CONFIG_SWITCH_ROOT is not set | ||
573 | # CONFIG_UMOUNT is not set | ||
574 | # CONFIG_FEATURE_UMOUNT_ALL is not set | ||
575 | # CONFIG_FEATURE_MOUNT_LOOP is not set | ||
576 | # CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set | ||
577 | # CONFIG_FEATURE_MTAB_SUPPORT is not set | ||
578 | # CONFIG_VOLUMEID is not set | ||
579 | # CONFIG_FEATURE_VOLUMEID_EXT is not set | ||
580 | # CONFIG_FEATURE_VOLUMEID_BTRFS is not set | ||
581 | # CONFIG_FEATURE_VOLUMEID_REISERFS is not set | ||
582 | # CONFIG_FEATURE_VOLUMEID_FAT is not set | ||
583 | # CONFIG_FEATURE_VOLUMEID_HFS is not set | ||
584 | # CONFIG_FEATURE_VOLUMEID_JFS is not set | ||
585 | # CONFIG_FEATURE_VOLUMEID_XFS is not set | ||
586 | # CONFIG_FEATURE_VOLUMEID_NTFS is not set | ||
587 | # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set | ||
588 | # CONFIG_FEATURE_VOLUMEID_UDF is not set | ||
589 | # CONFIG_FEATURE_VOLUMEID_LUKS is not set | ||
590 | # CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set | ||
591 | # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set | ||
592 | # CONFIG_FEATURE_VOLUMEID_ROMFS is not set | ||
593 | # CONFIG_FEATURE_VOLUMEID_SYSV is not set | ||
594 | # CONFIG_FEATURE_VOLUMEID_OCFS2 is not set | ||
595 | # CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set | ||
596 | |||
597 | # | ||
598 | # Miscellaneous Utilities | ||
599 | # | ||
600 | # CONFIG_CONSPY is not set | ||
601 | # CONFIG_NANDWRITE is not set | ||
602 | # CONFIG_NANDDUMP is not set | ||
603 | # CONFIG_UBIATTACH is not set | ||
604 | # CONFIG_UBIDETACH is not set | ||
605 | # CONFIG_ADJTIMEX is not set | ||
606 | # CONFIG_BBCONFIG is not set | ||
607 | # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set | ||
608 | # CONFIG_BEEP is not set | ||
609 | CONFIG_FEATURE_BEEP_FREQ=0 | ||
610 | CONFIG_FEATURE_BEEP_LENGTH_MS=0 | ||
611 | # CONFIG_CHAT is not set | ||
612 | # CONFIG_FEATURE_CHAT_NOFAIL is not set | ||
613 | # CONFIG_FEATURE_CHAT_TTY_HIFI is not set | ||
614 | # CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set | ||
615 | # CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set | ||
616 | # CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set | ||
617 | # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set | ||
618 | # CONFIG_FEATURE_CHAT_CLR_ABORT is not set | ||
619 | CONFIG_CHRT=y | ||
620 | # CONFIG_CROND is not set | ||
621 | # CONFIG_FEATURE_CROND_D is not set | ||
622 | # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set | ||
623 | CONFIG_FEATURE_CROND_DIR="/var/spool/cron" | ||
624 | CONFIG_CRONTAB=y | ||
625 | CONFIG_DC=y | ||
626 | CONFIG_FEATURE_DC_LIBM=y | ||
627 | # CONFIG_DEVFSD is not set | ||
628 | # CONFIG_DEVFSD_MODLOAD is not set | ||
629 | # CONFIG_DEVFSD_FG_NP is not set | ||
630 | # CONFIG_DEVFSD_VERBOSE is not set | ||
631 | # CONFIG_FEATURE_DEVFS is not set | ||
632 | # CONFIG_DEVMEM is not set | ||
633 | # CONFIG_EJECT is not set | ||
634 | # CONFIG_FEATURE_EJECT_SCSI is not set | ||
635 | # CONFIG_FBSPLASH is not set | ||
636 | # CONFIG_FLASHCP is not set | ||
637 | # CONFIG_FLASH_LOCK is not set | ||
638 | # CONFIG_FLASH_UNLOCK is not set | ||
639 | # CONFIG_FLASH_ERASEALL is not set | ||
640 | # CONFIG_IONICE is not set | ||
641 | # CONFIG_INOTIFYD is not set | ||
642 | # CONFIG_LAST is not set | ||
643 | # CONFIG_FEATURE_LAST_SMALL is not set | ||
644 | # CONFIG_FEATURE_LAST_FANCY is not set | ||
645 | CONFIG_LESS=y | ||
646 | CONFIG_FEATURE_LESS_MAXLINES=9999999 | ||
647 | CONFIG_FEATURE_LESS_BRACKETS=y | ||
648 | CONFIG_FEATURE_LESS_FLAGS=y | ||
649 | CONFIG_FEATURE_LESS_MARKS=y | ||
650 | CONFIG_FEATURE_LESS_REGEXP=y | ||
651 | # CONFIG_FEATURE_LESS_WINCH is not set | ||
652 | # CONFIG_FEATURE_LESS_DASHCMD is not set | ||
653 | # CONFIG_FEATURE_LESS_LINENUMS is not set | ||
654 | # CONFIG_HDPARM is not set | ||
655 | # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set | ||
656 | # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set | ||
657 | # CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set | ||
658 | # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set | ||
659 | # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set | ||
660 | # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set | ||
661 | # CONFIG_MAKEDEVS is not set | ||
662 | # CONFIG_FEATURE_MAKEDEVS_LEAF is not set | ||
663 | # CONFIG_FEATURE_MAKEDEVS_TABLE is not set | ||
664 | # CONFIG_MAN is not set | ||
665 | CONFIG_MICROCOM=y | ||
666 | # CONFIG_MOUNTPOINT is not set | ||
667 | # CONFIG_MT is not set | ||
668 | # CONFIG_RAIDAUTORUN is not set | ||
669 | # CONFIG_READAHEAD is not set | ||
670 | # CONFIG_RFKILL is not set | ||
671 | # CONFIG_RUNLEVEL is not set | ||
672 | # CONFIG_RX is not set | ||
673 | CONFIG_SETSID=y | ||
674 | CONFIG_STRINGS=y | ||
675 | # CONFIG_TASKSET is not set | ||
676 | # CONFIG_FEATURE_TASKSET_FANCY is not set | ||
677 | # CONFIG_TIME is not set | ||
678 | CONFIG_TIMEOUT=y | ||
679 | CONFIG_TTYSIZE=y | ||
680 | CONFIG_VOLNAME=y | ||
681 | # CONFIG_WALL is not set | ||
682 | # CONFIG_WATCHDOG is not set | ||
683 | |||
684 | # | ||
685 | # Networking Utilities | ||
686 | # | ||
687 | # CONFIG_NBDCLIENT is not set | ||
688 | CONFIG_NC=y | ||
689 | # CONFIG_NC_SERVER is not set | ||
690 | # CONFIG_NC_EXTRA is not set | ||
691 | # CONFIG_NC_110_COMPAT is not set | ||
692 | # CONFIG_FEATURE_IPV6 is not set | ||
693 | # CONFIG_FEATURE_UNIX_LOCAL is not set | ||
694 | # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set | ||
695 | # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set | ||
696 | # CONFIG_ARP is not set | ||
697 | # CONFIG_ARPING is not set | ||
698 | # CONFIG_BRCTL is not set | ||
699 | # CONFIG_FEATURE_BRCTL_FANCY is not set | ||
700 | # CONFIG_FEATURE_BRCTL_SHOW is not set | ||
701 | CONFIG_DNSD=y | ||
702 | # CONFIG_ETHER_WAKE is not set | ||
703 | CONFIG_FAKEIDENTD=y | ||
704 | CONFIG_FTPD=y | ||
705 | CONFIG_FEATURE_FTP_WRITE=y | ||
706 | CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y | ||
707 | CONFIG_FTPGET=y | ||
708 | CONFIG_FTPPUT=y | ||
709 | CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y | ||
710 | CONFIG_HOSTNAME=y | ||
711 | CONFIG_HTTPD=y | ||
712 | CONFIG_FEATURE_HTTPD_RANGES=y | ||
713 | # CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set | ||
714 | # CONFIG_FEATURE_HTTPD_SETUID is not set | ||
715 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y | ||
716 | CONFIG_FEATURE_HTTPD_AUTH_MD5=y | ||
717 | CONFIG_FEATURE_HTTPD_CGI=y | ||
718 | CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y | ||
719 | CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y | ||
720 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y | ||
721 | CONFIG_FEATURE_HTTPD_ERROR_PAGES=y | ||
722 | CONFIG_FEATURE_HTTPD_PROXY=y | ||
723 | CONFIG_FEATURE_HTTPD_GZIP=y | ||
724 | # CONFIG_IFCONFIG is not set | ||
725 | # CONFIG_FEATURE_IFCONFIG_STATUS is not set | ||
726 | # CONFIG_FEATURE_IFCONFIG_SLIP is not set | ||
727 | # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set | ||
728 | # CONFIG_FEATURE_IFCONFIG_HW is not set | ||
729 | # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set | ||
730 | # CONFIG_IFENSLAVE is not set | ||
731 | # CONFIG_IFPLUGD is not set | ||
732 | # CONFIG_IFUPDOWN is not set | ||
733 | CONFIG_IFUPDOWN_IFSTATE_PATH="" | ||
734 | # CONFIG_FEATURE_IFUPDOWN_IP is not set | ||
735 | # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set | ||
736 | # CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set | ||
737 | # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set | ||
738 | # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set | ||
739 | # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set | ||
740 | # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set | ||
741 | # CONFIG_INETD is not set | ||
742 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set | ||
743 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set | ||
744 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set | ||
745 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set | ||
746 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set | ||
747 | # CONFIG_FEATURE_INETD_RPC is not set | ||
748 | # CONFIG_IP is not set | ||
749 | # CONFIG_FEATURE_IP_ADDRESS is not set | ||
750 | # CONFIG_FEATURE_IP_LINK is not set | ||
751 | # CONFIG_FEATURE_IP_ROUTE is not set | ||
752 | # CONFIG_FEATURE_IP_TUNNEL is not set | ||
753 | # CONFIG_FEATURE_IP_RULE is not set | ||
754 | # CONFIG_FEATURE_IP_SHORT_FORMS is not set | ||
755 | # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set | ||
756 | # CONFIG_IPADDR is not set | ||
757 | # CONFIG_IPLINK is not set | ||
758 | # CONFIG_IPROUTE is not set | ||
759 | # CONFIG_IPTUNNEL is not set | ||
760 | # CONFIG_IPRULE is not set | ||
761 | CONFIG_IPCALC=y | ||
762 | CONFIG_FEATURE_IPCALC_FANCY=y | ||
763 | CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y | ||
764 | # CONFIG_NAMEIF is not set | ||
765 | # CONFIG_FEATURE_NAMEIF_EXTENDED is not set | ||
766 | # CONFIG_NETSTAT is not set | ||
767 | # CONFIG_FEATURE_NETSTAT_WIDE is not set | ||
768 | # CONFIG_FEATURE_NETSTAT_PRG is not set | ||
769 | # CONFIG_NSLOOKUP is not set | ||
770 | # CONFIG_NTPD is not set | ||
771 | # CONFIG_FEATURE_NTPD_SERVER is not set | ||
772 | # CONFIG_PING is not set | ||
773 | # CONFIG_PING6 is not set | ||
774 | # CONFIG_FEATURE_FANCY_PING is not set | ||
775 | CONFIG_PSCAN=y | ||
776 | # CONFIG_ROUTE is not set | ||
777 | # CONFIG_SLATTACH is not set | ||
778 | # CONFIG_TCPSVD is not set | ||
779 | CONFIG_TELNET=y | ||
780 | CONFIG_FEATURE_TELNET_TTYPE=y | ||
781 | CONFIG_FEATURE_TELNET_AUTOLOGIN=y | ||
782 | CONFIG_TELNETD=y | ||
783 | CONFIG_FEATURE_TELNETD_STANDALONE=y | ||
784 | CONFIG_FEATURE_TELNETD_INETD_WAIT=y | ||
785 | CONFIG_TFTP=y | ||
786 | CONFIG_TFTPD=y | ||
787 | |||
788 | # | ||
789 | # Common options for tftp/tftpd | ||
790 | # | ||
791 | CONFIG_FEATURE_TFTP_GET=y | ||
792 | CONFIG_FEATURE_TFTP_PUT=y | ||
793 | CONFIG_FEATURE_TFTP_BLOCKSIZE=y | ||
794 | CONFIG_FEATURE_TFTP_PROGRESS_BAR=y | ||
795 | # CONFIG_TFTP_DEBUG is not set | ||
796 | # CONFIG_TRACEROUTE is not set | ||
797 | # CONFIG_TRACEROUTE6 is not set | ||
798 | # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set | ||
799 | # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set | ||
800 | # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set | ||
801 | # CONFIG_TUNCTL is not set | ||
802 | # CONFIG_FEATURE_TUNCTL_UG is not set | ||
803 | # CONFIG_UDHCPD is not set | ||
804 | # CONFIG_DHCPRELAY is not set | ||
805 | # CONFIG_DUMPLEASES is not set | ||
806 | # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set | ||
807 | CONFIG_DHCPD_LEASES_FILE="" | ||
808 | # CONFIG_UDHCPC is not set | ||
809 | # CONFIG_FEATURE_UDHCPC_ARPING is not set | ||
810 | # CONFIG_FEATURE_UDHCP_PORT is not set | ||
811 | CONFIG_UDHCP_DEBUG=0 | ||
812 | # CONFIG_FEATURE_UDHCP_RFC3397 is not set | ||
813 | CONFIG_UDHCPC_DEFAULT_SCRIPT="" | ||
814 | CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 | ||
815 | CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" | ||
816 | # CONFIG_UDPSVD is not set | ||
817 | # CONFIG_VCONFIG is not set | ||
818 | CONFIG_WGET=y | ||
819 | CONFIG_FEATURE_WGET_STATUSBAR=y | ||
820 | CONFIG_FEATURE_WGET_AUTHENTICATION=y | ||
821 | CONFIG_FEATURE_WGET_LONG_OPTIONS=y | ||
822 | CONFIG_FEATURE_WGET_TIMEOUT=y | ||
823 | # CONFIG_ZCIP is not set | ||
824 | |||
825 | # | ||
826 | # Print Utilities | ||
827 | # | ||
828 | # CONFIG_LPD is not set | ||
829 | CONFIG_LPR=y | ||
830 | CONFIG_LPQ=y | ||
831 | |||
832 | # | ||
833 | # Mail Utilities | ||
834 | # | ||
835 | # CONFIG_MAKEMIME is not set | ||
836 | CONFIG_FEATURE_MIME_CHARSET="" | ||
837 | # CONFIG_POPMAILDIR is not set | ||
838 | # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set | ||
839 | # CONFIG_REFORMIME is not set | ||
840 | # CONFIG_FEATURE_REFORMIME_COMPAT is not set | ||
841 | # CONFIG_SENDMAIL is not set | ||
842 | |||
843 | # | ||
844 | # Process Utilities | ||
845 | # | ||
846 | CONFIG_IOSTAT=y | ||
847 | CONFIG_MPSTAT=y | ||
848 | CONFIG_PMAP=y | ||
849 | CONFIG_POWERTOP=y | ||
850 | CONFIG_SMEMCAP=y | ||
851 | # CONFIG_FREE is not set | ||
852 | # CONFIG_FUSER is not set | ||
853 | CONFIG_KILL=y | ||
854 | CONFIG_KILLALL=y | ||
855 | CONFIG_KILLALL5=y | ||
856 | # CONFIG_NMETER is not set | ||
857 | CONFIG_PGREP=y | ||
858 | # CONFIG_PIDOF is not set | ||
859 | # CONFIG_FEATURE_PIDOF_SINGLE is not set | ||
860 | # CONFIG_FEATURE_PIDOF_OMIT is not set | ||
861 | CONFIG_PKILL=y | ||
862 | CONFIG_PS=y | ||
863 | CONFIG_FEATURE_PS_WIDE=y | ||
864 | # CONFIG_FEATURE_PS_TIME is not set | ||
865 | # CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set | ||
866 | # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set | ||
867 | CONFIG_RENICE=y | ||
868 | CONFIG_BB_SYSCTL=y | ||
869 | # CONFIG_TOP is not set | ||
870 | # CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set | ||
871 | # CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set | ||
872 | # CONFIG_FEATURE_TOP_SMP_CPU is not set | ||
873 | # CONFIG_FEATURE_TOP_DECIMALS is not set | ||
874 | # CONFIG_FEATURE_TOP_SMP_PROCESS is not set | ||
875 | # CONFIG_FEATURE_TOPMEM is not set | ||
876 | CONFIG_FEATURE_SHOW_THREADS=y | ||
877 | # CONFIG_UPTIME is not set | ||
878 | CONFIG_WATCH=y | ||
879 | |||
880 | # | ||
881 | # Runit Utilities | ||
882 | # | ||
883 | # CONFIG_RUNSV is not set | ||
884 | # CONFIG_RUNSVDIR is not set | ||
885 | # CONFIG_FEATURE_RUNSVDIR_LOG is not set | ||
886 | # CONFIG_SV is not set | ||
887 | CONFIG_SV_DEFAULT_SERVICE_DIR="" | ||
888 | # CONFIG_SVLOGD is not set | ||
889 | # CONFIG_CHPST is not set | ||
890 | # CONFIG_SETUIDGID is not set | ||
891 | # CONFIG_ENVUIDGID is not set | ||
892 | # CONFIG_ENVDIR is not set | ||
893 | # CONFIG_SOFTLIMIT is not set | ||
894 | # CONFIG_CHCON is not set | ||
895 | # CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set | ||
896 | # CONFIG_GETENFORCE is not set | ||
897 | # CONFIG_GETSEBOOL is not set | ||
898 | # CONFIG_LOAD_POLICY is not set | ||
899 | # CONFIG_MATCHPATHCON is not set | ||
900 | # CONFIG_RESTORECON is not set | ||
901 | # CONFIG_RUNCON is not set | ||
902 | # CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set | ||
903 | # CONFIG_SELINUXENABLED is not set | ||
904 | # CONFIG_SETENFORCE is not set | ||
905 | # CONFIG_SETFILES is not set | ||
906 | # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set | ||
907 | # CONFIG_SETSEBOOL is not set | ||
908 | # CONFIG_SESTATUS is not set | ||
909 | |||
910 | # | ||
911 | # Shells | ||
912 | # | ||
913 | CONFIG_ASH=y | ||
914 | # CONFIG_ASH_BASH_COMPAT is not set | ||
915 | # CONFIG_ASH_JOB_CONTROL is not set | ||
916 | # CONFIG_ASH_ALIAS is not set | ||
917 | # CONFIG_ASH_GETOPTS is not set | ||
918 | # CONFIG_ASH_BUILTIN_ECHO is not set | ||
919 | # CONFIG_ASH_BUILTIN_PRINTF is not set | ||
920 | # CONFIG_ASH_BUILTIN_TEST is not set | ||
921 | # CONFIG_ASH_CMDCMD is not set | ||
922 | # CONFIG_ASH_MAIL is not set | ||
923 | # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set | ||
924 | # CONFIG_ASH_RANDOM_SUPPORT is not set | ||
925 | # CONFIG_ASH_EXPAND_PRMT is not set | ||
926 | # CONFIG_CTTYHACK is not set | ||
927 | # CONFIG_HUSH is not set | ||
928 | # CONFIG_HUSH_BASH_COMPAT is not set | ||
929 | # CONFIG_HUSH_BRACE_EXPANSION is not set | ||
930 | # CONFIG_HUSH_HELP is not set | ||
931 | # CONFIG_HUSH_INTERACTIVE is not set | ||
932 | # CONFIG_HUSH_SAVEHISTORY is not set | ||
933 | # CONFIG_HUSH_JOB is not set | ||
934 | # CONFIG_HUSH_TICK is not set | ||
935 | # CONFIG_HUSH_IF is not set | ||
936 | # CONFIG_HUSH_LOOPS is not set | ||
937 | # CONFIG_HUSH_CASE is not set | ||
938 | # CONFIG_HUSH_FUNCTIONS is not set | ||
939 | # CONFIG_HUSH_LOCAL is not set | ||
940 | # CONFIG_HUSH_RANDOM_SUPPORT is not set | ||
941 | # CONFIG_HUSH_EXPORT_N is not set | ||
942 | # CONFIG_HUSH_MODE_X is not set | ||
943 | # CONFIG_MSH is not set | ||
944 | CONFIG_FEATURE_SH_IS_ASH=y | ||
945 | # CONFIG_FEATURE_SH_IS_HUSH is not set | ||
946 | # CONFIG_FEATURE_SH_IS_NONE is not set | ||
947 | # CONFIG_FEATURE_BASH_IS_ASH is not set | ||
948 | # CONFIG_FEATURE_BASH_IS_HUSH is not set | ||
949 | CONFIG_FEATURE_BASH_IS_NONE=y | ||
950 | CONFIG_SH_MATH_SUPPORT=y | ||
951 | CONFIG_SH_MATH_SUPPORT_64=y | ||
952 | # CONFIG_FEATURE_SH_EXTRA_QUIET is not set | ||
953 | # CONFIG_FEATURE_SH_STANDALONE is not set | ||
954 | # CONFIG_FEATURE_SH_NOFORK is not set | ||
955 | |||
956 | # | ||
957 | # System Logging Utilities | ||
958 | # | ||
959 | CONFIG_SYSLOGD=y | ||
960 | CONFIG_FEATURE_ROTATE_LOGFILE=y | ||
961 | CONFIG_FEATURE_REMOTE_LOG=y | ||
962 | # CONFIG_FEATURE_SYSLOGD_DUP is not set | ||
963 | CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 | ||
964 | CONFIG_FEATURE_IPC_SYSLOG=y | ||
965 | CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 | ||
966 | CONFIG_LOGREAD=y | ||
967 | CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y | ||
968 | # CONFIG_KLOGD is not set | ||
969 | # CONFIG_FEATURE_KLOGD_KLOGCTL is not set | ||
970 | CONFIG_LOGGER=y | ||
diff --git a/coreutils/Config.src b/coreutils/Config.src index dcb5add8f..cff2ce216 100644 --- a/coreutils/Config.src +++ b/coreutils/Config.src | |||
@@ -728,13 +728,6 @@ config FEATURE_WC_LARGE | |||
728 | help | 728 | help |
729 | Use "unsigned long long" in wc for counter variables. | 729 | Use "unsigned long long" in wc for counter variables. |
730 | 730 | ||
731 | config WHO | ||
732 | bool "who" | ||
733 | default y | ||
734 | depends on FEATURE_UTMP | ||
735 | help | ||
736 | who is used to show who is logged on. | ||
737 | |||
738 | config WHOAMI | 731 | config WHOAMI |
739 | bool "whoami" | 732 | bool "whoami" |
740 | default y | 733 | default y |
diff --git a/coreutils/Kbuild.src b/coreutils/Kbuild.src index 0681e44b0..53d88b391 100644 --- a/coreutils/Kbuild.src +++ b/coreutils/Kbuild.src | |||
@@ -82,6 +82,5 @@ lib-$(CONFIG_USLEEP) += usleep.o | |||
82 | lib-$(CONFIG_UUDECODE) += uudecode.o | 82 | lib-$(CONFIG_UUDECODE) += uudecode.o |
83 | lib-$(CONFIG_UUENCODE) += uuencode.o | 83 | lib-$(CONFIG_UUENCODE) += uuencode.o |
84 | lib-$(CONFIG_WC) += wc.o | 84 | lib-$(CONFIG_WC) += wc.o |
85 | lib-$(CONFIG_WHO) += who.o | ||
86 | lib-$(CONFIG_WHOAMI) += whoami.o | 85 | lib-$(CONFIG_WHOAMI) += whoami.o |
87 | lib-$(CONFIG_YES) += yes.o | 86 | lib-$(CONFIG_YES) += yes.o |
diff --git a/coreutils/df.c b/coreutils/df.c index 846cb38ad..63dbd61bd 100644 --- a/coreutils/df.c +++ b/coreutils/df.c | |||
@@ -212,7 +212,7 @@ int df_main(int argc UNUSED_PARAM, char **argv) | |||
212 | { | 212 | { |
213 | uni_stat_t uni_stat; | 213 | uni_stat_t uni_stat; |
214 | char *uni_dev = unicode_conv_to_printable(&uni_stat, device); | 214 | char *uni_dev = unicode_conv_to_printable(&uni_stat, device); |
215 | if (uni_stat.unicode_width > 20) { | 215 | if (uni_stat.unicode_width > 20 && !(opt & OPT_POSIX)) { |
216 | printf("%s\n%20s", uni_dev, ""); | 216 | printf("%s\n%20s", uni_dev, ""); |
217 | } else { | 217 | } else { |
218 | printf("%s%*s", uni_dev, 20 - (int)uni_stat.unicode_width, ""); | 218 | printf("%s%*s", uni_dev, 20 - (int)uni_stat.unicode_width, ""); |
@@ -220,7 +220,7 @@ int df_main(int argc UNUSED_PARAM, char **argv) | |||
220 | free(uni_dev); | 220 | free(uni_dev); |
221 | } | 221 | } |
222 | #else | 222 | #else |
223 | if (printf("\n%-20s" + 1, device) > 20) | 223 | if (printf("\n%-20s" + 1, device) > 20 && !(opt & OPT_POSIX)) |
224 | printf("\n%-20s", ""); | 224 | printf("\n%-20s", ""); |
225 | #endif | 225 | #endif |
226 | 226 | ||
diff --git a/coreutils/ls.c b/coreutils/ls.c index 4abf84513..9876c2db2 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c | |||
@@ -1120,7 +1120,7 @@ int ls_main(int argc UNUSED_PARAM, char **argv) | |||
1120 | IF_FEATURE_LS_COLOR(applet_long_options = ls_longopts;) | 1120 | IF_FEATURE_LS_COLOR(applet_long_options = ls_longopts;) |
1121 | opt_complementary = | 1121 | opt_complementary = |
1122 | /* -e implies -l */ | 1122 | /* -e implies -l */ |
1123 | "el" | 1123 | IF_FEATURE_LS_TIMESTAMPS("el") |
1124 | /* http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html: | 1124 | /* http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html: |
1125 | * in some pairs of opts, only last one takes effect: | 1125 | * in some pairs of opts, only last one takes effect: |
1126 | */ | 1126 | */ |
@@ -1130,7 +1130,7 @@ int ls_main(int argc UNUSED_PARAM, char **argv) | |||
1130 | ":C-xl:x-Cl:l-xC" /* bycols/bylines/long */ | 1130 | ":C-xl:x-Cl:l-xC" /* bycols/bylines/long */ |
1131 | ":C-1:1-C" /* bycols/oneline */ | 1131 | ":C-1:1-C" /* bycols/oneline */ |
1132 | ":x-1:1-x" /* bylines/oneline (not in SuS, but in GNU coreutils 8.4) */ | 1132 | ":x-1:1-x" /* bylines/oneline (not in SuS, but in GNU coreutils 8.4) */ |
1133 | ":c-u:u-c" /* mtime/atime */ | 1133 | IF_FEATURE_LS_TIMESTAMPS(":c-u:u-c") /* mtime/atime */ |
1134 | /* -w NUM: */ | 1134 | /* -w NUM: */ |
1135 | IF_FEATURE_AUTOWIDTH(":w+"); | 1135 | IF_FEATURE_AUTOWIDTH(":w+"); |
1136 | opt = getopt32(argv, ls_options | 1136 | opt = getopt32(argv, ls_options |
diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c index 53fd4d1a8..2cb6dd43c 100644 --- a/coreutils/md5_sha1_sum.c +++ b/coreutils/md5_sha1_sum.c | |||
@@ -7,12 +7,11 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | //usage:#define md5sum_trivial_usage | 9 | //usage:#define md5sum_trivial_usage |
10 | //usage: "[FILE]..." | 10 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("[-c[sw]] ")"[FILE]..." |
11 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("\n or: md5sum -c [-sw] [FILE]") | ||
12 | //usage:#define md5sum_full_usage "\n\n" | 11 | //usage:#define md5sum_full_usage "\n\n" |
13 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " MD5 checksums" | 12 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " MD5 checksums" |
14 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" | 13 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" |
15 | //usage: "\n -c Check sums against given list" | 14 | //usage: "\n -c Check sums against list in FILEs" |
16 | //usage: "\n -s Don't output anything, status code shows success" | 15 | //usage: "\n -s Don't output anything, status code shows success" |
17 | //usage: "\n -w Warn about improperly formatted checksum lines" | 16 | //usage: "\n -w Warn about improperly formatted checksum lines" |
18 | //usage: ) | 17 | //usage: ) |
@@ -28,34 +27,31 @@ | |||
28 | //usage: "^D\n" | 27 | //usage: "^D\n" |
29 | //usage: | 28 | //usage: |
30 | //usage:#define sha1sum_trivial_usage | 29 | //usage:#define sha1sum_trivial_usage |
31 | //usage: "[FILE]..." | 30 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("[-c[sw]] ")"[FILE]..." |
32 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("\n or: sha1sum -c [-sw] [FILE]") | ||
33 | //usage:#define sha1sum_full_usage "\n\n" | 31 | //usage:#define sha1sum_full_usage "\n\n" |
34 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " SHA1 checksums" | 32 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " SHA1 checksums" |
35 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" | 33 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" |
36 | //usage: "\n -c Check sums against given list" | 34 | //usage: "\n -c Check sums against list in FILEs" |
37 | //usage: "\n -s Don't output anything, status code shows success" | 35 | //usage: "\n -s Don't output anything, status code shows success" |
38 | //usage: "\n -w Warn about improperly formatted checksum lines" | 36 | //usage: "\n -w Warn about improperly formatted checksum lines" |
39 | //usage: ) | 37 | //usage: ) |
40 | //usage: | 38 | //usage: |
41 | //usage:#define sha256sum_trivial_usage | 39 | //usage:#define sha256sum_trivial_usage |
42 | //usage: "[FILE]..." | 40 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("[-c[sw]] ")"[FILE]..." |
43 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("\n or: sha256sum -c [-sw] [FILE]") | ||
44 | //usage:#define sha256sum_full_usage "\n\n" | 41 | //usage:#define sha256sum_full_usage "\n\n" |
45 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " SHA256 checksums" | 42 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " SHA256 checksums" |
46 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" | 43 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" |
47 | //usage: "\n -c Check sums against given list" | 44 | //usage: "\n -c Check sums against list in FILEs" |
48 | //usage: "\n -s Don't output anything, status code shows success" | 45 | //usage: "\n -s Don't output anything, status code shows success" |
49 | //usage: "\n -w Warn about improperly formatted checksum lines" | 46 | //usage: "\n -w Warn about improperly formatted checksum lines" |
50 | //usage: ) | 47 | //usage: ) |
51 | //usage: | 48 | //usage: |
52 | //usage:#define sha512sum_trivial_usage | 49 | //usage:#define sha512sum_trivial_usage |
53 | //usage: "[FILE]..." | 50 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("[-c[sw]] ")"[FILE]..." |
54 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("\n or: sha512sum -c [-sw] [FILE]") | ||
55 | //usage:#define sha512sum_full_usage "\n\n" | 51 | //usage:#define sha512sum_full_usage "\n\n" |
56 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " SHA512 checksums" | 52 | //usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " SHA512 checksums" |
57 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" | 53 | //usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" |
58 | //usage: "\n -c Check sums against given list" | 54 | //usage: "\n -c Check sums against list in FILEs" |
59 | //usage: "\n -s Don't output anything, status code shows success" | 55 | //usage: "\n -s Don't output anything, status code shows success" |
60 | //usage: "\n -w Warn about improperly formatted checksum lines" | 56 | //usage: "\n -w Warn about improperly formatted checksum lines" |
61 | //usage: ) | 57 | //usage: ) |
@@ -95,7 +91,7 @@ static uint8_t *hash_file(const char *filename) | |||
95 | sha1_ctx_t sha1; | 91 | sha1_ctx_t sha1; |
96 | md5_ctx_t md5; | 92 | md5_ctx_t md5; |
97 | } context; | 93 | } context; |
98 | uint8_t *hash_value = NULL; | 94 | uint8_t *hash_value; |
99 | void FAST_FUNC (*update)(void*, const void*, size_t); | 95 | void FAST_FUNC (*update)(void*, const void*, size_t); |
100 | void FAST_FUNC (*final)(void*, void*); | 96 | void FAST_FUNC (*final)(void*, void*); |
101 | char hash_algo; | 97 | char hash_algo; |
@@ -137,6 +133,7 @@ static uint8_t *hash_file(const char *filename) | |||
137 | while ((count = safe_read(src_fd, in_buf, 4096)) > 0) { | 133 | while ((count = safe_read(src_fd, in_buf, 4096)) > 0) { |
138 | update(&context, in_buf, count); | 134 | update(&context, in_buf, count); |
139 | } | 135 | } |
136 | hash_value = NULL; | ||
140 | if (count == 0) { | 137 | if (count == 0) { |
141 | final(&context, in_buf); | 138 | final(&context, in_buf); |
142 | hash_value = hash_bin_to_hex(in_buf, hash_len); | 139 | hash_value = hash_bin_to_hex(in_buf, hash_len); |
@@ -178,66 +175,58 @@ int md5_sha1_sum_main(int argc UNUSED_PARAM, char **argv) | |||
178 | } | 175 | } |
179 | } | 176 | } |
180 | 177 | ||
181 | if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK && (flags & FLAG_CHECK)) { | 178 | do { |
182 | FILE *pre_computed_stream; | 179 | if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK && (flags & FLAG_CHECK)) { |
183 | int count_total = 0; | 180 | FILE *pre_computed_stream; |
184 | int count_failed = 0; | 181 | char *line; |
185 | char *line; | 182 | int count_total = 0; |
183 | int count_failed = 0; | ||
186 | 184 | ||
187 | if (argv[1]) { | 185 | pre_computed_stream = xfopen_stdin(*argv); |
188 | bb_error_msg_and_die("only one argument may be specified with -c"); | ||
189 | } | ||
190 | |||
191 | pre_computed_stream = xfopen_stdin(argv[0]); | ||
192 | 186 | ||
193 | while ((line = xmalloc_fgetline(pre_computed_stream)) != NULL) { | 187 | while ((line = xmalloc_fgetline(pre_computed_stream)) != NULL) { |
194 | uint8_t *hash_value; | 188 | uint8_t *hash_value; |
195 | char *filename_ptr; | 189 | char *filename_ptr; |
196 | 190 | ||
197 | count_total++; | 191 | count_total++; |
198 | filename_ptr = strstr(line, " "); | 192 | filename_ptr = strstr(line, " "); |
199 | /* handle format for binary checksums */ | 193 | /* handle format for binary checksums */ |
200 | if (filename_ptr == NULL) { | 194 | if (filename_ptr == NULL) { |
201 | filename_ptr = strstr(line, " *"); | 195 | filename_ptr = strstr(line, " *"); |
202 | } | ||
203 | if (filename_ptr == NULL) { | ||
204 | if (flags & FLAG_WARN) { | ||
205 | bb_error_msg("invalid format"); | ||
206 | } | 196 | } |
207 | count_failed++; | 197 | if (filename_ptr == NULL) { |
208 | return_value = EXIT_FAILURE; | 198 | if (flags & FLAG_WARN) { |
199 | bb_error_msg("invalid format"); | ||
200 | } | ||
201 | count_failed++; | ||
202 | return_value = EXIT_FAILURE; | ||
203 | free(line); | ||
204 | continue; | ||
205 | } | ||
206 | *filename_ptr = '\0'; | ||
207 | filename_ptr += 2; | ||
208 | |||
209 | hash_value = hash_file(filename_ptr); | ||
210 | |||
211 | if (hash_value && (strcmp((char*)hash_value, line) == 0)) { | ||
212 | if (!(flags & FLAG_SILENT)) | ||
213 | printf("%s: OK\n", filename_ptr); | ||
214 | } else { | ||
215 | if (!(flags & FLAG_SILENT)) | ||
216 | printf("%s: FAILED\n", filename_ptr); | ||
217 | count_failed++; | ||
218 | return_value = EXIT_FAILURE; | ||
219 | } | ||
220 | /* possible free(NULL) */ | ||
221 | free(hash_value); | ||
209 | free(line); | 222 | free(line); |
210 | continue; | ||
211 | } | 223 | } |
212 | *filename_ptr = '\0'; | 224 | if (count_failed && !(flags & FLAG_SILENT)) { |
213 | filename_ptr += 2; | 225 | bb_error_msg("WARNING: %d of %d computed checksums did NOT match", |
214 | 226 | count_failed, count_total); | |
215 | hash_value = hash_file(filename_ptr); | ||
216 | |||
217 | if (hash_value && (strcmp((char*)hash_value, line) == 0)) { | ||
218 | if (!(flags & FLAG_SILENT)) | ||
219 | printf("%s: OK\n", filename_ptr); | ||
220 | } else { | ||
221 | if (!(flags & FLAG_SILENT)) | ||
222 | printf("%s: FAILED\n", filename_ptr); | ||
223 | count_failed++; | ||
224 | return_value = EXIT_FAILURE; | ||
225 | } | 227 | } |
226 | /* possible free(NULL) */ | 228 | fclose_if_not_stdin(pre_computed_stream); |
227 | free(hash_value); | 229 | } else { |
228 | free(line); | ||
229 | } | ||
230 | if (count_failed && !(flags & FLAG_SILENT)) { | ||
231 | bb_error_msg("WARNING: %d of %d computed checksums did NOT match", | ||
232 | count_failed, count_total); | ||
233 | } | ||
234 | /* | ||
235 | if (fclose_if_not_stdin(pre_computed_stream) == EOF) { | ||
236 | bb_perror_msg_and_die("can't close file %s", file_ptr); | ||
237 | } | ||
238 | */ | ||
239 | } else { | ||
240 | do { | ||
241 | uint8_t *hash_value = hash_file(*argv); | 230 | uint8_t *hash_value = hash_file(*argv); |
242 | if (hash_value == NULL) { | 231 | if (hash_value == NULL) { |
243 | return_value = EXIT_FAILURE; | 232 | return_value = EXIT_FAILURE; |
@@ -245,7 +234,8 @@ int md5_sha1_sum_main(int argc UNUSED_PARAM, char **argv) | |||
245 | printf("%s %s\n", hash_value, *argv); | 234 | printf("%s %s\n", hash_value, *argv); |
246 | free(hash_value); | 235 | free(hash_value); |
247 | } | 236 | } |
248 | } while (*++argv); | 237 | } |
249 | } | 238 | } while (*++argv); |
239 | |||
250 | return return_value; | 240 | return return_value; |
251 | } | 241 | } |
diff --git a/coreutils/usleep.c b/coreutils/usleep.c index 67f94f798..2e4eb5721 100644 --- a/coreutils/usleep.c +++ b/coreutils/usleep.c | |||
@@ -29,9 +29,7 @@ int usleep_main(int argc UNUSED_PARAM, char **argv) | |||
29 | bb_show_usage(); | 29 | bb_show_usage(); |
30 | } | 30 | } |
31 | 31 | ||
32 | if (usleep(xatou(argv[1]))) { | 32 | usleep(xatou(argv[1])); |
33 | bb_perror_nomsg_and_die(); | ||
34 | } | ||
35 | 33 | ||
36 | return EXIT_SUCCESS; | 34 | return EXIT_SUCCESS; |
37 | } | 35 | } |
diff --git a/coreutils/who.c b/coreutils/who.c index 9f37f65fd..c6c925264 100644 --- a/coreutils/who.c +++ b/coreutils/who.c | |||
@@ -18,6 +18,31 @@ | |||
18 | */ | 18 | */ |
19 | /* BB_AUDIT SUSv3 _NOT_ compliant -- missing options -b, -d, -l, -m, -p, -q, -r, -s, -t, -T, -u; Missing argument 'file'. */ | 19 | /* BB_AUDIT SUSv3 _NOT_ compliant -- missing options -b, -d, -l, -m, -p, -q, -r, -s, -t, -T, -u; Missing argument 'file'. */ |
20 | 20 | ||
21 | //config:config WHO | ||
22 | //config: bool "who" | ||
23 | //config: default y | ||
24 | //config: depends on FEATURE_UTMP | ||
25 | //config: help | ||
26 | //config: who is used to show who is logged on. | ||
27 | |||
28 | //config:config USERS | ||
29 | //config: bool "users" | ||
30 | //config: default y | ||
31 | //config: depends on FEATURE_UTMP | ||
32 | //config: help | ||
33 | //config: Print users currently logged on. | ||
34 | |||
35 | //applet:IF_USERS(APPLET_ODDNAME(users, who, BB_DIR_USR_BIN, BB_SUID_DROP, users)) | ||
36 | //applet:IF_WHO( APPLET( who, BB_DIR_USR_BIN, BB_SUID_DROP)) | ||
37 | |||
38 | //kbuild:lib-$(CONFIG_USERS) += who.o | ||
39 | //kbuild:lib-$(CONFIG_WHO) += who.o | ||
40 | |||
41 | //usage:#define users_trivial_usage | ||
42 | //usage: "" | ||
43 | //usage:#define users_full_usage "\n\n" | ||
44 | //usage: "Print the users currently logged on" | ||
45 | |||
21 | //usage:#define who_trivial_usage | 46 | //usage:#define who_trivial_usage |
22 | //usage: "[-a]" | 47 | //usage: "[-a]" |
23 | //usage:#define who_full_usage "\n\n" | 48 | //usage:#define who_full_usage "\n\n" |
@@ -49,9 +74,11 @@ int who_main(int argc UNUSED_PARAM, char **argv) | |||
49 | { | 74 | { |
50 | struct utmp *ut; | 75 | struct utmp *ut; |
51 | unsigned opt; | 76 | unsigned opt; |
77 | int do_users = (ENABLE_USERS && (!ENABLE_WHO || applet_name[0] == 'u')); | ||
78 | const char *fmt = "%s"; | ||
52 | 79 | ||
53 | opt_complementary = "=0"; | 80 | opt_complementary = "=0"; |
54 | opt = getopt32(argv, "aH"); | 81 | opt = getopt32(argv, do_users ? "" : "aH"); |
55 | if (opt & 2) // -H | 82 | if (opt & 2) // -H |
56 | printf("USER\t\tTTY\t\tIDLE\tTIME\t\t HOST\n"); | 83 | printf("USER\t\tTTY\t\tIDLE\tTIME\t\t HOST\n"); |
57 | 84 | ||
@@ -60,36 +87,43 @@ int who_main(int argc UNUSED_PARAM, char **argv) | |||
60 | if (ut->ut_user[0] | 87 | if (ut->ut_user[0] |
61 | && ((opt & 1) || ut->ut_type == USER_PROCESS) | 88 | && ((opt & 1) || ut->ut_type == USER_PROCESS) |
62 | ) { | 89 | ) { |
63 | char str6[6]; | 90 | if (!do_users) { |
64 | char name[sizeof("/dev/") + sizeof(ut->ut_line) + 1]; | 91 | char str6[6]; |
65 | struct stat st; | 92 | char name[sizeof("/dev/") + sizeof(ut->ut_line) + 1]; |
66 | time_t seconds; | 93 | struct stat st; |
94 | time_t seconds; | ||
67 | 95 | ||
68 | str6[0] = '?'; | 96 | str6[0] = '?'; |
69 | str6[1] = '\0'; | 97 | str6[1] = '\0'; |
70 | strcpy(name, "/dev/"); | 98 | strcpy(name, "/dev/"); |
71 | safe_strncpy(ut->ut_line[0] == '/' ? name : name + sizeof("/dev/")-1, | 99 | safe_strncpy(ut->ut_line[0] == '/' ? name : name + sizeof("/dev/")-1, |
72 | ut->ut_line, | 100 | ut->ut_line, |
73 | sizeof(ut->ut_line)+1 | 101 | sizeof(ut->ut_line)+1 |
74 | ); | 102 | ); |
75 | if (stat(name, &st) == 0) | 103 | if (stat(name, &st) == 0) |
76 | idle_string(str6, st.st_atime); | 104 | idle_string(str6, st.st_atime); |
77 | /* manpages say ut_tv.tv_sec *is* time_t, | 105 | /* manpages say ut_tv.tv_sec *is* time_t, |
78 | * but some systems have it wrong */ | 106 | * but some systems have it wrong */ |
79 | seconds = ut->ut_tv.tv_sec; | 107 | seconds = ut->ut_tv.tv_sec; |
80 | /* How wide time field can be? | 108 | /* How wide time field can be? |
81 | * "Nov 10 19:33:20": 15 chars | 109 | * "Nov 10 19:33:20": 15 chars |
82 | * "2010-11-10 19:33": 16 chars | 110 | * "2010-11-10 19:33": 16 chars |
83 | */ | 111 | */ |
84 | printf("%-15.*s %-15.*s %-7s %-16.16s %.*s\n", | 112 | printf("%-15.*s %-15.*s %-7s %-16.16s %.*s\n", |
85 | (int)sizeof(ut->ut_user), ut->ut_user, | 113 | (int)sizeof(ut->ut_user), ut->ut_user, |
86 | (int)sizeof(ut->ut_line), ut->ut_line, | 114 | (int)sizeof(ut->ut_line), ut->ut_line, |
87 | str6, | 115 | str6, |
88 | ctime(&seconds) + 4, | 116 | ctime(&seconds) + 4, |
89 | (int)sizeof(ut->ut_host), ut->ut_host | 117 | (int)sizeof(ut->ut_host), ut->ut_host |
90 | ); | 118 | ); |
119 | } else { | ||
120 | printf(fmt, ut->ut_user); | ||
121 | fmt = " %s"; | ||
122 | } | ||
91 | } | 123 | } |
92 | } | 124 | } |
125 | if (do_users) | ||
126 | bb_putchar('\n'); | ||
93 | if (ENABLE_FEATURE_CLEAN_UP) | 127 | if (ENABLE_FEATURE_CLEAN_UP) |
94 | endutent(); | 128 | endutent(); |
95 | return EXIT_SUCCESS; | 129 | return EXIT_SUCCESS; |
diff --git a/docs/unicode.txt b/docs/unicode.txt index 32df24dc8..9c159ce2a 100644 --- a/docs/unicode.txt +++ b/docs/unicode.txt | |||
@@ -29,7 +29,7 @@ But we also need to handle the following problematic moments: | |||
29 | Editors (vi, ed) | 29 | Editors (vi, ed) |
30 | 30 | ||
31 | This case is a bit similar to "shell input", but unlike shell, | 31 | This case is a bit similar to "shell input", but unlike shell, |
32 | editors may encounder many more unexpected unicode sequences | 32 | editors may encounter many more unexpected unicode sequences |
33 | (try to load a random binary file...), and they need to preserve | 33 | (try to load a random binary file...), and they need to preserve |
34 | them, unlike shell which can afford to drop bogus input. | 34 | them, unlike shell which can afford to drop bogus input. |
35 | 35 | ||
diff --git a/editors/diff.c b/editors/diff.c index 8c0a31f47..3a3334640 100644 --- a/editors/diff.c +++ b/editors/diff.c | |||
@@ -693,10 +693,12 @@ static bool diff(FILE* fp[2], char *file[2]) | |||
693 | 693 | ||
694 | static int diffreg(char *file[2]) | 694 | static int diffreg(char *file[2]) |
695 | { | 695 | { |
696 | FILE *fp[2] = { stdin, stdin }; | 696 | FILE *fp[2]; |
697 | bool binary = false, differ = false; | 697 | bool binary = false, differ = false; |
698 | int status = STATUS_SAME, i; | 698 | int status = STATUS_SAME, i; |
699 | 699 | ||
700 | fp[0] = stdin; | ||
701 | fp[1] = stdin; | ||
700 | for (i = 0; i < 2; i++) { | 702 | for (i = 0; i < 2; i++) { |
701 | int fd = open_or_warn_stdin(file[i]); | 703 | int fd = open_or_warn_stdin(file[i]); |
702 | if (fd == -1) | 704 | if (fd == -1) |
diff --git a/editors/vi.c b/editors/vi.c index deb471d04..9708679b4 100644 --- a/editors/vi.c +++ b/editors/vi.c | |||
@@ -132,8 +132,8 @@ | |||
132 | //config: help | 132 | //config: help |
133 | //config: If terminal size can't be retrieved and $LINES/$COLUMNS are not set, | 133 | //config: If terminal size can't be retrieved and $LINES/$COLUMNS are not set, |
134 | //config: this option makes vi perform a last-ditch effort to find it: | 134 | //config: this option makes vi perform a last-ditch effort to find it: |
135 | //config: vi positions cursor to 999,999 and asks terminal to report real | 135 | //config: position cursor to 999,999 and ask terminal to report real |
136 | //config: cursor position using "ESC [ 6 n" escape sequence, then reads stdin. | 136 | //config: cursor position using "ESC [ 6 n" escape sequence, then read stdin. |
137 | //config: | 137 | //config: |
138 | //config: This is not clean but helps a lot on serial lines and such. | 138 | //config: This is not clean but helps a lot on serial lines and such. |
139 | //config: | 139 | //config: |
diff --git a/examples/android-build b/examples/android-build new file mode 100755 index 000000000..f5fe49bda --- /dev/null +++ b/examples/android-build | |||
@@ -0,0 +1,31 @@ | |||
1 | #!/bin/sh | ||
2 | # Build Busybox against Android's bionic | ||
3 | # Originally by Dan Fandrich | ||
4 | # | ||
5 | # Configure with android_defconfig | ||
6 | # This file has been tested on Android Froyo (the lack of ttyname_r in | ||
7 | # the must be patched around) and Gingerbread. | ||
8 | |||
9 | # Point this to the Android root directory; it's used in the defconfig CFLAGS | ||
10 | export A="$HOME/android" | ||
11 | |||
12 | # Android product being built | ||
13 | P=zoom2 | ||
14 | |||
15 | # Toolchain version in use by this version of Android | ||
16 | GCCVER=4.4.3 | ||
17 | |||
18 | export PATH="$A/prebuilt/linux-x86/toolchain/arm-eabi-$GCCVER/bin:$PATH" | ||
19 | |||
20 | # Set the linker flags; compiler flags are in the defconfig file | ||
21 | if grep "^CONFIG_STATIC=y" .config >/dev/null ; then | ||
22 | # Static linking | ||
23 | LDFLAGS="-static -Xlinker -z -Xlinker muldefs -nostdlib $A/out/target/product/$P/obj/lib/crtbegin_static.o $A/out/target/product/$P/obj/lib/crtend_android.o -L$A/out/target/product/$P/obj/lib -L$A/out/target/product/$P/obj/STATIC_LIBRARIES/libm_intermediates -L$A/out/target/product/$P/obj/STATIC_LIBRARIES/libc_intermediates" | ||
24 | LDLIBS="m c gcc" | ||
25 | else | ||
26 | # Dynamic linking | ||
27 | LDFLAGS="-Xlinker -z -Xlinker muldefs -nostdlib -Bdynamic -Xlinker -T$A/build/core/armelf.x -Xlinker -dynamic-linker -Xlinker /system/bin/linker -Xlinker -z -Xlinker nocopyreloc -Xlinker --no-undefined $A/out/target/product/$P/obj/lib/crtbegin_dynamic.o $A/out/target/product/$P/obj/lib/crtend_android.o -L$A/out/target/product/$P/obj/lib" | ||
28 | LDLIBS="dl m c gcc" | ||
29 | fi | ||
30 | |||
31 | make EXTRA_LDFLAGS="$LDFLAGS" LDLIBS="$LDLIBS" "$@" | ||
diff --git a/examples/zcip.script b/examples/zcip.script index 988e542a4..e543c304e 100755 --- a/examples/zcip.script +++ b/examples/zcip.script | |||
@@ -20,9 +20,9 @@ config) | |||
20 | exit 1 | 20 | exit 1 |
21 | fi | 21 | fi |
22 | # remember $ip for $interface, to use on restart | 22 | # remember $ip for $interface, to use on restart |
23 | if [ "x$IP" != x -a -w "$IP.$interface" ] | 23 | if [ "x$ip" != x -a -w "$ip.$interface" ] |
24 | then | 24 | then |
25 | echo $ip > "$IP.$interface" | 25 | echo $ip > "$ip.$interface" |
26 | fi | 26 | fi |
27 | exec ip address add dev $interface \ | 27 | exec ip address add dev $interface \ |
28 | scope link local "$ip/16" broadcast + | 28 | scope link local "$ip/16" broadcast + |
diff --git a/findutils/find.c b/findutils/find.c index babcda0ed..05f88d2f0 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -336,6 +336,9 @@ | |||
336 | # define FNM_CASEFOLD 0 | 336 | # define FNM_CASEFOLD 0 |
337 | #endif | 337 | #endif |
338 | 338 | ||
339 | #define dbg(...) ((void)0) | ||
340 | /* #define dbg(...) bb_error_msg(__VA_ARGS__) */ | ||
341 | |||
339 | /* This is a NOEXEC applet. Be very careful! */ | 342 | /* This is a NOEXEC applet. Be very careful! */ |
340 | 343 | ||
341 | 344 | ||
@@ -469,10 +472,12 @@ static int exec_actions(action ***appp, const char *fileName, const struct stat | |||
469 | #if ENABLE_FEATURE_FIND_NOT | 472 | #if ENABLE_FEATURE_FIND_NOT |
470 | if (ap->invert) rc ^= TRUE; | 473 | if (ap->invert) rc ^= TRUE; |
471 | #endif | 474 | #endif |
475 | dbg("grp %d action %d rc:0x%x", cur_group, cur_action, rc); | ||
472 | if (rc & TRUE) /* current group failed, try next */ | 476 | if (rc & TRUE) /* current group failed, try next */ |
473 | break; | 477 | break; |
474 | } | 478 | } |
475 | } | 479 | } |
480 | dbg("returning:0x%x", rc ^ TRUE); | ||
476 | return rc ^ TRUE; /* restore TRUE bit */ | 481 | return rc ^ TRUE; /* restore TRUE bit */ |
477 | } | 482 | } |
478 | 483 | ||
@@ -910,6 +915,8 @@ static action*** parse_params(char **argv) | |||
910 | int parm = index_in_strings(params, arg); | 915 | int parm = index_in_strings(params, arg); |
911 | const char *arg1 = argv[1]; | 916 | const char *arg1 = argv[1]; |
912 | 917 | ||
918 | dbg("arg:'%s' arg1:'%s' parm:%d PARM_type:%d", arg, arg1, parm, PARM_type); | ||
919 | |||
913 | if (parm >= PARM_name) { | 920 | if (parm >= PARM_name) { |
914 | /* All options/actions starting from -name require argument */ | 921 | /* All options/actions starting from -name require argument */ |
915 | if (!arg1) | 922 | if (!arg1) |
@@ -925,18 +932,22 @@ static action*** parse_params(char **argv) | |||
925 | * expression is reached. | 932 | * expression is reached. |
926 | */ | 933 | */ |
927 | /* Options */ | 934 | /* Options */ |
935 | if (0) { } | ||
928 | #if ENABLE_FEATURE_FIND_XDEV | 936 | #if ENABLE_FEATURE_FIND_XDEV |
929 | if (parm == OPT_XDEV) { | 937 | else if (parm == OPT_XDEV) { |
938 | dbg("%d", __LINE__); | ||
930 | G.xdev_on = 1; | 939 | G.xdev_on = 1; |
931 | } | 940 | } |
932 | #endif | 941 | #endif |
933 | #if ENABLE_FEATURE_FIND_MAXDEPTH | 942 | #if ENABLE_FEATURE_FIND_MAXDEPTH |
934 | else if (parm == OPT_MINDEPTH || parm == OPT_MINDEPTH + 1) { | 943 | else if (parm == OPT_MINDEPTH || parm == OPT_MINDEPTH + 1) { |
944 | dbg("%d", __LINE__); | ||
935 | G.minmaxdepth[parm - OPT_MINDEPTH] = xatoi_positive(arg1); | 945 | G.minmaxdepth[parm - OPT_MINDEPTH] = xatoi_positive(arg1); |
936 | } | 946 | } |
937 | #endif | 947 | #endif |
938 | #if ENABLE_FEATURE_FIND_DEPTH | 948 | #if ENABLE_FEATURE_FIND_DEPTH |
939 | else if (parm == OPT_DEPTH) { | 949 | else if (parm == OPT_DEPTH) { |
950 | dbg("%d", __LINE__); | ||
940 | G.recurse_flags |= ACTION_DEPTHFIRST; | 951 | G.recurse_flags |= ACTION_DEPTHFIRST; |
941 | } | 952 | } |
942 | #endif | 953 | #endif |
@@ -951,9 +962,11 @@ static action*** parse_params(char **argv) | |||
951 | */ | 962 | */ |
952 | /* Operators */ | 963 | /* Operators */ |
953 | else if (parm == PARM_a IF_DESKTOP(|| parm == PARM_and)) { | 964 | else if (parm == PARM_a IF_DESKTOP(|| parm == PARM_and)) { |
965 | dbg("%d", __LINE__); | ||
954 | /* no further special handling required */ | 966 | /* no further special handling required */ |
955 | } | 967 | } |
956 | else if (parm == PARM_o IF_DESKTOP(|| parm == PARM_or)) { | 968 | else if (parm == PARM_o IF_DESKTOP(|| parm == PARM_or)) { |
969 | dbg("%d", __LINE__); | ||
957 | /* start new OR group */ | 970 | /* start new OR group */ |
958 | cur_group++; | 971 | cur_group++; |
959 | appp = xrealloc(appp, (cur_group+2) * sizeof(*appp)); | 972 | appp = xrealloc(appp, (cur_group+2) * sizeof(*appp)); |
@@ -965,26 +978,31 @@ static action*** parse_params(char **argv) | |||
965 | else if (parm == PARM_char_not IF_DESKTOP(|| parm == PARM_not)) { | 978 | else if (parm == PARM_char_not IF_DESKTOP(|| parm == PARM_not)) { |
966 | /* also handles "find ! ! -name 'foo*'" */ | 979 | /* also handles "find ! ! -name 'foo*'" */ |
967 | invert_flag ^= 1; | 980 | invert_flag ^= 1; |
981 | dbg("invert_flag:%d", invert_flag); | ||
968 | } | 982 | } |
969 | #endif | 983 | #endif |
970 | /* Actions */ | 984 | /* Actions */ |
971 | else if (parm == PARM_print) { | 985 | else if (parm == PARM_print) { |
986 | dbg("%d", __LINE__); | ||
972 | G.need_print = 0; | 987 | G.need_print = 0; |
973 | (void) ALLOC_ACTION(print); | 988 | (void) ALLOC_ACTION(print); |
974 | } | 989 | } |
975 | #if ENABLE_FEATURE_FIND_PRINT0 | 990 | #if ENABLE_FEATURE_FIND_PRINT0 |
976 | else if (parm == PARM_print0) { | 991 | else if (parm == PARM_print0) { |
992 | dbg("%d", __LINE__); | ||
977 | G.need_print = 0; | 993 | G.need_print = 0; |
978 | (void) ALLOC_ACTION(print0); | 994 | (void) ALLOC_ACTION(print0); |
979 | } | 995 | } |
980 | #endif | 996 | #endif |
981 | #if ENABLE_FEATURE_FIND_PRUNE | 997 | #if ENABLE_FEATURE_FIND_PRUNE |
982 | else if (parm == PARM_prune) { | 998 | else if (parm == PARM_prune) { |
999 | dbg("%d", __LINE__); | ||
983 | (void) ALLOC_ACTION(prune); | 1000 | (void) ALLOC_ACTION(prune); |
984 | } | 1001 | } |
985 | #endif | 1002 | #endif |
986 | #if ENABLE_FEATURE_FIND_DELETE | 1003 | #if ENABLE_FEATURE_FIND_DELETE |
987 | else if (parm == PARM_delete) { | 1004 | else if (parm == PARM_delete) { |
1005 | dbg("%d", __LINE__); | ||
988 | G.need_print = 0; | 1006 | G.need_print = 0; |
989 | G.recurse_flags |= ACTION_DEPTHFIRST; | 1007 | G.recurse_flags |= ACTION_DEPTHFIRST; |
990 | (void) ALLOC_ACTION(delete); | 1008 | (void) ALLOC_ACTION(delete); |
@@ -994,6 +1012,7 @@ static action*** parse_params(char **argv) | |||
994 | else if (parm == PARM_exec) { | 1012 | else if (parm == PARM_exec) { |
995 | int i; | 1013 | int i; |
996 | action_exec *ap; | 1014 | action_exec *ap; |
1015 | dbg("%d", __LINE__); | ||
997 | G.need_print = 0; | 1016 | G.need_print = 0; |
998 | ap = ALLOC_ACTION(exec); | 1017 | ap = ALLOC_ACTION(exec); |
999 | ap->exec_argv = ++argv; /* first arg after -exec */ | 1018 | ap->exec_argv = ++argv; /* first arg after -exec */ |
@@ -1028,6 +1047,7 @@ static action*** parse_params(char **argv) | |||
1028 | char **endarg; | 1047 | char **endarg; |
1029 | unsigned nested = 1; | 1048 | unsigned nested = 1; |
1030 | 1049 | ||
1050 | dbg("%d", __LINE__); | ||
1031 | endarg = argv; | 1051 | endarg = argv; |
1032 | while (1) { | 1052 | while (1) { |
1033 | if (!*++endarg) | 1053 | if (!*++endarg) |
@@ -1047,6 +1067,7 @@ static action*** parse_params(char **argv) | |||
1047 | #endif | 1067 | #endif |
1048 | else if (parm == PARM_name || parm == PARM_iname) { | 1068 | else if (parm == PARM_name || parm == PARM_iname) { |
1049 | action_name *ap; | 1069 | action_name *ap; |
1070 | dbg("%d", __LINE__); | ||
1050 | ap = ALLOC_ACTION(name); | 1071 | ap = ALLOC_ACTION(name); |
1051 | ap->pattern = arg1; | 1072 | ap->pattern = arg1; |
1052 | ap->iname = (parm == PARM_iname); | 1073 | ap->iname = (parm == PARM_iname); |
@@ -1054,6 +1075,7 @@ static action*** parse_params(char **argv) | |||
1054 | #if ENABLE_FEATURE_FIND_PATH | 1075 | #if ENABLE_FEATURE_FIND_PATH |
1055 | else if (parm == PARM_path || parm == PARM_ipath) { | 1076 | else if (parm == PARM_path || parm == PARM_ipath) { |
1056 | action_path *ap; | 1077 | action_path *ap; |
1078 | dbg("%d", __LINE__); | ||
1057 | ap = ALLOC_ACTION(path); | 1079 | ap = ALLOC_ACTION(path); |
1058 | ap->pattern = arg1; | 1080 | ap->pattern = arg1; |
1059 | ap->ipath = (parm == PARM_ipath); | 1081 | ap->ipath = (parm == PARM_ipath); |
@@ -1062,6 +1084,7 @@ static action*** parse_params(char **argv) | |||
1062 | #if ENABLE_FEATURE_FIND_REGEX | 1084 | #if ENABLE_FEATURE_FIND_REGEX |
1063 | else if (parm == PARM_regex) { | 1085 | else if (parm == PARM_regex) { |
1064 | action_regex *ap; | 1086 | action_regex *ap; |
1087 | dbg("%d", __LINE__); | ||
1065 | ap = ALLOC_ACTION(regex); | 1088 | ap = ALLOC_ACTION(regex); |
1066 | xregcomp(&ap->compiled_pattern, arg1, 0 /*cflags*/); | 1089 | xregcomp(&ap->compiled_pattern, arg1, 0 /*cflags*/); |
1067 | } | 1090 | } |
@@ -1071,6 +1094,7 @@ static action*** parse_params(char **argv) | |||
1071 | action_type *ap; | 1094 | action_type *ap; |
1072 | ap = ALLOC_ACTION(type); | 1095 | ap = ALLOC_ACTION(type); |
1073 | ap->type_mask = find_type(arg1); | 1096 | ap->type_mask = find_type(arg1); |
1097 | dbg("created:type mask:%x", ap->type_mask); | ||
1074 | } | 1098 | } |
1075 | #endif | 1099 | #endif |
1076 | #if ENABLE_FEATURE_FIND_PERM | 1100 | #if ENABLE_FEATURE_FIND_PERM |
@@ -1081,6 +1105,7 @@ static action*** parse_params(char **argv) | |||
1081 | */ | 1105 | */ |
1082 | else if (parm == PARM_perm) { | 1106 | else if (parm == PARM_perm) { |
1083 | action_perm *ap; | 1107 | action_perm *ap; |
1108 | dbg("%d", __LINE__); | ||
1084 | ap = ALLOC_ACTION(perm); | 1109 | ap = ALLOC_ACTION(perm); |
1085 | ap->perm_char = arg1[0]; | 1110 | ap->perm_char = arg1[0]; |
1086 | arg1 = plus_minus_num(arg1); | 1111 | arg1 = plus_minus_num(arg1); |
@@ -1092,6 +1117,7 @@ static action*** parse_params(char **argv) | |||
1092 | #if ENABLE_FEATURE_FIND_MTIME | 1117 | #if ENABLE_FEATURE_FIND_MTIME |
1093 | else if (parm == PARM_mtime) { | 1118 | else if (parm == PARM_mtime) { |
1094 | action_mtime *ap; | 1119 | action_mtime *ap; |
1120 | dbg("%d", __LINE__); | ||
1095 | ap = ALLOC_ACTION(mtime); | 1121 | ap = ALLOC_ACTION(mtime); |
1096 | ap->mtime_char = arg1[0]; | 1122 | ap->mtime_char = arg1[0]; |
1097 | ap->mtime_days = xatoul(plus_minus_num(arg1)); | 1123 | ap->mtime_days = xatoul(plus_minus_num(arg1)); |
@@ -1100,6 +1126,7 @@ static action*** parse_params(char **argv) | |||
1100 | #if ENABLE_FEATURE_FIND_MMIN | 1126 | #if ENABLE_FEATURE_FIND_MMIN |
1101 | else if (parm == PARM_mmin) { | 1127 | else if (parm == PARM_mmin) { |
1102 | action_mmin *ap; | 1128 | action_mmin *ap; |
1129 | dbg("%d", __LINE__); | ||
1103 | ap = ALLOC_ACTION(mmin); | 1130 | ap = ALLOC_ACTION(mmin); |
1104 | ap->mmin_char = arg1[0]; | 1131 | ap->mmin_char = arg1[0]; |
1105 | ap->mmin_mins = xatoul(plus_minus_num(arg1)); | 1132 | ap->mmin_mins = xatoul(plus_minus_num(arg1)); |
@@ -1109,6 +1136,7 @@ static action*** parse_params(char **argv) | |||
1109 | else if (parm == PARM_newer) { | 1136 | else if (parm == PARM_newer) { |
1110 | struct stat stat_newer; | 1137 | struct stat stat_newer; |
1111 | action_newer *ap; | 1138 | action_newer *ap; |
1139 | dbg("%d", __LINE__); | ||
1112 | ap = ALLOC_ACTION(newer); | 1140 | ap = ALLOC_ACTION(newer); |
1113 | xstat(arg1, &stat_newer); | 1141 | xstat(arg1, &stat_newer); |
1114 | ap->newer_mtime = stat_newer.st_mtime; | 1142 | ap->newer_mtime = stat_newer.st_mtime; |
@@ -1117,6 +1145,7 @@ static action*** parse_params(char **argv) | |||
1117 | #if ENABLE_FEATURE_FIND_INUM | 1145 | #if ENABLE_FEATURE_FIND_INUM |
1118 | else if (parm == PARM_inum) { | 1146 | else if (parm == PARM_inum) { |
1119 | action_inum *ap; | 1147 | action_inum *ap; |
1148 | dbg("%d", __LINE__); | ||
1120 | ap = ALLOC_ACTION(inum); | 1149 | ap = ALLOC_ACTION(inum); |
1121 | ap->inode_num = xatoul(arg1); | 1150 | ap->inode_num = xatoul(arg1); |
1122 | } | 1151 | } |
@@ -1124,6 +1153,7 @@ static action*** parse_params(char **argv) | |||
1124 | #if ENABLE_FEATURE_FIND_USER | 1153 | #if ENABLE_FEATURE_FIND_USER |
1125 | else if (parm == PARM_user) { | 1154 | else if (parm == PARM_user) { |
1126 | action_user *ap; | 1155 | action_user *ap; |
1156 | dbg("%d", __LINE__); | ||
1127 | ap = ALLOC_ACTION(user); | 1157 | ap = ALLOC_ACTION(user); |
1128 | ap->uid = bb_strtou(arg1, NULL, 10); | 1158 | ap->uid = bb_strtou(arg1, NULL, 10); |
1129 | if (errno) | 1159 | if (errno) |
@@ -1133,6 +1163,7 @@ static action*** parse_params(char **argv) | |||
1133 | #if ENABLE_FEATURE_FIND_GROUP | 1163 | #if ENABLE_FEATURE_FIND_GROUP |
1134 | else if (parm == PARM_group) { | 1164 | else if (parm == PARM_group) { |
1135 | action_group *ap; | 1165 | action_group *ap; |
1166 | dbg("%d", __LINE__); | ||
1136 | ap = ALLOC_ACTION(group); | 1167 | ap = ALLOC_ACTION(group); |
1137 | ap->gid = bb_strtou(arg1, NULL, 10); | 1168 | ap->gid = bb_strtou(arg1, NULL, 10); |
1138 | if (errno) | 1169 | if (errno) |
@@ -1161,6 +1192,7 @@ static action*** parse_params(char **argv) | |||
1161 | { "", 0 } | 1192 | { "", 0 } |
1162 | }; | 1193 | }; |
1163 | action_size *ap; | 1194 | action_size *ap; |
1195 | dbg("%d", __LINE__); | ||
1164 | ap = ALLOC_ACTION(size); | 1196 | ap = ALLOC_ACTION(size); |
1165 | ap->size_char = arg1[0]; | 1197 | ap->size_char = arg1[0]; |
1166 | ap->size = XATOU_SFX(plus_minus_num(arg1), find_suffixes); | 1198 | ap->size = XATOU_SFX(plus_minus_num(arg1), find_suffixes); |
@@ -1169,6 +1201,7 @@ static action*** parse_params(char **argv) | |||
1169 | #if ENABLE_FEATURE_FIND_CONTEXT | 1201 | #if ENABLE_FEATURE_FIND_CONTEXT |
1170 | else if (parm == PARM_context) { | 1202 | else if (parm == PARM_context) { |
1171 | action_context *ap; | 1203 | action_context *ap; |
1204 | dbg("%d", __LINE__); | ||
1172 | ap = ALLOC_ACTION(context); | 1205 | ap = ALLOC_ACTION(context); |
1173 | /*ap->context = NULL; - ALLOC_ACTION did it */ | 1206 | /*ap->context = NULL; - ALLOC_ACTION did it */ |
1174 | /* SELinux headers erroneously declare non-const parameter */ | 1207 | /* SELinux headers erroneously declare non-const parameter */ |
@@ -1179,6 +1212,7 @@ static action*** parse_params(char **argv) | |||
1179 | #if ENABLE_FEATURE_FIND_LINKS | 1212 | #if ENABLE_FEATURE_FIND_LINKS |
1180 | else if (parm == PARM_links) { | 1213 | else if (parm == PARM_links) { |
1181 | action_links *ap; | 1214 | action_links *ap; |
1215 | dbg("%d", __LINE__); | ||
1182 | ap = ALLOC_ACTION(links); | 1216 | ap = ALLOC_ACTION(links); |
1183 | ap->links_char = arg1[0]; | 1217 | ap->links_char = arg1[0]; |
1184 | ap->links_count = xatoul(plus_minus_num(arg1)); | 1218 | ap->links_count = xatoul(plus_minus_num(arg1)); |
@@ -1190,6 +1224,7 @@ static action*** parse_params(char **argv) | |||
1190 | } | 1224 | } |
1191 | argv++; | 1225 | argv++; |
1192 | } | 1226 | } |
1227 | dbg("exiting %s", __func__); | ||
1193 | return appp; | 1228 | return appp; |
1194 | #undef ALLOC_ACTION | 1229 | #undef ALLOC_ACTION |
1195 | } | 1230 | } |
diff --git a/include/applets.src.h b/include/applets.src.h index 2d55ffec7..87d9cbb7b 100644 --- a/include/applets.src.h +++ b/include/applets.src.h | |||
@@ -409,7 +409,6 @@ IF_WATCHDOG(APPLET(watchdog, BB_DIR_SBIN, BB_SUID_DROP)) | |||
409 | IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) | 409 | IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) |
410 | IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP)) | 410 | IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP)) |
411 | IF_WHICH(APPLET(which, BB_DIR_USR_BIN, BB_SUID_DROP)) | 411 | IF_WHICH(APPLET(which, BB_DIR_USR_BIN, BB_SUID_DROP)) |
412 | IF_WHO(APPLET(who, BB_DIR_USR_BIN, BB_SUID_DROP)) | ||
413 | IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) | 412 | IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) |
414 | IF_UNXZ(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat)) | 413 | IF_UNXZ(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat)) |
415 | IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz)) | 414 | IF_XZ(APPLET_ODDNAME(xz, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xz)) |
diff --git a/include/libbb.h b/include/libbb.h index 363fe53df..6e63e65f5 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -52,6 +52,12 @@ | |||
52 | #ifdef HAVE_SYS_STATFS_H | 52 | #ifdef HAVE_SYS_STATFS_H |
53 | # include <sys/statfs.h> | 53 | # include <sys/statfs.h> |
54 | #endif | 54 | #endif |
55 | /* Don't do this here: | ||
56 | * #include <sys/sysinfo.h> | ||
57 | * Some linux/ includes pull in conflicting definition | ||
58 | * of struct sysinfo (only in some toolchanins), which breaks build. | ||
59 | * Include sys/sysinfo.h only in those files which need it. | ||
60 | */ | ||
55 | #if ENABLE_SELINUX | 61 | #if ENABLE_SELINUX |
56 | # include <selinux/selinux.h> | 62 | # include <selinux/selinux.h> |
57 | # include <selinux/context.h> | 63 | # include <selinux/context.h> |
@@ -142,25 +148,6 @@ int klogctl(int type, char *b, int len); | |||
142 | #if !defined __FreeBSD__ | 148 | #if !defined __FreeBSD__ |
143 | char *dirname(char *path); | 149 | char *dirname(char *path); |
144 | #endif | 150 | #endif |
145 | /* Include our own copy of struct sysinfo to avoid binary compatibility | ||
146 | * problems with Linux 2.4, which changed things. Grumble, grumble. */ | ||
147 | struct sysinfo { | ||
148 | long uptime; /* Seconds since boot */ | ||
149 | unsigned long loads[3]; /* 1, 5, and 15 minute load averages */ | ||
150 | unsigned long totalram; /* Total usable main memory size */ | ||
151 | unsigned long freeram; /* Available memory size */ | ||
152 | unsigned long sharedram; /* Amount of shared memory */ | ||
153 | unsigned long bufferram; /* Memory used by buffers */ | ||
154 | unsigned long totalswap; /* Total swap space size */ | ||
155 | unsigned long freeswap; /* swap space still available */ | ||
156 | unsigned short procs; /* Number of current processes */ | ||
157 | unsigned short pad; /* Padding needed for m68k */ | ||
158 | unsigned long totalhigh; /* Total high memory size */ | ||
159 | unsigned long freehigh; /* Available high memory size */ | ||
160 | unsigned int mem_unit; /* Memory unit size in bytes */ | ||
161 | char _f[20 - 2 * sizeof(long) - sizeof(int)]; /* Padding: libc5 uses this.. */ | ||
162 | }; | ||
163 | int sysinfo(struct sysinfo* info); | ||
164 | #ifndef PATH_MAX | 151 | #ifndef PATH_MAX |
165 | # define PATH_MAX 256 | 152 | # define PATH_MAX 256 |
166 | #endif | 153 | #endif |
diff --git a/include/platform.h b/include/platform.h index 319ef4a9e..e22c42007 100644 --- a/include/platform.h +++ b/include/platform.h | |||
@@ -125,7 +125,7 @@ | |||
125 | 125 | ||
126 | /* Make all declarations hidden (-fvisibility flag only affects definitions) */ | 126 | /* Make all declarations hidden (-fvisibility flag only affects definitions) */ |
127 | /* (don't include system headers after this until corresponding pop!) */ | 127 | /* (don't include system headers after this until corresponding pop!) */ |
128 | #if __GNUC_PREREQ(4,1) && !ENABLE_PLATFORM_MINGW32 | 128 | #if __GNUC_PREREQ(4,1) && !defined(__CYGWIN__) && !ENABLE_PLATFORM_MINGW32 |
129 | # define PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN _Pragma("GCC visibility push(hidden)") | 129 | # define PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN _Pragma("GCC visibility push(hidden)") |
130 | # define POP_SAVED_FUNCTION_VISIBILITY _Pragma("GCC visibility pop") | 130 | # define POP_SAVED_FUNCTION_VISIBILITY _Pragma("GCC visibility pop") |
131 | #else | 131 | #else |
@@ -283,6 +283,7 @@ typedef unsigned smalluint; | |||
283 | #if defined __GLIBC__ \ | 283 | #if defined __GLIBC__ \ |
284 | || defined __UCLIBC__ \ | 284 | || defined __UCLIBC__ \ |
285 | || defined __dietlibc__ \ | 285 | || defined __dietlibc__ \ |
286 | || defined __BIONIC__ \ | ||
286 | || defined _NEWLIB_VERSION | 287 | || defined _NEWLIB_VERSION |
287 | # include <features.h> | 288 | # include <features.h> |
288 | #endif | 289 | #endif |
@@ -346,6 +347,10 @@ typedef unsigned smalluint; | |||
346 | # endif | 347 | # endif |
347 | #endif | 348 | #endif |
348 | 349 | ||
350 | #if defined(__CYGWIN__) | ||
351 | # define MAXSYMLINKS SYMLOOP_MAX | ||
352 | #endif | ||
353 | |||
349 | 354 | ||
350 | /* ---- Who misses what? ------------------------------------ */ | 355 | /* ---- Who misses what? ------------------------------------ */ |
351 | 356 | ||
@@ -423,6 +428,15 @@ typedef unsigned smalluint; | |||
423 | # undef HAVE_NET_ETHERNET_H | 428 | # undef HAVE_NET_ETHERNET_H |
424 | #endif | 429 | #endif |
425 | 430 | ||
431 | #if defined(__CYGWIN__) | ||
432 | # undef HAVE_CLEARENV | ||
433 | # undef HAVE_FDPRINTF | ||
434 | # undef HAVE_MEMRCHR | ||
435 | # undef HAVE_PTSNAME_R | ||
436 | # undef HAVE_STRVERSCMP | ||
437 | # undef HAVE_UNLOCKED_LINE_OPS | ||
438 | #endif | ||
439 | |||
426 | /* These BSD-derived OSes share many similarities */ | 440 | /* These BSD-derived OSes share many similarities */ |
427 | #if (defined __digital__ && defined __unix__) \ | 441 | #if (defined __digital__ && defined __unix__) \ |
428 | || defined __APPLE__ \ | 442 | || defined __APPLE__ \ |
@@ -515,7 +529,8 @@ extern int vasprintf(char **string_ptr, const char *format, va_list p) FAST_FUNC | |||
515 | #endif | 529 | #endif |
516 | 530 | ||
517 | #ifndef HAVE_GETLINE | 531 | #ifndef HAVE_GETLINE |
518 | #include <stdio.h> /* for FILE */ | 532 | # include <stdio.h> /* for FILE */ |
533 | # include <sys/types.h> /* size_t */ | ||
519 | extern ssize_t getline(char **lineptr, size_t *n, FILE *stream) FAST_FUNC; | 534 | extern ssize_t getline(char **lineptr, size_t *n, FILE *stream) FAST_FUNC; |
520 | #endif | 535 | #endif |
521 | 536 | ||
diff --git a/init/halt.c b/init/halt.c index 1aac0faf9..7974adb17 100644 --- a/init/halt.c +++ b/init/halt.c | |||
@@ -159,7 +159,7 @@ int halt_main(int argc UNUSED_PARAM, char **argv) | |||
159 | which == 2 ? "6" : "0", | 159 | which == 2 ? "6" : "0", |
160 | (char *)NULL | 160 | (char *)NULL |
161 | ); | 161 | ); |
162 | perror_msg_and_die("can't execute '%s'", | 162 | bb_perror_msg_and_die("can't execute '%s'", |
163 | CONFIG_TELINIT_PATH); | 163 | CONFIG_TELINIT_PATH); |
164 | } | 164 | } |
165 | } | 165 | } |
diff --git a/init/init.c b/init/init.c index ff9dc06a4..645f694c0 100644 --- a/init/init.c +++ b/init/init.c | |||
@@ -113,7 +113,8 @@ | |||
113 | #include <paths.h> | 113 | #include <paths.h> |
114 | #include <sys/resource.h> | 114 | #include <sys/resource.h> |
115 | #ifdef __linux__ | 115 | #ifdef __linux__ |
116 | #include <linux/vt.h> | 116 | # include <linux/vt.h> |
117 | # include <sys/sysinfo.h> | ||
117 | #endif | 118 | #endif |
118 | #include "reboot.h" /* reboot() constants */ | 119 | #include "reboot.h" /* reboot() constants */ |
119 | 120 | ||
diff --git a/libbb/Config.src b/libbb/Config.src index 0ea8f43ab..aa442365a 100644 --- a/libbb/Config.src +++ b/libbb/Config.src | |||
@@ -94,6 +94,14 @@ config FEATURE_EDITING_SAVEHISTORY | |||
94 | help | 94 | help |
95 | Enable history saving in shells. | 95 | Enable history saving in shells. |
96 | 96 | ||
97 | config FEATURE_REVERSE_SEARCH | ||
98 | bool "Reverse history search" | ||
99 | default y | ||
100 | depends on FEATURE_EDITING_SAVEHISTORY | ||
101 | help | ||
102 | Enable readline-like Ctrl-R combination for reverse history search. | ||
103 | Increases code by about 0.5k. | ||
104 | |||
97 | config FEATURE_TAB_COMPLETION | 105 | config FEATURE_TAB_COMPLETION |
98 | bool "Tab completion" | 106 | bool "Tab completion" |
99 | default y | 107 | default y |
diff --git a/libbb/Kbuild.src b/libbb/Kbuild.src index fcab184e0..b5e9afc78 100644 --- a/libbb/Kbuild.src +++ b/libbb/Kbuild.src | |||
@@ -128,6 +128,15 @@ lib-$(CONFIG_FEATURE_MTAB_SUPPORT) += mtab.o | |||
128 | lib-$(CONFIG_UNICODE_SUPPORT) += unicode.o | 128 | lib-$(CONFIG_UNICODE_SUPPORT) += unicode.o |
129 | lib-$(CONFIG_FEATURE_CHECK_NAMES) += die_if_bad_username.o | 129 | lib-$(CONFIG_FEATURE_CHECK_NAMES) += die_if_bad_username.o |
130 | 130 | ||
131 | lib-$(CONFIG_NC) += udp_io.o | ||
132 | lib-$(CONFIG_DNSD) += udp_io.o | ||
133 | lib-$(CONFIG_NTPD) += udp_io.o | ||
134 | lib-$(CONFIG_TFTP) += udp_io.o | ||
135 | lib-$(CONFIG_TFTPD) += udp_io.o | ||
136 | lib-$(CONFIG_TCPSVD) += udp_io.o | ||
137 | lib-$(CONFIG_UDPSVD) += udp_io.o | ||
138 | lib-$(CONFIG_TRACEROUTE) += udp_io.o | ||
139 | |||
131 | lib-$(CONFIG_LOSETUP) += loop.o | 140 | lib-$(CONFIG_LOSETUP) += loop.o |
132 | lib-$(CONFIG_FEATURE_MOUNT_LOOP) += loop.o | 141 | lib-$(CONFIG_FEATURE_MOUNT_LOOP) += loop.o |
133 | 142 | ||
diff --git a/libbb/appletlib.c b/libbb/appletlib.c index b824b4775..6d002b0dd 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c | |||
@@ -627,7 +627,7 @@ static int busybox_main(char **argv) | |||
627 | full_write2_str(bb_banner); /* reuse const string */ | 627 | full_write2_str(bb_banner); /* reuse const string */ |
628 | full_write2_str(" multi-call binary.\n"); /* reuse */ | 628 | full_write2_str(" multi-call binary.\n"); /* reuse */ |
629 | full_write2_str( | 629 | full_write2_str( |
630 | "Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko\n" | 630 | "Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko\n" |
631 | "and others. Licensed under GPLv2.\n" | 631 | "and others. Licensed under GPLv2.\n" |
632 | "See source distribution for full notice.\n" | 632 | "See source distribution for full notice.\n" |
633 | "\n" | 633 | "\n" |
diff --git a/libbb/die_if_bad_username.c b/libbb/die_if_bad_username.c index 9946e3a1d..cf1297bd6 100644 --- a/libbb/die_if_bad_username.c +++ b/libbb/die_if_bad_username.c | |||
@@ -18,23 +18,45 @@ | |||
18 | 18 | ||
19 | void FAST_FUNC die_if_bad_username(const char *name) | 19 | void FAST_FUNC die_if_bad_username(const char *name) |
20 | { | 20 | { |
21 | /* 1st char being dash or dot isn't valid: */ | 21 | const char *start = name; |
22 | goto skip; | 22 | |
23 | /* For example, name like ".." can make adduser | 23 | /* 1st char being dash or dot isn't valid: |
24 | * chown "/home/.." recursively - NOT GOOD | 24 | * for example, name like ".." can make adduser |
25 | * chown "/home/.." recursively - NOT GOOD. | ||
26 | * Name of just a single "$" is also rejected. | ||
25 | */ | 27 | */ |
28 | goto skip; | ||
26 | 29 | ||
27 | do { | 30 | do { |
28 | if (*name == '-' || *name == '.') | 31 | unsigned char ch; |
32 | |||
33 | /* These chars are valid unless they are at the 1st pos: */ | ||
34 | if (*name == '-' | ||
35 | || *name == '.' | ||
36 | /* $ is allowed if it's the last char: */ | ||
37 | || (*name == '$' && !name[1]) | ||
38 | ) { | ||
29 | continue; | 39 | continue; |
40 | } | ||
30 | skip: | 41 | skip: |
31 | if (isalnum(*name) | 42 | ch = *name; |
32 | || *name == '_' | 43 | if (ch == '_' |
33 | || *name == '@' | 44 | /* || ch == '@' -- we disallow this too. Think about "user@host" */ |
34 | || (*name == '$' && !name[1]) | 45 | /* open-coded isalnum: */ |
46 | || (ch >= '0' && ch <= '9') | ||
47 | || ((ch|0x20) >= 'a' && (ch|0x20) <= 'z') | ||
35 | ) { | 48 | ) { |
36 | continue; | 49 | continue; |
37 | } | 50 | } |
38 | bb_error_msg_and_die("illegal character '%c'", *name); | 51 | bb_error_msg_and_die("illegal character with code %u at position %u", |
52 | (unsigned)ch, (unsigned)(name - start)); | ||
39 | } while (*++name); | 53 | } while (*++name); |
54 | |||
55 | /* The minimum size of the login name is one char or two if | ||
56 | * last char is the '$'. Violations of this are caught above. | ||
57 | * The maximum size of the login name is LOGIN_NAME_MAX | ||
58 | * including the terminating null byte. | ||
59 | */ | ||
60 | if (name - start >= LOGIN_NAME_MAX) | ||
61 | bb_error_msg_and_die("name is too long"); | ||
40 | } | 62 | } |
diff --git a/libbb/getopt32.c b/libbb/getopt32.c index 02cbefec9..ae019b26b 100644 --- a/libbb/getopt32.c +++ b/libbb/getopt32.c | |||
@@ -467,13 +467,17 @@ getopt32(char **argv, const char *applet_opts, ...) | |||
467 | } | 467 | } |
468 | for (on_off = complementary; on_off->opt_char; on_off++) | 468 | for (on_off = complementary; on_off->opt_char; on_off++) |
469 | if (on_off->opt_char == *s) | 469 | if (on_off->opt_char == *s) |
470 | break; | 470 | goto found_opt; |
471 | /* Without this, diagnostic of such bugs is not easy */ | ||
472 | bb_error_msg_and_die("NO OPT %c!", *s); | ||
473 | found_opt: | ||
471 | if (c == ':' && s[2] == ':') { | 474 | if (c == ':' && s[2] == ':') { |
472 | on_off->param_type = PARAM_LIST; | 475 | on_off->param_type = PARAM_LIST; |
473 | continue; | 476 | continue; |
474 | } | 477 | } |
475 | if (c == '+' && (s[2] == ':' || s[2] == '\0')) { | 478 | if (c == '+' && (s[2] == ':' || s[2] == '\0')) { |
476 | on_off->param_type = PARAM_INT; | 479 | on_off->param_type = PARAM_INT; |
480 | s++; | ||
477 | continue; | 481 | continue; |
478 | } | 482 | } |
479 | if (c == ':' || c == '\0') { | 483 | if (c == ':' || c == '\0') { |
diff --git a/libbb/inet_common.c b/libbb/inet_common.c index 207720e96..7208db9ea 100644 --- a/libbb/inet_common.c +++ b/libbb/inet_common.c | |||
@@ -175,7 +175,8 @@ int FAST_FUNC INET6_resolve(const char *name, struct sockaddr_in6 *sin6) | |||
175 | return -1; | 175 | return -1; |
176 | } | 176 | } |
177 | memcpy(sin6, ai->ai_addr, sizeof(*sin6)); | 177 | memcpy(sin6, ai->ai_addr, sizeof(*sin6)); |
178 | freeaddrinfo(ai); | 178 | if (ai) |
179 | freeaddrinfo(ai); | ||
179 | return 0; | 180 | return 0; |
180 | } | 181 | } |
181 | 182 | ||
diff --git a/libbb/lineedit.c b/libbb/lineedit.c index e443c7a3e..1b97e8609 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c | |||
@@ -207,18 +207,21 @@ static void deinit_S(void) | |||
207 | 207 | ||
208 | 208 | ||
209 | #if ENABLE_UNICODE_SUPPORT | 209 | #if ENABLE_UNICODE_SUPPORT |
210 | static size_t load_string(const char *src, int maxsize) | 210 | static size_t load_string(const char *src) |
211 | { | 211 | { |
212 | if (unicode_status == UNICODE_ON) { | 212 | if (unicode_status == UNICODE_ON) { |
213 | ssize_t len = mbstowcs(command_ps, src, maxsize - 1); | 213 | ssize_t len = mbstowcs(command_ps, src, S.maxsize - 1); |
214 | if (len < 0) | 214 | if (len < 0) |
215 | len = 0; | 215 | len = 0; |
216 | command_ps[len] = BB_NUL; | 216 | command_ps[len] = BB_NUL; |
217 | return len; | 217 | return len; |
218 | } else { | 218 | } else { |
219 | unsigned i = 0; | 219 | unsigned i = 0; |
220 | while ((command_ps[i] = src[i]) != 0) | 220 | while (src[i] && i < S.maxsize - 1) { |
221 | command_ps[i] = src[i]; | ||
221 | i++; | 222 | i++; |
223 | } | ||
224 | command_ps[i] = BB_NUL; | ||
222 | return i; | 225 | return i; |
223 | } | 226 | } |
224 | } | 227 | } |
@@ -319,9 +322,9 @@ static wchar_t adjust_width_and_validate_wc(wchar_t wc) | |||
319 | return wc; | 322 | return wc; |
320 | } | 323 | } |
321 | #else /* !UNICODE */ | 324 | #else /* !UNICODE */ |
322 | static size_t load_string(const char *src, int maxsize) | 325 | static size_t load_string(const char *src) |
323 | { | 326 | { |
324 | safe_strncpy(command_ps, src, maxsize); | 327 | safe_strncpy(command_ps, src, S.maxsize); |
325 | return strlen(command_ps); | 328 | return strlen(command_ps); |
326 | } | 329 | } |
327 | # if ENABLE_FEATURE_TAB_COMPLETION | 330 | # if ENABLE_FEATURE_TAB_COMPLETION |
@@ -1232,10 +1235,10 @@ static NOINLINE void input_tab(smallint *lastWasTab) | |||
1232 | strcpy(match_buf, &command[cursor_mb]); | 1235 | strcpy(match_buf, &command[cursor_mb]); |
1233 | /* where do we want to have cursor after all? */ | 1236 | /* where do we want to have cursor after all? */ |
1234 | strcpy(&command[cursor_mb], chosen_match + match_pfx_len); | 1237 | strcpy(&command[cursor_mb], chosen_match + match_pfx_len); |
1235 | len = load_string(command, S.maxsize); | 1238 | len = load_string(command); |
1236 | /* add match and tail */ | 1239 | /* add match and tail */ |
1237 | sprintf(&command[cursor_mb], "%s%s", chosen_match + match_pfx_len, match_buf); | 1240 | sprintf(&command[cursor_mb], "%s%s", chosen_match + match_pfx_len, match_buf); |
1238 | command_len = load_string(command, S.maxsize); | 1241 | command_len = load_string(command); |
1239 | /* write out the matched command */ | 1242 | /* write out the matched command */ |
1240 | /* paranoia: load_string can return 0 on conv error, | 1243 | /* paranoia: load_string can return 0 on conv error, |
1241 | * prevent passing pos = (0 - 12) to redraw */ | 1244 | * prevent passing pos = (0 - 12) to redraw */ |
@@ -1956,6 +1959,140 @@ static int isrtl_str(void) | |||
1956 | #undef CTRL | 1959 | #undef CTRL |
1957 | #define CTRL(a) ((a) & ~0x40) | 1960 | #define CTRL(a) ((a) & ~0x40) |
1958 | 1961 | ||
1962 | enum { | ||
1963 | VI_CMDMODE_BIT = 0x40000000, | ||
1964 | /* 0x80000000 bit flags KEYCODE_xxx */ | ||
1965 | }; | ||
1966 | |||
1967 | #if ENABLE_FEATURE_REVERSE_SEARCH | ||
1968 | /* Mimic readline Ctrl-R reverse history search. | ||
1969 | * When invoked, it shows the following prompt: | ||
1970 | * (reverse-i-search)'': user_input [cursor pos unchanged by Ctrl-R] | ||
1971 | * and typing results in search being performed: | ||
1972 | * (reverse-i-search)'tmp': cd /tmp [cursor under t in /tmp] | ||
1973 | * Search is performed by looking at progressively older lines in history. | ||
1974 | * Ctrl-R again searches for the next match in history. | ||
1975 | * Backspace deletes last matched char. | ||
1976 | * Control keys exit search and return to normal editing (at current history line). | ||
1977 | */ | ||
1978 | static int32_t reverse_i_search(void) | ||
1979 | { | ||
1980 | char match_buf[128]; /* for user input */ | ||
1981 | char read_key_buffer[KEYCODE_BUFFER_SIZE]; | ||
1982 | const char *matched_history_line; | ||
1983 | const char *saved_prompt; | ||
1984 | int32_t ic; | ||
1985 | |||
1986 | matched_history_line = NULL; | ||
1987 | read_key_buffer[0] = 0; | ||
1988 | match_buf[0] = '\0'; | ||
1989 | |||
1990 | /* Save and replace the prompt */ | ||
1991 | saved_prompt = cmdedit_prompt; | ||
1992 | goto set_prompt; | ||
1993 | |||
1994 | while (1) { | ||
1995 | int h; | ||
1996 | unsigned match_buf_len = strlen(match_buf); | ||
1997 | |||
1998 | fflush_all(); | ||
1999 | //FIXME: correct timeout? | ||
2000 | ic = lineedit_read_key(read_key_buffer, -1); | ||
2001 | |||
2002 | switch (ic) { | ||
2003 | case CTRL('R'): /* searching for the next match */ | ||
2004 | break; | ||
2005 | |||
2006 | case '\b': | ||
2007 | case '\x7f': | ||
2008 | /* Backspace */ | ||
2009 | if (unicode_status == UNICODE_ON) { | ||
2010 | while (match_buf_len != 0) { | ||
2011 | uint8_t c = match_buf[--match_buf_len]; | ||
2012 | if ((c & 0xc0) != 0x80) /* start of UTF-8 char? */ | ||
2013 | break; /* yes */ | ||
2014 | } | ||
2015 | } else { | ||
2016 | if (match_buf_len != 0) | ||
2017 | match_buf_len--; | ||
2018 | } | ||
2019 | match_buf[match_buf_len] = '\0'; | ||
2020 | break; | ||
2021 | |||
2022 | default: | ||
2023 | if (ic < ' ' | ||
2024 | || (!ENABLE_UNICODE_SUPPORT && ic >= 256) | ||
2025 | || (ENABLE_UNICODE_SUPPORT && ic >= VI_CMDMODE_BIT) | ||
2026 | ) { | ||
2027 | goto ret; | ||
2028 | } | ||
2029 | |||
2030 | /* Append this char */ | ||
2031 | #if ENABLE_UNICODE_SUPPORT | ||
2032 | if (unicode_status == UNICODE_ON) { | ||
2033 | mbstate_t mbstate = { 0 }; | ||
2034 | char buf[MB_CUR_MAX + 1]; | ||
2035 | int len = wcrtomb(buf, ic, &mbstate); | ||
2036 | if (len > 0) { | ||
2037 | buf[len] = '\0'; | ||
2038 | if (match_buf_len + len < sizeof(match_buf)) | ||
2039 | strcpy(match_buf + match_buf_len, buf); | ||
2040 | } | ||
2041 | } else | ||
2042 | #endif | ||
2043 | if (match_buf_len < sizeof(match_buf) - 1) { | ||
2044 | match_buf[match_buf_len] = ic; | ||
2045 | match_buf[match_buf_len + 1] = '\0'; | ||
2046 | } | ||
2047 | break; | ||
2048 | } /* switch (ic) */ | ||
2049 | |||
2050 | /* Search in history for match_buf */ | ||
2051 | h = state->cur_history; | ||
2052 | if (ic == CTRL('R')) | ||
2053 | h--; | ||
2054 | while (h >= 0) { | ||
2055 | if (state->history[h]) { | ||
2056 | char *match = strstr(state->history[h], match_buf); | ||
2057 | if (match) { | ||
2058 | state->cur_history = h; | ||
2059 | matched_history_line = state->history[h]; | ||
2060 | command_len = load_string(matched_history_line); | ||
2061 | cursor = match - matched_history_line; | ||
2062 | //FIXME: cursor position for Unicode case | ||
2063 | |||
2064 | free((char*)cmdedit_prompt); | ||
2065 | set_prompt: | ||
2066 | cmdedit_prompt = xasprintf("(reverse-i-search)'%s': ", match_buf); | ||
2067 | cmdedit_prmt_len = strlen(cmdedit_prompt); | ||
2068 | goto do_redraw; | ||
2069 | } | ||
2070 | } | ||
2071 | h--; | ||
2072 | } | ||
2073 | |||
2074 | /* Not found */ | ||
2075 | match_buf[match_buf_len] = '\0'; | ||
2076 | beep(); | ||
2077 | continue; | ||
2078 | |||
2079 | do_redraw: | ||
2080 | redraw(cmdedit_y, command_len - cursor); | ||
2081 | } /* while (1) */ | ||
2082 | |||
2083 | ret: | ||
2084 | if (matched_history_line) | ||
2085 | command_len = load_string(matched_history_line); | ||
2086 | |||
2087 | free((char*)cmdedit_prompt); | ||
2088 | cmdedit_prompt = saved_prompt; | ||
2089 | cmdedit_prmt_len = strlen(cmdedit_prompt); | ||
2090 | redraw(cmdedit_y, command_len - cursor); | ||
2091 | |||
2092 | return ic; | ||
2093 | } | ||
2094 | #endif | ||
2095 | |||
1959 | /* maxsize must be >= 2. | 2096 | /* maxsize must be >= 2. |
1960 | * Returns: | 2097 | * Returns: |
1961 | * -1 on read errors or EOF, or on bare Ctrl-D, | 2098 | * -1 on read errors or EOF, or on bare Ctrl-D, |
@@ -2077,15 +2214,14 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman | |||
2077 | * clutters the big switch a bit, but keeps all the code | 2214 | * clutters the big switch a bit, but keeps all the code |
2078 | * in one place. | 2215 | * in one place. |
2079 | */ | 2216 | */ |
2080 | enum { | ||
2081 | VI_CMDMODE_BIT = 0x40000000, | ||
2082 | /* 0x80000000 bit flags KEYCODE_xxx */ | ||
2083 | }; | ||
2084 | int32_t ic, ic_raw; | 2217 | int32_t ic, ic_raw; |
2085 | 2218 | ||
2086 | fflush_all(); | 2219 | fflush_all(); |
2087 | ic = ic_raw = lineedit_read_key(read_key_buffer, timeout); | 2220 | ic = ic_raw = lineedit_read_key(read_key_buffer, timeout); |
2088 | 2221 | ||
2222 | #if ENABLE_FEATURE_REVERSE_SEARCH | ||
2223 | again: | ||
2224 | #endif | ||
2089 | #if ENABLE_FEATURE_EDITING_VI | 2225 | #if ENABLE_FEATURE_EDITING_VI |
2090 | newdelflag = 1; | 2226 | newdelflag = 1; |
2091 | if (vi_cmdmode) { | 2227 | if (vi_cmdmode) { |
@@ -2189,6 +2325,11 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman | |||
2189 | while (cursor > 0 && !BB_isspace(command_ps[cursor-1])) | 2325 | while (cursor > 0 && !BB_isspace(command_ps[cursor-1])) |
2190 | input_backspace(); | 2326 | input_backspace(); |
2191 | break; | 2327 | break; |
2328 | #if ENABLE_FEATURE_REVERSE_SEARCH | ||
2329 | case CTRL('R'): | ||
2330 | ic = ic_raw = reverse_i_search(); | ||
2331 | goto again; | ||
2332 | #endif | ||
2192 | 2333 | ||
2193 | #if ENABLE_FEATURE_EDITING_VI | 2334 | #if ENABLE_FEATURE_EDITING_VI |
2194 | case 'i'|VI_CMDMODE_BIT: | 2335 | case 'i'|VI_CMDMODE_BIT: |
@@ -2342,7 +2483,7 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman | |||
2342 | /* Rewrite the line with the selected history item */ | 2483 | /* Rewrite the line with the selected history item */ |
2343 | /* change command */ | 2484 | /* change command */ |
2344 | command_len = load_string(state->history[state->cur_history] ? | 2485 | command_len = load_string(state->history[state->cur_history] ? |
2345 | state->history[state->cur_history] : "", maxsize); | 2486 | state->history[state->cur_history] : ""); |
2346 | /* redraw and go to eol (bol, in vi) */ | 2487 | /* redraw and go to eol (bol, in vi) */ |
2347 | redraw(cmdedit_y, (state->flags & VI_MODE) ? 9999 : 0); | 2488 | redraw(cmdedit_y, (state->flags & VI_MODE) ? 9999 : 0); |
2348 | break; | 2489 | break; |
diff --git a/libbb/obscure.c b/libbb/obscure.c index dd8cd319a..9ecc1f672 100644 --- a/libbb/obscure.c +++ b/libbb/obscure.c | |||
@@ -109,10 +109,12 @@ static const char *obscure_msg(const char *old_p, const char *new_p, const struc | |||
109 | if (string_checker(new_p, pw->pw_name)) { | 109 | if (string_checker(new_p, pw->pw_name)) { |
110 | return "similar to username"; | 110 | return "similar to username"; |
111 | } | 111 | } |
112 | #ifndef __BIONIC__ | ||
112 | /* no gecos as-is, as sub-string, reversed, capitalized, doubled */ | 113 | /* no gecos as-is, as sub-string, reversed, capitalized, doubled */ |
113 | if (pw->pw_gecos[0] && string_checker(new_p, pw->pw_gecos)) { | 114 | if (pw->pw_gecos[0] && string_checker(new_p, pw->pw_gecos)) { |
114 | return "similar to gecos"; | 115 | return "similar to gecos"; |
115 | } | 116 | } |
117 | #endif | ||
116 | /* hostname as-is, as sub-string, reversed, capitalized, doubled */ | 118 | /* hostname as-is, as sub-string, reversed, capitalized, doubled */ |
117 | hostname = safe_gethostname(); | 119 | hostname = safe_gethostname(); |
118 | i = string_checker(new_p, hostname); | 120 | i = string_checker(new_p, hostname); |
diff --git a/libbb/read_key.c b/libbb/read_key.c index 840325c99..5dcd19c3f 100644 --- a/libbb/read_key.c +++ b/libbb/read_key.c | |||
@@ -214,7 +214,10 @@ int64_t FAST_FUNC read_key(int fd, char *buffer, int timeout) | |||
214 | } | 214 | } |
215 | n++; | 215 | n++; |
216 | /* Try to decipher "ESC [ NNN ; NNN R" sequence */ | 216 | /* Try to decipher "ESC [ NNN ; NNN R" sequence */ |
217 | if ((ENABLE_FEATURE_EDITING_ASK_TERMINAL || ENABLE_FEATURE_VI_ASK_TERMINAL) | 217 | if ((ENABLE_FEATURE_EDITING_ASK_TERMINAL |
218 | || ENABLE_FEATURE_VI_ASK_TERMINAL | ||
219 | || ENABLE_FEATURE_LESS_ASK_TERMINAL | ||
220 | ) | ||
218 | && n >= 5 | 221 | && n >= 5 |
219 | && buffer[0] == '[' | 222 | && buffer[0] == '[' |
220 | && buffer[n-1] == 'R' | 223 | && buffer[n-1] == 'R' |
diff --git a/miscutils/Config.src b/miscutils/Config.src index 61529141d..b9fc196d8 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src | |||
@@ -360,72 +360,6 @@ config FEATURE_LAST_FANCY | |||
360 | logged into the system (mimics sysvinit last). +900 bytes. | 360 | logged into the system (mimics sysvinit last). +900 bytes. |
361 | endchoice | 361 | endchoice |
362 | 362 | ||
363 | config LESS | ||
364 | bool "less" | ||
365 | default y | ||
366 | help | ||
367 | 'less' is a pager, meaning that it displays text files. It possesses | ||
368 | a wide array of features, and is an improvement over 'more'. | ||
369 | |||
370 | config FEATURE_LESS_MAXLINES | ||
371 | int "Max number of input lines less will try to eat" | ||
372 | default 9999999 | ||
373 | depends on LESS | ||
374 | |||
375 | config FEATURE_LESS_BRACKETS | ||
376 | bool "Enable bracket searching" | ||
377 | default y | ||
378 | depends on LESS | ||
379 | help | ||
380 | This option adds the capability to search for matching left and right | ||
381 | brackets, facilitating programming. | ||
382 | |||
383 | config FEATURE_LESS_FLAGS | ||
384 | bool "Enable extra flags" | ||
385 | default y | ||
386 | depends on LESS | ||
387 | help | ||
388 | The extra flags provided do the following: | ||
389 | |||
390 | The -M flag enables a more sophisticated status line. | ||
391 | The -m flag enables a simpler status line with a percentage. | ||
392 | |||
393 | config FEATURE_LESS_MARKS | ||
394 | bool "Enable marks" | ||
395 | default y | ||
396 | depends on LESS | ||
397 | help | ||
398 | Marks enable positions in a file to be stored for easy reference. | ||
399 | |||
400 | config FEATURE_LESS_REGEXP | ||
401 | bool "Enable regular expressions" | ||
402 | default y | ||
403 | depends on LESS | ||
404 | help | ||
405 | Enable regular expressions, allowing complex file searches. | ||
406 | |||
407 | config FEATURE_LESS_WINCH | ||
408 | bool "Enable automatic resizing on window size changes" | ||
409 | default y | ||
410 | depends on LESS | ||
411 | help | ||
412 | Makes less track window size changes. | ||
413 | |||
414 | config FEATURE_LESS_DASHCMD | ||
415 | bool "Enable flag changes ('-' command)" | ||
416 | default y | ||
417 | depends on LESS | ||
418 | help | ||
419 | This enables the ability to change command-line flags within | ||
420 | less itself ('-' keyboard command). | ||
421 | |||
422 | config FEATURE_LESS_LINENUMS | ||
423 | bool "Enable dynamic switching of line numbers" | ||
424 | default y | ||
425 | depends on FEATURE_LESS_DASHCMD | ||
426 | help | ||
427 | Enables "-N" command. | ||
428 | |||
429 | config HDPARM | 363 | config HDPARM |
430 | bool "hdparm" | 364 | bool "hdparm" |
431 | default y | 365 | default y |
diff --git a/miscutils/adjtimex.c b/miscutils/adjtimex.c index 98b6ccfbf..c8816e9e7 100644 --- a/miscutils/adjtimex.c +++ b/miscutils/adjtimex.c | |||
@@ -23,7 +23,11 @@ | |||
23 | //usage: "\n -p TCONST" | 23 | //usage: "\n -p TCONST" |
24 | 24 | ||
25 | #include "libbb.h" | 25 | #include "libbb.h" |
26 | #include <sys/timex.h> | 26 | #ifdef __BIONIC__ |
27 | # include <linux/timex.h> | ||
28 | #else | ||
29 | # include <sys/timex.h> | ||
30 | #endif | ||
27 | 31 | ||
28 | static const uint16_t statlist_bit[] = { | 32 | static const uint16_t statlist_bit[] = { |
29 | STA_PLL, | 33 | STA_PLL, |
diff --git a/miscutils/dc.c b/miscutils/dc.c index b080ba133..6903761e4 100644 --- a/miscutils/dc.c +++ b/miscutils/dc.c | |||
@@ -15,7 +15,7 @@ | |||
15 | //usage: "p - print top of the stack (without popping),\n" | 15 | //usage: "p - print top of the stack (without popping),\n" |
16 | //usage: "f - print entire stack,\n" | 16 | //usage: "f - print entire stack,\n" |
17 | //usage: "o - pop the value and set output radix (must be 10, 16, 8 or 2).\n" | 17 | //usage: "o - pop the value and set output radix (must be 10, 16, 8 or 2).\n" |
18 | //usage: "Examples: 'dc 2 2 add' -> 4, 'dc 8 8 * 2 2 + /' -> 16" | 18 | //usage: "Examples: 'dc 2 2 add p' -> 4, 'dc 8 8 * 2 2 + / p' -> 16" |
19 | //usage: | 19 | //usage: |
20 | //usage:#define dc_example_usage | 20 | //usage:#define dc_example_usage |
21 | //usage: "$ dc 2 2 + p\n" | 21 | //usage: "$ dc 2 2 + p\n" |
@@ -245,19 +245,6 @@ static void stack_machine(const char *argument) | |||
245 | bb_error_msg_and_die("syntax error at '%s'", argument); | 245 | bb_error_msg_and_die("syntax error at '%s'", argument); |
246 | } | 246 | } |
247 | 247 | ||
248 | /* return pointer to next token in buffer and set *buffer to one char | ||
249 | * past the end of the above mentioned token | ||
250 | */ | ||
251 | static char *get_token(char **buffer) | ||
252 | { | ||
253 | char *current = skip_whitespace(*buffer); | ||
254 | if (*current != '\0') { | ||
255 | *buffer = skip_non_whitespace(current); | ||
256 | return current; | ||
257 | } | ||
258 | return NULL; | ||
259 | } | ||
260 | |||
261 | int dc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 248 | int dc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
262 | int dc_main(int argc UNUSED_PARAM, char **argv) | 249 | int dc_main(int argc UNUSED_PARAM, char **argv) |
263 | { | 250 | { |
@@ -272,16 +259,18 @@ int dc_main(int argc UNUSED_PARAM, char **argv) | |||
272 | while ((line = xmalloc_fgetline(stdin)) != NULL) { | 259 | while ((line = xmalloc_fgetline(stdin)) != NULL) { |
273 | cursor = line; | 260 | cursor = line; |
274 | while (1) { | 261 | while (1) { |
275 | token = get_token(&cursor); | 262 | token = skip_whitespace(cursor); |
276 | if (!token) | 263 | if (*token == '\0') |
277 | break; | 264 | break; |
278 | *cursor++ = '\0'; | 265 | cursor = skip_non_whitespace(token); |
266 | if (*cursor != '\0') | ||
267 | *cursor++ = '\0'; | ||
279 | stack_machine(token); | 268 | stack_machine(token); |
280 | } | 269 | } |
281 | free(line); | 270 | free(line); |
282 | } | 271 | } |
283 | } else { | 272 | } else { |
284 | // why? it breaks "dc -2 2 * p" | 273 | // why? it breaks "dc -2 2 + p" |
285 | //if (argv[0][0] == '-') | 274 | //if (argv[0][0] == '-') |
286 | // bb_show_usage(); | 275 | // bb_show_usage(); |
287 | do { | 276 | do { |
diff --git a/miscutils/less.c b/miscutils/less.c index 46024f9f7..9543fb9f9 100644 --- a/miscutils/less.c +++ b/miscutils/less.c | |||
@@ -21,6 +21,85 @@ | |||
21 | * redirected input has been read from stdin | 21 | * redirected input has been read from stdin |
22 | */ | 22 | */ |
23 | 23 | ||
24 | //config:config LESS | ||
25 | //config: bool "less" | ||
26 | //config: default y | ||
27 | //config: help | ||
28 | //config: 'less' is a pager, meaning that it displays text files. It possesses | ||
29 | //config: a wide array of features, and is an improvement over 'more'. | ||
30 | //config: | ||
31 | //config:config FEATURE_LESS_MAXLINES | ||
32 | //config: int "Max number of input lines less will try to eat" | ||
33 | //config: default 9999999 | ||
34 | //config: depends on LESS | ||
35 | //config: | ||
36 | //config:config FEATURE_LESS_BRACKETS | ||
37 | //config: bool "Enable bracket searching" | ||
38 | //config: default y | ||
39 | //config: depends on LESS | ||
40 | //config: help | ||
41 | //config: This option adds the capability to search for matching left and right | ||
42 | //config: brackets, facilitating programming. | ||
43 | //config: | ||
44 | //config:config FEATURE_LESS_FLAGS | ||
45 | //config: bool "Enable extra flags" | ||
46 | //config: default y | ||
47 | //config: depends on LESS | ||
48 | //config: help | ||
49 | //config: The extra flags provided do the following: | ||
50 | //config: | ||
51 | //config: The -M flag enables a more sophisticated status line. | ||
52 | //config: The -m flag enables a simpler status line with a percentage. | ||
53 | //config: | ||
54 | //config:config FEATURE_LESS_MARKS | ||
55 | //config: bool "Enable marks" | ||
56 | //config: default y | ||
57 | //config: depends on LESS | ||
58 | //config: help | ||
59 | //config: Marks enable positions in a file to be stored for easy reference. | ||
60 | //config: | ||
61 | //config:config FEATURE_LESS_REGEXP | ||
62 | //config: bool "Enable regular expressions" | ||
63 | //config: default y | ||
64 | //config: depends on LESS | ||
65 | //config: help | ||
66 | //config: Enable regular expressions, allowing complex file searches. | ||
67 | //config: | ||
68 | //config:config FEATURE_LESS_WINCH | ||
69 | //config: bool "Enable automatic resizing on window size changes" | ||
70 | //config: default y | ||
71 | //config: depends on LESS | ||
72 | //config: help | ||
73 | //config: Makes less track window size changes. | ||
74 | //config: | ||
75 | //config:config FEATURE_LESS_ASK_TERMINAL | ||
76 | //config: bool "Use 'tell me cursor position' ESC sequence to measure window" | ||
77 | //config: default y | ||
78 | //config: depends on FEATURE_LESS_WINCH | ||
79 | //config: help | ||
80 | //config: Makes less track window size changes. | ||
81 | //config: If terminal size can't be retrieved and $LINES/$COLUMNS are not set, | ||
82 | //config: this option makes less perform a last-ditch effort to find it: | ||
83 | //config: position cursor to 999,999 and ask terminal to report real | ||
84 | //config: cursor position using "ESC [ 6 n" escape sequence, then read stdin. | ||
85 | //config: | ||
86 | //config: This is not clean but helps a lot on serial lines and such. | ||
87 | //config: | ||
88 | //config:config FEATURE_LESS_DASHCMD | ||
89 | //config: bool "Enable flag changes ('-' command)" | ||
90 | //config: default y | ||
91 | //config: depends on LESS | ||
92 | //config: help | ||
93 | //config: This enables the ability to change command-line flags within | ||
94 | //config: less itself ('-' keyboard command). | ||
95 | //config: | ||
96 | //config:config FEATURE_LESS_LINENUMS | ||
97 | //config: bool "Enable dynamic switching of line numbers" | ||
98 | //config: default y | ||
99 | //config: depends on FEATURE_LESS_DASHCMD | ||
100 | //config: help | ||
101 | //config: Enables "-N" command. | ||
102 | |||
24 | //usage:#define less_trivial_usage | 103 | //usage:#define less_trivial_usage |
25 | //usage: "[-EMNmh~I?] [FILE]..." | 104 | //usage: "[-EMNmh~I?] [FILE]..." |
26 | //usage:#define less_full_usage "\n\n" | 105 | //usage:#define less_full_usage "\n\n" |
@@ -108,6 +187,9 @@ struct globals { | |||
108 | regex_t pattern; | 187 | regex_t pattern; |
109 | smallint pattern_valid; | 188 | smallint pattern_valid; |
110 | #endif | 189 | #endif |
190 | #if ENABLE_FEATURE_LESS_ASK_TERMINAL | ||
191 | smallint winsize_err; | ||
192 | #endif | ||
111 | smallint terminated; | 193 | smallint terminated; |
112 | struct termios term_orig, term_less; | 194 | struct termios term_orig, term_less; |
113 | char kbd_input[KEYCODE_BUFFER_SIZE]; | 195 | char kbd_input[KEYCODE_BUFFER_SIZE]; |
@@ -815,12 +897,17 @@ static void reinitialize(void) | |||
815 | cur_fline = 0; | 897 | cur_fline = 0; |
816 | max_lineno = 0; | 898 | max_lineno = 0; |
817 | open_file_and_read_lines(); | 899 | open_file_and_read_lines(); |
900 | #if ENABLE_FEATURE_LESS_ASK_TERMINAL | ||
901 | if (G.winsize_err) | ||
902 | printf("\033[999;999H" "\033[6n"); | ||
903 | #endif | ||
818 | buffer_fill_and_print(); | 904 | buffer_fill_and_print(); |
819 | } | 905 | } |
820 | 906 | ||
821 | static int getch_nowait(void) | 907 | static int64_t getch_nowait(void) |
822 | { | 908 | { |
823 | int rd; | 909 | int rd; |
910 | int64_t key64; | ||
824 | struct pollfd pfd[2]; | 911 | struct pollfd pfd[2]; |
825 | 912 | ||
826 | pfd[0].fd = STDIN_FILENO; | 913 | pfd[0].fd = STDIN_FILENO; |
@@ -868,8 +955,8 @@ static int getch_nowait(void) | |||
868 | 955 | ||
869 | /* We have kbd_fd in O_NONBLOCK mode, read inside read_key() | 956 | /* We have kbd_fd in O_NONBLOCK mode, read inside read_key() |
870 | * would not block even if there is no input available */ | 957 | * would not block even if there is no input available */ |
871 | rd = read_key(kbd_fd, kbd_input, /*timeout off:*/ -2); | 958 | key64 = read_key(kbd_fd, kbd_input, /*timeout off:*/ -2); |
872 | if (rd == -1) { | 959 | if ((int)key64 == -1) { |
873 | if (errno == EAGAIN) { | 960 | if (errno == EAGAIN) { |
874 | /* No keyboard input available. Since poll() did return, | 961 | /* No keyboard input available. Since poll() did return, |
875 | * we should have input on stdin */ | 962 | * we should have input on stdin */ |
@@ -881,25 +968,29 @@ static int getch_nowait(void) | |||
881 | less_exit(0); | 968 | less_exit(0); |
882 | } | 969 | } |
883 | set_tty_cooked(); | 970 | set_tty_cooked(); |
884 | return rd; | 971 | return key64; |
885 | } | 972 | } |
886 | 973 | ||
887 | /* Grab a character from input without requiring the return key. | 974 | /* Grab a character from input without requiring the return key. |
888 | * May return KEYCODE_xxx values. | 975 | * May return KEYCODE_xxx values. |
889 | * Note that this function works best with raw input. */ | 976 | * Note that this function works best with raw input. */ |
890 | static int less_getch(int pos) | 977 | static int64_t less_getch(int pos) |
891 | { | 978 | { |
892 | int i; | 979 | int64_t key64; |
980 | int key; | ||
893 | 981 | ||
894 | again: | 982 | again: |
895 | less_gets_pos = pos; | 983 | less_gets_pos = pos; |
896 | i = getch_nowait(); | 984 | key = key64 = getch_nowait(); |
897 | less_gets_pos = -1; | 985 | less_gets_pos = -1; |
898 | 986 | ||
899 | /* Discard Ctrl-something chars */ | 987 | /* Discard Ctrl-something chars. |
900 | if (i >= 0 && i < ' ' && i != 0x0d && i != 8) | 988 | * (checking only lower 32 bits is a size optimization: |
989 | * upper 32 bits are used only by KEYCODE_CURSOR_POS) | ||
990 | */ | ||
991 | if (key >= 0 && key < ' ' && key != 0x0d && key != 8) | ||
901 | goto again; | 992 | goto again; |
902 | return i; | 993 | return key; |
903 | } | 994 | } |
904 | 995 | ||
905 | static char* less_gets(int sz) | 996 | static char* less_gets(int sz) |
@@ -1439,6 +1530,9 @@ static void keypress_process(int keypress) | |||
1439 | break; | 1530 | break; |
1440 | #endif | 1531 | #endif |
1441 | case 'r': case 'R': | 1532 | case 'r': case 'R': |
1533 | /* TODO: (1) also bind ^R, ^L to this? | ||
1534 | * (2) re-measure window size? | ||
1535 | */ | ||
1442 | buffer_print(); | 1536 | buffer_print(); |
1443 | break; | 1537 | break; |
1444 | /*case 'R': | 1538 | /*case 'R': |
@@ -1514,8 +1608,6 @@ static void sigwinch_handler(int sig UNUSED_PARAM) | |||
1514 | int less_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 1608 | int less_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
1515 | int less_main(int argc, char **argv) | 1609 | int less_main(int argc, char **argv) |
1516 | { | 1610 | { |
1517 | int keypress; | ||
1518 | |||
1519 | INIT_G(); | 1611 | INIT_G(); |
1520 | 1612 | ||
1521 | /* TODO: -x: do not interpret backspace, -xx: tab also */ | 1613 | /* TODO: -x: do not interpret backspace, -xx: tab also */ |
@@ -1558,7 +1650,7 @@ int less_main(int argc, char **argv) | |||
1558 | term_less.c_cc[VMIN] = 1; | 1650 | term_less.c_cc[VMIN] = 1; |
1559 | term_less.c_cc[VTIME] = 0; | 1651 | term_less.c_cc[VTIME] = 0; |
1560 | 1652 | ||
1561 | get_terminal_width_height(kbd_fd, &width, &max_displayed_line); | 1653 | IF_FEATURE_LESS_ASK_TERMINAL(G.winsize_err =) get_terminal_width_height(kbd_fd, &width, &max_displayed_line); |
1562 | /* 20: two tabstops + 4 */ | 1654 | /* 20: two tabstops + 4 */ |
1563 | if (width < 20 || max_displayed_line < 3) | 1655 | if (width < 20 || max_displayed_line < 3) |
1564 | return bb_cat(argv); | 1656 | return bb_cat(argv); |
@@ -1573,11 +1665,14 @@ int less_main(int argc, char **argv) | |||
1573 | buffer = xmalloc((max_displayed_line+1) * sizeof(char *)); | 1665 | buffer = xmalloc((max_displayed_line+1) * sizeof(char *)); |
1574 | reinitialize(); | 1666 | reinitialize(); |
1575 | while (1) { | 1667 | while (1) { |
1668 | int64_t keypress; | ||
1669 | |||
1576 | #if ENABLE_FEATURE_LESS_WINCH | 1670 | #if ENABLE_FEATURE_LESS_WINCH |
1577 | while (WINCH_COUNTER) { | 1671 | while (WINCH_COUNTER) { |
1578 | again: | 1672 | again: |
1579 | winch_counter--; | 1673 | winch_counter--; |
1580 | get_terminal_width_height(kbd_fd, &width, &max_displayed_line); | 1674 | IF_FEATURE_LESS_ASK_TERMINAL(G.winsize_err =) get_terminal_width_height(kbd_fd, &width, &max_displayed_line); |
1675 | IF_FEATURE_LESS_ASK_TERMINAL(got_size:) | ||
1581 | /* 20: two tabstops + 4 */ | 1676 | /* 20: two tabstops + 4 */ |
1582 | if (width < 20) | 1677 | if (width < 20) |
1583 | width = 20; | 1678 | width = 20; |
@@ -1597,8 +1692,18 @@ int less_main(int argc, char **argv) | |||
1597 | /* This took some time. Loop back and check, | 1692 | /* This took some time. Loop back and check, |
1598 | * were there another SIGWINCH? */ | 1693 | * were there another SIGWINCH? */ |
1599 | } | 1694 | } |
1600 | #endif | ||
1601 | keypress = less_getch(-1); /* -1: do not position cursor */ | 1695 | keypress = less_getch(-1); /* -1: do not position cursor */ |
1696 | # if ENABLE_FEATURE_LESS_ASK_TERMINAL | ||
1697 | if ((int32_t)keypress == KEYCODE_CURSOR_POS) { | ||
1698 | uint32_t rc = (keypress >> 32); | ||
1699 | width = (rc & 0x7fff); | ||
1700 | max_displayed_line = ((rc >> 16) & 0x7fff); | ||
1701 | goto got_size; | ||
1702 | } | ||
1703 | # endif | ||
1704 | #else | ||
1705 | keypress = less_getch(-1); /* -1: do not position cursor */ | ||
1706 | #endif | ||
1602 | keypress_process(keypress); | 1707 | keypress_process(keypress); |
1603 | } | 1708 | } |
1604 | } | 1709 | } |
diff --git a/miscutils/nandwrite.c b/miscutils/nandwrite.c index 768aed116..562a34278 100644 --- a/miscutils/nandwrite.c +++ b/miscutils/nandwrite.c | |||
@@ -38,7 +38,7 @@ | |||
38 | //usage:#define nanddump_trivial_usage | 38 | //usage:#define nanddump_trivial_usage |
39 | //usage: "[-o] [-b] [-s ADDR] [-f FILE] MTD_DEVICE" | 39 | //usage: "[-o] [-b] [-s ADDR] [-f FILE] MTD_DEVICE" |
40 | //usage:#define nanddump_full_usage "\n\n" | 40 | //usage:#define nanddump_full_usage "\n\n" |
41 | //usage: "Dump the sepcified MTD device\n" | 41 | //usage: "Dump the specified MTD device\n" |
42 | //usage: "\n -o Omit oob data" | 42 | //usage: "\n -o Omit oob data" |
43 | //usage: "\n -b Omit bad block from the dump" | 43 | //usage: "\n -b Omit bad block from the dump" |
44 | //usage: "\n -s ADDR Start address" | 44 | //usage: "\n -s ADDR Start address" |
diff --git a/miscutils/setserial.c b/miscutils/setserial.c index 26902a273..2a034e32c 100644 --- a/miscutils/setserial.c +++ b/miscutils/setserial.c | |||
@@ -11,7 +11,7 @@ | |||
11 | //config:config SETSERIAL | 11 | //config:config SETSERIAL |
12 | //config: bool "setserial" | 12 | //config: bool "setserial" |
13 | //config: default y | 13 | //config: default y |
14 | //config: depends on PLATFORM_LINUX | 14 | //config: select PLATFORM_LINUX |
15 | //config: help | 15 | //config: help |
16 | //config: Retrieve or set Linux serial port. | 16 | //config: Retrieve or set Linux serial port. |
17 | 17 | ||
diff --git a/networking/dnsd.c b/networking/dnsd.c index d80306d3d..fe98400f7 100644 --- a/networking/dnsd.c +++ b/networking/dnsd.c | |||
@@ -30,7 +30,7 @@ | |||
30 | //usage: "\n -s Send successful replies only. Use this if you want" | 30 | //usage: "\n -s Send successful replies only. Use this if you want" |
31 | //usage: "\n to use /etc/resolv.conf with two nameserver lines:" | 31 | //usage: "\n to use /etc/resolv.conf with two nameserver lines:" |
32 | //usage: "\n nameserver DNSD_SERVER" | 32 | //usage: "\n nameserver DNSD_SERVER" |
33 | //usage: "\n nameserver NORNAL_DNS_SERVER" | 33 | //usage: "\n nameserver NORMAL_DNS_SERVER" |
34 | 34 | ||
35 | #include "libbb.h" | 35 | #include "libbb.h" |
36 | #include <syslog.h> | 36 | #include <syslog.h> |
diff --git a/networking/ping.c b/networking/ping.c index d75747984..efd4f210b 100644 --- a/networking/ping.c +++ b/networking/ping.c | |||
@@ -29,6 +29,22 @@ | |||
29 | #include <netinet/ip_icmp.h> | 29 | #include <netinet/ip_icmp.h> |
30 | #include "libbb.h" | 30 | #include "libbb.h" |
31 | 31 | ||
32 | #ifdef __BIONIC__ | ||
33 | /* should be in netinet/ip_icmp.h */ | ||
34 | # define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ | ||
35 | # define ICMP_SOURCE_QUENCH 4 /* Source Quench */ | ||
36 | # define ICMP_REDIRECT 5 /* Redirect (change route) */ | ||
37 | # define ICMP_ECHO 8 /* Echo Request */ | ||
38 | # define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */ | ||
39 | # define ICMP_PARAMETERPROB 12 /* Parameter Problem */ | ||
40 | # define ICMP_TIMESTAMP 13 /* Timestamp Request */ | ||
41 | # define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */ | ||
42 | # define ICMP_INFO_REQUEST 15 /* Information Request */ | ||
43 | # define ICMP_INFO_REPLY 16 /* Information Reply */ | ||
44 | # define ICMP_ADDRESS 17 /* Address Mask Request */ | ||
45 | # define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */ | ||
46 | #endif | ||
47 | |||
32 | //config:config PING | 48 | //config:config PING |
33 | //config: bool "ping" | 49 | //config: bool "ping" |
34 | //config: default y | 50 | //config: default y |
diff --git a/networking/tcpudp.c b/networking/tcpudp.c index a2b8c958c..3df6a98d8 100644 --- a/networking/tcpudp.c +++ b/networking/tcpudp.c | |||
@@ -36,14 +36,14 @@ | |||
36 | //usage:#define tcpsvd_full_usage "\n\n" | 36 | //usage:#define tcpsvd_full_usage "\n\n" |
37 | //usage: "Create TCP socket, bind to IP:PORT and listen\n" | 37 | //usage: "Create TCP socket, bind to IP:PORT and listen\n" |
38 | //usage: "for incoming connection. Run PROG for each connection.\n" | 38 | //usage: "for incoming connection. Run PROG for each connection.\n" |
39 | //usage: "\n IP IP to listen on. '0' = all" | 39 | //usage: "\n IP IP to listen on, 0 = all" |
40 | //usage: "\n PORT Port to listen on" | 40 | //usage: "\n PORT Port to listen on" |
41 | //usage: "\n PROG ARGS Program to run" | 41 | //usage: "\n PROG ARGS Program to run" |
42 | //usage: "\n -l NAME Local hostname (else looks up local hostname in DNS)" | 42 | //usage: "\n -l NAME Local hostname (else looks up local hostname in DNS)" |
43 | //usage: "\n -u USER[:GRP] Change to user/group after bind" | 43 | //usage: "\n -u USER[:GRP] Change to user/group after bind" |
44 | //usage: "\n -c N Handle up to N connections simultaneously" | 44 | //usage: "\n -c N Handle up to N connections simultaneously" |
45 | //usage: "\n -b N Allow a backlog of approximately N TCP SYNs" | 45 | //usage: "\n -b N Allow a backlog of approximately N TCP SYNs" |
46 | //usage: "\n -C N[:MSG] Allow only up to N connections from the same IP." | 46 | //usage: "\n -C N[:MSG] Allow only up to N connections from the same IP" |
47 | //usage: "\n New connections from this IP address are closed" | 47 | //usage: "\n New connections from this IP address are closed" |
48 | //usage: "\n immediately. MSG is written to the peer before close" | 48 | //usage: "\n immediately. MSG is written to the peer before close" |
49 | //usage: "\n -h Look up peer's hostname" | 49 | //usage: "\n -h Look up peer's hostname" |
@@ -56,7 +56,7 @@ | |||
56 | //usage: "Create UDP socket, bind to IP:PORT and wait\n" | 56 | //usage: "Create UDP socket, bind to IP:PORT and wait\n" |
57 | //usage: "for incoming packets. Run PROG for each packet,\n" | 57 | //usage: "for incoming packets. Run PROG for each packet,\n" |
58 | //usage: "redirecting all further packets with same peer ip:port to it.\n" | 58 | //usage: "redirecting all further packets with same peer ip:port to it.\n" |
59 | //usage: "\n IP IP to listen on. '0' = all" | 59 | //usage: "\n IP IP to listen on, 0 = all" |
60 | //usage: "\n PORT Port to listen on" | 60 | //usage: "\n PORT Port to listen on" |
61 | //usage: "\n PROG ARGS Program to run" | 61 | //usage: "\n PROG ARGS Program to run" |
62 | //usage: "\n -l NAME Local hostname (else looks up local hostname in DNS)" | 62 | //usage: "\n -l NAME Local hostname (else looks up local hostname in DNS)" |
diff --git a/networking/telnet.c b/networking/telnet.c index 6dd0de53a..e8e51dce4 100644 --- a/networking/telnet.c +++ b/networking/telnet.c | |||
@@ -40,10 +40,25 @@ | |||
40 | #include <netinet/in.h> | 40 | #include <netinet/in.h> |
41 | #include "libbb.h" | 41 | #include "libbb.h" |
42 | 42 | ||
43 | #ifdef __BIONIC__ | ||
44 | /* should be in arpa/telnet.h */ | ||
45 | # define IAC 255 /* interpret as command: */ | ||
46 | # define DONT 254 /* you are not to use option */ | ||
47 | # define DO 253 /* please, you use option */ | ||
48 | # define WONT 252 /* I won't use option */ | ||
49 | # define WILL 251 /* I will use option */ | ||
50 | # define SB 250 /* interpret as subnegotiation */ | ||
51 | # define SE 240 /* end sub negotiation */ | ||
52 | # define TELOPT_ECHO 1 /* echo */ | ||
53 | # define TELOPT_SGA 3 /* suppress go ahead */ | ||
54 | # define TELOPT_TTYPE 24 /* terminal type */ | ||
55 | # define TELOPT_NAWS 31 /* window size */ | ||
56 | #endif | ||
57 | |||
43 | #ifdef DOTRACE | 58 | #ifdef DOTRACE |
44 | #define TRACE(x, y) do { if (x) printf y; } while (0) | 59 | # define TRACE(x, y) do { if (x) printf y; } while (0) |
45 | #else | 60 | #else |
46 | #define TRACE(x, y) | 61 | # define TRACE(x, y) |
47 | #endif | 62 | #endif |
48 | 63 | ||
49 | enum { | 64 | enum { |
diff --git a/procps/Config.src b/procps/Config.src index 3e7df0b81..570b026da 100644 --- a/procps/Config.src +++ b/procps/Config.src | |||
@@ -194,15 +194,6 @@ config FEATURE_SHOW_THREADS | |||
194 | Enables the ps -T option, showing of threads in pstree, | 194 | Enables the ps -T option, showing of threads in pstree, |
195 | and 'h' command in top. | 195 | and 'h' command in top. |
196 | 196 | ||
197 | config UPTIME | ||
198 | bool "uptime" | ||
199 | default y | ||
200 | select PLATFORM_LINUX #sysinfo() | ||
201 | help | ||
202 | uptime gives a one line display of the current time, how long | ||
203 | the system has been running, how many users are currently logged | ||
204 | on, and the system load averages for the past 1, 5, and 15 minutes. | ||
205 | |||
206 | config WATCH | 197 | config WATCH |
207 | bool "watch" | 198 | bool "watch" |
208 | default y | 199 | default y |
diff --git a/procps/free.c b/procps/free.c index ca753134c..47f2fc3b2 100644 --- a/procps/free.c +++ b/procps/free.c | |||
@@ -22,6 +22,9 @@ | |||
22 | //usage: "Total: 386144 257128 129016\n" | 22 | //usage: "Total: 386144 257128 129016\n" |
23 | 23 | ||
24 | #include "libbb.h" | 24 | #include "libbb.h" |
25 | #ifdef __linux__ | ||
26 | # include <sys/sysinfo.h> | ||
27 | #endif | ||
25 | 28 | ||
26 | struct globals { | 29 | struct globals { |
27 | unsigned mem_unit; | 30 | unsigned mem_unit; |
diff --git a/procps/ps.c b/procps/ps.c index 41124279d..af57f7aee 100644 --- a/procps/ps.c +++ b/procps/ps.c | |||
@@ -62,6 +62,9 @@ enum { MAX_WIDTH = 2*1024 }; | |||
62 | 62 | ||
63 | #if ENABLE_DESKTOP | 63 | #if ENABLE_DESKTOP |
64 | 64 | ||
65 | #ifdef __linux__ | ||
66 | # include <sys/sysinfo.h> | ||
67 | #endif | ||
65 | #include <sys/times.h> /* for times() */ | 68 | #include <sys/times.h> /* for times() */ |
66 | #ifndef AT_CLKTCK | 69 | #ifndef AT_CLKTCK |
67 | # define AT_CLKTCK 17 | 70 | # define AT_CLKTCK 17 |
diff --git a/procps/uptime.c b/procps/uptime.c index 1a7da46a3..778812a6f 100644 --- a/procps/uptime.c +++ b/procps/uptime.c | |||
@@ -7,14 +7,29 @@ | |||
7 | * Licensed under GPLv2, see file LICENSE in this source tree. | 7 | * Licensed under GPLv2, see file LICENSE in this source tree. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | /* This version of uptime doesn't display the number of users on the system, | 10 | /* 2011 Pere Orga <gotrunks@gmail.com> |
11 | * since busybox init doesn't mess with utmp. For folks using utmp that are | 11 | * |
12 | * just dying to have # of users reported, feel free to write it as some type | 12 | * Added FEATURE_UPTIME_UTMP_SUPPORT flag. |
13 | * of CONFIG_FEATURE_UTMP_SUPPORT #define | ||
14 | */ | 13 | */ |
15 | 14 | ||
16 | /* getopt not needed */ | 15 | /* getopt not needed */ |
17 | 16 | ||
17 | //config:config UPTIME | ||
18 | //config: bool "uptime" | ||
19 | //config: default y | ||
20 | //config: select PLATFORM_LINUX #sysinfo() | ||
21 | //config: help | ||
22 | //config: uptime gives a one line display of the current time, how long | ||
23 | //config: the system has been running, how many users are currently logged | ||
24 | //config: on, and the system load averages for the past 1, 5, and 15 minutes. | ||
25 | //config: | ||
26 | //config:config FEATURE_UPTIME_UTMP_SUPPORT | ||
27 | //config: bool "Support for showing the number of users" | ||
28 | //config: default y | ||
29 | //config: depends on UPTIME && FEATURE_UTMP | ||
30 | //config: help | ||
31 | //config: Makes uptime display the number of users currently logged on. | ||
32 | |||
18 | //usage:#define uptime_trivial_usage | 33 | //usage:#define uptime_trivial_usage |
19 | //usage: "" | 34 | //usage: "" |
20 | //usage:#define uptime_full_usage "\n\n" | 35 | //usage:#define uptime_full_usage "\n\n" |
@@ -25,19 +40,23 @@ | |||
25 | //usage: " 1:55pm up 2:30, load average: 0.09, 0.04, 0.00\n" | 40 | //usage: " 1:55pm up 2:30, load average: 0.09, 0.04, 0.00\n" |
26 | 41 | ||
27 | #include "libbb.h" | 42 | #include "libbb.h" |
43 | #ifdef __linux__ | ||
44 | # include <sys/sysinfo.h> | ||
45 | #endif | ||
46 | |||
28 | 47 | ||
29 | #ifndef FSHIFT | 48 | #ifndef FSHIFT |
30 | # define FSHIFT 16 /* nr of bits of precision */ | 49 | # define FSHIFT 16 /* nr of bits of precision */ |
31 | #endif | 50 | #endif |
32 | #define FIXED_1 (1<<FSHIFT) /* 1.0 as fixed-point */ | 51 | #define FIXED_1 (1 << FSHIFT) /* 1.0 as fixed-point */ |
33 | #define LOAD_INT(x) ((x) >> FSHIFT) | 52 | #define LOAD_INT(x) (unsigned)((x) >> FSHIFT) |
34 | #define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100) | 53 | #define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1 - 1)) * 100) |
35 | 54 | ||
36 | 55 | ||
37 | int uptime_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 56 | int uptime_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
38 | int uptime_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 57 | int uptime_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
39 | { | 58 | { |
40 | int updays, uphours, upminutes; | 59 | unsigned updays, uphours, upminutes; |
41 | struct sysinfo info; | 60 | struct sysinfo info; |
42 | struct tm *current_time; | 61 | struct tm *current_time; |
43 | time_t current_secs; | 62 | time_t current_secs; |
@@ -47,20 +66,32 @@ int uptime_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
47 | 66 | ||
48 | sysinfo(&info); | 67 | sysinfo(&info); |
49 | 68 | ||
50 | printf(" %02d:%02d:%02d up ", | 69 | printf(" %02u:%02u:%02u up ", |
51 | current_time->tm_hour, current_time->tm_min, current_time->tm_sec); | 70 | current_time->tm_hour, current_time->tm_min, current_time->tm_sec); |
52 | updays = (int) info.uptime / (60*60*24); | 71 | updays = (unsigned) info.uptime / (unsigned)(60*60*24); |
53 | if (updays) | 72 | if (updays) |
54 | printf("%d day%s, ", updays, (updays != 1) ? "s" : ""); | 73 | printf("%u day%s, ", updays, (updays != 1) ? "s" : ""); |
55 | upminutes = (int) info.uptime / 60; | 74 | upminutes = (unsigned) info.uptime / (unsigned)60; |
56 | uphours = (upminutes / 60) % 24; | 75 | uphours = (upminutes / (unsigned)60) % (unsigned)24; |
57 | upminutes %= 60; | 76 | upminutes %= 60; |
58 | if (uphours) | 77 | if (uphours) |
59 | printf("%2d:%02d, ", uphours, upminutes); | 78 | printf("%2u:%02u", uphours, upminutes); |
60 | else | 79 | else |
61 | printf("%d min, ", upminutes); | 80 | printf("%u min", upminutes); |
81 | |||
82 | #if ENABLE_FEATURE_UPTIME_UTMP_SUPPORT | ||
83 | { | ||
84 | struct utmp *ut; | ||
85 | unsigned users = 0; | ||
86 | while ((ut = getutent()) != NULL) { | ||
87 | if ((ut->ut_type == USER_PROCESS) && (ut->ut_name[0] != '\0')) | ||
88 | users++; | ||
89 | } | ||
90 | printf(", %u users", users); | ||
91 | } | ||
92 | #endif | ||
62 | 93 | ||
63 | printf("load average: %ld.%02ld, %ld.%02ld, %ld.%02ld\n", | 94 | printf(", load average: %u.%02u, %u.%02u, %u.%02u\n", |
64 | LOAD_INT(info.loads[0]), LOAD_FRAC(info.loads[0]), | 95 | LOAD_INT(info.loads[0]), LOAD_FRAC(info.loads[0]), |
65 | LOAD_INT(info.loads[1]), LOAD_FRAC(info.loads[1]), | 96 | LOAD_INT(info.loads[1]), LOAD_FRAC(info.loads[1]), |
66 | LOAD_INT(info.loads[2]), LOAD_FRAC(info.loads[2])); | 97 | LOAD_INT(info.loads[2]), LOAD_FRAC(info.loads[2])); |
diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter index 91374c1ca..0d3ff7f5e 100755 --- a/scripts/bloat-o-meter +++ b/scripts/bloat-o-meter | |||
@@ -1,8 +1,8 @@ | |||
1 | #!/usr/bin/python | 1 | #!/usr/bin/env python |
2 | # | 2 | # |
3 | # Copyright 2004 Matt Mackall <mpm@selenic.com> | 3 | # Copyright 2004 Matt Mackall <mpm@selenic.com> |
4 | # | 4 | # |
5 | # inspired by perl Bloat-O-Meter (c) 1997 by Andi Kleen | 5 | # Inspired by perl Bloat-O-Meter (c) 1997 by Andi Kleen |
6 | # | 6 | # |
7 | # This software may be used and distributed according to the terms | 7 | # This software may be used and distributed according to the terms |
8 | # of the GNU General Public License, incorporated herein by reference. | 8 | # of the GNU General Public License, incorporated herein by reference. |
diff --git a/scripts/defconfig.tig b/scripts/defconfig.tig index 430587d27..5da784617 100644 --- a/scripts/defconfig.tig +++ b/scripts/defconfig.tig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.19.0.git | 3 | # Busybox version: 1.19.0 |
4 | # Thu Mar 22 15:35:30 2012 | 4 | # Thu Mar 22 15:45:17 2012 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -104,6 +104,7 @@ CONFIG_FEATURE_EDITING_MAX_LEN=1024 | |||
104 | # CONFIG_FEATURE_EDITING_VI is not set | 104 | # CONFIG_FEATURE_EDITING_VI is not set |
105 | CONFIG_FEATURE_EDITING_HISTORY=255 | 105 | CONFIG_FEATURE_EDITING_HISTORY=255 |
106 | # CONFIG_FEATURE_EDITING_SAVEHISTORY is not set | 106 | # CONFIG_FEATURE_EDITING_SAVEHISTORY is not set |
107 | # CONFIG_FEATURE_REVERSE_SEARCH is not set | ||
107 | CONFIG_FEATURE_TAB_COMPLETION=y | 108 | CONFIG_FEATURE_TAB_COMPLETION=y |
108 | # CONFIG_FEATURE_USERNAME_COMPLETION is not set | 109 | # CONFIG_FEATURE_USERNAME_COMPLETION is not set |
109 | # CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set | 110 | # CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set |
@@ -184,6 +185,8 @@ CONFIG_TR=y | |||
184 | CONFIG_FEATURE_TR_CLASSES=y | 185 | CONFIG_FEATURE_TR_CLASSES=y |
185 | CONFIG_FEATURE_TR_EQUIV=y | 186 | CONFIG_FEATURE_TR_EQUIV=y |
186 | CONFIG_BASE64=y | 187 | CONFIG_BASE64=y |
188 | # CONFIG_WHO is not set | ||
189 | # CONFIG_USERS is not set | ||
187 | CONFIG_CAL=y | 190 | CONFIG_CAL=y |
188 | CONFIG_CATV=y | 191 | CONFIG_CATV=y |
189 | # CONFIG_CHGRP is not set | 192 | # CONFIG_CHGRP is not set |
@@ -285,7 +288,6 @@ CONFIG_UUDECODE=y | |||
285 | CONFIG_UUENCODE=y | 288 | CONFIG_UUENCODE=y |
286 | CONFIG_WC=y | 289 | CONFIG_WC=y |
287 | CONFIG_FEATURE_WC_LARGE=y | 290 | CONFIG_FEATURE_WC_LARGE=y |
288 | # CONFIG_WHO is not set | ||
289 | CONFIG_WHOAMI=y | 291 | CONFIG_WHOAMI=y |
290 | CONFIG_YES=y | 292 | CONFIG_YES=y |
291 | 293 | ||
@@ -615,6 +617,16 @@ CONFIG_HD=y | |||
615 | # Miscellaneous Utilities | 617 | # Miscellaneous Utilities |
616 | # | 618 | # |
617 | # CONFIG_CONSPY is not set | 619 | # CONFIG_CONSPY is not set |
620 | # CONFIG_LESS is not set | ||
621 | CONFIG_FEATURE_LESS_MAXLINES=0 | ||
622 | # CONFIG_FEATURE_LESS_BRACKETS is not set | ||
623 | # CONFIG_FEATURE_LESS_FLAGS is not set | ||
624 | # CONFIG_FEATURE_LESS_MARKS is not set | ||
625 | # CONFIG_FEATURE_LESS_REGEXP is not set | ||
626 | # CONFIG_FEATURE_LESS_WINCH is not set | ||
627 | # CONFIG_FEATURE_LESS_ASK_TERMINAL is not set | ||
628 | # CONFIG_FEATURE_LESS_DASHCMD is not set | ||
629 | # CONFIG_FEATURE_LESS_LINENUMS is not set | ||
618 | # CONFIG_NANDWRITE is not set | 630 | # CONFIG_NANDWRITE is not set |
619 | # CONFIG_NANDDUMP is not set | 631 | # CONFIG_NANDDUMP is not set |
620 | # CONFIG_SETSERIAL is not set | 632 | # CONFIG_SETSERIAL is not set |
@@ -664,15 +676,6 @@ CONFIG_DC=y | |||
664 | # CONFIG_LAST is not set | 676 | # CONFIG_LAST is not set |
665 | # CONFIG_FEATURE_LAST_SMALL is not set | 677 | # CONFIG_FEATURE_LAST_SMALL is not set |
666 | # CONFIG_FEATURE_LAST_FANCY is not set | 678 | # CONFIG_FEATURE_LAST_FANCY is not set |
667 | # CONFIG_LESS is not set | ||
668 | CONFIG_FEATURE_LESS_MAXLINES=0 | ||
669 | # CONFIG_FEATURE_LESS_BRACKETS is not set | ||
670 | # CONFIG_FEATURE_LESS_FLAGS is not set | ||
671 | # CONFIG_FEATURE_LESS_MARKS is not set | ||
672 | # CONFIG_FEATURE_LESS_REGEXP is not set | ||
673 | # CONFIG_FEATURE_LESS_WINCH is not set | ||
674 | # CONFIG_FEATURE_LESS_DASHCMD is not set | ||
675 | # CONFIG_FEATURE_LESS_LINENUMS is not set | ||
676 | # CONFIG_HDPARM is not set | 679 | # CONFIG_HDPARM is not set |
677 | # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set | 680 | # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set |
678 | # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set | 681 | # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set |
@@ -872,6 +875,8 @@ CONFIG_FEATURE_MIME_CHARSET="" | |||
872 | # CONFIG_PSTREE is not set | 875 | # CONFIG_PSTREE is not set |
873 | # CONFIG_PWDX is not set | 876 | # CONFIG_PWDX is not set |
874 | # CONFIG_SMEMCAP is not set | 877 | # CONFIG_SMEMCAP is not set |
878 | # CONFIG_UPTIME is not set | ||
879 | # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set | ||
875 | # CONFIG_FREE is not set | 880 | # CONFIG_FREE is not set |
876 | # CONFIG_FUSER is not set | 881 | # CONFIG_FUSER is not set |
877 | CONFIG_KILL=y | 882 | CONFIG_KILL=y |
@@ -897,7 +902,6 @@ CONFIG_PS=y | |||
897 | # CONFIG_FEATURE_TOP_SMP_PROCESS is not set | 902 | # CONFIG_FEATURE_TOP_SMP_PROCESS is not set |
898 | # CONFIG_FEATURE_TOPMEM is not set | 903 | # CONFIG_FEATURE_TOPMEM is not set |
899 | # CONFIG_FEATURE_SHOW_THREADS is not set | 904 | # CONFIG_FEATURE_SHOW_THREADS is not set |
900 | # CONFIG_UPTIME is not set | ||
901 | # CONFIG_WATCH is not set | 905 | # CONFIG_WATCH is not set |
902 | 906 | ||
903 | # | 907 | # |
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index b5708e2e4..1651390a6 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile | |||
@@ -87,7 +87,7 @@ endif | |||
87 | $(MTIME_IS_COARSE) && sleep 1 | 87 | $(MTIME_IS_COARSE) && sleep 1 |
88 | 88 | ||
89 | %_defconfig: $(obj)/conf | 89 | %_defconfig: $(obj)/conf |
90 | $(Q)$< -D $@ Config.in | 90 | $(Q)$< -D configs/$@ Config.in |
91 | $(MTIME_IS_COARSE) && sleep 1 | 91 | $(MTIME_IS_COARSE) && sleep 1 |
92 | 92 | ||
93 | # Help text used by make help | 93 | # Help text used by make help |
diff --git a/shell/cttyhack.c b/shell/cttyhack.c index d1ac2cd23..4261289b4 100644 --- a/shell/cttyhack.c +++ b/shell/cttyhack.c | |||
@@ -14,18 +14,22 @@ | |||
14 | //config: bool "cttyhack" | 14 | //config: bool "cttyhack" |
15 | //config: default y | 15 | //config: default y |
16 | //config: help | 16 | //config: help |
17 | //config: One common problem reported on the mailing list is "can't access tty; | 17 | //config: One common problem reported on the mailing list is the "can't |
18 | //config: job control turned off" error message which typically appears when | 18 | //config: access tty; job control turned off" error message, which typically |
19 | //config: one tries to use shell with stdin/stdout opened to /dev/console. | 19 | //config: appears when one tries to use a shell with stdin/stdout on |
20 | //config: /dev/console. | ||
20 | //config: This device is special - it cannot be a controlling tty. | 21 | //config: This device is special - it cannot be a controlling tty. |
21 | //config: | 22 | //config: |
22 | //config: Proper solution is to use correct device instead of /dev/console. | 23 | //config: The proper solution is to use the correct device instead of |
24 | //config: /dev/console. | ||
23 | //config: | 25 | //config: |
24 | //config: cttyhack provides "quick and dirty" solution to this problem. | 26 | //config: cttyhack provides a "quick and dirty" solution to this problem. |
25 | //config: It analyzes stdin with various ioctls, trying to determine whether | 27 | //config: It analyzes stdin with various ioctls, trying to determine whether |
26 | //config: it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). | 28 | //config: it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). |
27 | //config: If it detects one, it closes stdin/out/err and reopens that device. | 29 | //config: On Linux it also checks sysfs for a pointer to the active console. |
28 | //config: Then it executes given program. Opening the device will make | 30 | //config: If cttyhack is able to find the real console device, it closes |
31 | //config: stdin/out/err and reopens that device. | ||
32 | //config: Then it executes the given program. Opening the device will make | ||
29 | //config: that device a controlling tty. This may require cttyhack | 33 | //config: that device a controlling tty. This may require cttyhack |
30 | //config: to be a session leader. | 34 | //config: to be a session leader. |
31 | //config: | 35 | //config: |
@@ -115,33 +119,48 @@ int cttyhack_main(int argc UNUSED_PARAM, char **argv) | |||
115 | close(fd); | 119 | close(fd); |
116 | } else { | 120 | } else { |
117 | /* We don't have ctty (or don't have "/dev/tty" node...) */ | 121 | /* We don't have ctty (or don't have "/dev/tty" node...) */ |
118 | if (0) {} | 122 | do { |
119 | #ifdef TIOCGSERIAL | ||
120 | else if (ioctl(0, TIOCGSERIAL, &u.sr) == 0) { | ||
121 | /* this is a serial console */ | ||
122 | sprintf(console + 8, "S%d", u.sr.line); | ||
123 | } | ||
124 | #endif | ||
125 | #ifdef __linux__ | 123 | #ifdef __linux__ |
126 | else if (ioctl(0, VT_GETSTATE, &u.vt) == 0) { | 124 | int s = open_read_close("/sys/class/tty/console/active", |
127 | /* this is linux virtual tty */ | 125 | console + 5, sizeof(console) - 5 - 1); |
128 | sprintf(console + 8, "S%d" + 1, u.vt.v_active); | 126 | if (s > 0) { |
129 | } | 127 | /* found active console via sysfs (Linux 2.6.38+) */ |
128 | console[5 + s] = '\0'; | ||
129 | break; | ||
130 | } | ||
131 | |||
132 | if (ioctl(0, VT_GETSTATE, &u.vt) == 0) { | ||
133 | /* this is linux virtual tty */ | ||
134 | sprintf(console + 8, "S%d" + 1, u.vt.v_active); | ||
135 | break; | ||
136 | } | ||
130 | #endif | 137 | #endif |
131 | if (console[8]) { | 138 | #ifdef TIOCGSERIAL |
132 | fd = xopen(console, O_RDWR); | 139 | if (ioctl(0, TIOCGSERIAL, &u.sr) == 0) { |
133 | //bb_error_msg("switching to '%s'", console); | 140 | /* this is a serial console, asuming it is named /dev/ttySn */ |
134 | dup2(fd, 0); | 141 | sprintf(console + 8, "S%d", u.sr.line); |
135 | dup2(fd, 1); | 142 | break; |
136 | dup2(fd, 2); | 143 | } |
137 | while (fd > 2) | 144 | #endif |
138 | close(fd--); | 145 | /* nope, could not find it */ |
139 | /* Some other session may have it as ctty, | 146 | goto ret; |
140 | * steal it from them: | 147 | } while (0); |
141 | */ | 148 | |
142 | ioctl(0, TIOCSCTTY, 1); | 149 | fd = open_or_warn(console, O_RDWR); |
143 | } | 150 | if (fd < 0) |
151 | goto ret; | ||
152 | //bb_error_msg("switching to '%s'", console); | ||
153 | dup2(fd, 0); | ||
154 | dup2(fd, 1); | ||
155 | dup2(fd, 2); | ||
156 | while (fd > 2) | ||
157 | close(fd--); | ||
158 | /* Some other session may have it as ctty, | ||
159 | * steal it from them: | ||
160 | */ | ||
161 | ioctl(0, TIOCSCTTY, 1); | ||
144 | } | 162 | } |
145 | 163 | ||
164 | ret: | ||
146 | BB_EXECVP_or_die(argv); | 165 | BB_EXECVP_or_die(argv); |
147 | } | 166 | } |
diff --git a/shell/hush.c b/shell/hush.c index 1082738a2..e4138adf7 100644 --- a/shell/hush.c +++ b/shell/hush.c | |||
@@ -2281,7 +2281,7 @@ static void o_addqblock(o_string *o, const char *str, int len) | |||
2281 | ordinary_cnt = len; | 2281 | ordinary_cnt = len; |
2282 | o_addblock(o, str, ordinary_cnt); | 2282 | o_addblock(o, str, ordinary_cnt); |
2283 | if (ordinary_cnt == len) | 2283 | if (ordinary_cnt == len) |
2284 | return; | 2284 | return; /* NUL is already added by o_addblock */ |
2285 | str += ordinary_cnt; | 2285 | str += ordinary_cnt; |
2286 | len -= ordinary_cnt + 1; /* we are processing + 1 char below */ | 2286 | len -= ordinary_cnt + 1; /* we are processing + 1 char below */ |
2287 | 2287 | ||
@@ -2295,8 +2295,8 @@ static void o_addqblock(o_string *o, const char *str, int len) | |||
2295 | o_grow_by(o, sz); | 2295 | o_grow_by(o, sz); |
2296 | o->data[o->length] = ch; | 2296 | o->data[o->length] = ch; |
2297 | o->length++; | 2297 | o->length++; |
2298 | o->data[o->length] = '\0'; | ||
2299 | } | 2298 | } |
2299 | o->data[o->length] = '\0'; | ||
2300 | } | 2300 | } |
2301 | 2301 | ||
2302 | static void o_addQblock(o_string *o, const char *str, int len) | 2302 | static void o_addQblock(o_string *o, const char *str, int len) |
@@ -2385,6 +2385,7 @@ static int o_save_ptr_helper(o_string *o, int n) | |||
2385 | n, string_len, string_start); | 2385 | n, string_len, string_start); |
2386 | o->has_empty_slot = 0; | 2386 | o->has_empty_slot = 0; |
2387 | } | 2387 | } |
2388 | o->has_quoted_part = 0; | ||
2388 | list[n] = (char*)(uintptr_t)string_len; | 2389 | list[n] = (char*)(uintptr_t)string_len; |
2389 | return n + 1; | 2390 | return n + 1; |
2390 | } | 2391 | } |
@@ -3264,14 +3265,6 @@ static int done_word(o_string *word, struct parse_context *ctx) | |||
3264 | ) { | 3265 | ) { |
3265 | p += 3; | 3266 | p += 3; |
3266 | } | 3267 | } |
3267 | if (p == word->data || p[0] != '\0') { | ||
3268 | /* saw no "$@", or not only "$@" but some | ||
3269 | * real text is there too */ | ||
3270 | /* insert "empty variable" reference, this makes | ||
3271 | * e.g. "", $empty"" etc to not disappear */ | ||
3272 | o_addchr(word, SPECIAL_VAR_SYMBOL); | ||
3273 | o_addchr(word, SPECIAL_VAR_SYMBOL); | ||
3274 | } | ||
3275 | } | 3268 | } |
3276 | command->argv = add_string_to_strings(command->argv, xstrdup(word->data)); | 3269 | command->argv = add_string_to_strings(command->argv, xstrdup(word->data)); |
3277 | debug_print_strings("word appended to argv", command->argv); | 3270 | debug_print_strings("word appended to argv", command->argv); |
@@ -4515,20 +4508,30 @@ static struct pipe *parse_stream(char **pstring, | |||
4515 | break; | 4508 | break; |
4516 | case '\'': | 4509 | case '\'': |
4517 | dest.has_quoted_part = 1; | 4510 | dest.has_quoted_part = 1; |
4518 | while (1) { | 4511 | if (next == '\'' && !ctx.pending_redirect) { |
4519 | ch = i_getch(input); | 4512 | insert_empty_quoted_str_marker: |
4520 | if (ch == EOF) { | 4513 | nommu_addchr(&ctx.as_string, next); |
4521 | syntax_error_unterm_ch('\''); | 4514 | i_getch(input); /* eat second ' */ |
4522 | goto parse_error; | 4515 | o_addchr(&dest, SPECIAL_VAR_SYMBOL); |
4516 | o_addchr(&dest, SPECIAL_VAR_SYMBOL); | ||
4517 | } else { | ||
4518 | while (1) { | ||
4519 | ch = i_getch(input); | ||
4520 | if (ch == EOF) { | ||
4521 | syntax_error_unterm_ch('\''); | ||
4522 | goto parse_error; | ||
4523 | } | ||
4524 | nommu_addchr(&ctx.as_string, ch); | ||
4525 | if (ch == '\'') | ||
4526 | break; | ||
4527 | o_addqchr(&dest, ch); | ||
4523 | } | 4528 | } |
4524 | nommu_addchr(&ctx.as_string, ch); | ||
4525 | if (ch == '\'') | ||
4526 | break; | ||
4527 | o_addqchr(&dest, ch); | ||
4528 | } | 4529 | } |
4529 | break; | 4530 | break; |
4530 | case '"': | 4531 | case '"': |
4531 | dest.has_quoted_part = 1; | 4532 | dest.has_quoted_part = 1; |
4533 | if (next == '"' && !ctx.pending_redirect) | ||
4534 | goto insert_empty_quoted_str_marker; | ||
4532 | if (dest.o_assignment == NOT_ASSIGNMENT) | 4535 | if (dest.o_assignment == NOT_ASSIGNMENT) |
4533 | dest.o_expflags |= EXP_FLAG_ESC_GLOB_CHARS; | 4536 | dest.o_expflags |= EXP_FLAG_ESC_GLOB_CHARS; |
4534 | if (!encode_string(&ctx.as_string, &dest, input, '"', /*process_bkslash:*/ 1)) | 4537 | if (!encode_string(&ctx.as_string, &dest, input, '"', /*process_bkslash:*/ 1)) |
@@ -4750,12 +4753,22 @@ static void o_addblock_duplicate_backslash(o_string *o, const char *str, int len | |||
4750 | 4753 | ||
4751 | /* Store given string, finalizing the word and starting new one whenever | 4754 | /* Store given string, finalizing the word and starting new one whenever |
4752 | * we encounter IFS char(s). This is used for expanding variable values. | 4755 | * we encounter IFS char(s). This is used for expanding variable values. |
4753 | * End-of-string does NOT finalize word: think about 'echo -$VAR-' */ | 4756 | * End-of-string does NOT finalize word: think about 'echo -$VAR-'. |
4754 | static int expand_on_ifs(o_string *output, int n, const char *str) | 4757 | * Return in *ended_with_ifs: |
4758 | * 1 - ended with IFS char, else 0 (this includes case of empty str). | ||
4759 | */ | ||
4760 | static int expand_on_ifs(int *ended_with_ifs, o_string *output, int n, const char *str) | ||
4755 | { | 4761 | { |
4762 | int last_is_ifs = 0; | ||
4763 | |||
4756 | while (1) { | 4764 | while (1) { |
4757 | int word_len = strcspn(str, G.ifs); | 4765 | int word_len; |
4766 | |||
4767 | if (!*str) /* EOL - do not finalize word */ | ||
4768 | break; | ||
4769 | word_len = strcspn(str, G.ifs); | ||
4758 | if (word_len) { | 4770 | if (word_len) { |
4771 | /* We have WORD_LEN leading non-IFS chars */ | ||
4759 | if (!(output->o_expflags & EXP_FLAG_GLOB)) { | 4772 | if (!(output->o_expflags & EXP_FLAG_GLOB)) { |
4760 | o_addblock(output, str, word_len); | 4773 | o_addblock(output, str, word_len); |
4761 | } else { | 4774 | } else { |
@@ -4768,15 +4781,36 @@ static int expand_on_ifs(o_string *output, int n, const char *str) | |||
4768 | /*o_addblock(output, str, word_len); - WRONG: "v='\*'; echo Z$v" prints "Z*" instead of "Z\*" */ | 4781 | /*o_addblock(output, str, word_len); - WRONG: "v='\*'; echo Z$v" prints "Z*" instead of "Z\*" */ |
4769 | /*o_addqblock(output, str, word_len); - WRONG: "v='*'; echo Z$v" prints "Z*" instead of Z* files */ | 4782 | /*o_addqblock(output, str, word_len); - WRONG: "v='*'; echo Z$v" prints "Z*" instead of Z* files */ |
4770 | } | 4783 | } |
4784 | last_is_ifs = 0; | ||
4771 | str += word_len; | 4785 | str += word_len; |
4786 | if (!*str) /* EOL - do not finalize word */ | ||
4787 | break; | ||
4772 | } | 4788 | } |
4789 | |||
4790 | /* We know str here points to at least one IFS char */ | ||
4791 | last_is_ifs = 1; | ||
4792 | str += strspn(str, G.ifs); /* skip IFS chars */ | ||
4773 | if (!*str) /* EOL - do not finalize word */ | 4793 | if (!*str) /* EOL - do not finalize word */ |
4774 | break; | 4794 | break; |
4775 | o_addchr(output, '\0'); | 4795 | |
4776 | debug_print_list("expand_on_ifs", output, n); | 4796 | /* Start new word... but not always! */ |
4777 | n = o_save_ptr(output, n); | 4797 | /* Case "v=' a'; echo ''$v": we do need to finalize empty word: */ |
4778 | str += strspn(str, G.ifs); /* skip ifs chars */ | 4798 | if (output->has_quoted_part |
4799 | /* Case "v=' a'; echo $v": | ||
4800 | * here nothing precedes the space in $v expansion, | ||
4801 | * therefore we should not finish the word | ||
4802 | * (IOW: if there *is* word to finalize, only then do it): | ||
4803 | */ | ||
4804 | || (n > 0 && output->data[output->length - 1]) | ||
4805 | ) { | ||
4806 | o_addchr(output, '\0'); | ||
4807 | debug_print_list("expand_on_ifs", output, n); | ||
4808 | n = o_save_ptr(output, n); | ||
4809 | } | ||
4779 | } | 4810 | } |
4811 | |||
4812 | if (ended_with_ifs) | ||
4813 | *ended_with_ifs = last_is_ifs; | ||
4780 | debug_print_list("expand_on_ifs[1]", output, n); | 4814 | debug_print_list("expand_on_ifs[1]", output, n); |
4781 | return n; | 4815 | return n; |
4782 | } | 4816 | } |
@@ -5191,6 +5225,7 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg) | |||
5191 | * expansion of right-hand side of assignment == 1-element expand. | 5225 | * expansion of right-hand side of assignment == 1-element expand. |
5192 | */ | 5226 | */ |
5193 | char cant_be_null = 0; /* only bit 0x80 matters */ | 5227 | char cant_be_null = 0; /* only bit 0x80 matters */ |
5228 | int ended_in_ifs = 0; /* did last unquoted expansion end with IFS chars? */ | ||
5194 | char *p; | 5229 | char *p; |
5195 | 5230 | ||
5196 | debug_printf_expand("expand_vars_to_list: arg:'%s' singleword:%x\n", arg, | 5231 | debug_printf_expand("expand_vars_to_list: arg:'%s' singleword:%x\n", arg, |
@@ -5209,6 +5244,13 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg) | |||
5209 | #if ENABLE_SH_MATH_SUPPORT | 5244 | #if ENABLE_SH_MATH_SUPPORT |
5210 | char arith_buf[sizeof(arith_t)*3 + 2]; | 5245 | char arith_buf[sizeof(arith_t)*3 + 2]; |
5211 | #endif | 5246 | #endif |
5247 | |||
5248 | if (ended_in_ifs) { | ||
5249 | o_addchr(output, '\0'); | ||
5250 | n = o_save_ptr(output, n); | ||
5251 | ended_in_ifs = 0; | ||
5252 | } | ||
5253 | |||
5212 | o_addblock(output, arg, p - arg); | 5254 | o_addblock(output, arg, p - arg); |
5213 | debug_print_list("expand_vars_to_list[1]", output, n); | 5255 | debug_print_list("expand_vars_to_list[1]", output, n); |
5214 | arg = ++p; | 5256 | arg = ++p; |
@@ -5237,7 +5279,7 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg) | |||
5237 | cant_be_null |= first_ch; /* do it for "$@" _now_, when we know it's not empty */ | 5279 | cant_be_null |= first_ch; /* do it for "$@" _now_, when we know it's not empty */ |
5238 | if (!(first_ch & 0x80)) { /* unquoted $* or $@ */ | 5280 | if (!(first_ch & 0x80)) { /* unquoted $* or $@ */ |
5239 | while (G.global_argv[i]) { | 5281 | while (G.global_argv[i]) { |
5240 | n = expand_on_ifs(output, n, G.global_argv[i]); | 5282 | n = expand_on_ifs(NULL, output, n, G.global_argv[i]); |
5241 | debug_printf_expand("expand_vars_to_list: argv %d (last %d)\n", i, G.global_argc - 1); | 5283 | debug_printf_expand("expand_vars_to_list: argv %d (last %d)\n", i, G.global_argc - 1); |
5242 | if (G.global_argv[i++][0] && G.global_argv[i]) { | 5284 | if (G.global_argv[i++][0] && G.global_argv[i]) { |
5243 | /* this argv[] is not empty and not last: | 5285 | /* this argv[] is not empty and not last: |
@@ -5270,11 +5312,13 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg) | |||
5270 | if (G.ifs[0]) | 5312 | if (G.ifs[0]) |
5271 | o_addchr(output, G.ifs[0]); | 5313 | o_addchr(output, G.ifs[0]); |
5272 | } | 5314 | } |
5315 | output->has_quoted_part = 1; | ||
5273 | } | 5316 | } |
5274 | break; | 5317 | break; |
5275 | } | 5318 | } |
5276 | case SPECIAL_VAR_SYMBOL: /* <SPECIAL_VAR_SYMBOL><SPECIAL_VAR_SYMBOL> */ | 5319 | case SPECIAL_VAR_SYMBOL: /* <SPECIAL_VAR_SYMBOL><SPECIAL_VAR_SYMBOL> */ |
5277 | /* "Empty variable", used to make "" etc to not disappear */ | 5320 | /* "Empty variable", used to make "" etc to not disappear */ |
5321 | output->has_quoted_part = 1; | ||
5278 | arg++; | 5322 | arg++; |
5279 | cant_be_null = 0x80; | 5323 | cant_be_null = 0x80; |
5280 | break; | 5324 | break; |
@@ -5312,10 +5356,11 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg) | |||
5312 | debug_printf_expand("unquoted '%s', output->o_escape:%d\n", val, | 5356 | debug_printf_expand("unquoted '%s', output->o_escape:%d\n", val, |
5313 | !!(output->o_expflags & EXP_FLAG_ESC_GLOB_CHARS)); | 5357 | !!(output->o_expflags & EXP_FLAG_ESC_GLOB_CHARS)); |
5314 | if (val && val[0]) { | 5358 | if (val && val[0]) { |
5315 | n = expand_on_ifs(output, n, val); | 5359 | n = expand_on_ifs(&ended_in_ifs, output, n, val); |
5316 | val = NULL; | 5360 | val = NULL; |
5317 | } | 5361 | } |
5318 | } else { /* quoted $VAR, val will be appended below */ | 5362 | } else { /* quoted $VAR, val will be appended below */ |
5363 | output->has_quoted_part = 1; | ||
5319 | debug_printf_expand("quoted '%s', output->o_escape:%d\n", val, | 5364 | debug_printf_expand("quoted '%s', output->o_escape:%d\n", val, |
5320 | !!(output->o_expflags & EXP_FLAG_ESC_GLOB_CHARS)); | 5365 | !!(output->o_expflags & EXP_FLAG_ESC_GLOB_CHARS)); |
5321 | } | 5366 | } |
@@ -5340,6 +5385,10 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg) | |||
5340 | } /* end of "while (SPECIAL_VAR_SYMBOL is found) ..." */ | 5385 | } /* end of "while (SPECIAL_VAR_SYMBOL is found) ..." */ |
5341 | 5386 | ||
5342 | if (arg[0]) { | 5387 | if (arg[0]) { |
5388 | if (ended_in_ifs) { | ||
5389 | o_addchr(output, '\0'); | ||
5390 | n = o_save_ptr(output, n); | ||
5391 | } | ||
5343 | debug_print_list("expand_vars_to_list[a]", output, n); | 5392 | debug_print_list("expand_vars_to_list[a]", output, n); |
5344 | /* this part is literal, and it was already pre-quoted | 5393 | /* this part is literal, and it was already pre-quoted |
5345 | * if needed (much earlier), do not use o_addQstr here! */ | 5394 | * if needed (much earlier), do not use o_addQstr here! */ |
@@ -5470,12 +5519,6 @@ static char **expand_assignments(char **argv, int count) | |||
5470 | } | 5519 | } |
5471 | 5520 | ||
5472 | 5521 | ||
5473 | #if BB_MMU | ||
5474 | /* never called */ | ||
5475 | void re_execute_shell(char ***to_free, const char *s, | ||
5476 | char *g_argv0, char **g_argv, | ||
5477 | char **builtin_argv) NORETURN; | ||
5478 | |||
5479 | static void switch_off_special_sigs(unsigned mask) | 5522 | static void switch_off_special_sigs(unsigned mask) |
5480 | { | 5523 | { |
5481 | unsigned sig = 0; | 5524 | unsigned sig = 0; |
@@ -5495,6 +5538,12 @@ static void switch_off_special_sigs(unsigned mask) | |||
5495 | } | 5538 | } |
5496 | } | 5539 | } |
5497 | 5540 | ||
5541 | #if BB_MMU | ||
5542 | /* never called */ | ||
5543 | void re_execute_shell(char ***to_free, const char *s, | ||
5544 | char *g_argv0, char **g_argv, | ||
5545 | char **builtin_argv) NORETURN; | ||
5546 | |||
5498 | static void reset_traps_to_defaults(void) | 5547 | static void reset_traps_to_defaults(void) |
5499 | { | 5548 | { |
5500 | /* This function is always called in a child shell | 5549 | /* This function is always called in a child shell |
diff --git a/shell/hush_test/hush-parsing/starquoted2.right b/shell/hush_test/hush-parsing/starquoted2.right index e1562ed6d..1bff408ca 100644 --- a/shell/hush_test/hush-parsing/starquoted2.right +++ b/shell/hush_test/hush-parsing/starquoted2.right | |||
@@ -1,4 +1,7 @@ | |||
1 | Should be printed | 1 | Should be printed |
2 | Would not be printed by bash | ||
3 | Would not be printed by bash | ||
4 | Would not be printed by bash | ||
2 | Should be printed | 5 | Should be printed |
3 | Empty: | 6 | Empty: |
4 | Empty: | 7 | Empty: |
diff --git a/shell/hush_test/hush-parsing/starquoted2.tests b/shell/hush_test/hush-parsing/starquoted2.tests index f305c4cd9..7c5ff45b8 100755 --- a/shell/hush_test/hush-parsing/starquoted2.tests +++ b/shell/hush_test/hush-parsing/starquoted2.tests | |||
@@ -8,9 +8,9 @@ for a in "$@"; do echo Should not be printed; done | |||
8 | # Yes, believe it or not, bash is mesmerized by "$@" and stops | 8 | # Yes, believe it or not, bash is mesmerized by "$@" and stops |
9 | # treating "" as "this word cannot be expanded to nothing, | 9 | # treating "" as "this word cannot be expanded to nothing, |
10 | # but must be at least null string". Now it can be expanded to nothing. | 10 | # but must be at least null string". Now it can be expanded to nothing. |
11 | for a in "$@"""; do echo Should not be printed; done | 11 | for a in "$@"""; do echo Would not be printed by bash; done |
12 | for a in """$@"; do echo Should not be printed; done | 12 | for a in """$@"; do echo Would not be printed by bash; done |
13 | for a in """$@"''"$@"''; do echo Should not be printed; done | 13 | for a in """$@"''"$@"''; do echo Would not be printed by bash; done |
14 | for a in ""; do echo Should be printed; done | 14 | for a in ""; do echo Should be printed; done |
15 | 15 | ||
16 | # Bug 207: "$@" expands to nothing, and we erroneously glob "%s\n" twice: | 16 | # Bug 207: "$@" expands to nothing, and we erroneously glob "%s\n" twice: |
diff --git a/shell/hush_test/hush-vars/var_expand_on_ifs.right b/shell/hush_test/hush-vars/var_expand_on_ifs.right new file mode 100644 index 000000000..2ed2069f7 --- /dev/null +++ b/shell/hush_test/hush-vars/var_expand_on_ifs.right | |||
@@ -0,0 +1,9 @@ | |||
1 | 1 a b c | ||
2 | 2 a + b c | ||
3 | 3 a b c | ||
4 | 4 a b c | ||
5 | 5 a b c | ||
6 | 6 a b + c | ||
7 | 7 a b c | ||
8 | 8 a b c | ||
9 | 9 a b c | ||
diff --git a/shell/hush_test/hush-vars/var_expand_on_ifs.tests b/shell/hush_test/hush-vars/var_expand_on_ifs.tests new file mode 100755 index 000000000..a12ff8ec8 --- /dev/null +++ b/shell/hush_test/hush-vars/var_expand_on_ifs.tests | |||
@@ -0,0 +1,11 @@ | |||
1 | b=' b ' | ||
2 | e='' | ||
3 | echo 1 a $b c | ||
4 | echo 2 a +$b c | ||
5 | echo 3 a $e$b c | ||
6 | echo 4 a "$e"$b c | ||
7 | echo 5 a ""$b c | ||
8 | echo 6 a $b+ c | ||
9 | echo 7 a $b$e c | ||
10 | echo 8 a $b"$e" c | ||
11 | echo 9 a $b"" c | ||
diff --git a/testsuite/date/date-R-works b/testsuite/date/date-R-works index d05634456..81378cc69 100644 --- a/testsuite/date/date-R-works +++ b/testsuite/date/date-R-works | |||
@@ -1,8 +1,13 @@ | |||
1 | dt1="`date -R`" | 1 | # When different date's use time() and clock_gettime(), |
2 | # Wait for the start of next second | 2 | # seconds transition may not happen at _exactly_ the same moment. |
3 | dt="$dt1" | 3 | # Therefore we try it several times. |
4 | while test x"$dt" = x"$dt1"; do | ||
5 | dt="`date -R`" | ||
6 | done | ||
7 | 4 | ||
8 | test x"$dt" = x"`busybox date -R`" | 5 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true |
6 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true | ||
7 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true | ||
8 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true | ||
9 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true | ||
10 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true | ||
11 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true | ||
12 | test x"`date -R`" = x"`busybox date -R`" && exit 0 || true | ||
13 | false | ||
diff --git a/testsuite/ls.tests b/testsuite/ls.tests index e2284658d..9309d366b 100755 --- a/testsuite/ls.tests +++ b/testsuite/ls.tests | |||
@@ -256,7 +256,8 @@ mkdir ls.testdir || exit 1 | |||
256 | 256 | ||
257 | # testing "test name" "command" "expected result" "file input" "stdin" | 257 | # testing "test name" "command" "expected result" "file input" "stdin" |
258 | 258 | ||
259 | testing "ls symlink_to_dir" \ | 259 | test x"$CONFIG_FEATURE_LS_SORTFILES" = x"y" \ |
260 | && testing "ls symlink_to_dir" \ | ||
260 | "touch ls.testdir/A ls.testdir/B; ln -s ls.testdir ls.link; ls ls.link; ls -1 ls.link/; ls -1 ls.link; rm -f ls.link" \ | 261 | "touch ls.testdir/A ls.testdir/B; ln -s ls.testdir ls.link; ls ls.link; ls -1 ls.link/; ls -1 ls.link; rm -f ls.link" \ |
261 | "A\nB\nA\nB\nA\nB\n" \ | 262 | "A\nB\nA\nB\nA\nB\n" \ |
262 | "" "" | 263 | "" "" |
diff --git a/testsuite/mount.tests b/testsuite/mount.tests index 58eeb2ec5..c5891be83 100755 --- a/testsuite/mount.tests +++ b/testsuite/mount.tests | |||
@@ -46,6 +46,7 @@ rm mount.image1m | |||
46 | 46 | ||
47 | 47 | ||
48 | # Bug: mount.shared1 directory shows no files (has to show files a and b) | 48 | # Bug: mount.shared1 directory shows no files (has to show files a and b) |
49 | optional FEATURE_LS_RECURSIVE FEATURE_LS_SORTFILES | ||
49 | testing "mount bind+rshared" "\ | 50 | testing "mount bind+rshared" "\ |
50 | mkdir -p mount.dir mount.shared1 mount.shared2 | 51 | mkdir -p mount.dir mount.shared1 mount.shared2 |
51 | touch mount.dir/a mount.dir/b | 52 | touch mount.dir/a mount.dir/b |
@@ -80,5 +81,6 @@ a | |||
80 | b | 81 | b |
81 | " \ | 82 | " \ |
82 | "" "" | 83 | "" "" |
84 | SKIP= | ||
83 | 85 | ||
84 | exit $FAILCOUNT | 86 | exit $FAILCOUNT |
diff --git a/testsuite/od.tests b/testsuite/od.tests index fa47b4790..7a9da3e97 100755 --- a/testsuite/od.tests +++ b/testsuite/od.tests | |||
@@ -16,7 +16,7 @@ testing "od -b" \ | |||
16 | "" "HELLO" | 16 | "" "HELLO" |
17 | SKIP= | 17 | SKIP= |
18 | 18 | ||
19 | optional DESKTOP | 19 | optional DESKTOP LONG_OPTS |
20 | testing "od -b --traditional" \ | 20 | testing "od -b --traditional" \ |
21 | "od -b --traditional" \ | 21 | "od -b --traditional" \ |
22 | "\ | 22 | "\ |
@@ -26,7 +26,7 @@ testing "od -b --traditional" \ | |||
26 | "" "HELLO" | 26 | "" "HELLO" |
27 | SKIP= | 27 | SKIP= |
28 | 28 | ||
29 | optional DESKTOP | 29 | optional DESKTOP LONG_OPTS |
30 | testing "od -b --traditional FILE" \ | 30 | testing "od -b --traditional FILE" \ |
31 | "od -b --traditional input" \ | 31 | "od -b --traditional input" \ |
32 | "\ | 32 | "\ |
diff --git a/testsuite/runtest b/testsuite/runtest index 9a4fccbbf..51575d926 100755 --- a/testsuite/runtest +++ b/testsuite/runtest | |||
@@ -74,8 +74,10 @@ run_oldstyle_applet_tests() | |||
74 | *.mine) continue ;; # svn-produced junk | 74 | *.mine) continue ;; # svn-produced junk |
75 | *.r[0-9]*) continue ;; # svn-produced junk | 75 | *.r[0-9]*) continue ;; # svn-produced junk |
76 | esac | 76 | esac |
77 | run_applet_testcase "$applet" "$testcase" || status=1 | 77 | run_applet_testcase "$applet" "$testcase" || { |
78 | total_failed=$((total_failed + status)) | 78 | status=1 |
79 | total_failed=$((total_failed + 1)) | ||
80 | } | ||
79 | done | 81 | done |
80 | return $status | 82 | return $status |
81 | } | 83 | } |
diff --git a/testsuite/tar.tests b/testsuite/tar.tests index 534135df8..39ece5feb 100755 --- a/testsuite/tar.tests +++ b/testsuite/tar.tests | |||
@@ -156,6 +156,7 @@ SKIP= | |||
156 | 156 | ||
157 | # Had a bug where on extract autodetect first "switched off" -z | 157 | # Had a bug where on extract autodetect first "switched off" -z |
158 | # and then failed to recognize .tgz extension | 158 | # and then failed to recognize .tgz extension |
159 | optional FEATURE_TAR_CREATE FEATURE_SEAMLESS_GZ | ||
159 | testing "tar extract tgz" "\ | 160 | testing "tar extract tgz" "\ |
160 | dd count=1 bs=1M if=/dev/zero of=F0 2>/dev/null | 161 | dd count=1 bs=1M if=/dev/zero of=F0 2>/dev/null |
161 | tar -czf F0.tgz F0 | 162 | tar -czf F0.tgz F0 |
@@ -167,8 +168,10 @@ F0 | |||
167 | Ok | 168 | Ok |
168 | " \ | 169 | " \ |
169 | "" "" | 170 | "" "" |
171 | SKIP= | ||
170 | 172 | ||
171 | # On extract, everything up to and including last ".." component is stripped | 173 | # On extract, everything up to and including last ".." component is stripped |
174 | optional FEATURE_TAR_CREATE | ||
172 | testing "tar strips /../ on extract" "\ | 175 | testing "tar strips /../ on extract" "\ |
173 | rm -rf input_* test.tar 2>/dev/null | 176 | rm -rf input_* test.tar 2>/dev/null |
174 | mkdir input_dir | 177 | mkdir input_dir |
@@ -184,6 +187,7 @@ input_dir/file | |||
184 | Ok | 187 | Ok |
185 | " \ | 188 | " \ |
186 | "" "" | 189 | "" "" |
190 | SKIP= | ||
187 | 191 | ||
188 | 192 | ||
189 | cd .. && rm -rf tar.tempdir || exit 1 | 193 | cd .. && rm -rf tar.tempdir || exit 1 |
diff --git a/testsuite/tar/tar-extracts-all-subdirs b/testsuite/tar/tar-extracts-all-subdirs index 886c37ce9..f5351f4f5 100644 --- a/testsuite/tar/tar-extracts-all-subdirs +++ b/testsuite/tar/tar-extracts-all-subdirs | |||
@@ -9,4 +9,4 @@ find foo | sort >logfile.bb | |||
9 | rm -rf foo/* | 9 | rm -rf foo/* |
10 | tar xf foo.tar -C foo ./1/10 | 10 | tar xf foo.tar -C foo ./1/10 |
11 | find foo | sort >logfile.gnu | 11 | find foo | sort >logfile.gnu |
12 | cmp logfile.gnu logfile.bb | 12 | diff -u logfile.gnu logfile.bb |
diff --git a/util-linux/acpid.c b/util-linux/acpid.c index 2f27cfd1c..6e7321b02 100644 --- a/util-linux/acpid.c +++ b/util-linux/acpid.c | |||
@@ -33,6 +33,25 @@ | |||
33 | #include <syslog.h> | 33 | #include <syslog.h> |
34 | #include <linux/input.h> | 34 | #include <linux/input.h> |
35 | 35 | ||
36 | #ifndef EV_SW | ||
37 | # define EV_SW 0x05 | ||
38 | #endif | ||
39 | #ifndef EV_KEY | ||
40 | # define EV_KEY 0x01 | ||
41 | #endif | ||
42 | #ifndef SW_LID | ||
43 | # define SW_LID 0x00 | ||
44 | #endif | ||
45 | #ifndef SW_RFKILL_ALL | ||
46 | # define SW_RFKILL_ALL 0x03 | ||
47 | #endif | ||
48 | #ifndef KEY_POWER | ||
49 | # define KEY_POWER 116 /* SC System Power Down */ | ||
50 | #endif | ||
51 | #ifndef KEY_SLEEP | ||
52 | # define KEY_SLEEP 142 /* SC System Sleep */ | ||
53 | #endif | ||
54 | |||
36 | enum { | 55 | enum { |
37 | OPT_c = (1 << 0), | 56 | OPT_c = (1 << 0), |
38 | OPT_d = (1 << 1), | 57 | OPT_d = (1 << 1), |
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c index b86b13bdc..c0be15a3a 100644 --- a/util-linux/fdisk.c +++ b/util-linux/fdisk.c | |||
@@ -2543,6 +2543,35 @@ new_partition(void) | |||
2543 | } | 2543 | } |
2544 | 2544 | ||
2545 | static void | 2545 | static void |
2546 | reread_partition_table(int leave) | ||
2547 | { | ||
2548 | int i; | ||
2549 | |||
2550 | printf("Calling ioctl() to re-read partition table\n"); | ||
2551 | sync(); | ||
2552 | /* Users with slow external USB disks on a 320MHz ARM system (year 2011) | ||
2553 | * report that sleep is needed, otherwise BLKRRPART may fail with -EIO: | ||
2554 | */ | ||
2555 | sleep(1); | ||
2556 | i = ioctl_or_perror(dev_fd, BLKRRPART, NULL, | ||
2557 | "WARNING: rereading partition table " | ||
2558 | "failed, kernel still uses old table"); | ||
2559 | #if 0 | ||
2560 | if (dos_changed) | ||
2561 | printf( | ||
2562 | "\nWARNING: If you have created or modified any DOS 6.x\n" | ||
2563 | "partitions, please see the fdisk manual page for additional\n" | ||
2564 | "information\n"); | ||
2565 | #endif | ||
2566 | |||
2567 | if (leave) { | ||
2568 | if (ENABLE_FEATURE_CLEAN_UP) | ||
2569 | close_dev_fd(); | ||
2570 | exit(i != 0); | ||
2571 | } | ||
2572 | } | ||
2573 | |||
2574 | static void | ||
2546 | write_table(void) | 2575 | write_table(void) |
2547 | { | 2576 | { |
2548 | int i; | 2577 | int i; |
@@ -2553,7 +2582,6 @@ write_table(void) | |||
2553 | ptes[3].changed = 1; | 2582 | ptes[3].changed = 1; |
2554 | for (i = 3; i < g_partitions; i++) { | 2583 | for (i = 3; i < g_partitions; i++) { |
2555 | struct pte *pe = &ptes[i]; | 2584 | struct pte *pe = &ptes[i]; |
2556 | |||
2557 | if (pe->changed) { | 2585 | if (pe->changed) { |
2558 | write_part_table_flag(pe->sectorbuffer); | 2586 | write_part_table_flag(pe->sectorbuffer); |
2559 | write_sector(pe->offset_from_dev_start, pe->sectorbuffer); | 2587 | write_sector(pe->offset_from_dev_start, pe->sectorbuffer); |
@@ -2565,44 +2593,17 @@ write_table(void) | |||
2565 | sgi_write_table(); | 2593 | sgi_write_table(); |
2566 | } | 2594 | } |
2567 | else if (LABEL_IS_SUN) { | 2595 | else if (LABEL_IS_SUN) { |
2568 | int needw = 0; | 2596 | for (i = 0; i < 8; i++) { |
2569 | 2597 | if (ptes[i].changed) { | |
2570 | for (i = 0; i < 8; i++) | 2598 | sun_write_table(); |
2571 | if (ptes[i].changed) | 2599 | break; |
2572 | needw = 1; | 2600 | } |
2573 | if (needw) | 2601 | } |
2574 | sun_write_table(); | ||
2575 | } | 2602 | } |
2576 | 2603 | ||
2577 | printf("The partition table has been altered!\n\n"); | 2604 | printf("The partition table has been altered.\n"); |
2578 | reread_partition_table(1); | 2605 | reread_partition_table(1); |
2579 | } | 2606 | } |
2580 | |||
2581 | static void | ||
2582 | reread_partition_table(int leave) | ||
2583 | { | ||
2584 | int i; | ||
2585 | |||
2586 | printf("Calling ioctl() to re-read partition table\n"); | ||
2587 | sync(); | ||
2588 | /* sleep(2); Huh? */ | ||
2589 | i = ioctl_or_perror(dev_fd, BLKRRPART, NULL, | ||
2590 | "WARNING: rereading partition table " | ||
2591 | "failed, kernel still uses old table"); | ||
2592 | #if 0 | ||
2593 | if (dos_changed) | ||
2594 | printf( | ||
2595 | "\nWARNING: If you have created or modified any DOS 6.x\n" | ||
2596 | "partitions, please see the fdisk manual page for additional\n" | ||
2597 | "information\n"); | ||
2598 | #endif | ||
2599 | |||
2600 | if (leave) { | ||
2601 | if (ENABLE_FEATURE_CLEAN_UP) | ||
2602 | close_dev_fd(); | ||
2603 | exit(i != 0); | ||
2604 | } | ||
2605 | } | ||
2606 | #endif /* FEATURE_FDISK_WRITABLE */ | 2607 | #endif /* FEATURE_FDISK_WRITABLE */ |
2607 | 2608 | ||
2608 | #if ENABLE_FEATURE_FDISK_ADVANCED | 2609 | #if ENABLE_FEATURE_FDISK_ADVANCED |
@@ -3100,7 +3101,7 @@ int fdisk_main(int argc UNUSED_PARAM, char **argv) | |||
3100 | verify(); | 3101 | verify(); |
3101 | break; | 3102 | break; |
3102 | case 'w': | 3103 | case 'w': |
3103 | write_table(); /* does not return */ | 3104 | write_table(); /* does not return */ |
3104 | break; | 3105 | break; |
3105 | #if ENABLE_FEATURE_FDISK_ADVANCED | 3106 | #if ENABLE_FEATURE_FDISK_ADVANCED |
3106 | case 'x': | 3107 | case 'x': |
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c index ee68be8c5..6b4e29bfa 100644 --- a/util-linux/hwclock.c +++ b/util-linux/hwclock.c | |||
@@ -60,25 +60,31 @@ static void show_clock(const char **pp_rtcname, int utc) | |||
60 | #if SHOW_HWCLOCK_DIFF | 60 | #if SHOW_HWCLOCK_DIFF |
61 | struct timeval sys_tv; | 61 | struct timeval sys_tv; |
62 | #endif | 62 | #endif |
63 | time_t t; | 63 | time_t t = read_rtc(pp_rtcname, &sys_tv, utc); |
64 | char *cp; | ||
65 | 64 | ||
66 | t = read_rtc(pp_rtcname, &sys_tv, utc); | 65 | #if ENABLE_LOCALE_SUPPORT |
67 | cp = ctime(&t); | 66 | /* Standard hwclock uses locale-specific output format */ |
67 | char cp[64]; | ||
68 | struct tm *ptm = localtime(&t); | ||
69 | strftime(cp, sizeof(cp), "%c", ptm); | ||
70 | #else | ||
71 | char *cp = ctime(&t); | ||
68 | strchrnul(cp, '\n')[0] = '\0'; | 72 | strchrnul(cp, '\n')[0] = '\0'; |
73 | #endif | ||
74 | |||
69 | #if !SHOW_HWCLOCK_DIFF | 75 | #if !SHOW_HWCLOCK_DIFF |
70 | printf("%s 0.000000 seconds\n", cp); | 76 | printf("%s 0.000000 seconds\n", cp); |
71 | #else | 77 | #else |
72 | { | 78 | { |
73 | long diff = sys_tv.tv_sec - t; | 79 | long diff = sys_tv.tv_sec - t; |
74 | if (diff < 0 /*&& tv.tv_usec != 0*/) { | 80 | if (diff < 0 /*&& tv.tv_usec != 0*/) { |
75 | /* Why? */ | 81 | /* Why we need diff++? */ |
76 | /* diff >= 0 is ok: diff < 0, can't just use tv.tv_usec: */ | 82 | /* diff >= 0 is ok: | diff < 0, can't just use tv.tv_usec: */ |
77 | /* 45.520820 43.520820 */ | 83 | /* 45.520820 | 43.520820 */ |
78 | /* - 44.000000 - 45.000000 */ | 84 | /* - 44.000000 | - 45.000000 */ |
79 | /* = 1.520820 = -1.479180, not -2.520820! */ | 85 | /* = 1.520820 | = -1.479180, not -2.520820! */ |
80 | diff++; | 86 | diff++; |
81 | /* should be 1000000 - tv.tv_usec, but then we must check tv.tv_usec != 0 */ | 87 | /* Should be 1000000 - tv.tv_usec, but then we must check tv.tv_usec != 0 */ |
82 | sys_tv.tv_usec = 999999 - sys_tv.tv_usec; | 88 | sys_tv.tv_usec = 999999 - sys_tv.tv_usec; |
83 | } | 89 | } |
84 | printf("%s %ld.%06lu seconds\n", cp, diff, (unsigned long)sys_tv.tv_usec); | 90 | printf("%s %ld.%06lu seconds\n", cp, diff, (unsigned long)sys_tv.tv_usec); |
@@ -268,8 +274,8 @@ static void set_system_clock_timezone(int utc) | |||
268 | //usage: "\n -w Set hardware clock from system time" | 274 | //usage: "\n -w Set hardware clock from system time" |
269 | //usage: "\n -t Set in-kernel timezone, correct system time" | 275 | //usage: "\n -t Set in-kernel timezone, correct system time" |
270 | //usage: "\n if hardware clock is in local time" | 276 | //usage: "\n if hardware clock is in local time" |
271 | //usage: "\n -u Hardware clock is in UTC" | 277 | //usage: "\n -u Assume hardware clock is kept in UTC" |
272 | //usage: "\n -l Hardware clock is in local time" | 278 | //usage: "\n -l Assume hardware clock is kept in local time" |
273 | //usage: "\n -f FILE Use specified device (e.g. /dev/rtc2)" | 279 | //usage: "\n -f FILE Use specified device (e.g. /dev/rtc2)" |
274 | 280 | ||
275 | #define HWCLOCK_OPT_LOCALTIME 0x01 | 281 | #define HWCLOCK_OPT_LOCALTIME 0x01 |
diff --git a/util-linux/lspci.c b/util-linux/lspci.c index f59aec8a5..5184858d1 100644 --- a/util-linux/lspci.c +++ b/util-linux/lspci.c | |||
@@ -12,7 +12,7 @@ | |||
12 | //usage:#define lspci_full_usage "\n\n" | 12 | //usage:#define lspci_full_usage "\n\n" |
13 | //usage: "List all PCI devices" | 13 | //usage: "List all PCI devices" |
14 | //usage: "\n" | 14 | //usage: "\n" |
15 | //usage: "\n -m Parseable output" | 15 | //usage: "\n -m Parsable output" |
16 | //usage: "\n -k Show driver" | 16 | //usage: "\n -k Show driver" |
17 | 17 | ||
18 | #include "libbb.h" | 18 | #include "libbb.h" |
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c index dbefa4cf2..43ddb4031 100644 --- a/util-linux/swaponoff.c +++ b/util-linux/swaponoff.c | |||
@@ -25,6 +25,9 @@ | |||
25 | #include "libbb.h" | 25 | #include "libbb.h" |
26 | #include <mntent.h> | 26 | #include <mntent.h> |
27 | #include <sys/swap.h> | 27 | #include <sys/swap.h> |
28 | #ifndef __BIONIC__ | ||
29 | # include <sys/swap.h> | ||
30 | #endif | ||
28 | 31 | ||
29 | #if ENABLE_FEATURE_MOUNT_LABEL | 32 | #if ENABLE_FEATURE_MOUNT_LABEL |
30 | # include "volume_id.h" | 33 | # include "volume_id.h" |
@@ -32,6 +35,10 @@ | |||
32 | # define resolve_mount_spec(fsname) ((void)0) | 35 | # define resolve_mount_spec(fsname) ((void)0) |
33 | #endif | 36 | #endif |
34 | 37 | ||
38 | #ifndef MNTTYPE_SWAP | ||
39 | # define MNTTYPE_SWAP "swap" | ||
40 | #endif | ||
41 | |||
35 | #if ENABLE_FEATURE_SWAPON_PRI | 42 | #if ENABLE_FEATURE_SWAPON_PRI |
36 | struct globals { | 43 | struct globals { |
37 | int flags; | 44 | int flags; |