Browse Source

package/busybox: minor update, some fixes and comments

- update to 1.18.4
- introduce BB_MAKE_FLAGS, simplifying package/busybox/Makefile a bit
- document how the package/busybox/config may be updated
- document what needs to be done so one may drop 003-defaults.patch
- update package/busybox/config, a few busybox features were not
  selectable
Phil Sutter 13 years ago
parent
commit
36e2dea8b3

+ 28 - 32
package/busybox/Makefile

@@ -4,9 +4,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		busybox
-PKG_VERSION:=		1.18.1
-PKG_RELEASE:=		4
-PKG_MD5SUM:=		f15fe752d8b7012aa5e59f83b88ccb1c
+PKG_VERSION:=		1.18.4
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		b03c5b46ced732679e525a920a1a62f5
 PKG_DESCR:=		Core utilities for embedded systems
 PKG_SECTION:=		base
 PKG_URL:=		http://www.busybox.net/
@@ -23,47 +23,43 @@ include $(TOPDIR)/mk/package.mk
 $(eval $(call PKG_template,BUSYBOX,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 $(eval $(call PKG_template,UDHCPD,udhcpd,${PKG_VERSION}-${PKG_RELEASE},busybox,${PKGSD_UDHCPD},${PKGSC_UDHCPD}))
 
+# This is how to extract the Config.in files from a _built_ busybox source tree:
+#|for c in $(find build_viprinux_arm_glibc/w-busybox-1.18.1-4/busybox-1.18.1/ -name Config.in); do
+#|	c=$(sed s,build_viprinux_arm_glibc/w-busybox-1.18.1-4/busybox-1.18.1/,, <<< $c)
+#|	mkdir -p package/busybox/config_new/$(dirname $c)
+#|	cp build_viprinux_arm_glibc/w-busybox-1.18.1-4/busybox-1.18.1/$c package/busybox/config_new/$c
+#|done
+
 CONFIG_STYLE:=		manual
 BUILD_STYLE:=		manual
 INSTALL_STYLE:=		manual
 
+BB_MAKE_FLAGS:=		V=1 IPKG_ARCH="${CPU_ARCH}" ARCH="${ARCH}" \
+			HOSTCC="${CC_FOR_BUILD}" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
+			-C ${WRKBUILD}
+ifneq (${ADK_NATIVE},y)
+BB_MAKE_FLAGS+=		EXTRA_CFLAGS="${TARGET_CFLAGS}" CROSS_COMPILE="$(TARGET_CROSS)"
+endif
+
+# XXX: Although this looks like all new symbols are enabled when 'make oldconfig' runs, they're not.
+#      In fact, you can pipe "yes ''" as well as "yes n", each time leading to the default value being
+#      chosen for each unknown symbol.
+#      A real solution for that task (disabling everything that's unknown, as we know better) is to
+#      upgrade ${TOPDIR}/config so it understands the oldnoconfig target, and using that to update
+#      the busybox config before compiling.
+#      The workaround for now is to patch all busybox symbols to default n inside the busybox source
+#      which do depend on non-existance of other packages outside the busybox source.
 do-configure:
 	grep BUSYBOX_ $(TOPDIR)/.config|sed -e 's/BUSYBOX_/CONFIG_/' > \
 		${WRKBUILD}/.config
 	$(SED) 's;@IDIR@;${WRKINST};' ${WRKBUILD}/.config
-ifeq ($(ADK_NATIVE),y)
-	yes '' | \
-	$(MAKE) V=1 \
-	    IPKG_ARCH="$(CPU_ARCH)" \
-	    ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" -C $(WRKBUILD) oldconfig $(MAKE_TRACE)
-else
-	yes '' | \
-	$(MAKE) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \
-	    EXTRA_CFLAGS="$(TARGET_CFLAGS)" IPKG_ARCH="$(CPU_ARCH)" \
-	    ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" -C $(WRKBUILD) oldconfig $(MAKE_TRACE)
-endif
+	yes '' | $(MAKE) ${BB_MAKE_FLAGS} oldconfig $(MAKE_TRACE)
 
 do-build:
-ifeq ($(ADK_NATIVE),y)
-	$(MAKE) V=1 \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) busybox
-else
-	$(MAKE) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) busybox
-endif
+	$(MAKE) ${BB_MAKE_FLAGS} busybox
 
 do-install:
-ifeq ($(ADK_NATIVE),y)
-	$(MAKE) V=1 \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) install $(MAKE_TRACE)
-else
-	$(MAKE) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) install $(MAKE_TRACE)
-endif
+	$(MAKE) ${BB_MAKE_FLAGS} install $(MAKE_TRACE)
 	$(CP) $(WRKINST)/* $(IDIR_BUSYBOX)/
 ifeq ($(ADK_DEBUG),y)
 	${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \

+ 127 - 13
package/busybox/config/Config.in

@@ -47,6 +47,17 @@ config BUSYBOX_USE_PORTABLE_CODE
 	  compiler other than gcc.
 	  If you do use gcc, this option may needlessly increase code size.
 
+config BUSYBOX_PLATFORM_LINUX
+	bool "Enable Linux-specific applets and features"
+	default y
+	help
+	  For the most part, busybox requires only POSIX compatibility
+	  from the target system, but some applets and features use
+	  Linux-specific interfaces.
+
+	  Answering 'N' here will disable such applets and hide the
+	  corresponding configuration options.
+
 choice
 	prompt "Buffer allocation policy"
 	default FEATURE_BUFFERS_USE_MALLOC
@@ -131,6 +142,15 @@ config BUSYBOX_UNICODE_SUPPORT
 	  Probably by the time when busybox will be fully Unicode-clean,
 	  other encodings will be mainly of historic interest.
 
+config BUSYBOX_UNICODE_USING_LOCALE
+	bool "Use libc routines for Unicode (else uses internal ones)"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT && BUSYBOX_LOCALE_SUPPORT
+	help
+	  With this option on, Unicode support is implemented using libc
+	  routines. Otherwise, internal implementation is used.
+	  Internal implementation is smaller.
+
 config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
 	bool "Check $LANG environment variable"
 	default y
@@ -141,6 +161,91 @@ config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
 
 	  Otherwise, Unicode support will be always enabled and active.
 
+config BUSYBOX_SUBST_WCHAR
+	int "Character code to substitute unprintable characters with"
+	depends on BUSYBOX_UNICODE_SUPPORT
+	default 63
+	help
+	  Typical values are 63 for '?' (works with any output device),
+	  30 for ASCII substitute control code,
+	  65533 (0xfffd) for Unicode replacement character.
+
+config BUSYBOX_LAST_SUPPORTED_WCHAR
+	int "Range of supported Unicode characters"
+	depends on BUSYBOX_UNICODE_SUPPORT
+	default 767
+	help
+	  Any character with Unicode value bigger than this is assumed
+	  to be non-printable on output device. Many applets replace
+	  such chars with substitution character.
+
+	  The idea is that many valid printable Unicode chars are
+	  nevertheless are not displayed correctly. Think about
+	  combining charachers, double-wide hieroglyphs, obscure
+	  characters in dozens of ancient scripts...
+	  Many terminals, terminal emulators, xterms etc will fail
+	  to handle them correctly. Choose the smallest value
+	  which suits your needs.
+
+	  Typical values are:
+	  126 - ASCII only
+	  767 (0x2ff) - there are no combining chars in [0..767] range
+			(the range includes Latin 1, Latin Ext. A and B),
+			code is ~700 bytes smaller for this case.
+	  4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+			code is ~300 bytes smaller for this case.
+	  12799 (0x31ff) - nearly all non-ideographic characters are
+			available in [0..12799] range, including
+			East Asian scripts like katakana, hiragana, hangul,
+			bopomofo...
+	  0 - off, any valid printable Unicode character will be printed.
+
+config BUSYBOX_UNICODE_COMBINING_WCHARS
+	bool "Allow zero-width Unicode characters on output"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT
+	help
+	  With this option off, any Unicode char with width of 0
+	  is substituted on output.
+
+config BUSYBOX_UNICODE_WIDE_WCHARS
+	bool "Allow wide Unicode characters on output"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT
+	help
+	  With this option off, any Unicode char with width > 1
+	  is substituted on output.
+
+config BUSYBOX_UNICODE_BIDI_SUPPORT
+	bool "Bidirectional character-aware line input"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
+	help
+	  With this option on, right-to-left Unicode characters
+	  are treated differently on input (e.g. cursor movement).
+
+config BUSYBOX_UNICODE_NEUTRAL_TABLE
+	bool "In bidi input, support non-ASCII neutral chars too"
+	default n
+	depends on BUSYBOX_UNICODE_BIDI_SUPPORT
+	help
+	  In most cases it's enough to treat only ASCII non-letters
+	  (i.e. punctuation, numbers and space) as characters
+	  with neutral directionality.
+	  With this option on, more extensive (and bigger) table
+	  of neutral chars will be used.
+
+config BUSYBOX_UNICODE_PRESERVE_BROKEN
+	bool "Make it possible to enter sequences of chars which are not Unicode"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT
+	help
+	  With this option on, invalid UTF-8 bytes are not substituted
+	  with the selected substitution character.
+	  For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+	  at shell prompt will list file named 0xff (single char name
+	  with char value 255), not file named '?'.
+
 config BUSYBOX_LONG_OPTS
 	bool "Support for --long-options"
 	default y
@@ -182,21 +287,26 @@ config BUSYBOX_FEATURE_SUID
 	default n
 	help
 	  With this option you can install the busybox binary belonging
-	  to root with the suid bit set, and it will automatically drop
-	  priviledges for applets that don't need root access.
+	  to root with the suid bit set, enabling some applets to perform
+	  root-level operations even when run by ordinary users
+	  (for example, mounting of user mounts in fstab needs this).
+
+	  Busybox will automatically drop priviledges for applets
+	  that don't need root access.
 
 	  If you are really paranoid and don't want to do this, build two
 	  busybox binaries with different applets in them (and the appropriate
 	  symlinks pointing to each binary), and only set the suid bit on the
-	  one that needs it. The applets currently marked to need the suid bit
-	  are:
+	  one that needs it.
+
+	  The applets currently marked to need the suid bit are:
 
 	  crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
 	  traceroute, vlock.
 
 config BUSYBOX_FEATURE_SUID_CONFIG
 	bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
-	default n if FEATURE_SUID
+	default n if BUSYBOX_FEATURE_SUID
 	depends on BUSYBOX_FEATURE_SUID
 	help
 	  Allow the SUID / SGID state of an applet to be determined at runtime
@@ -239,6 +349,7 @@ config BUSYBOX_FEATURE_SUID_CONFIG_QUIET
 config BUSYBOX_SELINUX
 	bool "Support NSA Security Enhanced Linux"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Enable support for SELinux in applets ls, ps, and id. Also provide
 	  the option of compiling in SELinux applets.
@@ -525,20 +636,22 @@ endchoice
 
 endmenu
 
-menu 'Installation Options'
+menu 'Installation Options ("make install" behavior)'
 
 config BUSYBOX_INSTALL_NO_USR
 	bool "Don't use /usr"
 	default n
+	depends on BUSYBOX_FEATURE_INSTALLER
 	help
-	  Disable use of /usr. Don't activate this option if you don't know
-	  that you really want this behaviour.
+	  Disable use of /usr. busybox --install and "make install"
+	  will install applets only to /bin and /sbin,
+	  never to /usr/bin or /usr/sbin.
 
 choice
-	prompt "Applets links"
-	default INSTALL_APPLET_SYMLINKS
+	prompt "What kind of applet links to install"
+	default BUSYBOX_INSTALL_APPLET_SYMLINKS
 	help
-	  Choose how you install applets links.
+	  Choose what kind of links to applets are created by "make install".
 
 config BUSYBOX_INSTALL_APPLET_SYMLINKS
 	bool "as soft-links"
@@ -562,8 +675,9 @@ config BUSYBOX_INSTALL_APPLET_DONT
 	bool "not installed"
 	depends on BUSYBOX_FEATURE_INSTALLER || BUSYBOX_FEATURE_SH_STANDALONE || BUSYBOX_FEATURE_PREFER_APPLETS
 	help
-	  Do not install applet links. Useful when using the -install feature
-	  or a standalone shell for rescue purposes.
+	  Do not install applet links. Useful when you plan to use
+	  busybox --install for installing links, or plan to use
+	  a standalone shell and thus don't need applet links.
 
 endchoice
 

+ 30 - 7
package/busybox/config/archival/Config.in

@@ -5,6 +5,12 @@
 
 menu "Archival Utilities"
 
+config BUSYBOX_FEATURE_SEAMLESS_XZ
+	bool "Make tar, rpm, modprobe etc understand .xz data"
+	default y
+	help
+	  Make tar, rpm, modprobe etc understand .xz data.
+
 config BUSYBOX_FEATURE_SEAMLESS_LZMA
 	bool "Make tar, rpm, modprobe etc understand .lzma data"
 	default y
@@ -31,7 +37,7 @@ config BUSYBOX_FEATURE_SEAMLESS_Z
 
 config BUSYBOX_AR
 	bool "ar"
-	default n
+	default y
 	depends on !ADK_PACKAGE_BINUTILS
 	help
 	  ar is an archival utility program used to create, modify, and
@@ -73,7 +79,7 @@ config BUSYBOX_FEATURE_AR_CREATE
 config BUSYBOX_BUNZIP2
 	bool "bunzip2"
 	depends on !ADK_PACKAGE_BZIP2
-	default n
+	default y
 	help
 	  bunzip2 is a compression utility using the Burrows-Wheeler block
 	  sorting text compression algorithm, and Huffman coding. Compression
@@ -87,7 +93,7 @@ config BUSYBOX_BUNZIP2
 config BUSYBOX_BZIP2
 	bool "bzip2"
 	depends on !ADK_PACKAGE_BZIP2
-	default n
+	default y
 	help
 	  bzip2 is a compression utility using the Burrows-Wheeler block
 	  sorting text compression algorithm, and Huffman coding. Compression
@@ -101,7 +107,7 @@ config BUSYBOX_BZIP2
 config BUSYBOX_CPIO
 	bool "cpio"
 	depends on !ADK_PACKAGE_CPIO
-	default n
+	default y
 	help
 	  cpio is an archival utility program used to create, modify, and
 	  extract contents from archives.
@@ -228,7 +234,7 @@ config BUSYBOX_TAR
 	  create compressed archives. It's probably the most widely used
 	  UNIX archive program.
 
-if TAR
+if BUSYBOX_TAR
 
 config BUSYBOX_FEATURE_TAR_CREATE
 	bool "Enable archive creation"
@@ -288,6 +294,15 @@ config BUSYBOX_FEATURE_TAR_LONG_OPTIONS
 	help
 	  Enable use of long options, increases size by about 400 Bytes
 
+config BUSYBOX_FEATURE_TAR_TO_COMMAND
+	bool "Support for writing to an external program"
+	default y
+	depends on BUSYBOX_TAR && BUSYBOX_FEATURE_TAR_LONG_OPTIONS
+	help
+	  If you enable this option you'll be able to instruct tar to send
+	  the contents of each extracted file to the standard input of an
+	  external program.
+
 config BUSYBOX_FEATURE_TAR_UNAME_GNAME
 	bool "Enable use of user and group names"
 	default y
@@ -305,6 +320,14 @@ config BUSYBOX_FEATURE_TAR_NOPRESERVE_TIME
 	  With this option busybox supports GNU tar -m
 	  (do not preserve time) option.
 
+config BUSYBOX_FEATURE_TAR_SELINUX
+	bool "Support for extracting SELinux labels"
+	default n
+	depends on BUSYBOX_TAR && BUSYBOX_SELINUX
+	help
+	  With this option busybox supports restoring SELinux labels
+	  when extracting files from tar archives.
+
 endif #tar
 
 config BUSYBOX_UNCOMPRESS
@@ -317,7 +340,7 @@ config BUSYBOX_UNCOMPRESS
 config BUSYBOX_UNLZMA
 	bool "unlzma"
 	depends on !ADK_PACKAGE_XZ
-	default n
+	default y
 	help
 	  unlzma is a compression utility using the Lempel-Ziv-Markov chain
 	  compression algorithm, and range coding. Compression
@@ -349,7 +372,7 @@ config BUSYBOX_LZMA
 config BUSYBOX_UNXZ
 	bool "unxz"
 	depends on !ADK_PACKAGE_XZ
-	default n
+	default y
 	help
 	  unxz is a unlzma successor.
 

+ 30 - 0
package/busybox/config/console-tools/Config.in

@@ -8,6 +8,7 @@ menu "Console Utilities"
 config BUSYBOX_CHVT
 	bool "chvt"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program is used to change to another terminal.
 	  Example: chvt 4 (change to terminal /dev/tty4)
@@ -15,6 +16,7 @@ config BUSYBOX_CHVT
 config BUSYBOX_FGCONSOLE
 	bool "fgconsole"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program prints active (foreground) console number.
 
@@ -27,12 +29,14 @@ config BUSYBOX_CLEAR
 config BUSYBOX_DEALLOCVT
 	bool "deallocvt"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program deallocates unused virtual consoles.
 
 config BUSYBOX_DUMPKMAP
 	bool "dumpkmap"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program dumps the kernel's keyboard translation table to
 	  stdout, in binary format. You can then use loadkmap to load it.
@@ -41,12 +45,14 @@ config BUSYBOX_KBD_MODE
 	bool "kbd_mode"
 	default y if ADK_TARGET_WITH_INPUT
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program reports and sets keyboard mode.
 
 config BUSYBOX_LOADFONT
 	bool "loadfont"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program loads a console font from standard input.
 
@@ -54,6 +60,7 @@ config BUSYBOX_LOADKMAP
 	bool "loadkmap"
 	default y if ADK_TARGET_WITH_INPUT
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program loads a keyboard translation table from
 	  standard input.
@@ -61,6 +68,7 @@ config BUSYBOX_LOADKMAP
 config BUSYBOX_OPENVT
 	bool "openvt"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program is used to start a command on an unused
 	  virtual terminal.
@@ -92,6 +100,7 @@ config BUSYBOX_FEATURE_RESIZE_PRINT
 config BUSYBOX_SETCONSOLE
 	bool "setconsole"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program redirects the system console to another device,
 	  like the current tty while logged in via telnet.
@@ -106,6 +115,7 @@ config BUSYBOX_FEATURE_SETCONSOLE_LONG_OPTIONS
 config BUSYBOX_SETFONT
 	bool "setfont"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Allows to load console screen map. Useful for i18n.
 
@@ -127,6 +137,7 @@ config BUSYBOX_DEFAULT_SETFONT_DIR
 config BUSYBOX_SETKEYCODES
 	bool "setkeycodes"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program loads entries into the kernel's scancode-to-keycode
 	  map, allowing unusual keyboards to generate usable keycodes.
@@ -134,13 +145,32 @@ config BUSYBOX_SETKEYCODES
 config BUSYBOX_SETLOGCONS
 	bool "setlogcons"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program redirects the output console of kernel messages.
 
 config BUSYBOX_SHOWKEY
 	bool "showkey"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Shows keys pressed.
 
+comment "Common options for loadfont and setfont"
+	depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+
+config BUSYBOX_FEATURE_LOADFONT_PSF2
+	bool "Support for PSF2 console fonts"
+	default y
+	depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+	help
+	  Support PSF2 console fonts.
+
+config BUSYBOX_FEATURE_LOADFONT_RAW
+	bool "Support for old (raw) console fonts"
+	default y
+	depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+	help
+	  Support old (raw) console fonts.
+
 endmenu

+ 24 - 0
package/busybox/config/coreutils/Config.in

@@ -5,6 +5,12 @@
 
 menu "Coreutils"
 
+config BUSYBOX_BASE64
+	bool "base64"
+	default y
+	help
+	  Base64 encode and decode
+
 config BUSYBOX_BASENAME
 	bool "basename"
 	default y
@@ -115,6 +121,14 @@ config BUSYBOX_FEATURE_DATE_ISOFMT
 	  Enable option (-I) to output an ISO-8601 compliant
 	  date/time string.
 
+# defaults to "no": stat's nanosecond field is a bit non-portable
+config BUSYBOX_FEATURE_DATE_NANO
+	bool "Support %[num]N nanosecond format specifier"
+	default n
+	depends on BUSYBOX_DATE && BUSYBOX_PLATFORM_LINUX # syscall(__NR_clock_gettime)
+	help
+	  Support %[num]N format specifier. Adds ~250 bytes of code.
+
 config BUSYBOX_FEATURE_DATE_COMPAT
 	bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
 	default y
@@ -183,6 +197,10 @@ config BUSYBOX_FEATURE_DF_FANCY
 	help
 	  This option enables -a, -i and -B.
 
+	    -a Show all filesystems
+	    -i Inodes
+	    -B <SIZE> Blocksize
+
 config BUSYBOX_DIRNAME
 	bool "dirname"
 	default y
@@ -631,6 +649,7 @@ config BUSYBOX_FEATURE_SPLIT_FANCY
 config BUSYBOX_STAT
 	bool "stat"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX # statfs()
 	help
 	  display file or filesystem status.
 
@@ -682,6 +701,11 @@ config BUSYBOX_FEATURE_FANCY_TAIL
 	  The options (-q, -s, and -v) are provided by GNU tail, but
 	  are not specific in the SUSv3 standard.
 
+	    -q      Never output headers giving file names
+	    -s SEC  Wait SEC seconds between reads with -f
+	    -v      Always output headers giving file names
+
+
 config BUSYBOX_TEE
 	bool "tee"
 	default y

+ 12 - 0
package/busybox/config/editors/Config.in

@@ -171,6 +171,18 @@ config BUSYBOX_FEATURE_VI_WIN_RESIZE
 	help
 	  Make busybox vi behave nicely with terminals that get resized.
 
+config BUSYBOX_FEATURE_VI_ASK_TERMINAL
+	bool "Use 'tell me cursor position' ESC sequence to measure window"
+	default y
+	depends on BUSYBOX_VI
+	help
+	  If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+	  this option makes vi perform a last-ditch effort to find it:
+	  vi positions cursor to 999,999 and asks terminal to report real
+	  cursor position using "ESC [ 6 n" escape sequence, then reads stdin.
+
+	  This is not clean but helps a lot on serial lines and such.
+
 config BUSYBOX_FEATURE_VI_OPTIMIZE_CURSOR
 	bool "Optimize cursor movement"
 	default y

+ 12 - 0
package/busybox/config/init/Config.in

@@ -152,6 +152,18 @@ config BUSYBOX_TELINIT_PATH
 	  to facilitate proper shutdown, this path is to be used when
 	  locating telinit executable.
 
+config BUSYBOX_INIT_TERMINAL_TYPE
+	string "Initial terminal type"
+	default "linux"
+	depends on BUSYBOX_INIT
+	help
+	  This is the initial value set by init for the TERM environment
+	  variable. This variable is used by programs which make use of
+	  extended terminal capabilities.
+
+	  Note that on Linux, init attempts to detect serial terminal and
+	  sets TERM to "vt102" if one is found.
+
 config BUSYBOX_MESG
 	bool "mesg"
 	default n

+ 1 - 0
package/busybox/config/libbb/Config.in

@@ -151,6 +151,7 @@ config BUSYBOX_FEATURE_COPYBUF_KB
 config BUSYBOX_MONOTONIC_SYSCALL
 	bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
 	  time intervals (time, ping, traceroute etc need this).

+ 12 - 0
package/busybox/config/loginutils/Config.in

@@ -5,6 +5,18 @@
 
 menu "Login/Password Management Utilities"
 
+config BUSYBOX_ADD_SHELL
+       bool "add-shell"
+       default y if BUSYBOX_DESKTOP
+       help
+         Add shells to /etc/shells.
+
+config BUSYBOX_REMOVE_SHELL
+       bool "remove-shell"
+       default y if BUSYBOX_DESKTOP
+       help
+         Remove shells from /etc/shells.
+
 config BUSYBOX_FEATURE_SHADOWPASSWDS
 	bool "Support for shadow passwords"
 	default y

+ 82 - 15
package/busybox/config/miscutils/Config.in

@@ -5,9 +5,52 @@
 
 menu "Miscellaneous Utilities"
 
+config BUSYBOX_CONSPY
+	bool "conspy"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  A text-mode VNC like program for Linux virtual terminals.
+	  example:  conspy NUM      shared access to console num
+	  or        conspy -nd NUM  screenshot of console num
+	  or        conspy -cs NUM  poor man's GNU screen like
+
+config BUSYBOX_NANDWRITE
+	bool "nandwrite"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	depends on !ADK_PACKAGE_NAND
+	default y if ADK_TARGET_WITH_NAND
+	help
+	  Write to the specified MTD device, with bad blocks awareness
+
+config BUSYBOX_NANDDUMP
+	bool "nanddump"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	depends on !ADK_PACKAGE_NAND
+	default y if ADK_TARGET_WITH_NAND
+	help
+	  Dump the content of raw NAND chip
+
+config BUSYBOX_UBIATTACH
+	bool "ubiattach"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  Attach MTD device to an UBI device.
+
+config BUSYBOX_UBIDETACH
+	bool "ubidetach"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  Detach MTD device from an UBI device.
+
 config BUSYBOX_ADJTIMEX
 	bool "adjtimex"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Adjtimex reads and optionally sets adjustment parameters for
 	  the Linux clock adjustment algorithm.
@@ -19,9 +62,24 @@ config BUSYBOX_BBCONFIG
 	  The bbconfig applet will print the config file with which
 	  busybox was built.
 
+config BUSYBOX_FEATURE_COMPRESS_BBCONFIG
+	bool "Compress bbconfig data"
+	default y
+	depends on BUSYBOX_BBCONFIG
+	help
+	  Store bbconfig data in compressed form, uncompress them on-the-fly
+	  before output.
+
+	  If you have a really tiny busybox with few applets enabled (and
+	  bunzip2 isn't one of them), the overhead of the decompressor might
+	  be noticeable. Also, if you run executables directly from ROM
+	  and have very little memory, this might not be a win. Otherwise,
+	  you probably want this.
+
 config BUSYBOX_BEEP
 	bool "beep"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The beep applets beeps in a given freq/Hz.
 
@@ -178,6 +236,7 @@ config BUSYBOX_FEATURE_DC_LIBM
 config BUSYBOX_DEVFSD
 	bool "devfsd (obsolete)"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_FEATURE_SYSLOG
 	help
 	  This is deprecated and should NOT be used anymore.
@@ -221,6 +280,7 @@ config BUSYBOX_DEVFSD_VERBOSE
 config BUSYBOX_FEATURE_DEVFS
 	bool "Use devfs names for all devices (obsolete)"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This is obsolete and should NOT be used anymore.
 	  Use linux >= 2.6 (optionally with hotplug) and mdev instead!
@@ -240,6 +300,7 @@ config BUSYBOX_DEVMEM
 config BUSYBOX_EJECT
 	bool "eject"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Used to eject cdroms. (defaults to /dev/cdrom)
 
@@ -254,6 +315,7 @@ config BUSYBOX_FEATURE_EJECT_SCSI
 config BUSYBOX_FBSPLASH
 	bool "fbsplash"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Shows splash image and progress bar on framebuffer device.
 	  Can be used during boot phase of an embedded device. ~2kb.
@@ -267,7 +329,7 @@ config BUSYBOX_FBSPLASH
 	    -i path_to_cfg_file (can be "-" for stdin)
 	    -f path_to_fifo (can be "-" for stdin)
 	  - if you want to run it only in presence of kernel parameter:
-	    grep -q "fbsplash=on" </proc/cmdline && BUSYBOX_setsid fbsplash [params] &
+	    grep -q "fbsplash=on" </proc/cmdline && setsid fbsplash [params] &
 	  - commands for fifo:
 	    "NN" (ASCII decimal number) - percentage to show on progress bar
 	    "exit" - well you guessed it
@@ -303,6 +365,7 @@ config BUSYBOX_FLASH_ERASEALL
 config BUSYBOX_IONICE
 	bool "ionice"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Set/set program io scheduling class and priority
 	  Requires kernel >= 2.6.13
@@ -324,7 +387,7 @@ config BUSYBOX_LAST
 choice
 	prompt "Choose last implementation"
 	depends on BUSYBOX_LAST
-	default FEATURE_LAST_SMALL
+	default BUSYBOX_FEATURE_LAST_SMALL
 
 config BUSYBOX_FEATURE_LAST_SMALL
 	bool "small"
@@ -409,7 +472,8 @@ config BUSYBOX_FEATURE_LESS_LINENUMS
 config BUSYBOX_HDPARM
 	bool "hdparm"
 	depends on !ADK_PACKAGE_HDPARM
-	default n
+	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Get/Set hard drive parameters. Primarily intended for ATA
 	  drives. Adds about 13k (or around 30k if you enable the
@@ -471,15 +535,15 @@ config BUSYBOX_MAKEDEVS
 	help
 	  'makedevs' is a utility used to create a batch of devices with
 	  one command.
-	  .
+
 	  There are two choices for command line behaviour, the interface
 	  as used by LEAF/Linux Router Project, or a device table file.
-	  .
+
 	  'leaf' is traditionally what busybox follows, it allows multiple
 	  devices of a particluar type to be created per command.
 	  e.g. /dev/hda[0-9]
 	  Device properties are passed as command line arguments.
-	  .
+
 	  'table' reads device properties from a file or stdin, allowing
 	  a batch of unrelated devices to be made with one command.
 	  User/group names are allowed as an alternative to uid/gid.
@@ -526,6 +590,7 @@ config BUSYBOX_MT
 config BUSYBOX_RAIDAUTORUN
 	bool "raidautorun"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  raidautorun tells the kernel md driver to
 	  search and start RAID arrays.
@@ -533,7 +598,7 @@ config BUSYBOX_RAIDAUTORUN
 config BUSYBOX_READAHEAD
 	bool "readahead"
 	default n
-	depends on BUSYBOX_LFS
+	depends on BUSYBOX_LFS && BUSYBOX_PLATFORM_LINUX
 	help
 	  Preload the files listed on the command line into RAM cache so that
 	  subsequent reads on these files will not block on disk I/O.
@@ -548,15 +613,16 @@ config BUSYBOX_READAHEAD
 	  run this applet as a background job.
 
 config BUSYBOX_RFKILL
-        bool "rfkill"
-        default y  # doesn't build on Ubuntu 9.04
-        help
-          Enable/disable wireless devices.
+	bool "rfkill"
+	default y  # doesn't build on Ubuntu 9.04
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  Enable/disable wireless devices.
 
-          rfkill list : list all wireless devices
-          rfkill list bluetooth : list all bluetooth devices
-          rfkill list 1 : list device corresponding to the given index
-          rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
+	  rfkill list : list all wireless devices
+	  rfkill list bluetooth : list all bluetooth devices
+	  rfkill list 1 : list device corresponding to the given index
+	  rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
 
 config BUSYBOX_RUNLEVEL
 	bool "runlevel"
@@ -642,6 +708,7 @@ config BUSYBOX_WATCHDOG
 	bool "watchdog"
 	depends on !ADK_PACKAGE_WATCHDOG
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The watchdog utility is used with hardware or software watchdog
 	  device drivers. It opens the specified watchdog device special file

+ 7 - 0
package/busybox/config/modutils/Config.in

@@ -4,6 +4,13 @@
 #
 
 menu "Linux Module Utilities"
+depends on BUSYBOX_PLATFORM_LINUX
+
+config BUSYBOX_MODINFO
+	bool "modinfo"
+	default y
+	help
+	  Show information about a Linux Kernel module
 
 config BUSYBOX_MODPROBE_SMALL
 	bool "Simplified modutils"

+ 64 - 11
package/busybox/config/networking/Config.in

@@ -49,19 +49,22 @@ config BUSYBOX_VERBOSE_RESOLUTION_ERRORS
 config BUSYBOX_ARP
 	bool "arp"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Manipulate the system ARP cache.
 
 config BUSYBOX_ARPING
 	bool "arping"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Ping hosts by ARP packets.
 
 config BUSYBOX_BRCTL
 	bool "brctl"
 	depends on !ADK_PACKAGE_BRIDGE_UTILS
-	default n
+	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Manage ethernet bridges.
 	  Supports addbr/delbr and addif/delif.
@@ -95,6 +98,7 @@ config BUSYBOX_ETHER_WAKE
 	bool "ether-wake"
 	depends on !ADK_PACKAGE_ETHER_WAKE
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Send a magic packet to wake up sleeping machines.
 
@@ -124,8 +128,8 @@ config BUSYBOX_FEATURE_FTPD_ACCEPT_BROKEN_LIST
 	default y
 	depends on BUSYBOX_FTPD
 	help
-	  Some ftp-clients (among them KDE's Konqueror) issue illegal
-	  "LIST -la" requests. This option works around those problems.
+	  Some ftp clients (among them KDE's Konqueror) issue illegal
+	  "LIST -l" requests. This option works around such problems.
 	  It might prevent you from listing files starting with "-" and
 	  it increases the code size by ~40 bytes.
 	  Most other ftp servers seem to behave similar to this.
@@ -266,9 +270,18 @@ config BUSYBOX_FEATURE_HTTPD_PROXY
 	  Then a request to /url/myfile will be forwarded to
 	  http://hostname[:port]/new/path/myfile.
 
+config BUSYBOX_FEATURE_HTTPD_GZIP
+	bool "Support for GZIP content encoding"
+	default y
+	depends on BUSYBOX_HTTPD
+	help
+	  Makes httpd send files using GZIP content encoding if the
+	  client supports it and a pre-compressed <file>.gz exists.
+
 config BUSYBOX_IFCONFIG
 	bool "ifconfig"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Ifconfig is used to configure the kernel-resident network interfaces.
 
@@ -316,6 +329,7 @@ config BUSYBOX_FEATURE_IFCONFIG_BROADCAST_PLUS
 config BUSYBOX_IFENSLAVE
 	bool "ifenslave"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Userspace application to bind several interfaces
 	  to a logical interface (use with kernel bonding driver).
@@ -323,6 +337,7 @@ config BUSYBOX_IFENSLAVE
 config BUSYBOX_IFPLUGD
 	bool "ifplugd"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Network interface plug detection daemon.
 
@@ -364,7 +379,7 @@ config BUSYBOX_FEATURE_IFUPDOWN_IP
 config BUSYBOX_FEATURE_IFUPDOWN_IP_BUILTIN
 	bool "Use busybox ip applet"
 	default y
-	depends on BUSYBOX_FEATURE_IFUPDOWN_IP
+	depends on BUSYBOX_FEATURE_IFUPDOWN_IP && BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_IP
 	select BUSYBOX_FEATURE_IP_ADDRESS
 	select BUSYBOX_FEATURE_IP_LINK
@@ -484,6 +499,7 @@ config BUSYBOX_IP
 	bool "ip"
 	depends on !ADK_PACKAGE_IP
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The "ip" applet is a TCP/IP interface configuration and routing
 	  utility. You generally don't need "ip" to use busybox with
@@ -599,6 +615,7 @@ config BUSYBOX_FEATURE_IPCALC_LONG_OPTIONS
 config BUSYBOX_NAMEIF
 	bool "nameif"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_FEATURE_SYSLOG
 	help
 	  nameif is used to rename network interface by its MAC address.
@@ -624,11 +641,11 @@ config BUSYBOX_FEATURE_NAMEIF_EXTENDED
 	    new_interface_name  mac=00:80:C8:38:91:B5
 	    new_interface_name  00:80:C8:38:91:B5
 
-config NBDCLIENT
-        bool "nbd-client"
-        default n
-        help
-          Network block device client
+config BUSYBOX_NBDCLIENT
+	bool "nbd-client"
+	default n
+	help
+	  Network block device client
 
 config BUSYBOX_NC
 	bool "nc"
@@ -653,9 +670,20 @@ config BUSYBOX_NC_EXTRA
 	  making or receiving a successful connection), -i (delay interval for
 	  lines sent), -w (timeout for initial connection).
 
+config BUSYBOX_NC_110_COMPAT
+	bool "Netcat 1.10 compatibility (+2.5k)"
+	default n  # off specially for Rob
+	depends on BUSYBOX_NC
+	help
+	  This option makes nc closely follow original nc-1.10.
+	  The code is about 2.5k bigger. It enables
+	  -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
+	  busybox-specific extensions: -f FILE and -ll.
+
 config BUSYBOX_NETSTAT
 	bool "netstat"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  netstat prints information about the Linux networking subsystem.
 
@@ -684,6 +712,7 @@ config BUSYBOX_NSLOOKUP
 config BUSYBOX_NTPD
 	bool "ntpd"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The NTP client/server daemon.
 
@@ -698,6 +727,7 @@ config BUSYBOX_FEATURE_NTPD_SERVER
 config BUSYBOX_PING
 	bool "ping"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
 	  elicit an ICMP ECHO_RESPONSE from a host or gateway.
@@ -726,12 +756,14 @@ config BUSYBOX_PSCAN
 config BUSYBOX_ROUTE
 	bool "route"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Route displays or manipulates the kernel's IP routing tables.
 
 config BUSYBOX_SLATTACH
 	bool "slattach"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  slattach is a small utility to attach network interfaces to serial
 	  lines.
@@ -861,8 +893,11 @@ config BUSYBOX_TFTPD
 	  In other words: it should be run from inetd in nowait mode,
 	  or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
 
+comment "Common options for tftp/tftpd"
+	depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
+
 config BUSYBOX_FEATURE_TFTP_GET
-	bool "Enable \"get\" command"
+	bool "Enable 'tftp get' and/or tftpd upload code"
 	default y
 	depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
 	help
@@ -870,8 +905,11 @@ config BUSYBOX_FEATURE_TFTP_GET
 	  a client to retrieve a file from a TFTP server.
 	  Also enable upload support in tftpd, if tftpd is selected.
 
+	  Note: this option does _not_ make tftpd capable of download
+	  (the usual operation people need from it)!
+
 config BUSYBOX_FEATURE_TFTP_PUT
-	bool "Enable \"put\" command"
+	bool "Enable 'tftp put' and/or tftpd download code"
 	default y
 	depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
 	help
@@ -905,6 +943,7 @@ config BUSYBOX_TFTP_DEBUG
 config BUSYBOX_TRACEROUTE
 	bool "traceroute"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Utility to trace the route of IP packets.
 
@@ -985,9 +1024,22 @@ config BUSYBOX_FEATURE_WGET_LONG_OPTIONS
 	help
 	  Support long options for the wget applet.
 
+config BUSYBOX_FEATURE_WGET_TIMEOUT
+	bool "Enable read timeout option -T SEC"
+	default y
+	depends on BUSYBOX_WGET
+	help
+	  Supports network read timeout for wget, so that wget will give
+	  up and timeout when reading network data, through the -T command
+	  line option.  Currently only network data read timeout is
+	  supported (i.e., timeout is not applied to the DNS nor TCP
+	  connection initialization).  When FEATURE_WGET_LONG_OPTIONS is
+	  also enabled, the --timeout option will work in addition to -T.
+
 config BUSYBOX_ZCIP
 	bool "zcip"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_FEATURE_SYSLOG
 	help
 	  ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
@@ -1007,6 +1059,7 @@ config BUSYBOX_TCPSVD
 config BUSYBOX_TUNCTL
 	bool "tunctl"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  tunctl creates or deletes tun devices.
 

+ 4 - 1
package/busybox/config/networking/udhcp/Config.in

@@ -6,6 +6,7 @@
 config BUSYBOX_UDHCPD
 	bool "udhcp server (udhcpd)"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  udhcpd is a DHCP server geared primarily toward embedded systems,
 	  while striving to be fully functional and RFC compliant.
@@ -49,6 +50,7 @@ config BUSYBOX_DHCPD_LEASES_FILE
 config BUSYBOX_UDHCPC
 	bool "udhcp client (udhcpc)"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  udhcpc is a DHCP client geared primarily toward embedded systems,
 	  while striving to be fully functional and RFC compliant.
@@ -92,7 +94,8 @@ config BUSYBOX_FEATURE_UDHCP_RFC3397
 	depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC
 	help
 	  If selected, both client and server will support passing of domain
-	  search lists via option 119, specified in RFC3397.
+	  search lists via option 119, specified in RFC 3397,
+	  and SIP servers option 120, specified in RFC 3361.
 
 config BUSYBOX_UDHCPC_DEFAULT_SCRIPT
 	string "Absolute path to config script"

+ 34 - 17
package/busybox/config/procps/Config.in

@@ -8,6 +8,7 @@ menu "Process Utilities"
 config BUSYBOX_FREE
 	bool "free"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX #sysinfo()
 	help
 	  free displays the total amount of free and used physical and swap
 	  memory in the system, as well as the buffers used by the kernel.
@@ -21,6 +22,13 @@ config BUSYBOX_FUSER
 	  file open. fuser can also list all PIDs that have a given network
 	  (TCP or UDP) port open.
 
+config BUSYBOX_IOSTAT
+	bool "iostat"
+	default n
+	depends on !ADK_PACKAGE_SYSSTAT
+	help
+	  Report CPU and I/O statistics
+
 config BUSYBOX_KILL
 	bool "kill"
 	default y
@@ -44,22 +52,11 @@ config BUSYBOX_KILLALL5
 	depends on BUSYBOX_KILL
 
 config BUSYBOX_MPSTAT
-        bool "mpstat"
-        default n
-        help
-          Per-processor statistics
-
-config BUSYBOX_PMAP
-       bool "pmap"
-       default n
-       help
-         Display processes' memory mappings.
-
-config BUSYBOX_POWERTOP
-        bool "powertop"
-        default n
-        help
-          Analyze power consumption on Intel-based laptops
+	bool "mpstat"
+	default n
+	depends on !ADK_PACKAGE_SYSSTAT
+	help
+	  Per-processor statistics
 
 config BUSYBOX_NMETER
 	bool "nmeter"
@@ -102,6 +99,18 @@ config BUSYBOX_PKILL
 	help
 	  Send signals to processes by name.
 
+config BUSYBOX_PMAP
+       bool "pmap"
+       default n
+       help
+         Display processes' memory mappings.
+
+config BUSYBOX_POWERTOP
+	bool "powertop"
+	default n
+	help
+	  Analyze power consumption on Intel-based laptops
+
 config BUSYBOX_PS
 	bool "ps"
 	default y
@@ -120,7 +129,7 @@ config BUSYBOX_FEATURE_PS_WIDE
 config BUSYBOX_FEATURE_PS_TIME
 	bool "Enable time and elapsed time output"
 	default n
-	depends on BUSYBOX_PS && BUSYBOX_DESKTOP
+	depends on BUSYBOX_PS && BUSYBOX_DESKTOP && BUSYBOX_PLATFORM_LINUX #sysinfo()
 	help
 	  Support -o time and -o etime output specifiers.
 
@@ -146,6 +155,13 @@ config BUSYBOX_RENICE
 	  Renice alters the scheduling priority of one or more running
 	  processes.
 
+config BUSYBOX_SMEMCAP
+	bool "smemcap"
+	default n
+	help
+	  smemcap is a tool for capturing process data for smem,
+	  a memory usage statistic tool.
+
 config BUSYBOX_BB_SYSCTL
 	bool "sysctl"
 	default y
@@ -216,6 +232,7 @@ config BUSYBOX_FEATURE_SHOW_THREADS
 config BUSYBOX_UPTIME
 	bool "uptime"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX #sysinfo()
 	help
 	  uptime gives a one line display of the current time, how long
 	  the system has been running, how many users are currently logged

+ 4 - 0
package/busybox/config/runit/Config.in

@@ -61,22 +61,26 @@ config BUSYBOX_CHPST
 
 config BUSYBOX_SETUIDGID
 	bool "setuidgid"
+	default n
 	help
 	  Sets soft resource limits as specified by options
 
 config BUSYBOX_ENVUIDGID
 	bool "envuidgid"
+	default n
 	help
 	  Sets $UID to account's uid and $GID to account's gid
 
 config BUSYBOX_ENVDIR
 	bool "envdir"
+	default n
 	help
 	  Sets various environment variables as specified by files
 	  in the given directory
 
 config BUSYBOX_SOFTLIMIT
 	bool "softlimit"
+	default n
 	help
 	  Sets soft resource limits as specified by options
 

+ 77 - 31
package/busybox/config/shell/Config.in

@@ -6,7 +6,7 @@
 menu "Shells"
 
 choice
-	prompt "Choose your default shell"
+	prompt "Choose which shell is aliased to 'sh' name"
 	default FEATURE_SH_IS_ASH
 	help
 	  Choose a shell. The ash shell is the most bash compatible
@@ -21,15 +21,38 @@ config BUSYBOX_FEATURE_SH_IS_HUSH
 	select BUSYBOX_HUSH
 	bool "hush"
 
-####config FEATURE_SH_IS_LASH
-####	select LASH
-####	bool "lash"
+config BUSYBOX_FEATURE_SH_IS_NONE
+	bool "none"
 
-####config FEATURE_SH_IS_MSH
-####	select MSH
-####	bool "msh"
+endchoice
 
-config BUSYBOX_FEATURE_SH_IS_NONE
+choice
+	prompt "Choose which shell is aliased to 'bash' name"
+	default BUSYBOX_FEATURE_BASH_IS_NONE
+	help
+	  Choose which shell you want to be executed by 'bash' alias.
+	  The ash shell is the most bash compatible and full featured one.
+
+	  Note that selecting this option does not switch on any bash
+	  compatibility code. It merely makes it possible to install
+	  /bin/bash (sym)link and run scripts which start with
+	  #!/bin/bash line.
+
+	  Many systems use it in scripts which use bash-specific features,
+	  even simple ones like $RANDOM. Without this option, busybox
+	  can't be used for running them because it won't recongnize
+	  "bash" as a supported applet name.
+
+config BUSYBOX_FEATURE_BASH_IS_ASH
+	depends on BUSYBOX_ASH
+	bool "ash"
+	depends on !BUSYBOX_NOMMU
+
+config BUSYBOX_FEATURE_BASH_IS_HUSH
+	depends on BUSYBOX_HUSH
+	bool "hush"
+
+config BUSYBOX_FEATURE_BASH_IS_NONE
 	bool "none"
 
 endchoice
@@ -141,15 +164,15 @@ config BUSYBOX_HUSH
 	bool "hush"
 	default n
 	help
-	  hush is a small shell (22k). It handles the normal flow control
+	  hush is a small shell (25k). It handles the normal flow control
 	  constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
 	  case/esac. Redirections, here documents, $((arithmetic))
 	  and functions are supported.
 
 	  It will compile and work on no-mmu systems.
 
-	  It does not handle select, aliases, brace expansion,
-	  tilde expansion, &>file and >&file redirection of stdout+stderr.
+	  It does not handle select, aliases, tilde expansion,
+	  &>file and >&file redirection of stdout+stderr.
 
 config BUSYBOX_HUSH_BASH_COMPAT
 	bool "bash-compatible extensions"
@@ -158,6 +181,13 @@ config BUSYBOX_HUSH_BASH_COMPAT
 	help
 	  Enable bash-compatible extensions.
 
+config BUSYBOX_HUSH_BRACE_EXPANSION
+	bool "Brace expansion"
+	default y
+	depends on BUSYBOX_HUSH_BASH_COMPAT
+	help
+	  Enable {abc,def} extension.
+
 config BUSYBOX_HUSH_HELP
 	bool "help builtin"
 	default n
@@ -175,6 +205,13 @@ config BUSYBOX_HUSH_INTERACTIVE
 	  from stdin just like a shell script from a file.
 	  No prompt, no PS1/PS2 magic shell variables.
 
+config BUSYBOX_HUSH_SAVEHISTORY
+	bool "Save command history to .hush_history"
+	default y
+	depends on BUSYBOX_HUSH_INTERACTIVE && BUSYBOX_FEATURE_EDITING_SAVEHISTORY
+	help
+	  Enable history saving in hush.
+
 config BUSYBOX_HUSH_JOB
 	bool "Job control"
 	default n
@@ -229,11 +266,11 @@ config BUSYBOX_HUSH_LOCAL
 	  Enable support for local variables in functions.
 
 config BUSYBOX_HUSH_EXPORT_N
-	bool "Support export '-n' option"
+	bool "Support 'export -n' option"
 	default n
 	depends on BUSYBOX_HUSH
 	help
-	  Enable support for export '-n' option in hush. It is a bash extension.
+	  export -n unexports variables. It is a bash extension.
 
 config BUSYBOX_HUSH_RANDOM_SUPPORT
 	bool "Pseudorandom generator and $RANDOM variable"
@@ -243,27 +280,20 @@ config BUSYBOX_HUSH_RANDOM_SUPPORT
 	  Enable pseudorandom generator and dynamic variable "$RANDOM".
 	  Each read of "$RANDOM" will generate a new pseudorandom value.
 
-config BUSYBOX_LASH
-	bool "lash (deprecated: aliased to hush)"
-	default n
-	select BUSYBOX_HUSH
+config BUSYBOX_HUSH_MODE_X
+	bool "Support 'hush -x' option and 'set -x' command"
+	default y
+	depends on BUSYBOX_HUSH
 	help
-	  lash is deprecated and will be removed, please migrate to hush.
+	  This instructs hush to print commands before execution.
+	  Adds ~300 bytes.
 
 config BUSYBOX_MSH
-	bool "msh (deprecated: please use hush)"
+	bool "msh (deprecated: aliased to hush)"
 	default n
 	select BUSYBOX_HUSH
 	help
 	  msh is deprecated and will be removed, please migrate to hush.
-	  If there is a feature msh has but hush does not, please let us know.
-
-#	  The minix shell (adds just 30k) is quite complete and handles things
-#	  like for/do/done, case/esac and all the things you expect a Bourne
-#	  shell to do. It is not always pedantically correct about Bourne
-#	  shell grammar (try running the shell testscript "tests/sh.testcases"
-#	  on it and compare vs bash) but for most things it works quite well.
-#	  It uses only vfork, so it can be used on uClinux systems.
 
 
 config BUSYBOX_SH_MATH_SUPPORT
@@ -292,7 +322,7 @@ config BUSYBOX_FEATURE_SH_EXTRA_QUIET
 config BUSYBOX_FEATURE_SH_STANDALONE
 	bool "Standalone shell"
 	default n
-	depends on (BUSYBOX_MSH || BUSYBOX_LASH || BUSYBOX_HUSH || BUSYBOX_ASH) && BUSYBOX_FEATURE_PREFER_APPLETS
+	depends on (BUSYBOX_HUSH || BUSYBOX_ASH) && BUSYBOX_FEATURE_PREFER_APPLETS
 	help
 	  This option causes busybox shells to use busybox applets
 	  in preference to executables in the PATH whenever possible. For
@@ -325,7 +355,7 @@ config BUSYBOX_FEATURE_SH_STANDALONE
 config BUSYBOX_FEATURE_SH_NOFORK
 	bool "Run 'nofork' applets directly"
 	default n
-	depends on (BUSYBOX_MSH || BUSYBOX_LASH || BUSYBOX_HUSH || BUSYBOX_ASH) && BUSYBOX_FEATURE_PREFER_APPLETS
+	depends on (BUSYBOX_HUSH || BUSYBOX_ASH) && BUSYBOX_FEATURE_PREFER_APPLETS
 	help
 	  This option causes busybox shells [currently only ash]
 	  to not execute typical fork/exec/wait sequence, but call <applet>_main
@@ -354,9 +384,25 @@ config BUSYBOX_CTTYHACK
 	  It analyzes stdin with various ioctls, trying to determine whether
 	  it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
 	  If it detects one, it closes stdin/out/err and reopens that device.
-	  Then it executes given program. Usage example for /etc/inittab
-	  (for busybox init):
+	  Then it executes given program. Opening the device will make
+	  that device a controlling tty. This may require cttyhack
+	  to be a session leader.
+
+	  Example for /etc/inittab (for busybox init):
 
 	  ::respawn:/bin/cttyhack /bin/sh
 
+	  Starting an interactive shell from boot shell script:
+
+	  setsid cttyhack sh
+
+	  Giving controlling tty to shell running with PID 1:
+
+	  # exec cttyhack sh
+
+	  Without cttyhack, you need to know exact tty name,
+	  and do something like this:
+
+	  # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
+
 endmenu

+ 26 - 0
package/busybox/config/sysklogd/Config.in

@@ -50,6 +50,16 @@ config BUSYBOX_FEATURE_SYSLOGD_DUP
 	  Option -D instructs syslogd to drop consecutive messages
 	  which are totally the same.
 
+config BUSYBOX_FEATURE_SYSLOGD_READ_BUFFER_SIZE
+	int "Read buffer size in bytes"
+	default 256
+	range 256 20000
+	depends on BUSYBOX_SYSLOGD
+	help
+	  This option sets the size of the syslog read buffer.
+	  Actual memory usage increases around five times the
+	  change done here.
+
 config BUSYBOX_FEATURE_IPC_SYSLOG
 	bool "Circular Buffer support"
 	default y
@@ -104,6 +114,22 @@ config BUSYBOX_KLOGD
 	  you wish to record the messages produced by the kernel,
 	  you should enable this option.
 
+config BUSYBOX_FEATURE_KLOGD_KLOGCTL
+	bool "Use the klogctl() interface"
+	default y
+	depends on BUSYBOX_KLOGD && BUSYBOX_PLATFORM_LINUX
+	help
+	  The klogd applet supports two interfaces for reading
+	  kernel messages. Linux provides the klogctl() interface
+	  which allows reading messages from the kernel ring buffer
+	  independently from the file system.
+
+	  If you answer 'N' here, klogd will use the more portable
+	  approach of reading them from /proc or a device node.
+	  However, this method requires the file to be available.
+
+	  If in doubt, say 'Y'.
+
 config BUSYBOX_LOGGER
 	bool "logger"
 	default y

+ 70 - 5
package/busybox/config/util-linux/Config.in

@@ -8,6 +8,7 @@ menu "Linux System Utilities"
 config BUSYBOX_ACPID
 	bool "acpid"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  acpid listens to ACPI events coming either in textual form from
 	  /proc/acpi/event (though it is marked deprecated it is still widely
@@ -27,9 +28,16 @@ config BUSYBOX_FEATURE_ACPID_COMPAT
 	help
 	  Accept and ignore compatibility options -g -m -s -S -v.
 
+config BUSYBOX_BLOCKDEV
+	bool "blockdev"
+	default n
+	help
+	  Performs some ioctls with block devices.
+
 config BUSYBOX_BLKID
 	bool "blkid"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_VOLUMEID
 	help
 	  Lists labels and UUIDs of all filesystems.
@@ -39,6 +47,7 @@ config BUSYBOX_BLKID
 config BUSYBOX_DMESG
 	bool "dmesg"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  dmesg is used to examine or control the kernel ring buffer. When the
 	  Linux kernel prints messages to the system log, they are stored in
@@ -72,6 +81,7 @@ config BUSYBOX_FEATURE_DMESG_PRETTY
 config BUSYBOX_FBSET
 	bool "fbset"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  fbset is used to show or change the settings of a Linux frame buffer
 	  device. The frame buffer device provides a simple and unique
@@ -100,6 +110,7 @@ config BUSYBOX_FEATURE_FBSET_READMODE
 config BUSYBOX_FDFLUSH
 	bool "fdflush"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  fdflush is only needed when changing media on slightly-broken
 	  removable media drives. It is used to make Linux believe that a
@@ -112,12 +123,14 @@ config BUSYBOX_FDFLUSH
 config BUSYBOX_FDFORMAT
 	bool "fdformat"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  fdformat is used to low-level format a floppy disk.
 
 config BUSYBOX_FDISK
 	bool "fdisk"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The fdisk utility is used to divide hard disks into one or more
 	  logical disks, which are generally called partitions. This utility
@@ -172,6 +185,14 @@ config BUSYBOX_FEATURE_OSF_LABEL
 	  Enabling this option allows you to create or change BSD disklabels
 	  and define and edit BSD disk slices.
 
+config BUSYBOX_FEATURE_GPT_LABEL
+	bool "Support GPT disklabels"
+	default n
+	depends on BUSYBOX_FDISK && BUSYBOX_FEATURE_FDISK_WRITABLE
+	help
+	  Enabling this option allows you to view GUID Partition Table
+	  disklabels.
+
 config BUSYBOX_FEATURE_FDISK_ADVANCED
 	bool "Support expert mode"
 	default n
@@ -185,6 +206,7 @@ config BUSYBOX_FEATURE_FDISK_ADVANCED
 config BUSYBOX_FINDFS
 	bool "findfs"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_VOLUMEID
 	help
 	  Prints the name of a filesystem with given label or UUID.
@@ -200,6 +222,7 @@ config BUSYBOX_FLOCK
 config BUSYBOX_FREERAMDISK
 	bool "freeramdisk"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Linux allows you to create ramdisks. This utility allows you to
 	  delete them and completely free all memory that was used for the
@@ -222,12 +245,14 @@ config BUSYBOX_FSCK_MINIX
 config BUSYBOX_MKFS_EXT2
 	bool "mkfs_ext2"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Utility to create EXT2 filesystems.
 
 config BUSYBOX_MKFS_MINIX
 	bool "mkfs_minix"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The minix filesystem is a nice, small, compact, read-write filesystem
 	  with little overhead. If you wish to be able to create minix
@@ -248,13 +273,16 @@ config BUSYBOX_FEATURE_MINIX2
 config BUSYBOX_MKFS_REISER
 	bool "mkfs_reiser"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Utility to create ReiserFS filesystems.
+	  Note: this applet needs a lot of testing and polishing.
 
 config BUSYBOX_MKFS_VFAT
 	bool "mkfs_vfat"
 	default y if ADK_TARGET_WITH_MMC
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Utility to create FAT32 filesystems.
 
@@ -304,6 +332,7 @@ config BUSYBOX_HWCLOCK
 	bool "hwclock"
 	default y if ADK_TARGET_WITH_RTC
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The hwclock utility is used to read and set the hardware clock
 	  on a system. This is primarily used to set the current time on
@@ -343,6 +372,7 @@ config BUSYBOX_IPCRM
 config BUSYBOX_IPCS
 	bool "ipcs"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_FEATURE_SUID
 	help
 	  The ipcs utility is used to provide information on the currently
@@ -351,6 +381,7 @@ config BUSYBOX_IPCS
 config BUSYBOX_LOSETUP
 	bool "losetup"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  losetup is used to associate or detach a loop device with a regular
 	  file or block device, and to query the status of a loop device. This
@@ -358,7 +389,8 @@ config BUSYBOX_LOSETUP
 
 config BUSYBOX_LSPCI
 	bool "lspci"
-	default n
+	default y
+	#depends on BUSYBOX_PLATFORM_LINUX
 	depends on !ADK_PACKAGE_PCIUTILS
 	help
 	  lspci is a utility for displaying information about PCI buses in the
@@ -368,7 +400,8 @@ config BUSYBOX_LSPCI
 
 config BUSYBOX_LSUSB
 	bool "lsusb"
-	default n
+	default y
+	#depends on BUSYBOX_PLATFORM_LINUX
 	depends on !ADK_PACKAGE_LSUSB
 	help
 	  lsusb is a utility for displaying information about USB buses in the
@@ -379,6 +412,7 @@ config BUSYBOX_LSUSB
 config BUSYBOX_MDEV
 	bool "mdev"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  mdev is a mini-udev implementation for dynamically creating device
 	  nodes in the /dev directory.
@@ -466,7 +500,7 @@ config BUSYBOX_MORE
 config BUSYBOX_FEATURE_USE_TERMIOS
 	bool "Use termios to manipulate the screen"
 	default y
-	depends on BUSYBOX_MORE || BUSYBOX_TOP
+	depends on BUSYBOX_MORE || BUSYBOX_TOP || BUSYBOX_POWERTOP
 	help
 	  This option allows utilities such as 'more' and 'top' to determine
 	  the size of the screen. If you leave this disabled, your utilities
@@ -478,6 +512,9 @@ config BUSYBOX_VOLUMEID
 	bool #No description makes it a hidden option
 	default n
 
+menu "Filesystem/Volume identification"
+	depends on BUSYBOX_VOLUMEID
+
 config BUSYBOX_FEATURE_VOLUMEID_EXT
 	bool "Ext filesystem"
 	default n
@@ -689,9 +726,12 @@ config BUSYBOX_FEATURE_VOLUMEID_LINUXRAID
 	help
 	  TODO
 
+endmenu
+
 config BUSYBOX_MOUNT
 	bool "mount"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  All files and filesystems in Unix are arranged into one big directory
 	  tree. The 'mount' utility is used to graft a filesystem onto a
@@ -729,7 +769,7 @@ config BUSYBOX_FEATURE_MOUNT_HELPERS
 	  The idea is to use such virtual filesystems in /etc/fstab.
 
 config BUSYBOX_FEATURE_MOUNT_LABEL
-	bool "Support specifiying devices by label or UUID"
+	bool "Support specifying devices by label or UUID"
 	default y
 	depends on BUSYBOX_MOUNT
 	select BUSYBOX_VOLUMEID
@@ -774,6 +814,7 @@ config BUSYBOX_FEATURE_MOUNT_FSTAB
 config BUSYBOX_PIVOT_ROOT
 	bool "pivot_root"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The pivot_root utility swaps the mount points for the root filesystem
 	  with some other mounted filesystem. This allows you to do all sorts
@@ -801,12 +842,20 @@ config BUSYBOX_RDEV
 config BUSYBOX_READPROFILE
 	bool "readprofile"
 	default n
+	#depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This allows you to parse /proc/profile for basic profiling.
 
+config BUSYBOX_REV
+	bool "rev"
+	default n
+	help
+	  Reverse lines of a file or files.
+
 config BUSYBOX_RTCWAKE
 	bool "rtcwake"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Enter a system sleep state until specified wakeup time.
 
@@ -826,6 +875,7 @@ config BUSYBOX_SCRIPTREPLAY
 config BUSYBOX_SETARCH
 	bool "setarch"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The linux32 utility is used to create a 32bit environment for the
 	  specified program (usually a shell). It only makes sense to have
@@ -835,6 +885,7 @@ config BUSYBOX_SETARCH
 config BUSYBOX_SWAPONOFF
 	bool "swaponoff"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This option enables both the 'swapon' and the 'swapoff' utilities.
 	  Once you have created some swap space using 'mkswap', you also need
@@ -853,6 +904,7 @@ config BUSYBOX_FEATURE_SWAPON_PRI
 config BUSYBOX_SWITCH_ROOT
 	bool "switch_root"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The switch_root utility is used from initramfs to select a new
 	  root device. Under initramfs, you have to use this instead of
@@ -872,6 +924,7 @@ config BUSYBOX_SWITCH_ROOT
 config BUSYBOX_UMOUNT
 	bool "umount"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  When you want to remove a mounted filesystem from its current mount
 	  point, for example when you are shutting down the system, the
@@ -905,6 +958,18 @@ config BUSYBOX_FEATURE_MOUNT_LOOP
 	  specify an offset or cryptographic options to the loopback device.
 	  (If you don't want umount to free the loop device, use "umount -D".)
 
+config BUSYBOX_FEATURE_MOUNT_LOOP_CREATE
+	bool "Create new loopback devices if needed"
+	default y
+	depends on BUSYBOX_FEATURE_MOUNT_LOOP
+	help
+	  Linux kernels >= 2.6.24 support unlimited loopback devices. They are
+	  allocated for use when trying to use a loop device. The loop device
+	  must however exist.
+
+	  This feature lets mount to try to create next /dev/loopN device
+	  if it does not find a free one.
+
 config BUSYBOX_FEATURE_MTAB_SUPPORT
 	bool "Support for the old /etc/mtab file"
 	default n
@@ -922,7 +987,7 @@ config BUSYBOX_FEATURE_MTAB_SUPPORT
 	  If you must use this, keep in mind it's inherently brittle (for
 	  example a mount under chroot won't update it), can't handle modern
 	  features like separate per-process filesystem namespaces, requires
-	  that your /etc directory be writeable, tends to get easily confused
+	  that your /etc directory be writable, tends to get easily confused
 	  by --bind or --move mounts, won't update if you rename a directory
 	  that contains a mount point, and so on. (In brief: avoid.)
 

+ 128 - 26
package/busybox/patches/003-defaults.patch

@@ -1,7 +1,7 @@
-diff -Nur busybox-1.18.1.orig/Config.in busybox-1.18.1/Config.in
---- busybox-1.18.1.orig/Config.in	2010-12-21 05:31:04.000000000 +0100
-+++ busybox-1.18.1/Config.in	2010-12-25 23:20:18.000000000 +0100
-@@ -15,7 +15,7 @@
+diff -Naurp busybox-1.18.4/Config.in busybox-1.18.4.patched/Config.in
+--- busybox-1.18.4/Config.in	2011-03-13 02:45:40.000000000 +0100
++++ busybox-1.18.4.patched/Config.in	2011-04-12 17:11:37.904996819 +0200
+@@ -15,7 +15,7 @@ menu "General Configuration"
  
  config DESKTOP
  	bool "Enable options for full-blown desktop systems"
@@ -10,7 +10,7 @@ diff -Nur busybox-1.18.1.orig/Config.in busybox-1.18.1/Config.in
  	help
  	  Enable options and features which are not essential.
  	  Select this only if you plan to use busybox on full-blown
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ config EXTRA_COMPAT
  
  config INCLUDE_SUSv2
  	bool "Enable obsolete features removed before SUSv3"
@@ -19,10 +19,10 @@ diff -Nur busybox-1.18.1.orig/Config.in busybox-1.18.1/Config.in
  	help
  	  This option will enable backwards compatibility with SuSv2,
  	  specifically, old-style numeric options ('command -1 <file>')
-diff -Nur busybox-1.18.1.orig/archival/Config.src busybox-1.18.1/archival/Config.src
---- busybox-1.18.1.orig/archival/Config.src	2010-12-20 01:41:26.000000000 +0100
-+++ busybox-1.18.1/archival/Config.src	2010-12-25 23:21:02.000000000 +0100
-@@ -79,7 +79,7 @@
+diff -Naurp busybox-1.18.4/archival/Config.src busybox-1.18.4.patched/archival/Config.src
+--- busybox-1.18.4/archival/Config.src	2011-04-12 17:11:13.204993284 +0200
++++ busybox-1.18.4.patched/archival/Config.src	2011-04-12 17:11:37.905996921 +0200
+@@ -79,7 +79,7 @@ config FEATURE_AR_CREATE
  
  config BUNZIP2
  	bool "bunzip2"
@@ -31,7 +31,7 @@ diff -Nur busybox-1.18.1.orig/archival/Config.src busybox-1.18.1/archival/Config
  	help
  	  bunzip2 is a compression utility using the Burrows-Wheeler block
  	  sorting text compression algorithm, and Huffman coding. Compression
-@@ -92,7 +92,7 @@
+@@ -92,7 +92,7 @@ config BUNZIP2
  
  config BZIP2
  	bool "bzip2"
@@ -40,7 +40,7 @@ diff -Nur busybox-1.18.1.orig/archival/Config.src busybox-1.18.1/archival/Config
  	help
  	  bzip2 is a compression utility using the Burrows-Wheeler block
  	  sorting text compression algorithm, and Huffman coding. Compression
-@@ -105,7 +105,7 @@
+@@ -105,7 +105,7 @@ config BZIP2
  
  config CPIO
  	bool "cpio"
@@ -49,7 +49,7 @@ diff -Nur busybox-1.18.1.orig/archival/Config.src busybox-1.18.1/archival/Config
  	help
  	  cpio is an archival utility program used to create, modify, and
  	  extract contents from archives.
-@@ -204,19 +204,19 @@
+@@ -210,19 +210,19 @@ config IPKG
  
  config RPM2CPIO
  	bool "rpm2cpio"
@@ -72,7 +72,7 @@ diff -Nur busybox-1.18.1.orig/archival/Config.src busybox-1.18.1/archival/Config
  	help
  	  tar is an archiving program. It's commonly used with gzip to
  	  create compressed archives. It's probably the most widely used
-@@ -323,7 +323,7 @@
+@@ -329,7 +329,7 @@ config UNCOMPRESS
  
  config UNLZMA
  	bool "unlzma"
@@ -81,7 +81,7 @@ diff -Nur busybox-1.18.1.orig/archival/Config.src busybox-1.18.1/archival/Config
  	help
  	  unlzma is a compression utility using the Lempel-Ziv-Markov chain
  	  compression algorithm, and range coding. Compression
-@@ -354,7 +354,7 @@
+@@ -360,7 +360,7 @@ config LZMA
  
  config UNXZ
  	bool "unxz"
@@ -90,10 +90,10 @@ diff -Nur busybox-1.18.1.orig/archival/Config.src busybox-1.18.1/archival/Config
  	help
  	  unxz is a unlzma successor.
  
-diff -Nur busybox-1.18.1.orig/editors/Config.src busybox-1.18.1/editors/Config.src
---- busybox-1.18.1.orig/editors/Config.src	2010-12-20 01:41:27.000000000 +0100
-+++ busybox-1.18.1/editors/Config.src	2010-12-25 23:21:57.000000000 +0100
-@@ -31,7 +31,7 @@
+diff -Naurp busybox-1.18.4/editors/Config.src busybox-1.18.4.patched/editors/Config.src
+--- busybox-1.18.4/editors/Config.src	2011-03-13 02:45:06.000000000 +0100
++++ busybox-1.18.4.patched/editors/Config.src	2011-04-12 17:11:37.905996921 +0200
+@@ -31,7 +31,7 @@ config CMP
  
  config DIFF
  	bool "diff"
@@ -102,7 +102,7 @@ diff -Nur busybox-1.18.1.orig/editors/Config.src busybox-1.18.1/editors/Config.s
  	help
  	  diff compares two files or directories and outputs the
  	  differences between them in a form that can be given to
-@@ -62,7 +62,7 @@
+@@ -62,7 +62,7 @@ config ED
  
  config SED
  	bool "sed"
@@ -111,9 +111,9 @@ diff -Nur busybox-1.18.1.orig/editors/Config.src busybox-1.18.1/editors/Config.s
  	help
  	  sed is used to perform text transformations on a file
  	  or input from a pipeline.
-diff -Nur busybox-1.18.1.orig/editors/patch.c busybox-1.18.1/editors/patch.c
---- busybox-1.18.1.orig/editors/patch.c	2010-12-21 05:29:45.000000000 +0100
-+++ busybox-1.18.1/editors/patch.c	2010-12-25 23:22:38.000000000 +0100
+diff -Naurp busybox-1.18.4/editors/patch.c busybox-1.18.4.patched/editors/patch.c
+--- busybox-1.18.4/editors/patch.c	2011-03-13 02:45:40.000000000 +0100
++++ busybox-1.18.4.patched/editors/patch.c	2011-04-12 17:11:37.905996921 +0200
 @@ -27,7 +27,7 @@
  
  //config:config PATCH
@@ -123,10 +123,91 @@ diff -Nur busybox-1.18.1.orig/editors/patch.c busybox-1.18.1/editors/patch.c
  //config:	help
  //config:	  Apply a unified diff formatted patch.
  
-diff -Nur busybox-1.18.1.orig/networking/Config.src busybox-1.18.1/networking/Config.src
---- busybox-1.18.1.orig/networking/Config.src	2010-12-21 05:29:45.000000000 +0100
-+++ busybox-1.18.1/networking/Config.src	2010-12-25 23:20:19.000000000 +0100
-@@ -986,7 +986,7 @@
+diff -Naurp busybox-1.18.4/findutils/find.c busybox-1.18.4.patched/findutils/find.c
+--- busybox-1.18.4/findutils/find.c	2011-04-12 17:11:22.887000207 +0200
++++ busybox-1.18.4.patched/findutils/find.c	2011-04-12 17:21:04.441000928 +0200
+@@ -59,7 +59,7 @@
+ 
+ //config:config FIND
+ //config:	bool "find"
+-//config:	default y
++//config:	default n
+ //config:	help
+ //config:	  find is used to search your system to find specified files.
+ //config:
+diff -Naurp busybox-1.18.4/findutils/grep.c busybox-1.18.4.patched/findutils/grep.c
+--- busybox-1.18.4/findutils/grep.c	2011-03-13 02:45:40.000000000 +0100
++++ busybox-1.18.4.patched/findutils/grep.c	2011-04-12 17:21:09.828998153 +0200
+@@ -26,7 +26,7 @@
+ 
+ //config:config GREP
+ //config:	bool "grep"
+-//config:	default y
++//config:	default n
+ //config:	help
+ //config:	  grep is used to search files for a specified pattern.
+ //config:
+diff -Naurp busybox-1.18.4/miscutils/Config.src busybox-1.18.4.patched/miscutils/Config.src
+--- busybox-1.18.4/miscutils/Config.src	2011-03-13 02:45:40.000000000 +0100
++++ busybox-1.18.4.patched/miscutils/Config.src	2011-04-12 17:19:11.872999667 +0200
+@@ -362,7 +362,7 @@ endchoice
+ 
+ config LESS
+ 	bool "less"
+-	default y
++	default n
+ 	help
+ 	  'less' is a pager, meaning that it displays text files. It possesses
+ 	  a wide array of features, and is an improvement over 'more'.
+@@ -428,7 +428,7 @@ config FEATURE_LESS_LINENUMS
+ 
+ config HDPARM
+ 	bool "hdparm"
+-	default y
++	default n
+ 	depends on PLATFORM_LINUX
+ 	help
+ 	  Get/Set hard drive parameters. Primarily intended for ATA
+@@ -663,7 +663,7 @@ config WALL
+ 
+ config WATCHDOG
+ 	bool "watchdog"
+-	default y
++	default n
+ 	depends on PLATFORM_LINUX
+ 	help
+ 	  The watchdog utility is used with hardware or software watchdog
+diff -Naurp busybox-1.18.4/networking/Config.src busybox-1.18.4.patched/networking/Config.src
+--- busybox-1.18.4/networking/Config.src	2011-03-13 02:45:40.000000000 +0100
++++ busybox-1.18.4.patched/networking/Config.src	2011-04-12 17:16:48.182999877 +0200
+@@ -64,7 +64,7 @@ config ARPING
+ 
+ config BRCTL
+ 	bool "brctl"
+-	default y
++	default n
+ 	depends on PLATFORM_LINUX
+ 	help
+ 	  Manage ethernet bridges.
+@@ -97,7 +97,7 @@ config DNSD
+ 
+ config ETHER_WAKE
+ 	bool "ether-wake"
+-	default y
++	default n
+ 	depends on PLATFORM_LINUX
+ 	help
+ 	  Send a magic packet to wake up sleeping machines.
+@@ -497,7 +497,7 @@ config FEATURE_INETD_RPC
+ 
+ config IP
+ 	bool "ip"
+-	default y
++	default n
+ 	depends on PLATFORM_LINUX
+ 	help
+ 	  The "ip" applet is a TCP/IP interface configuration and routing
+@@ -986,7 +986,7 @@ config VCONFIG
  
  config WGET
  	bool "wget"
@@ -135,3 +216,24 @@ diff -Nur busybox-1.18.1.orig/networking/Config.src busybox-1.18.1/networking/Co
  	help
  	  wget is a utility for non-interactive download of files from HTTP,
  	  HTTPS, and FTP servers.
+diff -Naurp busybox-1.18.4/util-linux/Config.src busybox-1.18.4.patched/util-linux/Config.src
+--- busybox-1.18.4/util-linux/Config.src	2011-03-13 02:45:40.000000000 +0100
++++ busybox-1.18.4.patched/util-linux/Config.src	2011-04-12 17:18:25.998990985 +0200
+@@ -378,7 +378,7 @@ config LOSETUP
+ 
+ config LSPCI
+ 	bool "lspci"
+-	default y
++	default n
+ 	#depends on PLATFORM_LINUX
+ 	help
+ 	  lspci is a utility for displaying information about PCI buses in the
+@@ -388,7 +388,7 @@ config LSPCI
+ 
+ config LSUSB
+ 	bool "lsusb"
+-	default y
++	default n
+ 	#depends on PLATFORM_LINUX
+ 	help
+ 	  lsusb is a utility for displaying information about USB buses in the