mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH] busybox: update version 1.25.1 -> 1.26.2
@ 2017-01-12 18:40 Clemens Gruber
  2017-01-27  9:00 ` Michael Olbrich
  0 siblings, 1 reply; 3+ messages in thread
From: Clemens Gruber @ 2017-01-12 18:40 UTC (permalink / raw)
  To: ptxdist; +Cc: Clemens Gruber

Also update the busybox config tree and use the split-up IFUP and IFDOWN
symbols in initmethod-*.in.

Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
---
 config/busybox/Config.in                           | 315 +++-------
 config/busybox/archival/Config.in                  |  82 ++-
 config/busybox/console-tools/Config.in             | 103 ++--
 config/busybox/coreutils/Config.in                 | 613 +++++++++-----------
 config/busybox/findutils/Config.in                 |  20 +-
 config/busybox/init/Config.in                      |  20 +-
 config/busybox/libbb/Config.in                     | 164 +++++-
 config/busybox/mailutils/Config.in                 |  18 +-
 config/busybox/miscutils/Config.in                 | 614 ++++++++++----------
 config/busybox/modutils/Config.in                  |  81 ++-
 config/busybox/networking/Config.in                | 634 +++++++++------------
 config/busybox/networking/udhcp/Config.in          |   2 -
 config/busybox/procps/Config.in                    | 260 +++++----
 config/busybox/runit/Config.in                     |   7 +
 config/busybox/selinux/Config.in                   |  37 +-
 config/busybox/shell/Config.in                     | 232 ++++----
 config/busybox/sysklogd/Config.in                  |   1 -
 config/busybox/util-linux/Config.in                | 592 +++++++++----------
 .../0204-setfiles-fix-build-error.patch            |  27 -
 .../0200-reactivate-check-for-tty.patch            |   0
 ...mat-warning-when-building-applets-usage_p.patch |   0
 ...ystem-only-pass-real-libs-to-SELINUX_LIBS.patch |   0
 ...link-honour-SKIP_STRIP-and-don-t-strip-if.patch |   0
 patches/{busybox-1.25.1 => busybox-1.26.2}/series  |   1 -
 rules/busybox.make                                 |   4 +-
 rules/initmethod-bbinit.in                         |   3 +-
 rules/initmethod-systemd.in                        |   3 +-
 rules/util-linux-ng.in                             |   4 +-
 28 files changed, 1826 insertions(+), 2011 deletions(-)
 delete mode 100644 patches/busybox-1.25.1/0204-setfiles-fix-build-error.patch
 rename patches/{busybox-1.25.1 => busybox-1.26.2}/0200-reactivate-check-for-tty.patch (100%)
 rename patches/{busybox-1.25.1 => busybox-1.26.2}/0201-Fix-the-format-warning-when-building-applets-usage_p.patch (100%)
 rename patches/{busybox-1.25.1 => busybox-1.26.2}/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch (100%)
 rename patches/{busybox-1.25.1 => busybox-1.26.2}/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch (100%)
 rename patches/{busybox-1.25.1 => busybox-1.26.2}/series (92%)

diff --git a/config/busybox/Config.in b/config/busybox/Config.in
index 60f4da242..b8a4d795c 100644
--- a/config/busybox/Config.in
+++ b/config/busybox/Config.in
@@ -11,15 +11,18 @@ config BUSYBOX_HAVE_DOT_CONFIG
 
 menu "Busybox Settings"
 
-menu "General Configuration"
-
 config BUSYBOX_DESKTOP
 	bool "Enable options for full-blown desktop systems"
 	default y
 	help
 	  Enable options and features which are not essential.
-	  Select this only if you plan to use busybox on full-blown
-	  desktop machine with common Linux distro, not on an embedded box.
+	  Select this if you plan to use busybox on full-blown desktop machine
+	  with common Linux distro, which needs higher level of command-line
+	  compatibility.
+
+	  If you are preparing your build to be used on an embedded box
+	  where you have tighter control over the entire set of userspace
+	  tools, you can unselect this option for smaller code size. 
 
 config BUSYBOX_EXTRA_COMPAT
 	bool "Provide compatible behavior for rare corner cases (bigger code)"
@@ -58,30 +61,6 @@ config BUSYBOX_PLATFORM_LINUX
 	  Answering 'N' here will disable such applets and hide the
 	  corresponding configuration options.
 
-choice
-	prompt "Buffer allocation policy"
-	default BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
-	help
-	  There are 3 ways BusyBox can handle buffer allocations:
-	  - Use malloc. This costs code size for the call to xmalloc.
-	  - Put them on stack. For some very small machines with limited stack
-	    space, this can be deadly. For most folks, this works just fine.
-	  - Put them in BSS. This works beautifully for computers with a real
-	    MMU (and OS support), but wastes runtime RAM for uCLinux. This
-	    behavior was the only one available for BusyBox versions 0.48 and
-	    earlier.
-
-config BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
-	bool "Allocate with Malloc"
-
-config BUSYBOX_FEATURE_BUFFERS_GO_ON_STACK
-	bool "Allocate on the Stack"
-
-config BUSYBOX_FEATURE_BUFFERS_GO_IN_BSS
-	bool "Allocate in the .bss section"
-
-endchoice
-
 config BUSYBOX_SHOW_USAGE
 	bool "Show applet usage messages"
 	default y
@@ -144,131 +123,6 @@ config BUSYBOX_INSTALL_NO_USR
 	  will install applets only to /bin and /sbin,
 	  never to /usr/bin or /usr/sbin.
 
-config BUSYBOX_LOCALE_SUPPORT
-	bool "Enable locale support (system needs locale for this to work)"
-	default n
-	help
-	  Enable this if your system has locale support and you would like
-	  busybox to support locale settings.
-
-config BUSYBOX_UNICODE_SUPPORT
-	bool "Support Unicode"
-	default y
-	help
-	  This makes various applets aware that one byte is not
-	  one character on screen.
-
-	  Busybox aims to eventually work correctly with Unicode displays.
-	  Any older encodings are not guaranteed to work.
-	  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 $LC_ALL, $LC_CTYPE and $LANG environment variables"
-	default n
-	depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
-	help
-	  With this option on, Unicode support is activated
-	  only if locale-related variables have the value of the form
-	  "xxxx.utf8"
-
-	  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, on line-editing input (such as used by shells)
-	  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_PAM
 	bool "Support for PAM (Pluggable Authentication Modules)"
 	default n
@@ -276,19 +130,6 @@ config BUSYBOX_PAM
 	  Use PAM in some busybox applets (currently login and httpd) instead
 	  of direct access to password database.
 
-config BUSYBOX_FEATURE_USE_SENDFILE
-	bool "Use sendfile system call"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  When enabled, busybox will use the kernel sendfile() function
-	  instead of read/write loops to copy data between file descriptors
-	  (for example, cp command does this a lot).
-	  If sendfile() doesn't work, copying code falls back to read/write
-	  loop. sendfile() was originally implemented for faster I/O
-	  from files to sockets, but since Linux 2.6.33 it was extended
-	  to work for many more file types.
-
 config BUSYBOX_LONG_OPTS
 	bool "Support for --long-options"
 	default y
@@ -497,9 +338,7 @@ config BUSYBOX_FEATURE_HAVE_RPC
 	#  This is automatically selected if any of enabled applets need it.
 	#  You do not need to select it manually.
 
-endmenu
-
-menu 'Build Options'
+comment 'Build Options'
 
 config BUSYBOX_STATIC
 	bool "Build BusyBox as a static binary (no shared libs)"
@@ -674,9 +513,73 @@ config BUSYBOX_EXTRA_LDLIBS
 	help
 	  Additional LDLIBS to pass to the linker with -l.
 
-endmenu
+comment 'Installation Options ("make install" behavior)'
+
+choice
+	prompt "What kind of applet links to install"
+	default BUSYBOX_INSTALL_APPLET_SYMLINKS
+	help
+	  Choose what kind of links to applets are created by "make install".
+
+config BUSYBOX_INSTALL_APPLET_SYMLINKS
+	bool "as soft-links"
+	help
+	  Install applets as soft-links to the busybox binary. This needs some
+	  free inodes on the filesystem, but might help with filesystem
+	  generators that can't cope with hard-links.
+
+config BUSYBOX_INSTALL_APPLET_HARDLINKS
+	bool "as hard-links"
+	help
+	  Install applets as hard-links to the busybox binary. This might
+	  count on a filesystem with few inodes.
+
+config BUSYBOX_INSTALL_APPLET_SCRIPT_WRAPPERS
+	bool "as script wrappers"
+	help
+	  Install applets as script wrappers that call the busybox binary.
+
+config BUSYBOX_INSTALL_APPLET_DONT
+	bool "not installed"
+	help
+	  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
+
+choice
+	prompt "/bin/sh applet link"
+	default BUSYBOX_INSTALL_SH_APPLET_SYMLINK
+	depends on BUSYBOX_INSTALL_APPLET_SCRIPT_WRAPPERS
+	help
+	  Choose how you install /bin/sh applet link.
+
+config BUSYBOX_INSTALL_SH_APPLET_SYMLINK
+	bool "as soft-link"
+	help
+	  Install /bin/sh applet as soft-link to the busybox binary.
 
-menu 'Debugging Options'
+config BUSYBOX_INSTALL_SH_APPLET_HARDLINK
+	bool "as hard-link"
+	help
+	  Install /bin/sh applet as hard-link to the busybox binary.
+
+config BUSYBOX_INSTALL_SH_APPLET_SCRIPT_WRAPPER
+	bool "as script wrapper"
+	help
+	  Install /bin/sh applet as script wrapper that calls
+	  the busybox binary.
+
+endchoice
+
+config BUSYBOX_PREFIX
+	string "BusyBox installation prefix"
+	default "./_install"
+	help
+	  Define your directory to install BusyBox files/subdirs in.
+
+comment 'Debugging Options'
 
 config BUSYBOX_DEBUG
 	bool "Build BusyBox with extra Debugging symbols"
@@ -770,78 +673,8 @@ endchoice
 
 endmenu
 
-menu 'Installation Options ("make install" behavior)'
-
-choice
-	prompt "What kind of applet links to install"
-	default BUSYBOX_INSTALL_APPLET_SYMLINKS
-	help
-	  Choose what kind of links to applets are created by "make install".
-
-config BUSYBOX_INSTALL_APPLET_SYMLINKS
-	bool "as soft-links"
-	help
-	  Install applets as soft-links to the busybox binary. This needs some
-	  free inodes on the filesystem, but might help with filesystem
-	  generators that can't cope with hard-links.
-
-config BUSYBOX_INSTALL_APPLET_HARDLINKS
-	bool "as hard-links"
-	help
-	  Install applets as hard-links to the busybox binary. This might
-	  count on a filesystem with few inodes.
-
-config BUSYBOX_INSTALL_APPLET_SCRIPT_WRAPPERS
-	bool "as script wrappers"
-	help
-	  Install applets as script wrappers that call the busybox binary.
-
-config BUSYBOX_INSTALL_APPLET_DONT
-	bool "not installed"
-	help
-	  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
-
-choice
-	prompt "/bin/sh applet link"
-	default BUSYBOX_INSTALL_SH_APPLET_SYMLINK
-	depends on BUSYBOX_INSTALL_APPLET_SCRIPT_WRAPPERS
-	help
-	  Choose how you install /bin/sh applet link.
-
-config BUSYBOX_INSTALL_SH_APPLET_SYMLINK
-	bool "as soft-link"
-	help
-	  Install /bin/sh applet as soft-link to the busybox binary.
-
-config BUSYBOX_INSTALL_SH_APPLET_HARDLINK
-	bool "as hard-link"
-	help
-	  Install /bin/sh applet as hard-link to the busybox binary.
-
-config BUSYBOX_INSTALL_SH_APPLET_SCRIPT_WRAPPER
-	bool "as script wrapper"
-	help
-	  Install /bin/sh applet as script wrapper that calls
-	  the busybox binary.
-
-endchoice
-
-config BUSYBOX_PREFIX
-	string "BusyBox installation prefix"
-	default "./_install"
-	help
-	  Define your directory to install BusyBox files/subdirs in.
-
-endmenu
-
 source "config/busybox/libbb/Config.in"
 
-endmenu
-
 comment "Applets"
 
 source "config/busybox/archival/Config.in"
diff --git a/config/busybox/archival/Config.in b/config/busybox/archival/Config.in
index f8c0987df..92abf98c9 100644
--- a/config/busybox/archival/Config.in
+++ b/config/busybox/archival/Config.in
@@ -31,7 +31,7 @@ config BUSYBOX_FEATURE_SEAMLESS_GZ
 	  Make tar, rpm, modprobe etc understand .gz data.
 
 config BUSYBOX_FEATURE_SEAMLESS_Z
-	bool "tar, rpm, modprobe etc understand .Z data"
+	bool "Make tar, rpm, modprobe etc understand .Z data"
 	default n  # it is ancient
 	help
 	  Make tar, rpm, modprobe etc understand .Z data.
@@ -79,10 +79,16 @@ config BUSYBOX_GUNZIP
 	  You can use the `-t' option to test the integrity of
 	  an archive, without decompressing it.
 
+config BUSYBOX_ZCAT
+	bool "zcat"
+	default y
+	help
+	  Alias to "gunzip -c".
+
 config BUSYBOX_FEATURE_GUNZIP_LONG_OPTIONS
 	bool "Enable long options"
 	default y
-	depends on BUSYBOX_GUNZIP && BUSYBOX_LONG_OPTS
+	depends on (BUSYBOX_GUNZIP || BUSYBOX_ZCAT) && BUSYBOX_LONG_OPTS
 	help
 	  Enable use of long options.
 config BUSYBOX_BUNZIP2
@@ -97,6 +103,12 @@ config BUSYBOX_BUNZIP2
 
 	  Unless you have a specific application which requires bunzip2, you
 	  should probably say N here.
+
+config BUSYBOX_BZCAT
+	bool "bzcat"
+	default y
+	help
+	  Alias to "bunzip2 -c".
 config BUSYBOX_UNLZMA
 	bool "unlzma"
 	default y
@@ -109,31 +121,47 @@ config BUSYBOX_UNLZMA
 	  The BusyBox unlzma applet is limited to decompression only.
 	  On an x86 system, this applet adds about 4K.
 
-config BUSYBOX_FEATURE_LZMA_FAST
-	bool "Optimize unlzma for speed"
-	default n
-	depends on BUSYBOX_UNLZMA
+config BUSYBOX_LZCAT
+	bool "lzcat"
+	default y
 	help
-	  This option reduces decompression time by about 25% at the cost of
-	  a 1K bigger binary.
+	  unlzma is a compression utility using the Lempel-Ziv-Markov chain
+	  compression algorithm, and range coding. Compression
+	  is generally considerably better than that achieved by the bzip2
+	  compressors.
+
+	  The BusyBox unlzma applet is limited to decompression only.
+	  On an x86 system, this applet adds about 4K.
 
 config BUSYBOX_LZMA
-	bool "Provide lzma alias which supports only unpacking"
+	bool "lzma -d"
 	default y
-	depends on BUSYBOX_UNLZMA
 	help
 	  Enable this option if you want commands like "lzma -d" to work.
 	  IOW: you'll get lzma applet, but it will always require -d option.
+
+config BUSYBOX_FEATURE_LZMA_FAST
+	bool "Optimize unlzma for speed"
+	default n
+	depends on BUSYBOX_UNLZMA || BUSYBOX_LZCAT || BUSYBOX_LZMA
+	help
+	  This option reduces decompression time by about 25% at the cost of
+	  a 1K bigger binary.
 config BUSYBOX_UNXZ
 	bool "unxz"
 	default y
 	help
 	  unxz is a unlzma successor.
 
+config BUSYBOX_XZCAT
+	bool "xzcat"
+	default y
+	help
+	  Alias to "unxz -c".
+
 config BUSYBOX_XZ
-	bool "Provide xz alias which supports only unpacking"
+	bool "xz -d"
 	default y
-	depends on BUSYBOX_UNXZ
 	help
 	  Enable this option if you want commands like "xz -d" to work.
 	  IOW: you'll get xz applet, but it will always require -d option.
@@ -158,7 +186,7 @@ config BUSYBOX_CPIO
 	  cpio has 110 bytes of overheads for every stored file.
 
 	  This implementation of cpio can extract cpio archives created in the
-	  "newc" or "crc" format, it cannot create or modify them.
+	  "newc" or "crc" format.
 
 	  Unless you have a specific application which requires cpio, you
 	  should probably say N here.
@@ -179,7 +207,7 @@ config BUSYBOX_FEATURE_CPIO_P
 	  Passthrough mode. Rarely used.
 config BUSYBOX_DPKG
 	bool "dpkg"
-	default n
+	default y
 	select BUSYBOX_FEATURE_SEAMLESS_GZ
 	help
 	  dpkg is a medium-level tool to install, build, remove and manage
@@ -189,7 +217,7 @@ config BUSYBOX_DPKG
 	  you should use the official dpkg if possible.
 config BUSYBOX_DPKG_DEB
 	bool "dpkg_deb"
-	default n
+	default y
 	select BUSYBOX_FEATURE_SEAMLESS_GZ
 	help
 	  dpkg-deb unpacks and provides information about Debian archives.
@@ -198,16 +226,6 @@ config BUSYBOX_DPKG_DEB
 
 	  Unless you have a specific application which requires dpkg-deb,
 	  say N here.
-
-config BUSYBOX_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	bool "Extract only (-x)"
-	default n
-	depends on BUSYBOX_DPKG_DEB
-	help
-	  This reduces dpkg-deb to the equivalent of
-	  "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
-	  of the extra dpkg-deb, ar or tar options are needed, they are linked
-	  to internally.
 config BUSYBOX_GZIP
 	bool "gzip"
 	default y
@@ -249,10 +267,22 @@ config BUSYBOX_LZOP
 	help
 	  Lzop compression/decompresion.
 
+config BUSYBOX_UNLZOP
+	bool "unlzop"
+	default y
+	help
+	  Lzop decompresion.
+
+config BUSYBOX_LZOPCAT
+	bool "lzopcat"
+	default y
+	help
+	  Alias to "unlzop -c".
+
 config BUSYBOX_LZOP_COMPR_HIGH
 	bool "lzop compression levels 7,8,9 (not very useful)"
 	default n
-	depends on BUSYBOX_LZOP
+	depends on BUSYBOX_LZOP || BUSYBOX_UNLZOP || BUSYBOX_LZOPCAT
 	help
 	  High levels (7,8,9) of lzop compression. These levels
 	  are actually slower than gzip at equivalent compression ratios
diff --git a/config/busybox/console-tools/Config.in b/config/busybox/console-tools/Config.in
index 667dc8ae2..ea2e77255 100644
--- a/config/busybox/console-tools/Config.in
+++ b/config/busybox/console-tools/Config.in
@@ -6,7 +6,6 @@
 
 menu "Console Utilities"
 
-
 config BUSYBOX_CHVT
 	bool "chvt"
 	default y
@@ -14,27 +13,17 @@ config BUSYBOX_CHVT
 	help
 	  This program is used to change to another terminal.
 	  Example: chvt 4 (change to terminal /dev/tty4)
-
-config BUSYBOX_FGCONSOLE
-	bool "fgconsole"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  This program prints active (foreground) console number.
-
 config BUSYBOX_CLEAR
 	bool "clear"
 	default y
 	help
 	  This program clears the terminal screen.
-
 config BUSYBOX_DEALLOCVT
 	bool "deallocvt"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  This program deallocates unused virtual consoles.
-
 config BUSYBOX_DUMPKMAP
 	bool "dumpkmap"
 	default y
@@ -42,14 +31,18 @@ config BUSYBOX_DUMPKMAP
 	help
 	  This program dumps the kernel's keyboard translation table to
 	  stdout, in binary format. You can then use loadkmap to load it.
-
+config BUSYBOX_FGCONSOLE
+	bool "fgconsole"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  This program prints active (foreground) console number.
 config BUSYBOX_KBD_MODE
 	bool "kbd_mode"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  This program reports and sets keyboard mode.
-
 config BUSYBOX_LOADFONT
 	bool "loadfont"
 	default y
@@ -57,6 +50,44 @@ config BUSYBOX_LOADFONT
 	help
 	  This program loads a console font from standard input.
 
+config BUSYBOX_SETFONT
+	bool "setfont"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Allows to load console screen map. Useful for i18n.
+
+config BUSYBOX_FEATURE_SETFONT_TEXTUAL_MAP
+	bool "Support reading textual screen maps"
+	default y
+	depends on BUSYBOX_SETFONT
+	help
+	  Support reading textual screen maps.
+
+config BUSYBOX_DEFAULT_SETFONT_DIR
+	string "Default directory for console-tools files"
+	default ""
+	depends on BUSYBOX_SETFONT
+	help
+	  Directory to use if setfont's params are simple filenames
+	  (not /path/to/file or ./file). Default is "" (no default directory).
+
+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.
 config BUSYBOX_LOADKMAP
 	bool "loadkmap"
 	default y
@@ -64,7 +95,6 @@ config BUSYBOX_LOADKMAP
 	help
 	  This program loads a keyboard translation table from
 	  standard input.
-
 config BUSYBOX_OPENVT
 	bool "openvt"
 	default y
@@ -72,14 +102,12 @@ config BUSYBOX_OPENVT
 	help
 	  This program is used to start a command on an unused
 	  virtual terminal.
-
 config BUSYBOX_RESET
 	bool "reset"
 	default y
 	help
 	  This program is used to reset the terminal screen, if it
 	  gets messed up.
-
 config BUSYBOX_RESIZE
 	bool "resize"
 	default y
@@ -96,7 +124,6 @@ config BUSYBOX_FEATURE_RESIZE_PRINT
 	  the terminal.
 	  E.g.:
 	  COLUMNS=80;LINES=44;export COLUMNS LINES;
-
 config BUSYBOX_SETCONSOLE
 	bool "setconsole"
 	default y
@@ -111,29 +138,6 @@ config BUSYBOX_FEATURE_SETCONSOLE_LONG_OPTIONS
 	depends on BUSYBOX_SETCONSOLE && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the setconsole applet.
-
-config BUSYBOX_SETFONT
-	bool "setfont"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Allows to load console screen map. Useful for i18n.
-
-config BUSYBOX_FEATURE_SETFONT_TEXTUAL_MAP
-	bool "Support reading textual screen maps"
-	default y
-	depends on BUSYBOX_SETFONT
-	help
-	  Support reading textual screen maps.
-
-config BUSYBOX_DEFAULT_SETFONT_DIR
-	string "Default directory for console-tools files"
-	default ""
-	depends on BUSYBOX_SETFONT
-	help
-	  Directory to use if setfont's params are simple filenames
-	  (not /path/to/file or ./file). Default is "" (no default directory).
-
 config BUSYBOX_SETKEYCODES
 	bool "setkeycodes"
 	default y
@@ -141,14 +145,12 @@ config BUSYBOX_SETKEYCODES
 	help
 	  This program loads entries into the kernel's scancode-to-keycode
 	  map, allowing unusual keyboards to generate usable keycodes.
-
 config BUSYBOX_SETLOGCONS
 	bool "setlogcons"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  This program redirects the output console of kernel messages.
-
 config BUSYBOX_SHOWKEY
 	bool "showkey"
 	default y
@@ -156,21 +158,4 @@ config BUSYBOX_SHOWKEY
 	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
diff --git a/config/busybox/coreutils/Config.in b/config/busybox/coreutils/Config.in
index 98140de33..91bfc115f 100644
--- a/config/busybox/coreutils/Config.in
+++ b/config/busybox/coreutils/Config.in
@@ -13,12 +13,82 @@ config BUSYBOX_BASENAME
 	  basename is used to strip the directory and suffix from filenames,
 	  leaving just the filename itself. Enable this option if you wish
 	  to enable the 'basename' utility.
+config BUSYBOX_CAL
+	bool "cal"
+	default y
+	help
+	  cal is used to display a monthly calendar.
 config BUSYBOX_CAT
 	bool "cat"
 	default y
 	help
 	  cat is used to concatenate files and print them to the standard
 	  output. Enable this option if you wish to enable the 'cat' utility.
+config BUSYBOX_CATV
+	bool "catv"
+	default y
+	help
+	  Display nonprinting characters as escape sequences (like some
+	  implementations' cat -v option).
+config BUSYBOX_CHGRP
+	bool "chgrp"
+	default y
+	help
+	  chgrp is used to change the group ownership of files.
+config BUSYBOX_CHMOD
+	bool "chmod"
+	default y
+	help
+	  chmod is used to change the access permission of files.
+config BUSYBOX_CHOWN
+	bool "chown"
+	default y
+	help
+	  chown is used to change the user and/or group ownership
+	  of files.
+
+config BUSYBOX_FEATURE_CHOWN_LONG_OPTIONS
+	bool "Enable long options"
+	default y
+	depends on BUSYBOX_CHOWN && BUSYBOX_LONG_OPTS
+	help
+	  Enable use of long options
+config BUSYBOX_CHROOT
+	bool "chroot"
+	default y
+	help
+	  chroot is used to change the root directory and run a command.
+	  The default command is `/bin/sh'.
+config BUSYBOX_CKSUM
+	bool "cksum"
+	default y
+	help
+	  cksum is used to calculate the CRC32 checksum of a file.
+config BUSYBOX_COMM
+	bool "comm"
+	default y
+	help
+	  comm is used to compare two files line by line and return
+	  a three-column output.
+config BUSYBOX_CP
+	bool "cp"
+	default y
+	help
+	  cp is used to copy files and directories.
+
+config BUSYBOX_FEATURE_CP_LONG_OPTIONS
+	bool "Enable long options for cp"
+	default y
+	depends on BUSYBOX_CP && BUSYBOX_LONG_OPTS
+	help
+	  Enable long options for cp.
+	  Also add support for --parents option.
+config BUSYBOX_CUT
+	bool "cut"
+	default y
+	help
+	  cut is used to print selected parts of lines from
+	  each file to stdout.
 config BUSYBOX_DATE
 	bool "date"
 	default y
@@ -102,231 +172,6 @@ config BUSYBOX_FEATURE_DD_STATUS
 	depends on BUSYBOX_DD
 	help
 	  Enables support for status=noxfer/none option.
-config BUSYBOX_HOSTID
-	bool "hostid"
-	default y
-	help
-	  hostid prints the numeric identifier (in hexadecimal) for
-	  the current host.
-config BUSYBOX_ID
-	bool "id"
-	default y
-	help
-	  id displays the current user and group ID names.
-config BUSYBOX_GROUPS
-	bool "groups"
-	default y
-	help
-	  Print the group names associated with current user id.
-config BUSYBOX_SHUF
-	bool "shuf"
-	default y
-	help
-	  Generate random permutations
-config BUSYBOX_STAT
-	bool "stat"
-	default y
-	help
-	  display file or filesystem status.
-
-config BUSYBOX_FEATURE_STAT_FORMAT
-	bool "Enable custom formats (-c)"
-	default y
-	depends on BUSYBOX_STAT
-	help
-	  Without this, stat will not support the '-c format' option where
-	  users can pass a custom format string for output. This adds about
-	  7k to a nonstatic build on amd64.
-
-config BUSYBOX_FEATURE_STAT_FILESYSTEM
-	bool "Enable display of filesystem status (-f)"
-	default y
-	depends on BUSYBOX_STAT
-	select BUSYBOX_PLATFORM_LINUX # statfs()
-	help
-	  Without this, stat will not support the '-f' option to display
-	  information about filesystem status.
-config BUSYBOX_SYNC
-	bool "sync"
-	default y
-	help
-	  sync is used to flush filesystem buffers.
-config BUSYBOX_FEATURE_SYNC_FANCY
-	bool "Enable -d and -f flags (requres syncfs(2) in libc)"
-	default y
-	depends on BUSYBOX_SYNC
-	help
-	  sync -d FILE... executes fdatasync() on each FILE.
-	  sync -f FILE... executes syncfs() on each FILE.
-config BUSYBOX_TEST
-	bool "test"
-	default y
-	help
-	  test is used to check file types and compare values,
-	  returning an appropriate exit code. The bash shell
-	  has test built in, ash can build it in optionally.
-
-config BUSYBOX_FEATURE_TEST_64
-	bool "Extend test to 64 bit"
-	default y
-	depends on BUSYBOX_TEST || BUSYBOX_ASH_BUILTIN_TEST || BUSYBOX_HUSH
-	help
-	  Enable 64-bit support in test.
-config BUSYBOX_TOUCH
-	bool "touch"
-	default y
-	help
-	  touch is used to create or change the access and/or
-	  modification timestamp of specified files.
-
-config BUSYBOX_FEATURE_TOUCH_NODEREF
-	bool "Add support for -h"
-	default y
-	depends on BUSYBOX_TOUCH
-	help
-	  Enable touch to have the -h option.
-	  This requires libc support for lutimes() function.
-
-config BUSYBOX_FEATURE_TOUCH_SUSV3
-	bool "Add support for SUSV3 features (-d -t -r)"
-	default y
-	depends on BUSYBOX_TOUCH
-	help
-	  Enable touch to use a reference file or a given date/time argument.
-config BUSYBOX_TR
-	bool "tr"
-	default y
-	help
-	  tr is used to squeeze, and/or delete characters from standard
-	  input, writing to standard output.
-
-config BUSYBOX_FEATURE_TR_CLASSES
-	bool "Enable character classes (such as [:upper:])"
-	default y
-	depends on BUSYBOX_TR
-	help
-	  Enable character classes, enabling commands such as:
-	  tr [:upper:] [:lower:] to convert input into lowercase.
-
-config BUSYBOX_FEATURE_TR_EQUIV
-	bool "Enable equivalence classes"
-	default y
-	depends on BUSYBOX_TR
-	help
-	  Enable equivalence classes, which essentially add the enclosed
-	  character to the current set. For instance, tr [=a=] xyz would
-	  replace all instances of 'a' with 'xyz'. This option is mainly
-	  useful for cases when no other way of expressing a character
-	  is possible.
-config BUSYBOX_TRUNCATE
-	bool "truncate"
-	default y
-	help
-	  truncate truncates files to a given size. If a file does
-	  not exist, it is created unless told otherwise.
-config BUSYBOX_UNLINK
-	bool "unlink"
-	default y
-	help
-	  unlink deletes a file by calling unlink()
-config BUSYBOX_BASE64
-	bool "base64"
-	default y
-	help
-	  Base64 encode and decode
-config BUSYBOX_WHO
-      bool "who"
-      default y
-      depends on BUSYBOX_FEATURE_UTMP
-      help
-        who is used to show who is logged on.
-config BUSYBOX_USERS
-      bool "users"
-      default y
-      depends on BUSYBOX_FEATURE_UTMP
-      help
-        Print users currently logged on.
-
-config BUSYBOX_CAL
-	bool "cal"
-	default y
-	help
-	  cal is used to display a monthly calendar.
-
-config BUSYBOX_CATV
-	bool "catv"
-	default y
-	help
-	  Display nonprinting characters as escape sequences (like some
-	  implementations' cat -v option).
-
-config BUSYBOX_CHGRP
-	bool "chgrp"
-	default y
-	help
-	  chgrp is used to change the group ownership of files.
-
-config BUSYBOX_CHMOD
-	bool "chmod"
-	default y
-	help
-	  chmod is used to change the access permission of files.
-
-config BUSYBOX_CHOWN
-	bool "chown"
-	default y
-	help
-	  chown is used to change the user and/or group ownership
-	  of files.
-
-config BUSYBOX_FEATURE_CHOWN_LONG_OPTIONS
-	bool "Enable long options"
-	default y
-	depends on BUSYBOX_CHOWN && BUSYBOX_LONG_OPTS
-	help
-	  Enable use of long options
-
-config BUSYBOX_CHROOT
-	bool "chroot"
-	default y
-	help
-	  chroot is used to change the root directory and run a command.
-	  The default command is `/bin/sh'.
-
-config BUSYBOX_CKSUM
-	bool "cksum"
-	default y
-	help
-	  cksum is used to calculate the CRC32 checksum of a file.
-
-config BUSYBOX_COMM
-	bool "comm"
-	default y
-	help
-	  comm is used to compare two files line by line and return
-	  a three-column output.
-
-config BUSYBOX_CP
-	bool "cp"
-	default y
-	help
-	  cp is used to copy files and directories.
-
-config BUSYBOX_FEATURE_CP_LONG_OPTIONS
-	bool "Enable long options for cp"
-	default y
-	depends on BUSYBOX_CP && BUSYBOX_LONG_OPTS
-	help
-	  Enable long options for cp.
-	  Also add support for --parents option.
-
-config BUSYBOX_CUT
-	bool "cut"
-	default y
-	help
-	  cut is used to print selected parts of lines from
-	  each file to stdout.
-
 config BUSYBOX_DF
 	bool "df"
 	default y
@@ -344,29 +189,25 @@ config BUSYBOX_FEATURE_DF_FANCY
 	    -a Show all filesystems
 	    -i Inodes
 	    -B <SIZE> Blocksize
-
 config BUSYBOX_DIRNAME
 	bool "dirname"
 	default y
 	help
 	  dirname is used to strip a non-directory suffix from
 	  a file name.
-
 config BUSYBOX_DOS2UNIX
-	bool "dos2unix/unix2dos"
+	bool "dos2unix"
 	default y
 	help
 	  dos2unix is used to convert a text file from DOS format to
 	  UNIX format, and vice versa.
 
 config BUSYBOX_UNIX2DOS
-	bool
+	bool "unix2dos"
 	default y
-	depends on BUSYBOX_DOS2UNIX
 	help
 	  unix2dos is used to convert a text file from UNIX format to
 	  DOS format, and vice versa.
-
 config BUSYBOX_DU
 	bool "du (default blocksize of 512 bytes)"
 	default y
@@ -380,7 +221,6 @@ config BUSYBOX_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
 	depends on BUSYBOX_DU
 	help
 	  Use a blocksize of (1K) instead of the default 512b.
-
 config BUSYBOX_ECHO
 	bool "echo (basic SuSv3 version taking no options)"
 	default y
@@ -394,7 +234,6 @@ config BUSYBOX_FEATURE_FANCY_ECHO
 	depends on BUSYBOX_ECHO || BUSYBOX_ASH_BUILTIN_ECHO || BUSYBOX_HUSH
 	help
 	  This adds options (-n and -e) to echo.
-
 config BUSYBOX_ENV
 	bool "env"
 	default y
@@ -409,7 +248,6 @@ config BUSYBOX_FEATURE_ENV_LONG_OPTIONS
 	depends on BUSYBOX_ENV && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the env applet.
-
 config BUSYBOX_EXPAND
 	bool "expand"
 	default y
@@ -423,6 +261,18 @@ config BUSYBOX_FEATURE_EXPAND_LONG_OPTIONS
 	help
 	  Support long options for the expand applet.
 
+config BUSYBOX_UNEXPAND
+	bool "unexpand"
+	default y
+	help
+	  By default, convert only leading sequences of blanks to tabs.
+
+config BUSYBOX_FEATURE_UNEXPAND_LONG_OPTIONS
+	bool "Enable long options"
+	default y
+	depends on BUSYBOX_UNEXPAND && BUSYBOX_LONG_OPTS
+	help
+	  Support long options for the unexpand applet.
 config BUSYBOX_EXPR
 	bool "expr"
 	default y
@@ -438,39 +288,51 @@ config BUSYBOX_EXPR_MATH_SUPPORT_64
 	  Enable 64-bit math support in the expr applet. This will make
 	  the applet slightly larger, but will allow computation with very
 	  large numbers.
-
 config BUSYBOX_FALSE
 	bool "false"
 	default y
 	help
 	  false returns an exit code of FALSE (1).
-
 config BUSYBOX_FOLD
 	bool "fold"
 	default y
 	help
 	  Wrap text to fit a specific width.
-
 config BUSYBOX_FSYNC
 	bool "fsync"
 	default y
 	help
 	  fsync is used to flush file-related cached blocks to disk.
-
 config BUSYBOX_HEAD
 	bool "head"
 	default y
 	help
-	  head is used to print the first specified number of lines
-	  from files.
+	  head is used to print the first specified number of lines
+	  from files.
+
+config BUSYBOX_FEATURE_FANCY_HEAD
+	bool "Enable head options (-c, -q, and -v)"
+	default y
+	depends on BUSYBOX_HEAD
+	help
+	  This enables the head options (-c, -q, and -v).
+config BUSYBOX_HOSTID
+	bool "hostid"
+	default y
+	help
+	  hostid prints the numeric identifier (in hexadecimal) for
+	  the current host.
+config BUSYBOX_ID
+	bool "id"
+	default y
+	help
+	  id displays the current user and group ID names.
 
-config BUSYBOX_FEATURE_FANCY_HEAD
-	bool "Enable head options (-c, -q, and -v)"
+config BUSYBOX_GROUPS
+	bool "groups"
 	default y
-	depends on BUSYBOX_HEAD
 	help
-	  This enables the head options (-c, -q, and -v).
-
+	  Print the group names associated with current user id.
 config BUSYBOX_INSTALL
 	bool "install"
 	default y
@@ -483,25 +345,16 @@ config BUSYBOX_FEATURE_INSTALL_LONG_OPTIONS
 	depends on BUSYBOX_INSTALL && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the install applet.
-
-####config LENGTH
-####	bool "length"
-####	default y
-####	help
-####	  length is used to print out the length of a specified string.
-
 config BUSYBOX_LN
 	bool "ln"
 	default y
 	help
 	  ln is used to create hard or soft links between files.
-
 config BUSYBOX_LOGNAME
 	bool "logname"
 	default y
 	help
 	  logname is used to print the current user's login name.
-
 config BUSYBOX_LS
 	bool "ls"
 	default y
@@ -567,13 +420,48 @@ config BUSYBOX_FEATURE_LS_COLOR_IS_DEFAULT
 	  This is not recommended, since the colors are not
 	  configurable, and the output may not be legible on
 	  many output screens.
-
 config BUSYBOX_MD5SUM
 	bool "md5sum"
 	default y
 	help
 	  md5sum is used to print or check MD5 checksums.
 
+config BUSYBOX_SHA1SUM
+	bool "sha1sum"
+	default y
+	help
+	  Compute and check SHA1 message digest
+
+config BUSYBOX_SHA256SUM
+	bool "sha256sum"
+	default y
+	help
+	  Compute and check SHA256 message digest
+
+config BUSYBOX_SHA512SUM
+	bool "sha512sum"
+	default y
+	help
+	  Compute and check SHA512 message digest
+
+config BUSYBOX_SHA3SUM
+	bool "sha3sum"
+	default y
+	help
+	  Compute and check SHA3 message digest
+
+comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
+	depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
+
+config BUSYBOX_FEATURE_MD5_SHA1_SUM_CHECK
+	bool "Enable -c, -s and -w options"
+	default y
+	depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
+	help
+	  Enabling the -c options allows files to be checked
+	  against pre-calculated hash values.
+
+	  -s and -w are useful options when verifying checksums.
 config BUSYBOX_MKDIR
 	bool "mkdir"
 	default y
@@ -586,21 +474,18 @@ config BUSYBOX_FEATURE_MKDIR_LONG_OPTIONS
 	depends on BUSYBOX_MKDIR && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the mkdir applet.
-
 config BUSYBOX_MKFIFO
 	bool "mkfifo"
 	default y
 	help
 	  mkfifo is used to create FIFOs (named pipes).
-	  The `mknod' program can also create FIFOs.
-
+	  The 'mknod' program can also create FIFOs.
 config BUSYBOX_MKNOD
 	bool "mknod"
 	default y
 	help
 	  mknod is used to create FIFOs or block/character special
 	  files with the specified names.
-
 config BUSYBOX_MV
 	bool "mv"
 	default y
@@ -613,44 +498,37 @@ config BUSYBOX_FEATURE_MV_LONG_OPTIONS
 	depends on BUSYBOX_MV && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the mv applet.
-
 config BUSYBOX_NICE
 	bool "nice"
 	default y
 	help
 	  nice runs a program with modified scheduling priority.
-
 config BUSYBOX_NOHUP
 	bool "nohup"
 	default y
 	help
 	  run a command immune to hangups, with output to a non-tty.
-
 config BUSYBOX_OD
 	bool "od"
 	default y
 	help
 	  od is used to dump binary files in octal and other formats.
-
 config BUSYBOX_PRINTENV
 	bool "printenv"
 	default y
 	help
 	  printenv is used to print all or part of environment.
-
 config BUSYBOX_PRINTF
 	bool "printf"
 	default y
 	help
 	  printf is used to format and print specified strings.
 	  It's similar to `echo' except it has more options.
-
 config BUSYBOX_PWD
 	bool "pwd"
 	default y
 	help
 	  pwd is used to print the current directory.
-
 config BUSYBOX_READLINK
 	bool "readlink"
 	default y
@@ -664,20 +542,17 @@ config BUSYBOX_FEATURE_READLINK_FOLLOW
 	depends on BUSYBOX_READLINK
 	help
 	  Enable the readlink option (-f).
-
 config BUSYBOX_REALPATH
 	bool "realpath"
 	default y
 	help
 	  Return the canonicalized absolute pathname.
 	  This isn't provided by GNU shellutils, but where else does it belong.
-
 config BUSYBOX_RM
 	bool "rm"
 	default y
 	help
 	  rm is used to remove files or directories.
-
 config BUSYBOX_RMDIR
 	bool "rmdir"
 	default y
@@ -691,37 +566,16 @@ config BUSYBOX_FEATURE_RMDIR_LONG_OPTIONS
 	help
 	  Support long options for the rmdir applet, including
 	  --ignore-fail-on-non-empty for compatibility with GNU rmdir.
-
 config BUSYBOX_SEQ
 	bool "seq"
 	default y
 	help
 	  print a sequence of numbers
-
-config BUSYBOX_SHA1SUM
-	bool "sha1sum"
-	default y
-	help
-	  Compute and check SHA1 message digest
-
-config BUSYBOX_SHA256SUM
-	bool "sha256sum"
-	default y
-	help
-	  Compute and check SHA256 message digest
-
-config BUSYBOX_SHA512SUM
-	bool "sha512sum"
-	default y
-	help
-	  Compute and check SHA512 message digest
-
-config BUSYBOX_SHA3SUM
-	bool "sha3sum"
+config BUSYBOX_SHUF
+	bool "shuf"
 	default y
 	help
-	  Compute and check SHA3 (512-bit) message digest
-
+	  Generate random permutations
 config BUSYBOX_SLEEP
 	bool "sleep"
 	default y
@@ -749,7 +603,6 @@ config BUSYBOX_FEATURE_FLOAT_SLEEP
 	depends on BUSYBOX_FEATURE_FANCY_SLEEP
 	help
 	  Allow for fractional numeric parameters.
-
 config BUSYBOX_SORT
 	bool "sort"
 	default y
@@ -767,7 +620,6 @@ config BUSYBOX_FEATURE_SORT_BIG
 
 	  The SuSv3 sort standard is available at:
 	  http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
-
 config BUSYBOX_SPLIT
 	bool "split"
 	default y
@@ -782,25 +634,56 @@ config BUSYBOX_FEATURE_SPLIT_FANCY
 	  Add support for features not required by SUSv3.
 	  Supports additional suffixes 'b' for 512 bytes,
 	  'g' for 1GiB for the -b option.
+config BUSYBOX_STAT
+	bool "stat"
+	default y
+	help
+	  display file or filesystem status.
+
+config BUSYBOX_FEATURE_STAT_FORMAT
+	bool "Enable custom formats (-c)"
+	default y
+	depends on BUSYBOX_STAT
+	help
+	  Without this, stat will not support the '-c format' option where
+	  users can pass a custom format string for output. This adds about
+	  7k to a nonstatic build on amd64.
 
+config BUSYBOX_FEATURE_STAT_FILESYSTEM
+	bool "Enable display of filesystem status (-f)"
+	default y
+	depends on BUSYBOX_STAT
+	select BUSYBOX_PLATFORM_LINUX # statfs()
+	help
+	  Without this, stat will not support the '-f' option to display
+	  information about filesystem status.
 config BUSYBOX_STTY
 	bool "stty"
 	default y
 	help
 	  stty is used to change and print terminal line settings.
-
 config BUSYBOX_SUM
 	bool "sum"
 	default y
 	help
 	  checksum and count the blocks in a file
-
+config BUSYBOX_SYNC
+	bool "sync"
+	default y
+	help
+	  sync is used to flush filesystem buffers.
+config BUSYBOX_FEATURE_SYNC_FANCY
+	bool "Enable -d and -f flags (requires syncfs(2) in libc)"
+	default y
+	depends on BUSYBOX_SYNC
+	help
+	  sync -d FILE... executes fdatasync() on each FILE.
+	  sync -f FILE... executes syncfs() on each FILE.
 config BUSYBOX_TAC
 	bool "tac"
 	default y
 	help
 	  tac is used to concatenate and print files in reverse.
-
 config BUSYBOX_TAIL
 	bool "tail"
 	default y
@@ -820,7 +703,6 @@ config BUSYBOX_FEATURE_FANCY_TAIL
 	    -s SEC  Wait SEC seconds between reads with -f
 	    -v      Always output headers giving file names
 	    -F      Same as -f, but keep retrying
-
 config BUSYBOX_TEE
 	bool "tee"
 	default y
@@ -834,20 +716,95 @@ config BUSYBOX_FEATURE_TEE_USE_BLOCK_IO
 	depends on BUSYBOX_TEE
 	help
 	  Enable this option for a faster tee, at expense of size.
+config BUSYBOX_TEST
+	bool "test"
+	default y
+	help
+	  test is used to check file types and compare values,
+	  returning an appropriate exit code. The bash shell
+	  has test built in, ash can build it in optionally.
+
+config BUSYBOX_TEST1
+	bool "test as ["
+	default y
+	help
+	  Provide test command in the "[ EXPR ]" form
+
+config BUSYBOX_TEST2
+	bool "test as [["
+	default y
+	help
+	  Provide test command in the "[[ EXPR ]]" form
+
+config BUSYBOX_FEATURE_TEST_64
+	bool "Extend test to 64 bit"
+	default y
+	depends on BUSYBOX_TEST || BUSYBOX_TEST1 || BUSYBOX_TEST2 || BUSYBOX_ASH_BUILTIN_TEST || BUSYBOX_HUSH
+	help
+	  Enable 64-bit support in test.
+config BUSYBOX_TOUCH
+	bool "touch"
+	default y
+	help
+	  touch is used to create or change the access and/or
+	  modification timestamp of specified files.
+
+config BUSYBOX_FEATURE_TOUCH_NODEREF
+	bool "Add support for -h"
+	default y
+	depends on BUSYBOX_TOUCH
+	help
+	  Enable touch to have the -h option.
+	  This requires libc support for lutimes() function.
+
+config BUSYBOX_FEATURE_TOUCH_SUSV3
+	bool "Add support for SUSV3 features (-d -t -r)"
+	default y
+	depends on BUSYBOX_TOUCH
+	help
+	  Enable touch to use a reference file or a given date/time argument.
+config BUSYBOX_TR
+	bool "tr"
+	default y
+	help
+	  tr is used to squeeze, and/or delete characters from standard
+	  input, writing to standard output.
 
+config BUSYBOX_FEATURE_TR_CLASSES
+	bool "Enable character classes (such as [:upper:])"
+	default y
+	depends on BUSYBOX_TR
+	help
+	  Enable character classes, enabling commands such as:
+	  tr [:upper:] [:lower:] to convert input into lowercase.
+
+config BUSYBOX_FEATURE_TR_EQUIV
+	bool "Enable equivalence classes"
+	default y
+	depends on BUSYBOX_TR
+	help
+	  Enable equivalence classes, which essentially add the enclosed
+	  character to the current set. For instance, tr [=a=] xyz would
+	  replace all instances of 'a' with 'xyz'. This option is mainly
+	  useful for cases when no other way of expressing a character
+	  is possible.
 config BUSYBOX_TRUE
 	bool "true"
 	default y
 	help
 	  true returns an exit code of TRUE (0).
-
+config BUSYBOX_TRUNCATE
+	bool "truncate"
+	default y
+	help
+	  truncate truncates files to a given size. If a file does
+	  not exist, it is created unless told otherwise.
 config BUSYBOX_TTY
 	bool "tty"
 	default y
 	help
 	  tty is used to print the name of the current terminal to
 	  standard output.
-
 config BUSYBOX_UNAME
 	bool "uname"
 	default y
@@ -861,44 +818,36 @@ config BUSYBOX_UNAME_OSNAME
 	help
 	  Sets the operating system name reported by uname -o.  The
 	  default is "
-
-config BUSYBOX_UNEXPAND
-	bool "unexpand"
-	default y
-	help
-	  By default, convert only leading sequences of blanks to tabs.
-
-config BUSYBOX_FEATURE_UNEXPAND_LONG_OPTIONS
-	bool "Enable long options"
-	default y
-	depends on BUSYBOX_UNEXPAND && BUSYBOX_LONG_OPTS
-	help
-	  Support long options for the unexpand applet.
-
 config BUSYBOX_UNIQ
 	bool "uniq"
 	default y
 	help
 	  uniq is used to remove duplicate lines from a sorted file.
-
+config BUSYBOX_UNLINK
+	bool "unlink"
+	default y
+	help
+	  unlink deletes a file by calling unlink()
 config BUSYBOX_USLEEP
 	bool "usleep"
 	default y
 	help
 	  usleep is used to pause for a specified number of microseconds.
-
 config BUSYBOX_UUDECODE
 	bool "uudecode"
 	default y
 	help
 	  uudecode is used to decode a uuencoded file.
-
+config BUSYBOX_BASE64
+	bool "base64"
+	default y
+	help
+	  Base64 encode and decode
 config BUSYBOX_UUENCODE
 	bool "uuencode"
 	default y
 	help
 	  uuencode is used to uuencode a file.
-
 config BUSYBOX_WC
 	bool "wc"
 	default y
@@ -912,14 +861,25 @@ config BUSYBOX_FEATURE_WC_LARGE
 	depends on BUSYBOX_WC
 	help
 	  Use "unsigned long long" in wc for counter variables.
+config BUSYBOX_WHO
+      bool "who"
+      default y
+      depends on BUSYBOX_FEATURE_UTMP
+      help
+        who is used to show who is logged on.
 
+config BUSYBOX_USERS
+      bool "users"
+      default y
+      depends on BUSYBOX_FEATURE_UTMP
+      help
+        Print users currently logged on.
 config BUSYBOX_WHOAMI
 	bool "whoami"
 	default y
 	help
 	  whoami is used to print the username of the current
 	  user id (same as id -un).
-
 config BUSYBOX_YES
 	bool "yes"
 	default y
@@ -971,17 +931,4 @@ config BUSYBOX_FEATURE_HUMAN_READABLE
 	help
 	  Allow df, du, and ls to have human readable output.
 
-comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
-	depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
-
-config BUSYBOX_FEATURE_MD5_SHA1_SUM_CHECK
-	bool "Enable -c, -s and -w options"
-	default y
-	depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
-	help
-	  Enabling the -c options allows files to be checked
-	  against pre-calculated hash values.
-
-	  -s and -w are useful options when verifying checksums.
-
 endmenu
diff --git a/config/busybox/findutils/Config.in b/config/busybox/findutils/Config.in
index a980c79ed..26de6c83f 100644
--- a/config/busybox/findutils/Config.in
+++ b/config/busybox/findutils/Config.in
@@ -194,28 +194,22 @@ config BUSYBOX_GREP
 	help
 	  grep is used to search files for a specified pattern.
 
-config BUSYBOX_FEATURE_GREP_EGREP_ALIAS
-	bool "Enable extended regular expressions (egrep & grep -E)"
+config BUSYBOX_EGREP
+	bool "egrep"
 	default y
-	depends on BUSYBOX_GREP
 	help
-	  Enabled support for extended regular expressions. Extended
-	  regular expressions allow for alternation (foo|bar), grouping,
-	  and various repetition operators.
+	  Alias to "grep -E"
 
-config BUSYBOX_FEATURE_GREP_FGREP_ALIAS
-	bool "Alias fgrep to grep -F"
+config BUSYBOX_FGREP
+	bool "fgrep"
 	default y
-	depends on BUSYBOX_GREP
 	help
-	  fgrep sees the search pattern as a normal string rather than
-	  regular expressions.
-	  grep -F always works, this just creates the fgrep alias.
+	  Alias to "grep -F"
 
 config BUSYBOX_FEATURE_GREP_CONTEXT
 	bool "Enable before and after context flags (-A, -B and -C)"
 	default y
-	depends on BUSYBOX_GREP
+	depends on BUSYBOX_GREP || BUSYBOX_EGREP
 	help
 	  Print the specified number of leading (-B) and/or trailing (-A)
 	  context surrounding our matching lines.
diff --git a/config/busybox/init/Config.in b/config/busybox/init/Config.in
index e6c9d3357..70bac7d4d 100644
--- a/config/busybox/init/Config.in
+++ b/config/busybox/init/Config.in
@@ -45,15 +45,27 @@ config BUSYBOX_FEATURE_BOOTCHARTD_CONFIG_FILE
 	  Enable reading and parsing of $PWD/bootchartd.conf
 	  and /etc/bootchartd.conf files.
 config BUSYBOX_HALT
-	bool "poweroff, halt, and reboot"
+	bool "halt"
 	default y
 	help
-	  Stop all processes and either halt, reboot, or power off the system.
+	  Stop all processes and halt the system.
+
+config BUSYBOX_POWEROFF
+	bool "poweroff"
+	default y
+	help
+	  Stop all processes and power off the system.
+
+config BUSYBOX_REBOOT
+	bool "reboot"
+	default y
+	help
+	  Stop all processes and reboot the system.
 
 config BUSYBOX_FEATURE_CALL_TELINIT
 	bool "Call telinit on shutdown and reboot"
 	default y
-	depends on BUSYBOX_HALT && !BUSYBOX_INIT
+	depends on (BUSYBOX_HALT || BUSYBOX_POWEROFF || BUSYBOX_REBOOT) && !BUSYBOX_INIT
 	help
 	  Call an external program (normally telinit) to facilitate
 	  a switch to a proper runlevel.
@@ -143,7 +155,7 @@ config BUSYBOX_FEATURE_EXTRA_QUIET
 
 config BUSYBOX_FEATURE_INIT_COREDUMPS
 	bool "Support dumping core for child processes (debugging only)"
-	default y
+	default n	# not Y because this is a debug option
 	depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
 	help
 	  If this option is enabled and the file /.init_enable_core
diff --git a/config/busybox/libbb/Config.in b/config/busybox/libbb/Config.in
index 7ce8693d4..967442436 100644
--- a/config/busybox/libbb/Config.in
+++ b/config/busybox/libbb/Config.in
@@ -45,6 +45,30 @@ config BUSYBOX_FEATURE_RTMINMAX
 	  Support RTMIN[+n] and RTMAX[-n] signal names
 	  in kill, killall etc. This costs ~250 bytes.
 
+choice
+	prompt "Buffer allocation policy"
+	default BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
+	help
+	  There are 3 ways BusyBox can handle buffer allocations:
+	  - Use malloc. This costs code size for the call to xmalloc.
+	  - Put them on stack. For some very small machines with limited stack
+	    space, this can be deadly. For most folks, this works just fine.
+	  - Put them in BSS. This works beautifully for computers with a real
+	    MMU (and OS support), but wastes runtime RAM for uCLinux. This
+	    behavior was the only one available for BusyBox versions 0.48 and
+	    earlier.
+
+config BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
+	bool "Allocate with Malloc"
+
+config BUSYBOX_FEATURE_BUFFERS_GO_ON_STACK
+	bool "Allocate on the Stack"
+
+config BUSYBOX_FEATURE_BUFFERS_GO_IN_BSS
+	bool "Allocate in the .bss section"
+
+endchoice
+
 config BUSYBOX_PASSWORD_MINLEN
 	int "Minimum password length"
 	default 6
@@ -166,7 +190,7 @@ config BUSYBOX_FEATURE_TAB_COMPLETION
 
 config BUSYBOX_FEATURE_USERNAME_COMPLETION
 	bool "Username completion"
-	default n
+	default y
 	depends on BUSYBOX_FEATURE_TAB_COMPLETION
 	help
 	  Enable username completion.
@@ -191,6 +215,131 @@ config BUSYBOX_FEATURE_EDITING_ASK_TERMINAL
 	  correctly, or want to save on code size (about 400 bytes),
 	  then do not turn this option on.
 
+config BUSYBOX_LOCALE_SUPPORT
+	bool "Enable locale support (system needs locale for this to work)"
+	default n
+	help
+	  Enable this if your system has locale support and you would like
+	  busybox to support locale settings.
+
+config BUSYBOX_UNICODE_SUPPORT
+	bool "Support Unicode"
+	default y
+	help
+	  This makes various applets aware that one byte is not
+	  one character on screen.
+
+	  Busybox aims to eventually work correctly with Unicode displays.
+	  Any older encodings are not guaranteed to work.
+	  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 $LC_ALL, $LC_CTYPE and $LANG environment variables"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
+	help
+	  With this option on, Unicode support is activated
+	  only if locale-related variables have the value of the form
+	  "xxxx.utf8"
+
+	  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 characters with substitution character.
+
+	  The idea is that many valid printable Unicode chars
+	  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, on line-editing input (such as used by shells)
+	  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_FEATURE_NON_POSIX_CP
 	bool "Non-POSIX, but safer, copying to special nodes"
 	default y
@@ -215,6 +364,19 @@ config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
 	    cp: cannot stat '/vmlinuz/file': Not a directory
 	  This will cost you ~60 bytes.
 
+config BUSYBOX_FEATURE_USE_SENDFILE
+	bool "Use sendfile system call"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  When enabled, busybox will use the kernel sendfile() function
+	  instead of read/write loops to copy data between file descriptors
+	  (for example, cp command does this a lot).
+	  If sendfile() doesn't work, copying code falls back to read/write
+	  loop. sendfile() was originally implemented for faster I/O
+	  from files to sockets, but since Linux 2.6.33 it was extended
+	  to work for many more file types.
+
 config BUSYBOX_FEATURE_COPYBUF_KB
 	int "Copy buffer size, in kilobytes"
 	range 1 1024
diff --git a/config/busybox/mailutils/Config.in b/config/busybox/mailutils/Config.in
index 1bcff4139..5cc8bc322 100644
--- a/config/busybox/mailutils/Config.in
+++ b/config/busybox/mailutils/Config.in
@@ -1,20 +1,11 @@
 # DO NOT EDIT. This file is generated from Config.src
 menu "Mail Utilities"
 
-
 config BUSYBOX_MAKEMIME
 	bool "makemime"
 	default y
 	help
 	  Create MIME-formatted messages.
-
-config BUSYBOX_FEATURE_MIME_CHARSET
-	string "Default charset"
-	default "us-ascii"
-	depends on BUSYBOX_MAKEMIME || BUSYBOX_REFORMIME || BUSYBOX_SENDMAIL
-	help
-	  Default charset of the message.
-
 config BUSYBOX_POPMAILDIR
 	bool "popmaildir"
 	default y
@@ -31,7 +22,6 @@ config BUSYBOX_FEATURE_POPMAILDIR_DELIVERY
 	  of the message before actual delivery (-F "prog [args...]").
 	  Allow to use a custom program for message actual delivery
 	  (-M "prog [args...]").
-
 config BUSYBOX_REFORMIME
 	bool "reformime"
 	default y
@@ -45,11 +35,17 @@ config BUSYBOX_FEATURE_REFORMIME_COMPAT
 	help
 	  Accept (for compatibility only) and ignore options
 	  other than -x and -X.
-
 config BUSYBOX_SENDMAIL
 	bool "sendmail"
 	default y
 	help
 	  Barebones sendmail.
 
+config BUSYBOX_FEATURE_MIME_CHARSET
+	string "Default charset"
+	default "us-ascii"
+	depends on BUSYBOX_MAKEMIME || BUSYBOX_REFORMIME || BUSYBOX_SENDMAIL
+	help
+	  Default charset of the message.
+
 endmenu
diff --git a/config/busybox/miscutils/Config.in b/config/busybox/miscutils/Config.in
index 40b586f2b..311003f8e 100644
--- a/config/busybox/miscutils/Config.in
+++ b/config/busybox/miscutils/Config.in
@@ -6,259 +6,6 @@
 
 menu "Miscellaneous Utilities"
 
-config BUSYBOX_CONSPY
-	bool "conspy"
-	default y
-	select 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_CROND
-	bool "crond"
-	default y
-	select BUSYBOX_FEATURE_SYSLOG
-	help
-	  Crond is a background daemon that parses individual crontab
-	  files and executes commands on behalf of the users in question.
-	  This is a port of dcron from slackware. It uses files of the
-	  format /var/spool/cron/crontabs/<username> files, for example:
-	      $ cat /var/spool/cron/crontabs/root
-	      # Run daily cron jobs at 4:40 every day:
-	      40 4 * * * /etc/cron/daily > /dev/null 2>&1
-
-config BUSYBOX_FEATURE_CROND_D
-	bool "Support option -d to redirect output to stderr"
-	depends on BUSYBOX_CROND
-	default y
-	help
-	  -d N sets loglevel (0:most verbose) and directs all output to stderr.
-
-config BUSYBOX_FEATURE_CROND_CALL_SENDMAIL
-	bool "Report command output via email (using sendmail)"
-	default y
-	depends on BUSYBOX_CROND
-	help
-	  Command output will be sent to corresponding user via email.
-
-config BUSYBOX_FEATURE_CROND_DIR
-	string "crond spool directory"
-	default "/var/spool/cron"
-	depends on BUSYBOX_CROND || BUSYBOX_CRONTAB
-	help
-	  Location of crond spool.
-config BUSYBOX_I2CGET
-	bool "i2cget"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Read from I2C/SMBus chip registers.
-
-config BUSYBOX_I2CSET
-	bool "i2cset"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Set I2C registers.
-
-config BUSYBOX_I2CDUMP
-	bool "i2cdump"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Examine I2C registers.
-
-config BUSYBOX_I2CDETECT
-	bool "i2cdetect"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Detect I2C chips.
-
-config BUSYBOX_LESS
-	bool "less"
-	default y
-	help
-	  'less' is a pager, meaning that it displays text files. It possesses
-	  a wide array of features, and is an improvement over 'more'.
-
-config BUSYBOX_FEATURE_LESS_MAXLINES
-	int "Max number of input lines less will try to eat"
-	default 9999999
-	depends on BUSYBOX_LESS
-
-config BUSYBOX_FEATURE_LESS_BRACKETS
-	bool "Enable bracket searching"
-	default y
-	depends on BUSYBOX_LESS
-	help
-	  This option adds the capability to search for matching left and right
-	  brackets, facilitating programming.
-
-config BUSYBOX_FEATURE_LESS_FLAGS
-	bool "Enable -m/-M"
-	default y
-	depends on BUSYBOX_LESS
-	help
-	  The -M/-m flag enables a more sophisticated status line.
-
-config BUSYBOX_FEATURE_LESS_TRUNCATE
-	bool "Enable -S"
-	default y
-	depends on BUSYBOX_LESS
-	help
-	  The -S flag causes long lines to be truncated rather than
-	  wrapped.
-
-config BUSYBOX_FEATURE_LESS_MARKS
-	bool "Enable marks"
-	default y
-	depends on BUSYBOX_LESS
-	help
-	  Marks enable positions in a file to be stored for easy reference.
-
-config BUSYBOX_FEATURE_LESS_REGEXP
-	bool "Enable regular expressions"
-	default y
-	depends on BUSYBOX_LESS
-	help
-	  Enable regular expressions, allowing complex file searches.
-
-config BUSYBOX_FEATURE_LESS_WINCH
-	bool "Enable automatic resizing on window size changes"
-	default y
-	depends on BUSYBOX_LESS
-	help
-	  Makes less track window size changes.
-
-config BUSYBOX_FEATURE_LESS_ASK_TERMINAL
-	bool "Use 'tell me cursor position' ESC sequence to measure window"
-	default y
-	depends on BUSYBOX_FEATURE_LESS_WINCH
-	help
-	  Makes less track window size changes.
-	  If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
-	  this option makes less perform a last-ditch effort to find it:
-	  position cursor to 999,999 and ask terminal to report real
-	  cursor position using "ESC [ 6 n" escape sequence, then read stdin.
-
-	  This is not clean but helps a lot on serial lines and such.
-
-config BUSYBOX_FEATURE_LESS_DASHCMD
-	bool "Enable flag changes ('-' command)"
-	default y
-	depends on BUSYBOX_LESS
-	help
-	  This enables the ability to change command-line flags within
-	  less itself ('-' keyboard command).
-
-config BUSYBOX_FEATURE_LESS_LINENUMS
-	bool "Enable dynamic switching of line numbers"
-	default y
-	depends on BUSYBOX_FEATURE_LESS_DASHCMD
-	help
-	  Enables "-N" command.
-config BUSYBOX_NANDWRITE
-	bool "nandwrite"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Write to the specified MTD device, with bad blocks awareness
-
-config BUSYBOX_NANDDUMP
-	bool "nanddump"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Dump the content of raw NAND chip
-config BUSYBOX_RFKILL
-	bool "rfkill"
-	default n # doesn't build on Ubuntu 9.04
-	select 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
-
-config BUSYBOX_SETSERIAL
-	bool "setserial"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Retrieve or set Linux serial port.
-config BUSYBOX_TASKSET
-	bool "taskset"
-	default n  # doesn't build on some non-x86 targets (m68k)
-	help
-	  Retrieve or set a processes's CPU affinity.
-	  This requires sched_{g,s}etaffinity support in your libc.
-
-config BUSYBOX_FEATURE_TASKSET_FANCY
-	bool "Fancy output"
-	default y
-	depends on BUSYBOX_TASKSET
-	help
-	  Add code for fancy output. This merely silences a compiler-warning
-	  and adds about 135 Bytes. May be needed for machines with alot
-	  of CPUs.
-config BUSYBOX_UBIATTACH
-	bool "ubiattach"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Attach MTD device to an UBI device.
-
-config BUSYBOX_UBIDETACH
-	bool "ubidetach"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Detach MTD device from an UBI device.
-
-config BUSYBOX_UBIMKVOL
-	bool "ubimkvol"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Create a UBI volume.
-
-config BUSYBOX_UBIRMVOL
-	bool "ubirmvol"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Delete a UBI volume.
-
-config BUSYBOX_UBIRSVOL
-	bool "ubirsvol"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Resize a UBI volume.
-
-config BUSYBOX_UBIUPDATEVOL
-	bool "ubiupdatevol"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Update a UBI volume.
-config BUSYBOX_UBIRENAME
-	bool "ubirename"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Utility to rename UBI volumes
-config BUSYBOX_WALL
-	bool "wall"
-	default y
-	depends on BUSYBOX_FEATURE_UTMP
-	help
-	  Write a message to all users that are logged in.
-
 config BUSYBOX_ADJTIMEX
 	bool "adjtimex"
 	default y
@@ -266,7 +13,6 @@ config BUSYBOX_ADJTIMEX
 	help
 	  Adjtimex reads and optionally sets adjustment parameters for
 	  the Linux clock adjustment algorithm.
-
 config BUSYBOX_BBCONFIG
 	bool "bbconfig"
 	default n
@@ -287,7 +33,6 @@ config BUSYBOX_FEATURE_COMPRESS_BBCONFIG
 	  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 y
@@ -310,7 +55,6 @@ config BUSYBOX_FEATURE_BEEP_LENGTH_MS
 	depends on BUSYBOX_BEEP
 	help
 	  Length in ms for default beep.
-
 config BUSYBOX_CHAT
 	bool "chat"
 	default y
@@ -377,14 +121,54 @@ config BUSYBOX_FEATURE_CHAT_CLR_ABORT
 	default y
 	help
 	  Support CLR_ABORT directive.
-
 config BUSYBOX_CHRT
 	bool "chrt"
 	default y
 	help
 	  manipulate real-time attributes of a process.
 	  This requires sched_{g,s}etparam support in your libc.
+config BUSYBOX_CONSPY
+	bool "conspy"
+	default y
+	select 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_CROND
+	bool "crond"
+	default y
+	select BUSYBOX_FEATURE_SYSLOG
+	help
+	  Crond is a background daemon that parses individual crontab
+	  files and executes commands on behalf of the users in question.
+	  This is a port of dcron from slackware. It uses files of the
+	  format /var/spool/cron/crontabs/<username> files, for example:
+	      $ cat /var/spool/cron/crontabs/root
+	      # Run daily cron jobs at 4:40 every day:
+	      40 4 * * * /etc/cron/daily > /dev/null 2>&1
+
+config BUSYBOX_FEATURE_CROND_D
+	bool "Support option -d to redirect output to stderr"
+	depends on BUSYBOX_CROND
+	default y
+	help
+	  -d N sets loglevel (0:most verbose) and directs all output to stderr.
+
+config BUSYBOX_FEATURE_CROND_CALL_SENDMAIL
+	bool "Report command output via email (using sendmail)"
+	default y
+	depends on BUSYBOX_CROND
+	help
+	  Command output will be sent to corresponding user via email.
 
+config BUSYBOX_FEATURE_CROND_DIR
+	string "crond spool directory"
+	default "/var/spool/cron"
+	depends on BUSYBOX_CROND || BUSYBOX_CRONTAB
+	help
+	  Location of crond spool.
 config BUSYBOX_CRONTAB
 	bool "crontab"
 	default y
@@ -393,7 +177,6 @@ config BUSYBOX_CRONTAB
 	  the superuser may specify a different user and/or crontab directory.
 	  Note that Busybox binary must be setuid root for this applet to
 	  work properly.
-
 config BUSYBOX_DC
 	bool "dc"
 	default y
@@ -408,7 +191,6 @@ config BUSYBOX_FEATURE_DC_LIBM
 	help
 	  Enable power and exp functions.
 	  NOTE: This will require libm to be present for linking.
-
 config BUSYBOX_DEVFSD
 	bool "devfsd (obsolete)"
 	default n
@@ -465,14 +247,12 @@ config BUSYBOX_FEATURE_DEVFS
 	  tells busybox to look for names like /dev/loop/0 instead of
 	  /dev/loop0. If your /dev directory has normal names instead of
 	  devfs names, you don't want this.
-
 config BUSYBOX_DEVMEM
 	bool "devmem"
 	default y
 	help
 	  devmem is a small program that reads and writes from physical
 	  memory using /dev/mem.
-
 config BUSYBOX_EJECT
 	bool "eject"
 	default y
@@ -487,7 +267,6 @@ config BUSYBOX_FEATURE_EJECT_SCSI
 	help
 	  Add the -s option to eject, this allows to eject SCSI-Devices and
 	  usb-storage devices.
-
 config BUSYBOX_FBSPLASH
 	bool "fbsplash"
 	default y
@@ -509,65 +288,31 @@ config BUSYBOX_FBSPLASH
 	  - commands for fifo:
 	    "NN" (ASCII decimal number) - percentage to show on progress bar
 	    "exit" - well you guessed it
-
-config BUSYBOX_FLASHCP
-	bool "flashcp"
-	default n  # doesn't build on Ubuntu 8.04
-	help
-	  The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
-	  This utility is used to copy images into a MTD device.
-
-config BUSYBOX_FLASH_LOCK
-	bool "flash_lock"
-	default n  # doesn't build on Ubuntu 8.04
-	help
-	  The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
-	  utility locks part or all of the flash device.
-
-config BUSYBOX_FLASH_UNLOCK
-	bool "flash_unlock"
-	default n  # doesn't build on Ubuntu 8.04
-	help
-	  The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
-	  utility unlocks part or all of the flash device.
-
 config BUSYBOX_FLASH_ERASEALL
 	bool "flash_eraseall"
 	default n  # doesn't build on Ubuntu 8.04
 	help
 	  The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
 	  This utility is used to erase the whole MTD device.
-
-config BUSYBOX_IONICE
-	bool "ionice"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Set/set program io scheduling class and priority
-	  Requires kernel >= 2.6.13
-
-config BUSYBOX_INOTIFYD
-	bool "inotifyd"
-	default n  # doesn't build on Knoppix 5
-	help
-	  Simple inotify daemon. Reports filesystem changes. Requires
-	  kernel >= 2.6.13
-
-config BUSYBOX_LAST
-	bool "last"
-	default y
-	depends on BUSYBOX_FEATURE_WTMP
-	help
-	  'last' displays a list of the last users that logged into the system.
-
-config BUSYBOX_FEATURE_LAST_FANCY
-	bool "Turn on output of extra information"
-	default y
-	depends on BUSYBOX_LAST
+config BUSYBOX_FLASH_LOCK
+	bool "flash_lock"
+	default n  # doesn't build on Ubuntu 8.04
 	help
-	  'last' displays detailed information about the last users that
-	  logged into the system (mimics sysvinit last). +900 bytes.
+	  The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
+	  utility locks part or all of the flash device.
 
+config BUSYBOX_FLASH_UNLOCK
+	bool "flash_unlock"
+	default n  # doesn't build on Ubuntu 8.04
+	help
+	  The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
+	  utility unlocks part or all of the flash device.
+config BUSYBOX_FLASHCP
+	bool "flashcp"
+	default n  # doesn't build on Ubuntu 8.04
+	help
+	  The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
+	  This utility is used to copy images into a MTD device.
 config BUSYBOX_HDPARM
 	bool "hdparm"
 	default y
@@ -626,7 +371,144 @@ config BUSYBOX_FEATURE_HDPARM_HDIO_GETSET_DMA
 	depends on BUSYBOX_HDPARM
 	help
 	  Enables the 'hdparm -d' option to get/set using_dma flag.
+config BUSYBOX_I2CGET
+	bool "i2cget"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Read from I2C/SMBus chip registers.
+
+config BUSYBOX_I2CSET
+	bool "i2cset"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Set I2C registers.
+
+config BUSYBOX_I2CDUMP
+	bool "i2cdump"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Examine I2C registers.
+
+config BUSYBOX_I2CDETECT
+	bool "i2cdetect"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Detect I2C chips.
+
+config BUSYBOX_INOTIFYD
+	bool "inotifyd"
+	default n  # doesn't build on Knoppix 5
+	help
+	  Simple inotify daemon. Reports filesystem changes. Requires
+	  kernel >= 2.6.13
+config BUSYBOX_IONICE
+	bool "ionice"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Set/set program io scheduling class and priority
+	  Requires kernel >= 2.6.13
+config BUSYBOX_LAST
+	bool "last"
+	default y
+	depends on BUSYBOX_FEATURE_WTMP
+	help
+	  'last' displays a list of the last users that logged into the system.
+
+config BUSYBOX_FEATURE_LAST_FANCY
+	bool "Turn on output of extra information"
+	default y
+	depends on BUSYBOX_LAST
+	help
+	  'last' displays detailed information about the last users that
+	  logged into the system (mimics sysvinit last). +900 bytes.
+config BUSYBOX_LESS
+	bool "less"
+	default y
+	help
+	  'less' is a pager, meaning that it displays text files. It possesses
+	  a wide array of features, and is an improvement over 'more'.
+
+config BUSYBOX_FEATURE_LESS_MAXLINES
+	int "Max number of input lines less will try to eat"
+	default 9999999
+	depends on BUSYBOX_LESS
+
+config BUSYBOX_FEATURE_LESS_BRACKETS
+	bool "Enable bracket searching"
+	default y
+	depends on BUSYBOX_LESS
+	help
+	  This option adds the capability to search for matching left and right
+	  brackets, facilitating programming.
+
+config BUSYBOX_FEATURE_LESS_FLAGS
+	bool "Enable -m/-M"
+	default y
+	depends on BUSYBOX_LESS
+	help
+	  The -M/-m flag enables a more sophisticated status line.
+
+config BUSYBOX_FEATURE_LESS_TRUNCATE
+	bool "Enable -S"
+	default y
+	depends on BUSYBOX_LESS
+	help
+	  The -S flag causes long lines to be truncated rather than
+	  wrapped.
+
+config BUSYBOX_FEATURE_LESS_MARKS
+	bool "Enable marks"
+	default y
+	depends on BUSYBOX_LESS
+	help
+	  Marks enable positions in a file to be stored for easy reference.
+
+config BUSYBOX_FEATURE_LESS_REGEXP
+	bool "Enable regular expressions"
+	default y
+	depends on BUSYBOX_LESS
+	help
+	  Enable regular expressions, allowing complex file searches.
+
+config BUSYBOX_FEATURE_LESS_WINCH
+	bool "Enable automatic resizing on window size changes"
+	default y
+	depends on BUSYBOX_LESS
+	help
+	  Makes less track window size changes.
+
+config BUSYBOX_FEATURE_LESS_ASK_TERMINAL
+	bool "Use 'tell me cursor position' ESC sequence to measure window"
+	default y
+	depends on BUSYBOX_FEATURE_LESS_WINCH
+	help
+	  Makes less track window size changes.
+	  If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+	  this option makes less perform a last-ditch effort to find it:
+	  position cursor to 999,999 and ask terminal to report real
+	  cursor position using "ESC [ 6 n" escape sequence, then read stdin.
+
+	  This is not clean but helps a lot on serial lines and such.
+
+config BUSYBOX_FEATURE_LESS_DASHCMD
+	bool "Enable flag changes ('-' command)"
+	default y
+	depends on BUSYBOX_LESS
+	help
+	  This enables the ability to change command-line flags within
+	  less itself ('-' keyboard command).
 
+config BUSYBOX_FEATURE_LESS_LINENUMS
+	bool "Enable dynamic switching of line numbers"
+	default y
+	depends on BUSYBOX_FEATURE_LESS_DASHCMD
+	help
+	  Enables "-N" command.
 config BUSYBOX_MAKEDEVS
 	bool "makedevs"
 	default y
@@ -658,25 +540,21 @@ config BUSYBOX_FEATURE_MAKEDEVS_TABLE
 	bool "table"
 
 endchoice
-
 config BUSYBOX_MAN
 	bool "man"
 	default y
 	help
 	  Format and display manual pages.
-
 config BUSYBOX_MICROCOM
 	bool "microcom"
 	default y
 	help
 	  The poor man's minicom utility for chatting with serial port devices.
-
 config BUSYBOX_MOUNTPOINT
 	bool "mountpoint"
 	default y
 	help
 	  mountpoint checks if the directory is a mountpoint.
-
 config BUSYBOX_MT
 	bool "mt"
 	default y
@@ -684,7 +562,19 @@ config BUSYBOX_MT
 	  mt is used to control tape devices. You can use the mt utility
 	  to advance or rewind a tape past a specified number of archive
 	  files on the tape.
+config BUSYBOX_NANDWRITE
+	bool "nandwrite"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Write to the specified MTD device, with bad blocks awareness
 
+config BUSYBOX_NANDDUMP
+	bool "nanddump"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Dump the content of raw NAND chip
 config BUSYBOX_RAIDAUTORUN
 	bool "raidautorun"
 	default y
@@ -692,7 +582,6 @@ config BUSYBOX_RAIDAUTORUN
 	help
 	  raidautorun tells the kernel md driver to
 	  search and start RAID arrays.
-
 config BUSYBOX_READAHEAD
 	bool "readahead"
 	default y
@@ -710,6 +599,17 @@ config BUSYBOX_READAHEAD
 
 	  As readahead(2) blocks until each file has been read, it is best to
 	  run this applet as a background job.
+config BUSYBOX_RFKILL
+	bool "rfkill"
+	default n # doesn't build on Ubuntu 9.04
+	select 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
 
 config BUSYBOX_RUNLEVEL
 	bool "runlevel"
@@ -720,27 +620,44 @@ config BUSYBOX_RUNLEVEL
 
 	  This applet uses utmp but does not rely on busybox supporing
 	  utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc.
-
 config BUSYBOX_RX
 	bool "rx"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Receive files using the Xmodem protocol.
-
+config BUSYBOX_SETSERIAL
+	bool "setserial"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Retrieve or set Linux serial port.
 config BUSYBOX_SETSID
 	bool "setsid"
 	default y
 	help
 	  setsid runs a program in a new session
-
 config BUSYBOX_STRINGS
 	bool "strings"
 	default y
 	help
 	  strings prints the printable character sequences for each file
 	  specified.
+config BUSYBOX_TASKSET
+	bool "taskset"
+	default n  # doesn't build on some non-x86 targets (m68k)
+	help
+	  Retrieve or set a processes's CPU affinity.
+	  This requires sched_{g,s}etaffinity support in your libc.
 
+config BUSYBOX_FEATURE_TASKSET_FANCY
+	bool "Fancy output"
+	default y
+	depends on BUSYBOX_TASKSET
+	help
+	  Add code for fancy output. This merely silences a compiler-warning
+	  and adds about 135 Bytes. May be needed for machines with alot
+	  of CPUs.
 config BUSYBOX_TIME
 	bool "time"
 	default y
@@ -748,14 +665,12 @@ config BUSYBOX_TIME
 	  The time command runs the specified program with the given arguments.
 	  When the command finishes, time writes a message to standard output
 	  giving timing statistics about this program run.
-
 config BUSYBOX_TIMEOUT
 	bool "timeout"
 	default y
 	help
 	  Runs a program and watches it. If it does not terminate in
 	  specified number of seconds, it is sent a signal.
-
 config BUSYBOX_TTYSIZE
 	bool "ttysize"
 	default y
@@ -764,13 +679,64 @@ config BUSYBOX_TTYSIZE
 	  only height, or both, in any order. It also does not complain on
 	  error, but returns default 80x24.
 	  Usage in shell scripts: width=`ttysize w`.
+config BUSYBOX_UBIATTACH
+	bool "ubiattach"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Attach MTD device to an UBI device.
+
+config BUSYBOX_UBIDETACH
+	bool "ubidetach"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Detach MTD device from an UBI device.
+
+config BUSYBOX_UBIMKVOL
+	bool "ubimkvol"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Create a UBI volume.
+
+config BUSYBOX_UBIRMVOL
+	bool "ubirmvol"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Delete a UBI volume.
+
+config BUSYBOX_UBIRSVOL
+	bool "ubirsvol"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Resize a UBI volume.
 
+config BUSYBOX_UBIUPDATEVOL
+	bool "ubiupdatevol"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Update a UBI volume.
+config BUSYBOX_UBIRENAME
+	bool "ubirename"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Utility to rename UBI volumes
 config BUSYBOX_VOLNAME
 	bool "volname"
 	default y
 	help
 	  Prints a CD-ROM volume name.
-
+config BUSYBOX_WALL
+	bool "wall"
+	default y
+	depends on BUSYBOX_FEATURE_UTMP
+	help
+	  Write a message to all users that are logged in.
 config BUSYBOX_WATCHDOG
 	bool "watchdog"
 	default y
diff --git a/config/busybox/modutils/Config.in b/config/busybox/modutils/Config.in
index 2d953e6c7..62e1ee439 100644
--- a/config/busybox/modutils/Config.in
+++ b/config/busybox/modutils/Config.in
@@ -6,13 +6,6 @@
 
 menu "Linux Module Utilities"
 
-config BUSYBOX_MODINFO
-	bool "modinfo"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Show information about a Linux Kernel module
-
 config BUSYBOX_MODPROBE_SMALL
 	bool "Simplified modutils"
 	default y
@@ -44,59 +37,59 @@ config BUSYBOX_MODPROBE_SMALL
 	  - rmmod is an alias to modprobe -r
 	  - depmod generates modules.dep.bb
 
-config BUSYBOX_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
-	bool "Accept module options on modprobe command line"
+config BUSYBOX_DEPMOD
+	bool "depmod"
 	default y
-	depends on BUSYBOX_MODPROBE_SMALL
 	select BUSYBOX_PLATFORM_LINUX
 	help
-	  Allow insmod and modprobe take module options from command line.
-
-config BUSYBOX_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
-	bool "Skip loading of already loaded modules"
-	default y
-	depends on BUSYBOX_MODPROBE_SMALL
-	help
-	  Check if the module is already loaded.
-
+	  depmod generates modules.dep (and potentially modules.alias
+	  and modules.symbols) that contain dependency information
+	  for modprobe.
 config BUSYBOX_INSMOD
 	bool "insmod"
-	default n
-	depends on !BUSYBOX_MODPROBE_SMALL
+	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  insmod is used to load specified modules in the running kernel.
-
-config BUSYBOX_RMMOD
-	bool "rmmod"
-	default n
-	depends on !BUSYBOX_MODPROBE_SMALL
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  rmmod is used to unload specified modules from the kernel.
-
 config BUSYBOX_LSMOD
 	bool "lsmod"
-	default n
-	depends on !BUSYBOX_MODPROBE_SMALL
+	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  lsmod is used to display a list of loaded modules.
 
 config BUSYBOX_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
 	bool "Pretty output"
-	default n
-	depends on BUSYBOX_LSMOD
+	default y
+	depends on BUSYBOX_LSMOD && !BUSYBOX_MODPROBE_SMALL
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  This option makes output format of lsmod adjusted to
 	  the format of module-init-tools for Linux kernel 2.6.
 	  Increases size somewhat.
+config BUSYBOX_MODINFO
+	bool "modinfo"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Show information about a Linux Kernel module
+config BUSYBOX_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
+	bool "Accept module options on modprobe command line"
+	default y
+	depends on BUSYBOX_MODPROBE_SMALL
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Allow insmod and modprobe take module options from command line.
 
+config BUSYBOX_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
+	bool "Skip loading of already loaded modules"
+	default y
+	depends on BUSYBOX_MODPROBE_SMALL
+	help
+	  Check if the module is already loaded.
 config BUSYBOX_MODPROBE
 	bool "modprobe"
-	default n
-	depends on !BUSYBOX_MODPROBE_SMALL
+	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Handle the loading of modules, and their dependencies on a high
@@ -104,8 +97,8 @@ config BUSYBOX_MODPROBE
 
 config BUSYBOX_FEATURE_MODPROBE_BLACKLIST
 	bool "Blacklist support"
-	default n
-	depends on BUSYBOX_MODPROBE
+	default y
+	depends on BUSYBOX_MODPROBE && !BUSYBOX_MODPROBE_SMALL
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Say 'y' here to enable support for the 'blacklist' command in
@@ -113,16 +106,12 @@ config BUSYBOX_FEATURE_MODPROBE_BLACKLIST
 	  blacklisted modules. This is useful if you want to prevent your
 	  hardware autodetection scripts to load modules like evdev, frame
 	  buffer drivers etc.
-
-config BUSYBOX_DEPMOD
-	bool "depmod"
-	default n
-	depends on !BUSYBOX_MODPROBE_SMALL
+config BUSYBOX_RMMOD
+	bool "rmmod"
+	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
-	  depmod generates modules.dep (and potentially modules.alias
-	  and modules.symbols) that contain dependency information
-	  for modprobe.
+	  rmmod is used to unload specified modules from the kernel.
 
 comment "Options common to multiple modutils"
 
diff --git a/config/busybox/networking/Config.in b/config/busybox/networking/Config.in
index 5436a07cd..fa6a318d4 100644
--- a/config/busybox/networking/Config.in
+++ b/config/busybox/networking/Config.in
@@ -6,183 +6,6 @@
 
 menu "Networking Utilities"
 
-config BUSYBOX_NAMEIF
-	bool "nameif"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	select BUSYBOX_FEATURE_SYSLOG
-	help
-	  nameif is used to rename network interface by its MAC address.
-	  Renamed interfaces MUST be in the down state.
-	  It is possible to use a file (default: /etc/mactab)
-	  with list of new interface names and MACs.
-	  Maximum interface name length: IFNAMSIZ = 16
-	  File fields are separated by space or tab.
-	  File format:
-	  # Comment
-	  new_interface_name    XX:XX:XX:XX:XX:XX
-
-config BUSYBOX_FEATURE_NAMEIF_EXTENDED
-	bool "Extended nameif"
-	default y
-	depends on BUSYBOX_NAMEIF
-	help
-	  This extends the nameif syntax to support the bus_info, driver,
-	  phyaddr selectors. The syntax is compatible to the normal nameif.
-	  File format:
-	    new_interface_name  driver=asix bus=usb-0000:00:08.2-3
-	    new_interface_name  bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
-	    new_interface_name  phy_address=2 00:80:C8:38:91:B5
-	    new_interface_name  mac=00:80:C8:38:91:B5
-	    new_interface_name  00:80:C8:38:91:B5
-config BUSYBOX_NBDCLIENT
-	bool "nbd-client"
-	default y
-	help
-	  Network block device client
-config BUSYBOX_NC
-	bool "nc"
-	default y
-	help
-	  A simple Unix utility which reads and writes data across network
-	  connections.
-
-config BUSYBOX_NC_SERVER
-	bool "Netcat server options (-l)"
-	default y
-	depends on BUSYBOX_NC
-	help
-	  Allow netcat to act as a server.
-
-config BUSYBOX_NC_EXTRA
-	bool "Netcat extensions (-eiw and -f FILE)"
-	default y
-	depends on BUSYBOX_NC
-	help
-	  Add -e (support for executing the rest of the command line after
-	  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.
-config BUSYBOX_PING
-	bool "ping"
-	default y
-	select 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.
-
-config BUSYBOX_PING6
-	bool "ping6"
-	default y
-	depends on BUSYBOX_FEATURE_IPV6 && BUSYBOX_PING
-	help
-	  This will give you a ping that can talk IPv6.
-
-config BUSYBOX_FEATURE_FANCY_PING
-	bool "Enable fancy ping output"
-	default y
-	depends on BUSYBOX_PING
-	help
-	  Make the output from the ping applet include statistics, and at the
-	  same time provide full support for ICMP packets.
-config BUSYBOX_WGET
-	bool "wget"
-	default y
-	help
-	  wget is a utility for non-interactive download of files from HTTP
-	  and FTP servers.
-
-config BUSYBOX_FEATURE_WGET_STATUSBAR
-	bool "Enable a nifty process meter (+2k)"
-	default y
-	depends on BUSYBOX_WGET
-	help
-	  Enable the transfer progress bar for wget transfers.
-
-config BUSYBOX_FEATURE_WGET_AUTHENTICATION
-	bool "Enable HTTP authentication"
-	default y
-	depends on BUSYBOX_WGET
-	help
-	  Support authenticated HTTP transfers.
-
-config BUSYBOX_FEATURE_WGET_LONG_OPTIONS
-	bool "Enable long options"
-	default y
-	depends on BUSYBOX_WGET && BUSYBOX_LONG_OPTS
-	help
-	  Support long options for the wget applet.
-
-config BUSYBOX_FEATURE_WGET_TIMEOUT
-	bool "Enable timeout option -T SEC"
-	default y
-	depends on BUSYBOX_WGET
-	help
-	  Supports network read and connect timeouts for wget,
-	  so that wget will give up and timeout, through the -T
-	  command line option.
-
-	  Currently only connect and network data read timeout are
-	  supported (i.e., timeout is not applied to the DNS query). When
-	  FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
-	  will work in addition to -T.
-
-config BUSYBOX_FEATURE_WGET_OPENSSL
-	bool "Try to connect to HTTPS using openssl"
-	default y
-	depends on BUSYBOX_WGET
-	help
-	  Choose how wget establishes SSL connection for https:// URLs.
-
-	  Busybox itself contains no SSL code. wget will spawn
-	  a helper program to talk over HTTPS.
-
-	  OpenSSL has a simple SSL client for debug purposes.
-	  If you select "openssl" helper, wget will effectively call
-	  "openssl s_client -quiet -connect IP:443 2>/dev/null"
-	  and pipe its data through it.
-	  Note inconvenient API: host resolution is done twice,
-	  and there is no guarantee openssl's idea of IPv6 address
-	  format is the same as ours.
-	  Another problem is that s_client prints debug information
-	  to stderr, and it needs to be suppressed. This means
-	  all error messages get suppressed too.
-	  openssl is also a big binary, often dynamically linked
-	  against ~15 libraries.
-
-config BUSYBOX_FEATURE_WGET_SSL_HELPER
-	bool "Try to connect to HTTPS using ssl_helper"
-	default y
-	depends on BUSYBOX_WGET
-	help
-	  Choose how wget establishes SSL connection for https:// URLs.
-
-	  Busybox itself contains no SSL code. wget will spawn
-	  a helper program to talk over HTTPS.
-
-	  ssl_helper is a tool which can be built statically
-	  from busybox sources against a small embedded SSL library.
-	  Please see networking/ssl_helper/README.
-	  It does not require double host resolution and emits
-	  error messages to stderr.
-
-	  Precompiled static binary may be available at
-	  http://busybox.net/downloads/binaries/
-config BUSYBOX_WHOIS
-	bool "whois"
-	default y
-	help
-	  whois is a client for the whois directory service
-
 config BUSYBOX_FEATURE_IPV6
 	bool "Enable IPv6 support"
 	default y
@@ -230,7 +53,6 @@ config BUSYBOX_ARP
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Manipulate the system ARP cache.
-
 config BUSYBOX_ARPING
 	bool "arping"
 	default y
@@ -264,35 +86,24 @@ config BUSYBOX_FEATURE_BRCTL_SHOW
 	help
 	  Add support for option which prints the current config:
 	    show
-
 config BUSYBOX_DNSD
 	bool "dnsd"
 	default y
 	help
 	  Small and static DNS server daemon.
-
 config BUSYBOX_ETHER_WAKE
 	bool "ether-wake"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Send a magic packet to wake up sleeping machines.
-
-config BUSYBOX_FAKEIDENTD
-	bool "fakeidentd"
-	default y
-	select BUSYBOX_FEATURE_SYSLOG
-	help
-	  fakeidentd listens on the ident port and returns a predefined
-	  fake value on any query.
-
 config BUSYBOX_FTPD
 	bool "ftpd"
 	default y
 	help
 	  simple FTP daemon. You have to run it via inetd.
 
-config BUSYBOX_FEATURE_FTP_WRITE
+config BUSYBOX_FEATURE_FTPD_WRITE
 	bool "Enable upload commands"
 	default y
 	depends on BUSYBOX_FTPD
@@ -310,13 +121,12 @@ config BUSYBOX_FEATURE_FTPD_ACCEPT_BROKEN_LIST
 	  it increases the code size by ~40 bytes.
 	  Most other ftp servers seem to behave similar to this.
 
-config BUSYBOX_FEATURE_FTP_AUTHENTICATION
+config BUSYBOX_FEATURE_FTPD_AUTHENTICATION
 	bool "Enable authentication"
 	default y
 	depends on BUSYBOX_FTPD
 	help
 	  Enable basic system login as seen in telnet etc.
-
 config BUSYBOX_FTPGET
 	bool "ftpget"
 	default y
@@ -335,13 +145,17 @@ config BUSYBOX_FEATURE_FTPGETPUT_LONG_OPTIONS
 	depends on BUSYBOX_LONG_OPTS && (BUSYBOX_FTPGET || BUSYBOX_FTPPUT)
 	help
 	  Support long options for the ftpget/ftpput applet.
-
 config BUSYBOX_HOSTNAME
 	bool "hostname"
 	default y
 	help
 	  Show or set the system's host name.
 
+config BUSYBOX_DNSDOMAINNAME
+	bool "dnsdomainname"
+	default y
+	help
+	  Alias to "hostname -d".
 config BUSYBOX_HTTPD
 	bool "httpd"
 	default y
@@ -460,7 +274,6 @@ config BUSYBOX_FEATURE_HTTPD_GZIP
 	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
@@ -508,7 +321,6 @@ config BUSYBOX_FEATURE_IFCONFIG_BROADCAST_PLUS
 	help
 	  Setting this will make ifconfig attempt to find the broadcast
 	  automatically if the value '+' is used.
-
 config BUSYBOX_IFENSLAVE
 	bool "ifenslave"
 	default y
@@ -516,20 +328,18 @@ config BUSYBOX_IFENSLAVE
 	help
 	  Userspace application to bind several interfaces
 	  to a logical interface (use with kernel bonding driver).
-
 config BUSYBOX_IFPLUGD
 	bool "ifplugd"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Network interface plug detection daemon.
-
-config BUSYBOX_IFUPDOWN
-	bool "ifupdown"
+config BUSYBOX_IFUP
+	bool "ifup"
 	default y
 	help
-	  Activate or deactivate the specified interfaces. This applet makes
-	  use of either "ifconfig" and "route" or the "ip" command to actually
+	  Activate the specified interfaces. This applet makes use
+	  of either "ifconfig" and "route" or the "ip" command to actually
 	  configure network interfaces. Therefore, you will probably also want
 	  to enable either IFCONFIG and ROUTE, or enable
 	  FEATURE_IFUPDOWN_IP and the various IP options. Of
@@ -540,10 +350,16 @@ config BUSYBOX_IFUPDOWN
 	  "ifconfig", "route" and "run-parts" or the "ip" command, either
 	  via busybox or via standalone utilities.
 
+config BUSYBOX_IFDOWN
+	bool "ifdown"
+	default y
+	help
+	  Deactivate the specified interfaces.
+
 config BUSYBOX_IFUPDOWN_IFSTATE_PATH
 	string "Absolute path to ifstate file"
 	default "/var/run/ifstate"
-	depends on BUSYBOX_IFUPDOWN
+	depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
 	help
 	  ifupdown keeps state information in a file called ifstate.
 	  Typically it is located in /var/run/ifstate, however
@@ -552,69 +368,39 @@ config BUSYBOX_IFUPDOWN_IFSTATE_PATH
 	  This config option defines location of ifstate.
 
 config BUSYBOX_FEATURE_IFUPDOWN_IP
-	bool "Use ip applet"
+	bool "Use ip tool (else ifconfig/route is used)"
 	default y
-	depends on BUSYBOX_IFUPDOWN
+	depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
 	help
 	  Use the iproute "ip" command to implement "ifup" and "ifdown", rather
-	  than the default of using the older 'ifconfig' and 'route' utilities.
-
-config BUSYBOX_FEATURE_IFUPDOWN_IP_BUILTIN
-	bool "Use busybox ip applet"
-	default y
-	depends on BUSYBOX_FEATURE_IFUPDOWN_IP
-	select BUSYBOX_PLATFORM_LINUX
-	select BUSYBOX_IP
-	select BUSYBOX_FEATURE_IP_ADDRESS
-	select BUSYBOX_FEATURE_IP_LINK
-	select BUSYBOX_FEATURE_IP_ROUTE
-	help
-	  Use the busybox iproute "ip" applet to implement "ifupdown".
+	  than the default of using the older "ifconfig" and "route" utilities.
 
-	  If left disabled, you must install the full-blown iproute2
-	  utility or the  "ifup" and "ifdown" applets will not work.
+	  If Y: you must install either the full-blown iproute2 package
+	  or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets
+	  will not work.
 
-config BUSYBOX_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
-	bool "Use busybox ifconfig and route applets"
-	default n
-	depends on BUSYBOX_IFUPDOWN && !BUSYBOX_FEATURE_IFUPDOWN_IP
-	select BUSYBOX_IFCONFIG
-	select BUSYBOX_ROUTE
-	help
-	  Use the busybox iproute "ifconfig" and "route" applets to
-	  implement the "ifup" and "ifdown" utilities.
-
-	  If left disabled, you must install the full-blown ifconfig
-	  and route utilities, or the  "ifup" and "ifdown" applets will not
-	  work.
+	  If N: you must install either the full-blown ifconfig and route
+	  utilities, or enable these applets in Busybox.
 
 config BUSYBOX_FEATURE_IFUPDOWN_IPV4
 	bool "Support for IPv4"
 	default y
-	depends on BUSYBOX_IFUPDOWN
+	depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
 	help
 	  If you want ifup/ifdown to talk IPv4, leave this on.
 
 config BUSYBOX_FEATURE_IFUPDOWN_IPV6
 	bool "Support for IPv6"
 	default y
-	depends on BUSYBOX_IFUPDOWN && BUSYBOX_FEATURE_IPV6
+	depends on (BUSYBOX_IFUP || BUSYBOX_IFDOWN) && BUSYBOX_FEATURE_IPV6
 	help
 	  If you need support for IPv6, turn this option on.
 
-### UNUSED
-###config FEATURE_IFUPDOWN_IPX
-###	bool "Support for IPX"
-###	default y
-###	depends on IFUPDOWN
-###	help
-###	  If this option is selected you can use busybox to work with IPX
-###	  networks.
 
 config BUSYBOX_FEATURE_IFUPDOWN_MAPPING
 	bool "Enable mapping support"
 	default y
-	depends on BUSYBOX_IFUPDOWN
+	depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
 	help
 	  This enables support for the "mapping" stanza, unless you have
 	  a weird network setup you don't need it.
@@ -622,13 +408,12 @@ config BUSYBOX_FEATURE_IFUPDOWN_MAPPING
 config BUSYBOX_FEATURE_IFUPDOWN_EXTERNAL_DHCP
 	bool "Support for external dhcp clients"
 	default n
-	depends on BUSYBOX_IFUPDOWN
+	depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
 	help
 	  This enables support for the external dhcp clients. Clients are
 	  tried in the following order: dhcpcd, dhclient, pump and udhcpc.
 	  Otherwise, if udhcpc applet is enabled, it is used.
 	  Otherwise, ifup/ifdown will have no support for DHCP.
-
 config BUSYBOX_INETD
 	bool "inetd"
 	default y
@@ -678,7 +463,6 @@ config BUSYBOX_FEATURE_INETD_RPC
 	select BUSYBOX_FEATURE_HAVE_RPC
 	help
 	  Support Sun-RPC based services
-
 config BUSYBOX_IP
 	bool "ip"
 	default y
@@ -688,24 +472,72 @@ config BUSYBOX_IP
 	  utility. You generally don't need "ip" to use busybox with
 	  TCP/IP.
 
+config BUSYBOX_IPADDR
+	bool "ipaddr"
+	default y
+	select BUSYBOX_FEATURE_IP_ADDRESS
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Support short form of ip addr: ipaddr
+
+config BUSYBOX_IPLINK
+	bool "iplink"
+	default y
+	select BUSYBOX_FEATURE_IP_LINK
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Support short form of ip link: iplink
+
+config BUSYBOX_IPROUTE
+	bool "iproute"
+	default y
+	select BUSYBOX_FEATURE_IP_ROUTE
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Support short form of ip route: iproute
+
+config BUSYBOX_IPTUNNEL
+	bool "iptunnel"
+	default y
+	select BUSYBOX_FEATURE_IP_TUNNEL
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Support short form of ip tunnel: iptunnel
+
+config BUSYBOX_IPRULE
+	bool "iprule"
+	default y
+	select BUSYBOX_FEATURE_IP_RULE
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Support short form of ip rule: iprule
+
+config BUSYBOX_IPNEIGH
+	bool "ipneigh"
+	default y
+	select BUSYBOX_FEATURE_IP_NEIGH
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Support short form of ip neigh: ipneigh
+
 config BUSYBOX_FEATURE_IP_ADDRESS
 	bool "ip address"
 	default y
-	depends on BUSYBOX_IP
+	depends on BUSYBOX_IP || BUSYBOX_IPADDR
 	help
 	  Address manipulation support for the "ip" applet.
 
 config BUSYBOX_FEATURE_IP_LINK
 	bool "ip link"
 	default y
-	depends on BUSYBOX_IP
+	depends on BUSYBOX_IP || BUSYBOX_IPLINK
 	help
 	  Configure network devices with "ip".
 
 config BUSYBOX_FEATURE_IP_ROUTE
 	bool "ip route"
 	default y
-	depends on BUSYBOX_IP
+	depends on BUSYBOX_IP || BUSYBOX_IPROUTE
 	help
 	  Add support for routing table management to "ip".
 
@@ -719,80 +551,33 @@ config BUSYBOX_FEATURE_IP_ROUTE_DIR
 config BUSYBOX_FEATURE_IP_TUNNEL
 	bool "ip tunnel"
 	default y
-	depends on BUSYBOX_IP
+	depends on BUSYBOX_IP || BUSYBOX_IPTUNNEL
 	help
 	  Add support for tunneling commands to "ip".
 
 config BUSYBOX_FEATURE_IP_RULE
 	bool "ip rule"
 	default y
-	depends on BUSYBOX_IP
+	depends on BUSYBOX_IP || BUSYBOX_IPRULE
 	help
 	  Add support for rule commands to "ip".
 
 config BUSYBOX_FEATURE_IP_NEIGH
 	bool "ip neighbor"
 	default y
-	depends on BUSYBOX_IP
+	depends on BUSYBOX_IP || BUSYBOX_IPNEIGH
 	help
 	  Add support for neighbor commands to "ip".
 
-config BUSYBOX_FEATURE_IP_SHORT_FORMS
-	bool "Support short forms of ip commands"
-	default y
-	depends on BUSYBOX_IP
-	help
-	  Also support short-form of ip <OBJECT> commands:
-	  ip addr   -> ipaddr
-	  ip link   -> iplink
-	  ip route  -> iproute
-	  ip tunnel -> iptunnel
-	  ip rule   -> iprule
-	  ip neigh  -> ipneigh
-
-	  Say N unless you desparately need the short form of the ip
-	  object commands.
-
 config BUSYBOX_FEATURE_IP_RARE_PROTOCOLS
 	bool "Support displaying rarely used link types"
 	default n
-	depends on BUSYBOX_IP
+	depends on BUSYBOX_IP || BUSYBOX_IPADDR || BUSYBOX_IPLINK || BUSYBOX_IPROUTE || BUSYBOX_IPTUNNEL || BUSYBOX_IPRULE || BUSYBOX_IPNEIGH
 	help
 	  If you are not going to use links of type "frad", "econet",
 	  "bif" etc, you probably don't need to enable this.
 	  Ethernet, wireless, infrared, ppp/slip, ip tunnelling
 	  link types are supported without this option selected.
-
-config BUSYBOX_IPADDR
-	bool
-	default y
-	depends on BUSYBOX_FEATURE_IP_SHORT_FORMS && BUSYBOX_FEATURE_IP_ADDRESS
-
-config BUSYBOX_IPLINK
-	bool
-	default y
-	depends on BUSYBOX_FEATURE_IP_SHORT_FORMS && BUSYBOX_FEATURE_IP_LINK
-
-config BUSYBOX_IPROUTE
-	bool
-	default y
-	depends on BUSYBOX_FEATURE_IP_SHORT_FORMS && BUSYBOX_FEATURE_IP_ROUTE
-
-config BUSYBOX_IPTUNNEL
-	bool
-	default y
-	depends on BUSYBOX_FEATURE_IP_SHORT_FORMS && BUSYBOX_FEATURE_IP_TUNNEL
-
-config BUSYBOX_IPRULE
-	bool
-	default y
-	depends on BUSYBOX_FEATURE_IP_SHORT_FORMS && BUSYBOX_FEATURE_IP_RULE
-
-config BUSYBOX_IPNEIGH
-	bool
-	default y
-	depends on BUSYBOX_FEATURE_IP_SHORT_FORMS && BUSYBOX_FEATURE_IP_NEIGH
-
 config BUSYBOX_IPCALC
 	bool "ipcalc"
 	default y
@@ -814,7 +599,79 @@ config BUSYBOX_FEATURE_IPCALC_LONG_OPTIONS
 	depends on BUSYBOX_IPCALC && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the ipcalc applet.
+config BUSYBOX_FAKEIDENTD
+	bool "fakeidentd"
+	default y
+	select BUSYBOX_FEATURE_SYSLOG
+	help
+	  fakeidentd listens on the ident port and returns a predefined
+	  fake value on any query.
+config BUSYBOX_NAMEIF
+	bool "nameif"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	select BUSYBOX_FEATURE_SYSLOG
+	help
+	  nameif is used to rename network interface by its MAC address.
+	  Renamed interfaces MUST be in the down state.
+	  It is possible to use a file (default: /etc/mactab)
+	  with list of new interface names and MACs.
+	  Maximum interface name length: IFNAMSIZ = 16
+	  File fields are separated by space or tab.
+	  File format:
+	  # Comment
+	  new_interface_name    XX:XX:XX:XX:XX:XX
 
+config BUSYBOX_FEATURE_NAMEIF_EXTENDED
+	bool "Extended nameif"
+	default y
+	depends on BUSYBOX_NAMEIF
+	help
+	  This extends the nameif syntax to support the bus_info, driver,
+	  phyaddr selectors. The syntax is compatible to the normal nameif.
+	  File format:
+	    new_interface_name  driver=asix bus=usb-0000:00:08.2-3
+	    new_interface_name  bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
+	    new_interface_name  phy_address=2 00:80:C8:38:91:B5
+	    new_interface_name  mac=00:80:C8:38:91:B5
+	    new_interface_name  00:80:C8:38:91:B5
+config BUSYBOX_NBDCLIENT
+	bool "nbd-client"
+	default y
+	help
+	  Network block device client
+config BUSYBOX_NC
+	bool "nc"
+	default y
+	help
+	  A simple Unix utility which reads and writes data across network
+	  connections.
+
+config BUSYBOX_NC_SERVER
+	bool "Netcat server options (-l)"
+	default y
+	depends on BUSYBOX_NC
+	help
+	  Allow netcat to act as a server.
+
+config BUSYBOX_NC_EXTRA
+	bool "Netcat extensions (-eiw and -f FILE)"
+	default y
+	depends on BUSYBOX_NC
+	help
+	  Add -e (support for executing the rest of the command line after
+	  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.
 config BUSYBOX_NETSTAT
 	bool "netstat"
 	default y
@@ -837,13 +694,11 @@ config BUSYBOX_FEATURE_NETSTAT_PRG
 	help
 	  Add support for -p flag to print out PID and program name.
 	  +700 bytes of code.
-
 config BUSYBOX_NSLOOKUP
 	bool "nslookup"
 	default y
 	help
 	  nslookup is a tool to query Internet name servers.
-
 config BUSYBOX_NTPD
 	bool "ntpd"
 	default y
@@ -866,20 +721,39 @@ config BUSYBOX_FEATURE_NTPD_CONF
 	help
 	  Make ntpd look in /etc/ntp.conf for peers. Only "server address"
 	  is supported.
+config BUSYBOX_PING
+	bool "ping"
+	default y
+	select 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.
+
+config BUSYBOX_PING6
+	bool "ping6"
+	default y
+	depends on BUSYBOX_FEATURE_IPV6
+	help
+	  This will give you a ping that can talk IPv6.
 
+config BUSYBOX_FEATURE_FANCY_PING
+	bool "Enable fancy ping output"
+	default y
+	depends on BUSYBOX_PING || BUSYBOX_PING6
+	help
+	  Make the output from the ping applet include statistics, and at the
+	  same time provide full support for ICMP packets.
 config BUSYBOX_PSCAN
 	bool "pscan"
 	default y
 	help
 	  Simple network port scanner.
-
 config BUSYBOX_ROUTE
 	bool "route"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Route displays or manipulates the kernel's IP routing tables.
-
 config BUSYBOX_SLATTACH
 	bool "slattach"
 	default y
@@ -887,17 +761,6 @@ config BUSYBOX_SLATTACH
 	help
 	  slattach is a small utility to attach network interfaces to serial
 	  lines.
-
-#config TC
-#	bool "tc"
-#	default y
-#	help
-#	  show / manipulate traffic control settings
-#
-#config FEATURE_TC_INGRESS
-#	def_bool n
-#	depends on TC
-
 config BUSYBOX_TCPSVD
 	bool "tcpsvd"
 	default y
@@ -905,6 +768,12 @@ config BUSYBOX_TCPSVD
 	  tcpsvd listens on a TCP port and runs a program for each new
 	  connection.
 
+config BUSYBOX_UDPSVD
+	bool "udpsvd"
+	default y
+	help
+	  udpsvd listens on an UDP port and runs a program for each new
+	  connection.
 config BUSYBOX_TELNET
 	bool "telnet"
 	default y
@@ -930,7 +799,6 @@ config BUSYBOX_FEATURE_TELNET_AUTOLOGIN
 	  remote host you are connecting to. This is useful when you need to
 	  log into a machine without telling the username (autologin). This
 	  option enables `-a' and `-l USER' arguments.
-
 config BUSYBOX_TELNETD
 	bool "telnetd"
 	default y
@@ -972,7 +840,6 @@ config BUSYBOX_TELNETD
 
 	  with all that done, telnetd _should_ work....
 
-
 config BUSYBOX_FEATURE_TELNETD_STANDALONE
 	bool "Support standalone telnetd (not inetd only)"
 	default y
@@ -1000,7 +867,6 @@ config BUSYBOX_FEATURE_TELNETD_INETD_WAIT
 	  This option is rarely used. "tcp nowait" is much more usual
 	  way of running tcp services, including telnetd.
 	  You most probably want to say N here.
-
 config BUSYBOX_TFTP
 	bool "tftp"
 	default y
@@ -1065,7 +931,6 @@ config BUSYBOX_TFTP_DEBUG
 	help
 	  Make tftp[d] print debugging messages on stderr.
 	  This is useful if you are diagnosing a bug in tftp[d].
-
 config BUSYBOX_TRACEROUTE
 	bool "traceroute"
 	default y
@@ -1076,33 +941,24 @@ config BUSYBOX_TRACEROUTE
 config BUSYBOX_TRACEROUTE6
 	bool "traceroute6"
 	default y
-	depends on BUSYBOX_FEATURE_IPV6 && BUSYBOX_TRACEROUTE
+	depends on BUSYBOX_FEATURE_IPV6
 	help
 	  Utility to trace the route of IPv6 packets.
 
 config BUSYBOX_FEATURE_TRACEROUTE_VERBOSE
 	bool "Enable verbose output"
 	default y
-	depends on BUSYBOX_TRACEROUTE
+	depends on BUSYBOX_TRACEROUTE || BUSYBOX_TRACEROUTE6
 	help
 	  Add some verbosity to traceroute. This includes among other things
 	  hostnames and ICMP response types.
 
-config BUSYBOX_FEATURE_TRACEROUTE_SOURCE_ROUTE
-	bool "Enable loose source route"
-	default n
-	depends on BUSYBOX_TRACEROUTE
-	help
-	  Add option to specify a loose source route gateway
-	  (8 maximum).
-
 config BUSYBOX_FEATURE_TRACEROUTE_USE_ICMP
-	bool "Use ICMP instead of UDP"
-	default n
-	depends on BUSYBOX_TRACEROUTE
+	bool "Enable -I option (use ICMP instead of UDP)"
+	default y
+	depends on BUSYBOX_TRACEROUTE || BUSYBOX_TRACEROUTE6
 	help
 	  Add option -I to use ICMP ECHO instead of UDP datagrams.
-
 config BUSYBOX_TUNCTL
 	bool "tunctl"
 	default y
@@ -1117,32 +973,101 @@ config BUSYBOX_FEATURE_TUNCTL_UG
 	help
 	  Allow to specify owner and group of newly created interface.
 	  340 bytes of pure bloat. Say no here.
+config BUSYBOX_VCONFIG
+	bool "vconfig"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Creates, removes, and configures VLAN interfaces
+config BUSYBOX_WGET
+	bool "wget"
+	default y
+	help
+	  wget is a utility for non-interactive download of files from HTTP
+	  and FTP servers.
 
-source "config/busybox/networking/udhcp/Config.in"
+config BUSYBOX_FEATURE_WGET_STATUSBAR
+	bool "Enable a nifty process meter (+2k)"
+	default y
+	depends on BUSYBOX_WGET
+	help
+	  Enable the transfer progress bar for wget transfers.
 
-config BUSYBOX_IFUPDOWN_UDHCPC_CMD_OPTIONS
-	string "ifup udhcpc command line options"
-	default "-R -n"
-	depends on BUSYBOX_IFUPDOWN && BUSYBOX_UDHCPC
+config BUSYBOX_FEATURE_WGET_AUTHENTICATION
+	bool "Enable HTTP authentication"
+	default y
+	depends on BUSYBOX_WGET
 	help
-	  Command line options to pass to udhcpc from ifup.
-	  Intended to alter options not available in /etc/network/interfaces.
-	  (IE: --syslog --background etc...)
+	  Support authenticated HTTP transfers.
 
-config BUSYBOX_UDPSVD
-	bool "udpsvd"
+config BUSYBOX_FEATURE_WGET_LONG_OPTIONS
+	bool "Enable long options"
 	default y
+	depends on BUSYBOX_WGET && BUSYBOX_LONG_OPTS
 	help
-	  udpsvd listens on an UDP port and runs a program for each new
-	  connection.
+	  Support long options for the wget applet.
 
-config BUSYBOX_VCONFIG
-	bool "vconfig"
+config BUSYBOX_FEATURE_WGET_TIMEOUT
+	bool "Enable timeout option -T SEC"
 	default y
-	select BUSYBOX_PLATFORM_LINUX
+	depends on BUSYBOX_WGET
 	help
-	  Creates, removes, and configures VLAN interfaces
+	  Supports network read and connect timeouts for wget,
+	  so that wget will give up and timeout, through the -T
+	  command line option.
+
+	  Currently only connect and network data read timeout are
+	  supported (i.e., timeout is not applied to the DNS query). When
+	  FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
+	  will work in addition to -T.
+
+config BUSYBOX_FEATURE_WGET_OPENSSL
+	bool "Try to connect to HTTPS using openssl"
+	default y
+	depends on BUSYBOX_WGET
+	help
+	  Choose how wget establishes SSL connection for https:// URLs.
+
+	  Busybox itself contains no SSL code. wget will spawn
+	  a helper program to talk over HTTPS.
+
+	  OpenSSL has a simple SSL client for debug purposes.
+	  If you select "openssl" helper, wget will effectively run:
+	  "openssl s_client -quiet -connect hostname:443
+	  -servername hostname 2>/dev/null" and pipe its data
+	  through it. -servername is not used if hostname is numeric.
+	  Note inconvenient API: host resolution is done twice,
+	  and there is no guarantee openssl's idea of IPv6 address
+	  format is the same as ours.
+	  Another problem is that s_client prints debug information
+	  to stderr, and it needs to be suppressed. This means
+	  all error messages get suppressed too.
+	  openssl is also a big binary, often dynamically linked
+	  against ~15 libraries.
+
+config BUSYBOX_FEATURE_WGET_SSL_HELPER
+	bool "Try to connect to HTTPS using ssl_helper"
+	default y
+	depends on BUSYBOX_WGET
+	help
+	  Choose how wget establishes SSL connection for https:// URLs.
 
+	  Busybox itself contains no SSL code. wget will spawn
+	  a helper program to talk over HTTPS.
+
+	  ssl_helper is a tool which can be built statically
+	  from busybox sources against a small embedded SSL library.
+	  Please see networking/ssl_helper/README.
+	  It does not require double host resolution and emits
+	  error messages to stderr.
+
+	  Precompiled static binary may be available at
+	  http://busybox.net/downloads/binaries/
+config BUSYBOX_WHOIS
+	bool "whois"
+	default y
+	help
+	  whois is a client for the whois directory service
 config BUSYBOX_ZCIP
 	bool "zcip"
 	default y
@@ -1156,4 +1081,15 @@ config BUSYBOX_ZCIP
 	  See http://www.zeroconf.org for further details, and "zcip.script"
 	  in the busybox examples.
 
+source "config/busybox/networking/udhcp/Config.in"
+
+config BUSYBOX_IFUPDOWN_UDHCPC_CMD_OPTIONS
+	string "ifup udhcpc command line options"
+	default "-R -n"
+	depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
+	help
+	  Command line options to pass to udhcpc from ifup.
+	  Intended to alter options not available in /etc/network/interfaces.
+	  (IE: --syslog --background etc...)
+
 endmenu
diff --git a/config/busybox/networking/udhcp/Config.in b/config/busybox/networking/udhcp/Config.in
index 21d1d3a8f..4be268aac 100644
--- a/config/busybox/networking/udhcp/Config.in
+++ b/config/busybox/networking/udhcp/Config.in
@@ -22,7 +22,6 @@ config BUSYBOX_UDHCPD
 config BUSYBOX_DHCPRELAY
 	bool "dhcprelay"
 	default y
-	depends on BUSYBOX_UDHCPD
 	help
 	  dhcprelay listens for dhcp requests on one or more interfaces
 	  and forwards these requests to a different interface or dhcp
@@ -31,7 +30,6 @@ config BUSYBOX_DHCPRELAY
 config BUSYBOX_DUMPLEASES
 	bool "Lease display utility (dumpleases)"
 	default y
-	depends on BUSYBOX_UDHCPD
 	help
 	  dumpleases displays the leases written out by the udhcpd server.
 	  Lease times are stored in the file by time remaining in lease, or
diff --git a/config/busybox/procps/Config.in b/config/busybox/procps/Config.in
index 56b915059..783d3bfc6 100644
--- a/config/busybox/procps/Config.in
+++ b/config/busybox/procps/Config.in
@@ -6,122 +6,6 @@
 
 menu "Process Utilities"
 
-config BUSYBOX_IOSTAT
-	bool "iostat"
-	default y
-	help
-	  Report CPU and I/O statistics
-config BUSYBOX_LSOF
-	bool "lsof"
-	default y
-	help
-	  Show open files in the format of:
-	  PID <TAB> /path/to/executable <TAB> /path/to/opened/file
-config BUSYBOX_MPSTAT
-	bool "mpstat"
-	default y
-	help
-	  Per-processor statistics
-config BUSYBOX_NMETER
-	bool "nmeter"
-	default y
-	help
-	  Prints selected system stats continuously, one line per update.
-config BUSYBOX_PMAP
-       bool "pmap"
-       default y
-       help
-         Display processes' memory mappings.
-config BUSYBOX_POWERTOP
-	bool "powertop"
-	default y
-	help
-	  Analyze power consumption on Intel-based laptops
-config BUSYBOX_PSTREE
-	bool "pstree"
-	default y
-	help
-	  Display a tree of processes.
-config BUSYBOX_PWDX
-	bool "pwdx"
-	default y
-	help
-	  Report current working directory of a process
-config BUSYBOX_SMEMCAP
-	bool "smemcap"
-	default y
-	help
-	  smemcap is a tool for capturing process data for smem,
-	  a memory usage statistic tool.
-config BUSYBOX_TOP
-	bool "top"
-	default y
-	help
-	  The top program provides a dynamic real-time view of a running
-	  system.
-
-config BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
-	bool "Show CPU per-process usage percentage"
-	default y
-	depends on BUSYBOX_TOP
-	help
-	  Make top display CPU usage for each process.
-	  This adds about 2k.
-
-config BUSYBOX_FEATURE_TOP_CPU_GLOBAL_PERCENTS
-	bool "Show CPU global usage percentage"
-	default y
-	depends on BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
-	help
-	  Makes top display "CPU: NN% usr NN% sys..." line.
-	  This adds about 0.5k.
-
-config BUSYBOX_FEATURE_TOP_SMP_CPU
-	bool "SMP CPU usage display ('c' key)"
-	default y
-	depends on BUSYBOX_FEATURE_TOP_CPU_GLOBAL_PERCENTS
-	help
-	  Allow 'c' key to switch between individual/cumulative CPU stats
-	  This adds about 0.5k.
-
-config BUSYBOX_FEATURE_TOP_DECIMALS
-	bool "Show 1/10th of a percent in CPU/mem statistics"
-	default y
-	depends on BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
-	help
-	  Show 1/10th of a percent in CPU/mem statistics.
-	  This adds about 0.3k.
-
-config BUSYBOX_FEATURE_TOP_SMP_PROCESS
-	bool "Show CPU process runs on ('j' field)"
-	default y
-	depends on BUSYBOX_TOP
-	help
-	  Show CPU where process was last found running on.
-	  This is the 'j' field.
-
-config BUSYBOX_FEATURE_TOPMEM
-	bool "Topmem command ('s' key)"
-	default y
-	depends on BUSYBOX_TOP
-	help
-	  Enable 's' in top (gives lots of memory info).
-config BUSYBOX_UPTIME
-	bool "uptime"
-	default y
-	select 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
-	  on, and the system load averages for the past 1, 5, and 15 minutes.
-
-config BUSYBOX_FEATURE_UPTIME_UTMP_SUPPORT
-	bool "Support for showing the number of users"
-	default y
-	depends on BUSYBOX_UPTIME && BUSYBOX_FEATURE_UTMP
-	help
-	  Makes uptime display the number of users currently logged on.
-
 config BUSYBOX_FREE
 	bool "free"
 	default y
@@ -130,7 +14,6 @@ config BUSYBOX_FREE
 	  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.
 	  The shared memory column should be ignored; it is obsolete.
-
 config BUSYBOX_FUSER
 	bool "fuser"
 	default y
@@ -138,7 +21,11 @@ config BUSYBOX_FUSER
 	  fuser lists all PIDs (Process IDs) that currently have a given
 	  file open. fuser can also list all PIDs that have a given network
 	  (TCP or UDP) port open.
-
+config BUSYBOX_IOSTAT
+	bool "iostat"
+	default y
+	help
+	  Report CPU and I/O statistics
 config BUSYBOX_KILL
 	bool "kill"
 	default y
@@ -150,7 +37,6 @@ config BUSYBOX_KILL
 config BUSYBOX_KILLALL
 	bool "killall"
 	default y
-	depends on BUSYBOX_KILL
 	help
 	  killall sends a signal to all processes running any of the
 	  specified commands. If no signal name is specified, SIGTERM is
@@ -159,14 +45,38 @@ config BUSYBOX_KILLALL
 config BUSYBOX_KILLALL5
 	bool "killall5"
 	default y
-	depends on BUSYBOX_KILL
-
+	help
+	  The SystemV killall command. killall5 sends a signal
+	  to all processes except kernel threads and the processes
+	  in its own session, so it won't kill the shell that is running
+	  the script it was called from.
+config BUSYBOX_LSOF
+	bool "lsof"
+	default y
+	help
+	  Show open files in the format of:
+	  PID <TAB> /path/to/executable <TAB> /path/to/opened/file
+config BUSYBOX_MPSTAT
+	bool "mpstat"
+	default y
+	help
+	  Per-processor statistics
+config BUSYBOX_NMETER
+	bool "nmeter"
+	default y
+	help
+	  Prints selected system stats continuously, one line per update.
 config BUSYBOX_PGREP
 	bool "pgrep"
 	default y
 	help
 	  Look for processes by name.
 
+config BUSYBOX_PKILL
+	bool "pkill"
+	default y
+	help
+	  Send signals to processes by name.
 config BUSYBOX_PIDOF
 	bool "pidof"
 	default y
@@ -189,13 +99,16 @@ config BUSYBOX_FEATURE_PIDOF_OMIT
 	  Support argument '-o' for omitting the given pids in output.
 	  The special pid %PPID can be used to name the parent process
 	  of the pidof, in other words the calling shell or shell script.
-
-config BUSYBOX_PKILL
-	bool "pkill"
+config BUSYBOX_PMAP
+       bool "pmap"
+       default y
+       help
+         Display processes' memory mappings.
+config BUSYBOX_POWERTOP
+	bool "powertop"
 	default y
 	help
-	  Send signals to processes by name.
-
+	  Analyze power consumption on Intel-based laptops
 config BUSYBOX_PS
 	bool "ps"
 	default y
@@ -241,28 +154,101 @@ config BUSYBOX_FEATURE_PS_UNUSUAL_SYSTEMS
 	help
 	  Include support for measuring HZ on old kernels and non-ELF systems
 	  (if you are on Linux 2.4.0+ and use ELF, you don't need this)
-
+config BUSYBOX_PSTREE
+	bool "pstree"
+	default y
+	help
+	  Display a tree of processes.
+config BUSYBOX_PWDX
+	bool "pwdx"
+	default y
+	help
+	  Report current working directory of a process
 config BUSYBOX_RENICE
 	bool "renice"
 	default y
 	help
 	  Renice alters the scheduling priority of one or more running
 	  processes.
-
+config BUSYBOX_SMEMCAP
+	bool "smemcap"
+	default y
+	help
+	  smemcap is a tool for capturing process data for smem,
+	  a memory usage statistic tool.
 config BUSYBOX_BB_SYSCTL
 	bool "sysctl"
 	default y
 	help
 	  Configure kernel parameters at runtime.
+config BUSYBOX_TOP
+	bool "top"
+	default y
+	help
+	  The top program provides a dynamic real-time view of a running
+	  system.
 
-config BUSYBOX_FEATURE_SHOW_THREADS
-	bool "Support for showing threads in ps/pstree/top"
+config BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+	bool "Show CPU per-process usage percentage"
 	default y
-	depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE
+	depends on BUSYBOX_TOP
 	help
-	  Enables the ps -T option, showing of threads in pstree,
-	  and 'h' command in top.
+	  Make top display CPU usage for each process.
+	  This adds about 2k.
+
+config BUSYBOX_FEATURE_TOP_CPU_GLOBAL_PERCENTS
+	bool "Show CPU global usage percentage"
+	default y
+	depends on BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+	help
+	  Makes top display "CPU: NN% usr NN% sys..." line.
+	  This adds about 0.5k.
+
+config BUSYBOX_FEATURE_TOP_SMP_CPU
+	bool "SMP CPU usage display ('c' key)"
+	default y
+	depends on BUSYBOX_FEATURE_TOP_CPU_GLOBAL_PERCENTS
+	help
+	  Allow 'c' key to switch between individual/cumulative CPU stats
+	  This adds about 0.5k.
+
+config BUSYBOX_FEATURE_TOP_DECIMALS
+	bool "Show 1/10th of a percent in CPU/mem statistics"
+	default y
+	depends on BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+	help
+	  Show 1/10th of a percent in CPU/mem statistics.
+	  This adds about 0.3k.
 
+config BUSYBOX_FEATURE_TOP_SMP_PROCESS
+	bool "Show CPU process runs on ('j' field)"
+	default y
+	depends on BUSYBOX_TOP
+	help
+	  Show CPU where process was last found running on.
+	  This is the 'j' field.
+
+config BUSYBOX_FEATURE_TOPMEM
+	bool "Topmem command ('s' key)"
+	default y
+	depends on BUSYBOX_TOP
+	help
+	  Enable 's' in top (gives lots of memory info).
+config BUSYBOX_UPTIME
+	bool "uptime"
+	default y
+	select 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
+	  on, and the system load averages for the past 1, 5, and 15 minutes.
+
+config BUSYBOX_FEATURE_UPTIME_UTMP_SUPPORT
+	bool "Support for showing the number of users"
+	default y
+	depends on BUSYBOX_UPTIME && BUSYBOX_FEATURE_UTMP
+	help
+	  Makes uptime display the number of users currently logged on.
 config BUSYBOX_WATCH
 	bool "watch"
 	default y
@@ -270,4 +256,12 @@ config BUSYBOX_WATCH
 	  watch is used to execute a program periodically, showing
 	  output to the screen.
 
+config BUSYBOX_FEATURE_SHOW_THREADS
+	bool "Support for showing threads in ps/pstree/top"
+	default y
+	depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE
+	help
+	  Enables the ps -T option, showing of threads in pstree,
+	  and 'h' command in top.
+
 endmenu
diff --git a/config/busybox/runit/Config.in b/config/busybox/runit/Config.in
index c3cf8d473..d3bebfd34 100644
--- a/config/busybox/runit/Config.in
+++ b/config/busybox/runit/Config.in
@@ -73,6 +73,13 @@ config BUSYBOX_SV_DEFAULT_SERVICE_DIR
 	help
 	  Default directory for services.
 	  Defaults to "/var/service"
+
+config BUSYBOX_SVC
+	bool "svc"
+	default y
+	help
+	  svc controls the state of services monitored by the runsv supervisor.
+	  It is comaptible with daemontools command with the same name.
 config BUSYBOX_SVLOGD
 	bool "svlogd"
 	default y
diff --git a/config/busybox/selinux/Config.in b/config/busybox/selinux/Config.in
index 1941e99fb..6dc3e75ea 100644
--- a/config/busybox/selinux/Config.in
+++ b/config/busybox/selinux/Config.in
@@ -7,7 +7,6 @@
 menu "SELinux Utilities"
 	depends on BUSYBOX_SELINUX
 
-
 config BUSYBOX_CHCON
 	bool "chcon"
 	default n
@@ -21,28 +20,24 @@ config BUSYBOX_FEATURE_CHCON_LONG_OPTIONS
 	depends on BUSYBOX_CHCON && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the chcon applet.
-
 config BUSYBOX_GETENFORCE
 	bool "getenforce"
 	default n
 	depends on BUSYBOX_SELINUX
 	help
 	  Enable support to get the current mode of SELinux.
-
 config BUSYBOX_GETSEBOOL
 	bool "getsebool"
 	default n
 	depends on BUSYBOX_SELINUX
 	help
 	  Enable support to get SELinux boolean values.
-
 config BUSYBOX_LOAD_POLICY
 	bool "load_policy"
 	default n
 	depends on BUSYBOX_SELINUX
 	help
 	  Enable support to load SELinux policy.
-
 config BUSYBOX_MATCHPATHCON
 	bool "matchpathcon"
 	default n
@@ -50,15 +45,6 @@ config BUSYBOX_MATCHPATHCON
 	help
 	  Enable support to get default security context of the
 	  specified path from the file contexts configuration.
-
-config BUSYBOX_RESTORECON
-	bool "restorecon"
-	default n
-	depends on BUSYBOX_SELINUX
-	help
-	  Enable support to relabel files. The feature is almost
-	  the same as setfiles, but usage is a little different.
-
 config BUSYBOX_RUNCON
 	bool "runcon"
 	default n
@@ -72,7 +58,6 @@ config BUSYBOX_FEATURE_RUNCON_LONG_OPTIONS
 	depends on BUSYBOX_RUNCON && BUSYBOX_LONG_OPTS
 	help
 	  Support long options for the runcon applet.
-
 config BUSYBOX_SELINUXENABLED
 	bool "selinuxenabled"
 	default n
@@ -80,14 +65,18 @@ config BUSYBOX_SELINUXENABLED
 	help
 	  Enable support for this command to be used within shell scripts
 	  to determine if selinux is enabled.
-
+config BUSYBOX_SESTATUS
+	bool "sestatus"
+	default n
+	depends on BUSYBOX_SELINUX
+	help
+	  Displays the status of SELinux.
 config BUSYBOX_SETENFORCE
 	bool "setenforce"
 	default n
 	depends on BUSYBOX_SELINUX
 	help
 	  Enable support to modify the mode SELinux is running in.
-
 config BUSYBOX_SETFILES
 	bool "setfiles"
 	default n
@@ -106,6 +95,13 @@ config BUSYBOX_FEATURE_SETFILES_CHECK_OPTION
 	  Support "-c" option (check the validity of the contexts against
 	  the specified binary policy) for setfiles. Requires libsepol.
 
+config BUSYBOX_RESTORECON
+	bool "restorecon"
+	default n
+	depends on BUSYBOX_SELINUX
+	help
+	  Enable support to relabel files. The feature is almost
+	  the same as setfiles, but usage is a little different.
 config BUSYBOX_SETSEBOOL
 	bool "setsebool"
 	default n
@@ -114,11 +110,4 @@ config BUSYBOX_SETSEBOOL
 	  Enable support for change boolean.
 	  semanage and -P option is not supported yet.
 
-config BUSYBOX_SESTATUS
-	bool "sestatus"
-	default n
-	depends on BUSYBOX_SELINUX
-	help
-	  Displays the status of SELinux.
-
 endmenu
diff --git a/config/busybox/shell/Config.in b/config/busybox/shell/Config.in
index 97f2e6164..3d41fb5f8 100644
--- a/config/busybox/shell/Config.in
+++ b/config/busybox/shell/Config.in
@@ -6,6 +6,57 @@
 
 menu "Shells"
 
+
+choice
+	prompt "Choose which shell is aliased to 'sh' name"
+	default BUSYBOX_SH_IS_ASH
+	help
+	  Choose which shell you want to be executed by 'sh' alias.
+	  The ash shell is the most bash compatible and full featured one.
+
+# note: cannot use "select ASH" here, it breaks "make allnoconfig"
+config BUSYBOX_SH_IS_ASH
+	depends on !BUSYBOX_NOMMU
+	bool "ash"
+
+config BUSYBOX_SH_IS_HUSH
+	bool "hush"
+
+config BUSYBOX_SH_IS_NONE
+	bool "none"
+
+endchoice
+
+choice
+	prompt "Choose which shell is aliased to 'bash' name"
+	default BUSYBOX_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_BASH_IS_ASH
+	depends on !BUSYBOX_NOMMU
+	bool "ash"
+
+config BUSYBOX_BASH_IS_HUSH
+	bool "hush"
+
+config BUSYBOX_BASH_IS_NONE
+	bool "none"
+
+endchoice
+
+
 config BUSYBOX_ASH
 	bool "ash"
 	default y
@@ -17,73 +68,109 @@ config BUSYBOX_ASH
 	  shell (by Herbert Xu), which was created by porting the 'ash' shell
 	  (written by Kenneth Almquist) from NetBSD.
 
+config BUSYBOX_ASH_OPTIMIZE_FOR_SIZE
+	bool "Optimize for size instead of speed"
+	default y
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+	help
+	  Compile ash for reduced size at the price of speed.
+
+config BUSYBOX_ASH_INTERNAL_GLOB
+	bool "Use internal glob() implementation"
+	default y	# Y is bigger, but because of uclibc glob() bug, let Y be default for now
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+	help
+	  Do not use glob() function from libc, use internal implementation.
+	  Use this if you are getting "glob.h: No such file or directory"
+	  or similar build errors.
+
+config BUSYBOX_ASH_RANDOM_SUPPORT
+	bool "Pseudorandom generator and $RANDOM variable"
+	default y
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+	help
+	  Enable pseudorandom generator and dynamic variable "$RANDOM".
+	  Each read of "$RANDOM" will generate a new pseudorandom value.
+	  You can reset the generator by using a specified start value.
+	  After "unset RANDOM" the generator will switch off and this
+	  variable will no longer have special treatment.
+
+config BUSYBOX_ASH_EXPAND_PRMT
+	bool "Expand prompt string"
+	default y
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+	help
+	  "PS#" may contain volatile content, such as backquote commands.
+	  This option recreates the prompt string from the environment
+	  variable each time it is displayed.
+
 config BUSYBOX_ASH_BASH_COMPAT
 	bool "bash-compatible extensions"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable bash-compatible extensions.
 
 config BUSYBOX_ASH_IDLE_TIMEOUT
 	bool "Idle timeout variable"
 	default n
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enables bash-like auto-logout after $TMOUT seconds of idle time.
 
 config BUSYBOX_ASH_JOB_CONTROL
 	bool "Job control"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable job control in the ash shell.
 
 config BUSYBOX_ASH_ALIAS
 	bool "Alias support"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable alias support in the ash shell.
 
 config BUSYBOX_ASH_GETOPTS
 	bool "Builtin getopt to parse positional parameters"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable support for getopts builtin in ash.
 
 config BUSYBOX_ASH_BUILTIN_ECHO
 	bool "Builtin version of 'echo'"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable support for echo builtin in ash.
 
 config BUSYBOX_ASH_BUILTIN_PRINTF
 	bool "Builtin version of 'printf'"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable support for printf builtin in ash.
 
 config BUSYBOX_ASH_BUILTIN_TEST
 	bool "Builtin version of 'test'"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable support for test builtin in ash.
 
 config BUSYBOX_ASH_HELP
 	bool "help builtin"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable help builtin in ash.
 
 config BUSYBOX_ASH_CMDCMD
 	bool "'command' command to override shell builtins"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
 	  Enable support for the ash 'command' builtin, which allows
 	  you to run the specified command with the specified arguments,
@@ -91,38 +178,10 @@ config BUSYBOX_ASH_CMDCMD
 
 config BUSYBOX_ASH_MAIL
 	bool "Check for new mail on interactive shells"
-	default n
-	depends on BUSYBOX_ASH
-	help
-	  Enable "check for new mail" function in the ash shell.
-
-config BUSYBOX_ASH_OPTIMIZE_FOR_SIZE
-	bool "Optimize for size instead of speed"
-	default y
-	depends on BUSYBOX_ASH
-	help
-	  Compile ash for reduced size at the price of speed.
-
-config BUSYBOX_ASH_RANDOM_SUPPORT
-	bool "Pseudorandom generator and $RANDOM variable"
 	default y
-	depends on BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
 	help
-	  Enable pseudorandom generator and dynamic variable "$RANDOM".
-	  Each read of "$RANDOM" will generate a new pseudorandom value.
-	  You can reset the generator by using a specified start value.
-	  After "unset RANDOM" the generator will switch off and this
-	  variable will no longer have special treatment.
-
-config BUSYBOX_ASH_EXPAND_PRMT
-	bool "Expand prompt string"
-	default y
-	depends on BUSYBOX_ASH
-	help
-	  "PS#" may contain volatile content, such as backquote commands.
-	  This option recreates the prompt string from the environment
-	  variable each time it is displayed.
-
+	  Enable "check for new mail" function in the ash shell.
 config BUSYBOX_CTTYHACK
 	bool "cttyhack"
 	default y
@@ -183,7 +242,7 @@ config BUSYBOX_HUSH
 config BUSYBOX_HUSH_BASH_COMPAT
 	bool "bash-compatible extensions"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable bash-compatible extensions.
 
@@ -197,14 +256,14 @@ config BUSYBOX_HUSH_BRACE_EXPANSION
 config BUSYBOX_HUSH_HELP
 	bool "help builtin"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable help builtin in hush. Code size + ~1 kbyte.
 
 config BUSYBOX_HUSH_INTERACTIVE
 	bool "Interactive mode"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable interactive mode (prompt and command editing).
 	  Without this, hush simply reads and executes commands
@@ -232,35 +291,35 @@ config BUSYBOX_HUSH_JOB
 config BUSYBOX_HUSH_TICK
 	bool "Process substitution"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable process substitution `command` and $(command) in hush.
 
 config BUSYBOX_HUSH_IF
 	bool "Support if/then/elif/else/fi"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable if/then/elif/else/fi in hush.
 
 config BUSYBOX_HUSH_LOOPS
 	bool "Support for, while and until loops"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable for, while and until loops in hush.
 
 config BUSYBOX_HUSH_CASE
 	bool "Support case ... esac statement"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable case ... esac statement in hush. +400 bytes.
 
 config BUSYBOX_HUSH_FUNCTIONS
 	bool "Support funcname() { commands; } syntax"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable support for shell functions in hush. +800 bytes.
 
@@ -274,7 +333,7 @@ config BUSYBOX_HUSH_LOCAL
 config BUSYBOX_HUSH_RANDOM_SUPPORT
 	bool "Pseudorandom generator and $RANDOM variable"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable pseudorandom generator and dynamic variable "$RANDOM".
 	  Each read of "$RANDOM" will generate a new pseudorandom value.
@@ -282,14 +341,14 @@ config BUSYBOX_HUSH_RANDOM_SUPPORT
 config BUSYBOX_HUSH_EXPORT_N
 	bool "Support 'export -n' option"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  export -n unexports variables. It is a bash extension.
 
 config BUSYBOX_HUSH_MODE_X
 	bool "Support 'hush -x' option and 'set -x' command"
 	default y
-	depends on BUSYBOX_HUSH
+	depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  This instructs hush to print commands before execution.
 	  Adds ~300 bytes.
@@ -302,72 +361,17 @@ config BUSYBOX_MSH
 	  msh is deprecated and will be removed, please migrate to hush.
 
 
-
-choice
-	prompt "Choose which shell is aliased to 'sh' name"
-	default BUSYBOX_FEATURE_SH_IS_ASH
-	help
-	  Choose which shell you want to be executed by 'sh' alias.
-	  The ash shell is the most bash compatible and full featured one.
-
-# note: cannot use "select ASH" here, it breaks "make allnoconfig"
-config BUSYBOX_FEATURE_SH_IS_ASH
-	depends on BUSYBOX_ASH
-	bool "ash"
-	depends on !BUSYBOX_NOMMU
-
-config BUSYBOX_FEATURE_SH_IS_HUSH
-	depends on BUSYBOX_HUSH
-	bool "hush"
-
-config BUSYBOX_FEATURE_SH_IS_NONE
-	bool "none"
-
-endchoice
-
-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
-
-
-config BUSYBOX_SH_MATH_SUPPORT
+config BUSYBOX_FEATURE_SH_MATH
 	bool "POSIX math support"
 	default y
-	depends on BUSYBOX_ASH || BUSYBOX_HUSH
+	depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Enable math support in the shell via $((...)) syntax.
 
-config BUSYBOX_SH_MATH_SUPPORT_64
+config BUSYBOX_FEATURE_SH_MATH_64
 	bool "Extend POSIX math support to 64 bit"
 	default y
-	depends on BUSYBOX_SH_MATH_SUPPORT
+	depends on BUSYBOX_FEATURE_SH_MATH
 	help
 	  Enable 64-bit math support in the shell. This will make the shell
 	  slightly larger, but will allow computation with very large numbers.
@@ -376,14 +380,14 @@ config BUSYBOX_SH_MATH_SUPPORT_64
 config BUSYBOX_FEATURE_SH_EXTRA_QUIET
 	bool "Hide message on interactive shell startup"
 	default y
-	depends on BUSYBOX_HUSH || BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  Remove the busybox introduction when starting a shell.
 
 config BUSYBOX_FEATURE_SH_STANDALONE
 	bool "Standalone shell"
 	default n
-	depends on (BUSYBOX_HUSH || BUSYBOX_ASH) && BUSYBOX_FEATURE_PREFER_APPLETS
+	depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  This option causes busybox shells to use busybox applets
 	  in preference to executables in the PATH whenever possible. For
@@ -416,7 +420,7 @@ config BUSYBOX_FEATURE_SH_STANDALONE
 config BUSYBOX_FEATURE_SH_NOFORK
 	bool "Run 'nofork' applets directly"
 	default n
-	depends on (BUSYBOX_HUSH || BUSYBOX_ASH) && BUSYBOX_FEATURE_PREFER_APPLETS
+	depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  This option causes busybox shells to not execute typical
 	  fork/exec/wait sequence, but call <applet>_main directly,
@@ -434,7 +438,7 @@ config BUSYBOX_FEATURE_SH_NOFORK
 config BUSYBOX_FEATURE_SH_HISTFILESIZE
 	bool "Use $HISTFILESIZE"
 	default y
-	depends on BUSYBOX_HUSH || BUSYBOX_ASH
+	depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
 	help
 	  This option makes busybox shells to use $HISTFILESIZE variable
 	  to set shell history size. Note that its max value is capped
diff --git a/config/busybox/sysklogd/Config.in b/config/busybox/sysklogd/Config.in
index b5981b743..6ebb77d06 100644
--- a/config/busybox/sysklogd/Config.in
+++ b/config/busybox/sysklogd/Config.in
@@ -47,7 +47,6 @@ config BUSYBOX_LOGGER
 config BUSYBOX_LOGREAD
 	bool "logread"
 	default y
-	depends on BUSYBOX_FEATURE_IPC_SYSLOG
 	help
 	  If you enabled Circular Buffer support, you almost
 	  certainly want to enable this feature as well. This
diff --git a/config/busybox/util-linux/Config.in b/config/busybox/util-linux/Config.in
index bc168ce44..9968f3489 100644
--- a/config/busybox/util-linux/Config.in
+++ b/config/busybox/util-linux/Config.in
@@ -6,222 +6,6 @@
 
 menu "Linux System Utilities"
 
-config BUSYBOX_BLKDISCARD
-	bool "blkdiscard"
-	default y
-	help
-	  blkdiscard discards sectors on a given device.
-config BUSYBOX_BLOCKDEV
-	bool "blockdev"
-	default y
-	help
-	  Performs some ioctls with block devices.
-config BUSYBOX_FATATTR
-	bool "fatattr"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  fatattr lists or changes the file attributes on a fat file system.
-config BUSYBOX_FSTRIM
-	bool "fstrim"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Discard unused blocks on a mounted filesystem.
-config BUSYBOX_MDEV
-	bool "mdev"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  mdev is a mini-udev implementation for dynamically creating device
-	  nodes in the /dev directory.
-
-	  For more information, please see docs/mdev.txt
-
-config BUSYBOX_FEATURE_MDEV_CONF
-	bool "Support /etc/mdev.conf"
-	default y
-	depends on BUSYBOX_MDEV
-	help
-	  Add support for the mdev config file to control ownership and
-	  permissions of the device nodes.
-
-	  For more information, please see docs/mdev.txt
-
-config BUSYBOX_FEATURE_MDEV_RENAME
-	bool "Support subdirs/symlinks"
-	default y
-	depends on BUSYBOX_FEATURE_MDEV_CONF
-	help
-	  Add support for renaming devices and creating symlinks.
-
-	  For more information, please see docs/mdev.txt
-
-config BUSYBOX_FEATURE_MDEV_RENAME_REGEXP
-	bool "Support regular expressions substitutions when renaming device"
-	default y
-	depends on BUSYBOX_FEATURE_MDEV_RENAME
-	help
-	  Add support for regular expressions substitutions when renaming
-	  device.
-
-config BUSYBOX_FEATURE_MDEV_EXEC
-	bool "Support command execution at device addition/removal"
-	default y
-	depends on BUSYBOX_FEATURE_MDEV_CONF
-	help
-	  This adds support for an optional field to /etc/mdev.conf for
-	  executing commands when devices are created/removed.
-
-	  For more information, please see docs/mdev.txt
-
-config BUSYBOX_FEATURE_MDEV_LOAD_FIRMWARE
-	bool "Support loading of firmwares"
-	default y
-	depends on BUSYBOX_MDEV
-	help
-	  Some devices need to load firmware before they can be usable.
-
-	  These devices will request userspace look up the files in
-	  /lib/firmware/ and if it exists, send it to the kernel for
-	  loading into the hardware.
-config BUSYBOX_MOUNT
-	bool "mount"
-	default y
-	select 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
-	  particular part of the tree. A filesystem can either live on a block
-	  device, or it can be accessible over the network, as is the case with
-	  NFS filesystems. Most people using BusyBox will also want to enable
-	  the 'mount' utility.
-
-config BUSYBOX_FEATURE_MOUNT_FAKE
-	bool "Support option -f"
-	default y
-	depends on BUSYBOX_MOUNT
-	help
-	  Enable support for faking a file system mount.
-
-config BUSYBOX_FEATURE_MOUNT_VERBOSE
-	bool "Support option -v"
-	default y
-	depends on BUSYBOX_MOUNT
-	help
-	  Enable multi-level -v[vv...] verbose messages. Useful if you
-	  debug mount problems and want to see what is exactly passed
-	  to the kernel.
-
-config BUSYBOX_FEATURE_MOUNT_HELPERS
-	bool "Support mount helpers"
-	default n
-	depends on BUSYBOX_MOUNT
-	help
-	  Enable mounting of virtual file systems via external helpers.
-	  E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
-	  "obexfs -b00.11.22.33.44.55 /mnt"
-	  Also "mount -t sometype [-o opts] fs /mnt" will try
-	  "sometype [-o opts] fs /mnt" if simple mount syscall fails.
-	  The idea is to use such virtual filesystems in /etc/fstab.
-
-config BUSYBOX_FEATURE_MOUNT_LABEL
-	bool "Support specifying devices by label or UUID"
-	default y
-	depends on BUSYBOX_MOUNT
-	select BUSYBOX_VOLUMEID
-	help
-	  This allows for specifying a device by label or uuid, rather than by
-	  name. This feature utilizes the same functionality as blkid/findfs.
-	  This also enables label or uuid support for swapon.
-
-config BUSYBOX_FEATURE_MOUNT_NFS
-	bool "Support mounting NFS file systems on Linux < 2.6.23"
-	default n
-	depends on BUSYBOX_MOUNT
-	select BUSYBOX_FEATURE_HAVE_RPC
-	select BUSYBOX_FEATURE_SYSLOG
-	help
-	  Enable mounting of NFS file systems on Linux kernels prior
-	  to version 2.6.23. Note that in this case mounting of NFS
-	  over IPv6 will not be possible.
-
-	  Note that this option links in RPC support from libc,
-	  which is rather large (~10 kbytes on uclibc).
-
-config BUSYBOX_FEATURE_MOUNT_CIFS
-	bool "Support mounting CIFS/SMB file systems"
-	default y
-	depends on BUSYBOX_MOUNT
-	help
-	  Enable support for samba mounts.
-
-config BUSYBOX_FEATURE_MOUNT_FLAGS
-	depends on BUSYBOX_MOUNT
-	bool "Support lots of -o flags in mount"
-	default y
-	help
-	  Without this, mount only supports ro/rw/remount. With this, it
-	  supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
-	  noatime, diratime, nodiratime, loud, bind, move, shared, slave,
-	  private, unbindable, rshared, rslave, rprivate, and runbindable.
-
-config BUSYBOX_FEATURE_MOUNT_FSTAB
-	depends on BUSYBOX_MOUNT
-	bool "Support /etc/fstab and -a"
-	default y
-	help
-	  Support mount all and looking for files in /etc/fstab.
-
-config BUSYBOX_FEATURE_MOUNT_OTHERTAB
-	depends on BUSYBOX_FEATURE_MOUNT_FSTAB
-	bool "Support -T <alt_fstab>"
-	default y
-	help
-	  Support mount -T (specifying an alternate fstab)
-config BUSYBOX_NSENTER
-	bool "nsenter"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Run program with namespaces of other processes.
-
-config BUSYBOX_FEATURE_NSENTER_LONG_OPTS
-	bool "Enable long options"
-	default y
-	depends on BUSYBOX_NSENTER && BUSYBOX_LONG_OPTS
-	help
-	  Support long options for the nsenter applet. This makes
-	  the busybox implementation more compatible with upstream.
-config BUSYBOX_REV
-	bool "rev"
-	default y
-	help
-	  Reverse lines of a file or files.
-config BUSYBOX_SETARCH
-	bool "setarch"
-	default y
-	select 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
-	  this util on a system that supports both 64bit and 32bit userland
-	  (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
-config BUSYBOX_UEVENT
-	bool "uevent"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  uevent is a netlink listener for kernel uevent notifications
-	  sent via netlink. It is usually used for dynamic device creation.
-config BUSYBOX_UNSHARE
-	bool "unshare"
-	default y
-	depends on BUSYBOX_LONG_OPTS && !BUSYBOX_NOMMU
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Run program with some namespaces unshared from parent.
-
 config BUSYBOX_ACPID
 	bool "acpid"
 	default y
@@ -244,7 +28,11 @@ config BUSYBOX_FEATURE_ACPID_COMPAT
 	depends on BUSYBOX_ACPID
 	help
 	  Accept and ignore compatibility options -g -m -s -S -v.
-
+config BUSYBOX_BLKDISCARD
+	bool "blkdiscard"
+	default y
+	help
+	  blkdiscard discards sectors on a given device.
 config BUSYBOX_BLKID
 	bool "blkid"
 	default y
@@ -261,7 +49,11 @@ config BUSYBOX_FEATURE_BLKID_TYPE
 	depends on BUSYBOX_BLKID
 	help
 	  Show TYPE="filesystem type"
-
+config BUSYBOX_BLOCKDEV
+	bool "blockdev"
+	default y
+	help
+	  Performs some ioctls with block devices.
 config BUSYBOX_DMESG
 	bool "dmesg"
 	default y
@@ -295,7 +87,12 @@ config BUSYBOX_FEATURE_DMESG_PRETTY
 	    <5>Linux version 2.6.17.4 .....
 	    <6>BIOS-provided physical RAM map:
 	    <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
-
+config BUSYBOX_FATATTR
+	bool "fatattr"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  fatattr lists or changes the file attributes on a fat file system.
 config BUSYBOX_FBSET
 	bool "fbset"
 	default y
@@ -324,27 +121,12 @@ config BUSYBOX_FEATURE_FBSET_READMODE
 	  This option allows fbset to read the video mode database stored by
 	  default as /etc/fb.modes, which can be used to set frame buffer
 	  device to pre-defined video modes.
-
-config BUSYBOX_FDFLUSH
-	bool "fdflush"
-	default y
-	select 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
-	  hardware disk-change switch has been actuated, which causes Linux to
-	  forget anything it has cached from the previous media. If you have
-	  such a slightly-broken drive, you will need to run fdflush every time
-	  you change a disk. Most people have working hardware and can safely
-	  leave this disabled.
-
 config BUSYBOX_FDFORMAT
 	bool "fdformat"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  fdformat is used to low-level format a floppy disk.
-
 config BUSYBOX_FDISK
 	bool "fdisk"
 	default y
@@ -421,7 +203,6 @@ config BUSYBOX_FEATURE_FDISK_ADVANCED
 	  define arbitrary drive geometry, move the beginning of data in a
 	  partition, and similarly evil things. Unless you have a very good
 	  reason you would be wise to leave this disabled.
-
 config BUSYBOX_FINDFS
 	bool "findfs"
 	default y
@@ -431,12 +212,23 @@ config BUSYBOX_FINDFS
 	  Prints the name of a filesystem with given label or UUID.
 	  WARNING:
 	  With all submodules selected, it will add ~8k to busybox.
-
 config BUSYBOX_FLOCK
 	bool "flock"
 	default y
 	help
 	  Manage locks from shell scripts
+config BUSYBOX_FDFLUSH
+	bool "fdflush"
+	default y
+	select 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
+	  hardware disk-change switch has been actuated, which causes Linux to
+	  forget anything it has cached from the previous media. If you have
+	  such a slightly-broken drive, you will need to run fdflush every time
+	  you change a disk. Most people have working hardware and can safely
+	  leave this disabled.
 
 config BUSYBOX_FREERAMDISK
 	bool "freeramdisk"
@@ -449,7 +241,6 @@ config BUSYBOX_FREERAMDISK
 	  pivot_root, you may want to free the memory that is allocated to the
 	  ramdisk. If you have no use for freeing memory from a ramdisk, leave
 	  this disabled.
-
 config BUSYBOX_FSCK_MINIX
 	bool "fsck_minix"
 	default y
@@ -460,47 +251,12 @@ config BUSYBOX_FSCK_MINIX
 	  power goes off in the middle of a write. This utility allows you to
 	  check for and attempt to repair any corruption that occurs to a minix
 	  filesystem.
-
-config BUSYBOX_MKFS_EXT2
-	bool "mkfs_ext2"
-	default y
-	select BUSYBOX_PLATFORM_LINUX
-	help
-	  Utility to create EXT2 filesystems.
-
-config BUSYBOX_MKFS_MINIX
-	bool "mkfs_minix"
-	default y
-	select 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
-	  filesystems this utility will do the job for you.
-
-config BUSYBOX_FEATURE_MINIX2
-	bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
-	default y
-	depends on BUSYBOX_FSCK_MINIX || BUSYBOX_MKFS_MINIX
-	help
-	  If you wish to be able to create version 2 minix filesystems, enable
-	  this. If you enabled 'mkfs_minix' then you almost certainly want to
-	  be using the version 2 filesystem support.
-
-config BUSYBOX_MKFS_REISER
-	bool "mkfs_reiser"
-	default n
-	select 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"
+config BUSYBOX_FSTRIM
+	bool "fstrim"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
-	  Utility to create FAT32 filesystems.
-
+	  Discard unused blocks on a mounted filesystem.
 config BUSYBOX_GETOPT
 	bool "getopt"
 	default y
@@ -518,7 +274,6 @@ config BUSYBOX_FEATURE_GETOPT_LONG
 	depends on BUSYBOX_GETOPT
 	help
 	  Enable support for long options (option -l).
-
 config BUSYBOX_HEXDUMP
 	bool "hexdump"
 	default y
@@ -539,10 +294,8 @@ config BUSYBOX_FEATURE_HEXDUMP_REVERSE
 config BUSYBOX_HD
 	bool "hd"
 	default y
-	depends on BUSYBOX_HEXDUMP
 	help
 	  hd is an alias to hexdump -C.
-
 config BUSYBOX_HWCLOCK
 	bool "hwclock"
 	default y
@@ -573,7 +326,6 @@ config BUSYBOX_FEATURE_HWCLOCK_ADJTIME_FHS
 	  classic /etc/adjtime path.
 
 	  pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
-
 config BUSYBOX_IPCRM
 	bool "ipcrm"
 	default y
@@ -581,7 +333,6 @@ config BUSYBOX_IPCRM
 	  The ipcrm utility allows the removal of System V interprocess
 	  communication (IPC) objects and the associated data structures
 	  from the system.
-
 config BUSYBOX_IPCS
 	bool "ipcs"
 	default y
@@ -589,7 +340,6 @@ config BUSYBOX_IPCS
 	help
 	  The ipcs utility is used to provide information on the currently
 	  allocated System V interprocess (IPC) objects in the system.
-
 config BUSYBOX_LOSETUP
 	bool "losetup"
 	default y
@@ -598,7 +348,6 @@ config BUSYBOX_LOSETUP
 	  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
 	  version does not currently support enabling data encryption.
-
 config BUSYBOX_LSPCI
 	bool "lspci"
 	default y
@@ -608,7 +357,6 @@ config BUSYBOX_LSPCI
 	  system and devices connected to them.
 
 	  This version uses sysfs (/sys/bus/pci/devices) only.
-
 config BUSYBOX_LSUSB
 	bool "lsusb"
 	default y
@@ -618,7 +366,113 @@ config BUSYBOX_LSUSB
 	  system and devices connected to them.
 
 	  This version uses sysfs (/sys/bus/usb/devices) only.
+config BUSYBOX_MDEV
+	bool "mdev"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  mdev is a mini-udev implementation for dynamically creating device
+	  nodes in the /dev directory.
+
+	  For more information, please see docs/mdev.txt
+
+config BUSYBOX_FEATURE_MDEV_CONF
+	bool "Support /etc/mdev.conf"
+	default y
+	depends on BUSYBOX_MDEV
+	help
+	  Add support for the mdev config file to control ownership and
+	  permissions of the device nodes.
+
+	  For more information, please see docs/mdev.txt
+
+config BUSYBOX_FEATURE_MDEV_RENAME
+	bool "Support subdirs/symlinks"
+	default y
+	depends on BUSYBOX_FEATURE_MDEV_CONF
+	help
+	  Add support for renaming devices and creating symlinks.
+
+	  For more information, please see docs/mdev.txt
+
+config BUSYBOX_FEATURE_MDEV_RENAME_REGEXP
+	bool "Support regular expressions substitutions when renaming device"
+	default y
+	depends on BUSYBOX_FEATURE_MDEV_RENAME
+	help
+	  Add support for regular expressions substitutions when renaming
+	  device.
+
+config BUSYBOX_FEATURE_MDEV_EXEC
+	bool "Support command execution at device addition/removal"
+	default y
+	depends on BUSYBOX_FEATURE_MDEV_CONF
+	help
+	  This adds support for an optional field to /etc/mdev.conf for
+	  executing commands when devices are created/removed.
+
+	  For more information, please see docs/mdev.txt
+
+config BUSYBOX_FEATURE_MDEV_LOAD_FIRMWARE
+	bool "Support loading of firmwares"
+	default y
+	depends on BUSYBOX_MDEV
+	help
+	  Some devices need to load firmware before they can be usable.
+
+	  These devices will request userspace look up the files in
+	  /lib/firmware/ and if it exists, send it to the kernel for
+	  loading into the hardware.
+config BUSYBOX_MKE2FS
+	bool "mke2fs"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Utility to create EXT2 filesystems.
+
+config BUSYBOX_MKFS_EXT2
+	bool "mkfs.ext2"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Alias to "mke2fs".
+config BUSYBOX_MKFS_MINIX
+	bool "mkfs_minix"
+	default y
+	select 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
+	  filesystems this utility will do the job for you.
+
+config BUSYBOX_FEATURE_MINIX2
+	bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
+	default y
+	depends on BUSYBOX_FSCK_MINIX || BUSYBOX_MKFS_MINIX
+	help
+	  If you wish to be able to create version 2 minix filesystems, enable
+	  this. If you enabled 'mkfs_minix' then you almost certainly want to
+	  be using the version 2 filesystem support.
+config BUSYBOX_MKFS_REISER
+	bool "mkfs_reiser"
+	default n
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Utility to create ReiserFS filesystems.
+	  Note: this applet needs a lot of testing and polishing.
+config BUSYBOX_MKDOSFS
+	bool "mkdosfs"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Utility to create FAT32 filesystems.
 
+config BUSYBOX_MKFS_VFAT
+	bool "mkfs.vfat"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Alias to "mkdosfs".
 config BUSYBOX_MKSWAP
 	bool "mkswap"
 	default y
@@ -638,7 +492,6 @@ config BUSYBOX_FEATURE_MKSWAP_UUID
 	depends on BUSYBOX_MKSWAP
 	help
 	  Generate swap spaces with universally unique identifiers.
-
 config BUSYBOX_MORE
 	bool "more"
 	default y
@@ -648,7 +501,114 @@ config BUSYBOX_MORE
 	  the screen, and you are using anything faster than a 300 baud modem,
 	  you will probably find this utility very helpful. If you don't have
 	  any need to reading text files, you can leave this disabled.
+config BUSYBOX_MOUNT
+	bool "mount"
+	default y
+	select 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
+	  particular part of the tree. A filesystem can either live on a block
+	  device, or it can be accessible over the network, as is the case with
+	  NFS filesystems. Most people using BusyBox will also want to enable
+	  the 'mount' utility.
+
+config BUSYBOX_FEATURE_MOUNT_FAKE
+	bool "Support option -f"
+	default y
+	depends on BUSYBOX_MOUNT
+	help
+	  Enable support for faking a file system mount.
+
+config BUSYBOX_FEATURE_MOUNT_VERBOSE
+	bool "Support option -v"
+	default y
+	depends on BUSYBOX_MOUNT
+	help
+	  Enable multi-level -v[vv...] verbose messages. Useful if you
+	  debug mount problems and want to see what is exactly passed
+	  to the kernel.
+
+config BUSYBOX_FEATURE_MOUNT_HELPERS
+	bool "Support mount helpers"
+	default n
+	depends on BUSYBOX_MOUNT
+	help
+	  Enable mounting of virtual file systems via external helpers.
+	  E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
+	  "obexfs -b00.11.22.33.44.55 /mnt"
+	  Also "mount -t sometype [-o opts] fs /mnt" will try
+	  "sometype [-o opts] fs /mnt" if simple mount syscall fails.
+	  The idea is to use such virtual filesystems in /etc/fstab.
+
+config BUSYBOX_FEATURE_MOUNT_LABEL
+	bool "Support specifying devices by label or UUID"
+	default y
+	depends on BUSYBOX_MOUNT
+	select BUSYBOX_VOLUMEID
+	help
+	  This allows for specifying a device by label or uuid, rather than by
+	  name. This feature utilizes the same functionality as blkid/findfs.
+	  This also enables label or uuid support for swapon.
+
+config BUSYBOX_FEATURE_MOUNT_NFS
+	bool "Support mounting NFS file systems on Linux < 2.6.23"
+	default n
+	depends on BUSYBOX_MOUNT
+	select BUSYBOX_FEATURE_HAVE_RPC
+	select BUSYBOX_FEATURE_SYSLOG
+	help
+	  Enable mounting of NFS file systems on Linux kernels prior
+	  to version 2.6.23. Note that in this case mounting of NFS
+	  over IPv6 will not be possible.
+
+	  Note that this option links in RPC support from libc,
+	  which is rather large (~10 kbytes on uclibc).
+
+config BUSYBOX_FEATURE_MOUNT_CIFS
+	bool "Support mounting CIFS/SMB file systems"
+	default y
+	depends on BUSYBOX_MOUNT
+	help
+	  Enable support for samba mounts.
+
+config BUSYBOX_FEATURE_MOUNT_FLAGS
+	depends on BUSYBOX_MOUNT
+	bool "Support lots of -o flags in mount"
+	default y
+	help
+	  Without this, mount only supports ro/rw/remount. With this, it
+	  supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
+	  noatime, diratime, nodiratime, loud, bind, move, shared, slave,
+	  private, unbindable, rshared, rslave, rprivate, and runbindable.
+
+config BUSYBOX_FEATURE_MOUNT_FSTAB
+	depends on BUSYBOX_MOUNT
+	bool "Support /etc/fstab and -a"
+	default y
+	help
+	  Support mount all and looking for files in /etc/fstab.
+
+config BUSYBOX_FEATURE_MOUNT_OTHERTAB
+	depends on BUSYBOX_FEATURE_MOUNT_FSTAB
+	bool "Support -T <alt_fstab>"
+	default y
+	help
+	  Support mount -T (specifying an alternate fstab)
+config BUSYBOX_NSENTER
+	bool "nsenter"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Run program with namespaces of other processes.
 
+config BUSYBOX_FEATURE_NSENTER_LONG_OPTS
+	bool "Enable long options"
+	default y
+	depends on BUSYBOX_NSENTER && BUSYBOX_LONG_OPTS
+	help
+	  Support long options for the nsenter applet. This makes
+	  the busybox implementation more compatible with upstream.
 config BUSYBOX_PIVOT_ROOT
 	bool "pivot_root"
 	default y
@@ -661,7 +621,6 @@ config BUSYBOX_PIVOT_ROOT
 
 	  Note: This is for initrd in linux 2.4. Under initramfs (introduced
 	  in linux 2.6) use switch_root instead.
-
 config BUSYBOX_RDATE
 	bool "rdate"
 	default y
@@ -670,46 +629,68 @@ config BUSYBOX_RDATE
 	  system clock with the date and time of a remote networked system using
 	  the RFC868 protocol, which is built into the inetd daemon on most
 	  systems.
-
 config BUSYBOX_RDEV
 	bool "rdev"
 	default y
 	help
 	  Print the device node associated with the filesystem mounted at '/'.
-
 config BUSYBOX_READPROFILE
 	bool "readprofile"
 	default y
 	#select PLATFORM_LINUX
 	help
 	  This allows you to parse /proc/profile for basic profiling.
-
+config BUSYBOX_REV
+	bool "rev"
+	default y
+	help
+	  Reverse lines of a file or files.
 config BUSYBOX_RTCWAKE
 	bool "rtcwake"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
 	  Enter a system sleep state until specified wakeup time.
-
 config BUSYBOX_SCRIPT
 	bool "script"
 	default y
 	help
 	  The script makes typescript of terminal session.
-
 config BUSYBOX_SCRIPTREPLAY
 	bool "scriptreplay"
 	default y
 	help
 	  This program replays a typescript, using timing information
 	  given by script -t.
+config BUSYBOX_SETARCH
+	bool "setarch"
+	default y
+	select 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
+	  this util on a system that supports both 64bit and 32bit userland
+	  (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
+
+config BUSYBOX_LINUX32
+	bool "linux32"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Alias to "setarch linux32".
 
-config BUSYBOX_SWAPONOFF
-	bool "swaponoff"
+config BUSYBOX_LINUX64
+	bool "linux64"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Alias to "setarch linux64".
+config BUSYBOX_SWAPON
+	bool "swapon"
 	default y
 	select BUSYBOX_PLATFORM_LINUX
 	help
-	  This option enables both the 'swapon' and the 'swapoff' utilities.
+	  This option enables the 'swapon' utility.
 	  Once you have created some swap space using 'mkswap', you also need
 	  to enable your swap space with the 'swapon' utility. The 'swapoff'
 	  utility is used, typically at system shutdown, to disable any swap
@@ -719,7 +700,7 @@ config BUSYBOX_SWAPONOFF
 config BUSYBOX_FEATURE_SWAPON_DISCARD
 	bool "Support discard option -d"
 	default y
-	depends on BUSYBOX_SWAPONOFF
+	depends on BUSYBOX_SWAPON
 	help
 	  Enable support for discarding swap area blocks at swapon and/or as
 	  the kernel frees them. This option enables both the -d option on
@@ -728,10 +709,16 @@ config BUSYBOX_FEATURE_SWAPON_DISCARD
 config BUSYBOX_FEATURE_SWAPON_PRI
 	bool "Support priority option -p"
 	default y
-	depends on BUSYBOX_SWAPONOFF
+	depends on BUSYBOX_SWAPON
 	help
 	  Enable support for setting swap device priority in swapon.
 
+config BUSYBOX_SWAPOFF
+	bool "swapoff"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  This option enables the 'swapoff' utility.
 config BUSYBOX_SWITCH_ROOT
 	bool "switch_root"
 	default y
@@ -751,7 +738,13 @@ config BUSYBOX_SWITCH_ROOT
 	  * Because the Linux kernel uses rootfs internally as the starting
 	  and ending point for searching through the kernel's doubly linked
 	  list of active mount points. That's why.
-
+config BUSYBOX_UEVENT
+	bool "uevent"
+	default y
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  uevent is a netlink listener for kernel uevent notifications
+	  sent via netlink. It is usually used for dynamic device creation.
 config BUSYBOX_UMOUNT
 	bool "umount"
 	default y
@@ -768,6 +761,13 @@ config BUSYBOX_FEATURE_UMOUNT_ALL
 	depends on BUSYBOX_UMOUNT
 	help
 	  Support -a option to unmount all currently mounted filesystems.
+config BUSYBOX_UNSHARE
+	bool "unshare"
+	default y
+	depends on BUSYBOX_LONG_OPTS && !BUSYBOX_NOMMU
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	  Run program with some namespaces unshared from parent.
 
 comment "Common options for mount/umount"
 	depends on BUSYBOX_MOUNT || BUSYBOX_UMOUNT
diff --git a/patches/busybox-1.25.1/0204-setfiles-fix-build-error.patch b/patches/busybox-1.25.1/0204-setfiles-fix-build-error.patch
deleted file mode 100644
index fb25b8ac4..000000000
--- a/patches/busybox-1.25.1/0204-setfiles-fix-build-error.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 28 Nov 2016 10:26:54 +0100
-Subject: [PATCH] setfiles: fix build error
-
-Otherwise building fails with:
-
-[...]
-selinux/setfiles.c:150:22: error: 'bb_common_bufsiz1' undeclared (first use in this function)
-[...]
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- selinux/setfiles.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/selinux/setfiles.c b/selinux/setfiles.c
-index 51a7e63bd741..d8083d4fd580 100644
---- a/selinux/setfiles.c
-+++ b/selinux/setfiles.c
-@@ -46,6 +46,7 @@
- //usage:     "\n		if it has changed"
- 
- #include "libbb.h"
-+#include "common_bufsiz.h"
- #if ENABLE_FEATURE_SETFILES_CHECK_OPTION
- #include <sepol/sepol.h>
- #endif
diff --git a/patches/busybox-1.25.1/0200-reactivate-check-for-tty.patch b/patches/busybox-1.26.2/0200-reactivate-check-for-tty.patch
similarity index 100%
rename from patches/busybox-1.25.1/0200-reactivate-check-for-tty.patch
rename to patches/busybox-1.26.2/0200-reactivate-check-for-tty.patch
diff --git a/patches/busybox-1.25.1/0201-Fix-the-format-warning-when-building-applets-usage_p.patch b/patches/busybox-1.26.2/0201-Fix-the-format-warning-when-building-applets-usage_p.patch
similarity index 100%
rename from patches/busybox-1.25.1/0201-Fix-the-format-warning-when-building-applets-usage_p.patch
rename to patches/busybox-1.26.2/0201-Fix-the-format-warning-when-building-applets-usage_p.patch
diff --git a/patches/busybox-1.25.1/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch b/patches/busybox-1.26.2/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
similarity index 100%
rename from patches/busybox-1.25.1/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
rename to patches/busybox-1.26.2/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
diff --git a/patches/busybox-1.25.1/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch b/patches/busybox-1.26.2/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
similarity index 100%
rename from patches/busybox-1.25.1/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
rename to patches/busybox-1.26.2/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
diff --git a/patches/busybox-1.25.1/series b/patches/busybox-1.26.2/series
similarity index 92%
rename from patches/busybox-1.25.1/series
rename to patches/busybox-1.26.2/series
index c4176a290..bc29762d6 100644
--- a/patches/busybox-1.25.1/series
+++ b/patches/busybox-1.26.2/series
@@ -7,5 +7,4 @@
 0201-Fix-the-format-warning-when-building-applets-usage_p.patch
 0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
 0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
-0204-setfiles-fix-build-error.patch
 # 85c3e49d1a3d51e934d942443f99beba  - git-ptx-patches magic
diff --git a/rules/busybox.make b/rules/busybox.make
index 944fbccdf..81b561ddc 100644
--- a/rules/busybox.make
+++ b/rules/busybox.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_BUSYBOX) += busybox
 #
 # Paths and names
 #
-BUSYBOX_VERSION	:= 1.25.1
-BUSYBOX_MD5	:= 4f4c5de50b479b11ff636d7d8eb902a2
+BUSYBOX_VERSION	:= 1.26.2
+BUSYBOX_MD5	:= bb59d25ee2643db20f212eec539429f1
 BUSYBOX		:= busybox-$(BUSYBOX_VERSION)
 BUSYBOX_SUFFIX	:= tar.bz2
 BUSYBOX_URL	:= https://www.busybox.net/downloads/$(BUSYBOX).$(BUSYBOX_SUFFIX)
diff --git a/rules/initmethod-bbinit.in b/rules/initmethod-bbinit.in
index 108ee0d28..383add59f 100644
--- a/rules/initmethod-bbinit.in
+++ b/rules/initmethod-bbinit.in
@@ -20,7 +20,8 @@ config INITMETHOD_BBINIT_ETC_INITD_NETWORKING
 	bool
 	default y
 	prompt "install /etc/init.d/networking"
-	select BUSYBOX_IFUPDOWN			if BUSYBOX
+	select BUSYBOX_IFUP			if BUSYBOX
+	select BUSYBOX_IFDOWN			if BUSYBOX
 	select BUSYBOX_IFCONFIG			if BUSYBOX
 	select BUSYBOX_FEATURE_IFUPDOWN_IP	if BUSYBOX
 	help
diff --git a/rules/initmethod-systemd.in b/rules/initmethod-systemd.in
index 07010b4c9..dab72e6b4 100644
--- a/rules/initmethod-systemd.in
+++ b/rules/initmethod-systemd.in
@@ -4,7 +4,8 @@ if INITMETHOD_SYSTEMD
 
 config INITMETHOD_SYSTEMD_IFUPDOWN
 	bool
-	select BUSYBOX_IFUPDOWN			if BUSYBOX
+	select BUSYBOX_IFUP			if BUSYBOX
+	select BUSYBOX_IFDOWN			if BUSYBOX
 	select BUSYBOX_IFCONFIG			if BUSYBOX
 	select BUSYBOX_FEATURE_IFUPDOWN_IP	if BUSYBOX
 	prompt "install simple network service"
diff --git a/rules/util-linux-ng.in b/rules/util-linux-ng.in
index a4f1e4354..1478a2ff4 100644
--- a/rules/util-linux-ng.in
+++ b/rules/util-linux-ng.in
@@ -150,12 +150,12 @@ config UTIL_LINUX_NG_SWAPON
 	select UTIL_LINUX_NG_LIBBLKID
 	select UTIL_LINUX_NG_LIBMOUNT
 	select UTIL_LINUX_NG_LIBSMARTCOLS
-	depends on !BUSYBOX_SWAPONOFF || ALLYES
+	depends on !BUSYBOX_SWAPON || ALLYES
 	help
 	  Swapon is used to specify devices on which paging and swapping are to take place.
 
 comment "BusyBox' swapon is selected!"
-	depends on BUSYBOX_SWAPONOFF
+	depends on BUSYBOX_SWAPON
 
 config UTIL_LINUX_NG_LOSETUP
 	bool
-- 
2.11.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [ptxdist] [PATCH] busybox: update version 1.25.1 -> 1.26.2
  2017-01-12 18:40 [ptxdist] [PATCH] busybox: update version 1.25.1 -> 1.26.2 Clemens Gruber
@ 2017-01-27  9:00 ` Michael Olbrich
  2017-01-28 15:45   ` Clemens Gruber
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Olbrich @ 2017-01-27  9:00 UTC (permalink / raw)
  To: ptxdist

On Thu, Jan 12, 2017 at 07:40:19PM +0100, Clemens Gruber wrote:
> Also update the busybox config tree and use the split-up IFUP and IFDOWN
> symbols in initmethod-*.in.

Prepare complains about missing options. Maybe you did the import for
1.26.1 or somthing like that?

Looks good otherwise.

Michael

> Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
> ---
>  config/busybox/Config.in                           | 315 +++-------
>  config/busybox/archival/Config.in                  |  82 ++-
>  config/busybox/console-tools/Config.in             | 103 ++--
>  config/busybox/coreutils/Config.in                 | 613 +++++++++-----------
>  config/busybox/findutils/Config.in                 |  20 +-
>  config/busybox/init/Config.in                      |  20 +-
>  config/busybox/libbb/Config.in                     | 164 +++++-
>  config/busybox/mailutils/Config.in                 |  18 +-
>  config/busybox/miscutils/Config.in                 | 614 ++++++++++----------
>  config/busybox/modutils/Config.in                  |  81 ++-
>  config/busybox/networking/Config.in                | 634 +++++++++------------
>  config/busybox/networking/udhcp/Config.in          |   2 -
>  config/busybox/procps/Config.in                    | 260 +++++----
>  config/busybox/runit/Config.in                     |   7 +
>  config/busybox/selinux/Config.in                   |  37 +-
>  config/busybox/shell/Config.in                     | 232 ++++----
>  config/busybox/sysklogd/Config.in                  |   1 -
>  config/busybox/util-linux/Config.in                | 592 +++++++++----------
>  .../0204-setfiles-fix-build-error.patch            |  27 -
>  .../0200-reactivate-check-for-tty.patch            |   0
>  ...mat-warning-when-building-applets-usage_p.patch |   0
>  ...ystem-only-pass-real-libs-to-SELINUX_LIBS.patch |   0
>  ...link-honour-SKIP_STRIP-and-don-t-strip-if.patch |   0
>  patches/{busybox-1.25.1 => busybox-1.26.2}/series  |   1 -
>  rules/busybox.make                                 |   4 +-
>  rules/initmethod-bbinit.in                         |   3 +-
>  rules/initmethod-systemd.in                        |   3 +-
>  rules/util-linux-ng.in                             |   4 +-
>  28 files changed, 1826 insertions(+), 2011 deletions(-)
>  delete mode 100644 patches/busybox-1.25.1/0204-setfiles-fix-build-error.patch
>  rename patches/{busybox-1.25.1 => busybox-1.26.2}/0200-reactivate-check-for-tty.patch (100%)
>  rename patches/{busybox-1.25.1 => busybox-1.26.2}/0201-Fix-the-format-warning-when-building-applets-usage_p.patch (100%)
>  rename patches/{busybox-1.25.1 => busybox-1.26.2}/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch (100%)
>  rename patches/{busybox-1.25.1 => busybox-1.26.2}/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch (100%)
>  rename patches/{busybox-1.25.1 => busybox-1.26.2}/series (92%)
[...]

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [ptxdist] [PATCH] busybox: update version 1.25.1 -> 1.26.2
  2017-01-27  9:00 ` Michael Olbrich
@ 2017-01-28 15:45   ` Clemens Gruber
  0 siblings, 0 replies; 3+ messages in thread
From: Clemens Gruber @ 2017-01-28 15:45 UTC (permalink / raw)
  To: ptxdist

Hi Michael,

On Fri, Jan 27, 2017 at 10:00:38AM +0100, Michael Olbrich wrote:
> On Thu, Jan 12, 2017 at 07:40:19PM +0100, Clemens Gruber wrote:
> > Also update the busybox config tree and use the split-up IFUP and IFDOWN
> > symbols in initmethod-*.in.
> 
> Prepare complains about missing options. Maybe you did the import for
> 1.26.1 or somthing like that?

Maybe yes. After ptxdist make busybox_import PTXDIST_IMPORTDIR=~/ptxdist
I saw a change to one Config.in file, my patch missed.

> Looks good otherwise.

Will send a v2.

Thanks,
Clemens

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-28 15:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-12 18:40 [ptxdist] [PATCH] busybox: update version 1.25.1 -> 1.26.2 Clemens Gruber
2017-01-27  9:00 ` Michael Olbrich
2017-01-28 15:45   ` Clemens Gruber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox