[LEDE-DEV] [PATCH RFC 3/3] busybox: update to 1.26.1

Magnus Kroken mkroken at gmail.com
Wed Jan 4 14:54:53 PST 2017


Refresh patches, delete patches that have been applied upstream.

Signed-off-by: Magnus Kroken <mkroken at gmail.com>
---
Size comparison (.ipk):
204975 busybox_1.25.1-2_mips_24kc.ipk
204682 busybox_1.26.1-1_mips_24kc.ipk

Compile-tested on mips/ar71xx and x86, runtime-tested on x86.

As is obvious from the diffstat there are a lot of */Config.in updates, lots
of symbols have moved around. It compiles and no issues are apparent from 
my testing, but I don't use many busybox features beyond what LEDE/LuCI 
makes use of on its own, so I'd appreciate some community feedback.

 package/utils/busybox/Config-defaults.in           | 1229 ++++++++++----------
 package/utils/busybox/Makefile                     |    6 +-
 package/utils/busybox/config/Config.in             |  315 ++---
 package/utils/busybox/config/archival/Config.in    |   78 +-
 .../utils/busybox/config/console-tools/Config.in   |  103 +-
 package/utils/busybox/config/coreutils/Config.in   |  603 +++++-----
 package/utils/busybox/config/findutils/Config.in   |   24 +-
 package/utils/busybox/config/init/Config.in        |   20 +-
 package/utils/busybox/config/libbb/Config.in       |  162 +++
 package/utils/busybox/config/mailutils/Config.in   |   18 +-
 package/utils/busybox/config/miscutils/Config.in   |  615 +++++-----
 package/utils/busybox/config/modutils/Config.in    |   73 +-
 package/utils/busybox/config/networking/Config.in  |  643 +++++-----
 .../busybox/config/networking/udhcp/Config.in      |    2 -
 package/utils/busybox/config/procps/Config.in      |  264 ++---
 package/utils/busybox/config/runit/Config.in       |    7 +
 package/utils/busybox/config/selinux/Config.in     |   37 +-
 package/utils/busybox/config/shell/Config.in       |  234 ++--
 package/utils/busybox/config/sysklogd/Config.in    |    1 -
 package/utils/busybox/config/util-linux/Config.in  |  598 +++++-----
 .../busybox/config/util-linux/volume_id/Config.in  |    9 +
 ...to_from-do-not-require-that-to-should-hav.patch |   37 -
 .../busybox/patches/102-trylink_mktemp_fix.patch   |   20 -
 .../patches/120-remove_uclibc_rpc_check.patch      |    2 +-
 .../busybox/patches/200-udhcpc_reduce_msgs.patch   |    4 +-
 .../patches/201-udhcpc_changed_ifindex.patch       |    2 +-
 .../patches/203-udhcpc_renew_no_deconfig.patch     |    2 +-
 .../utils/busybox/patches/240-telnetd_intr.patch   |    2 +-
 .../utils/busybox/patches/250-date-k-flag.patch    |   12 +-
 .../busybox/patches/302-netlink-alignment.patch    |  100 --
 .../patches/303-ip-route-fix-high-table-ids.patch  |  486 --------
 31 files changed, 2479 insertions(+), 3229 deletions(-)
 delete mode 100644 package/utils/busybox/patches/002-libbb-send_to_from-do-not-require-that-to-should-hav.patch
 delete mode 100644 package/utils/busybox/patches/102-trylink_mktemp_fix.patch
 delete mode 100644 package/utils/busybox/patches/302-netlink-alignment.patch
 delete mode 100644 package/utils/busybox/patches/303-ip-route-fix-high-table-ids.patch

diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index 11cce03..3a52211 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -16,15 +16,6 @@ config BUSYBOX_DEFAULT_USE_PORTABLE_CODE
 config BUSYBOX_DEFAULT_PLATFORM_LINUX
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_BUFFERS_USE_MALLOC
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_BUFFERS_GO_ON_STACK
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_BUFFERS_GO_IN_BSS
-	bool
-	default n
 config BUSYBOX_DEFAULT_SHOW_USAGE
 	bool
 	default y
@@ -43,45 +34,9 @@ config BUSYBOX_DEFAULT_FEATURE_INSTALLER
 config BUSYBOX_DEFAULT_INSTALL_NO_USR
 	bool
 	default n
-config BUSYBOX_DEFAULT_LOCALE_SUPPORT
-	bool
-	default n
-config BUSYBOX_DEFAULT_UNICODE_SUPPORT
-	bool
-	default n
-config BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
-	bool
-	default n
-config BUSYBOX_DEFAULT_SUBST_WCHAR
-	int
-	default 0
-config BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
-	int
-	default 0
-config BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
-	bool
-	default n
-config BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
-	bool
-	default n
-config BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
-	bool
-	default n
-config BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
-	bool
-	default n
-config BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
-	bool
-	default n
 config BUSYBOX_DEFAULT_PAM
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
-	bool
-	default n
 config BUSYBOX_DEFAULT_LONG_OPTS
 	bool
 	default y
@@ -163,6 +118,30 @@ config BUSYBOX_DEFAULT_EXTRA_LDFLAGS
 config BUSYBOX_DEFAULT_EXTRA_LDLIBS
 	string
 	default ""
+config BUSYBOX_DEFAULT_INSTALL_APPLET_SYMLINKS
+	bool
+	default y
+config BUSYBOX_DEFAULT_INSTALL_APPLET_HARDLINKS
+	bool
+	default n
+config BUSYBOX_DEFAULT_INSTALL_APPLET_SCRIPT_WRAPPERS
+	bool
+	default n
+config BUSYBOX_DEFAULT_INSTALL_APPLET_DONT
+	bool
+	default n
+config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_SYMLINK
+	bool
+	default n
+config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_HARDLINK
+	bool
+	default n
+config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_SCRIPT_WRAPPER
+	bool
+	default n
+config BUSYBOX_DEFAULT_PREFIX
+	string
+	default "./_install"
 config BUSYBOX_DEFAULT_DEBUG
 	bool
 	default n
@@ -187,34 +166,19 @@ config BUSYBOX_DEFAULT_DMALLOC
 config BUSYBOX_DEFAULT_EFENCE
 	bool
 	default n
-config BUSYBOX_DEFAULT_INSTALL_APPLET_SYMLINKS
-	bool
-	default y
-config BUSYBOX_DEFAULT_INSTALL_APPLET_HARDLINKS
-	bool
-	default n
-config BUSYBOX_DEFAULT_INSTALL_APPLET_SCRIPT_WRAPPERS
-	bool
-	default n
-config BUSYBOX_DEFAULT_INSTALL_APPLET_DONT
-	bool
-	default n
-config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_SYMLINK
+config BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
 	bool
 	default n
-config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_HARDLINK
+config BUSYBOX_DEFAULT_FEATURE_RTMINMAX
 	bool
 	default n
-config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_SCRIPT_WRAPPER
+config BUSYBOX_DEFAULT_FEATURE_BUFFERS_USE_MALLOC
 	bool
 	default n
-config BUSYBOX_DEFAULT_PREFIX
-	string
-	default "./_install"
-config BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
+config BUSYBOX_DEFAULT_FEATURE_BUFFERS_GO_ON_STACK
 	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_RTMINMAX
+	default y
+config BUSYBOX_DEFAULT_FEATURE_BUFFERS_GO_IN_BSS
 	bool
 	default n
 config BUSYBOX_DEFAULT_PASSWORD_MINLEN
@@ -268,12 +232,48 @@ config BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
 config BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
 	bool
 	default n
+config BUSYBOX_DEFAULT_LOCALE_SUPPORT
+	bool
+	default n
+config BUSYBOX_DEFAULT_UNICODE_SUPPORT
+	bool
+	default n
+config BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
+	bool
+	default n
+config BUSYBOX_DEFAULT_SUBST_WCHAR
+	int
+	default 0
+config BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
+	int
+	default 0
+config BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
+	bool
+	default n
+config BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
+	bool
+	default n
+config BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
+	bool
+	default n
+config BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
+	bool
+	default n
+config BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
 	bool
 	default y
 config BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
 	int
 	default 4
@@ -319,24 +319,36 @@ config BUSYBOX_DEFAULT_UNCOMPRESS
 config BUSYBOX_DEFAULT_GUNZIP
 	bool
 	default y
+config BUSYBOX_DEFAULT_ZCAT
+	bool
+	default y
 config BUSYBOX_DEFAULT_FEATURE_GUNZIP_LONG_OPTIONS
 	bool
 	default n
 config BUSYBOX_DEFAULT_BUNZIP2
 	bool
 	default y
+config BUSYBOX_DEFAULT_BZCAT
+	bool
+	default y
 config BUSYBOX_DEFAULT_UNLZMA
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
+config BUSYBOX_DEFAULT_LZCAT
 	bool
 	default n
 config BUSYBOX_DEFAULT_LZMA
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
+	bool
+	default n
 config BUSYBOX_DEFAULT_UNXZ
 	bool
 	default n
+config BUSYBOX_DEFAULT_XZCAT
+	bool
+	default n
 config BUSYBOX_DEFAULT_XZ
 	bool
 	default n
@@ -358,9 +370,6 @@ config BUSYBOX_DEFAULT_DPKG
 config BUSYBOX_DEFAULT_DPKG_DEB
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	bool
-	default n
 config BUSYBOX_DEFAULT_GZIP
 	bool
 	default y
@@ -376,6 +385,12 @@ config BUSYBOX_DEFAULT_FEATURE_GZIP_LEVELS
 config BUSYBOX_DEFAULT_LZOP
 	bool
 	default n
+config BUSYBOX_DEFAULT_UNLZOP
+	bool
+	default n
+config BUSYBOX_DEFAULT_LZOPCAT
+	bool
+	default n
 config BUSYBOX_DEFAULT_LZOP_COMPR_HIGH
 	bool
 	default n
@@ -427,9 +442,45 @@ config BUSYBOX_DEFAULT_UNZIP
 config BUSYBOX_DEFAULT_BASENAME
 	bool
 	default y
+config BUSYBOX_DEFAULT_CAL
+	bool
+	default n
 config BUSYBOX_DEFAULT_CAT
 	bool
 	default y
+config BUSYBOX_DEFAULT_CATV
+	bool
+	default n
+config BUSYBOX_DEFAULT_CHGRP
+	bool
+	default y
+config BUSYBOX_DEFAULT_CHMOD
+	bool
+	default y
+config BUSYBOX_DEFAULT_CHOWN
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_CHOWN_LONG_OPTIONS
+	bool
+	default n
+config BUSYBOX_DEFAULT_CHROOT
+	bool
+	default y
+config BUSYBOX_DEFAULT_CKSUM
+	bool
+	default n
+config BUSYBOX_DEFAULT_COMM
+	bool
+	default n
+config BUSYBOX_DEFAULT_CP
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_CP_LONG_OPTIONS
+	bool
+	default n
+config BUSYBOX_DEFAULT_CUT
+	bool
+	default y
 config BUSYBOX_DEFAULT_DATE
 	bool
 	default y
@@ -457,168 +508,81 @@ config BUSYBOX_DEFAULT_FEATURE_DD_IBS_OBS
 config BUSYBOX_DEFAULT_FEATURE_DD_STATUS
 	bool
 	default n
-config BUSYBOX_DEFAULT_HOSTID
-	bool
-	default n
-config BUSYBOX_DEFAULT_ID
+config BUSYBOX_DEFAULT_DF
 	bool
 	default y
-config BUSYBOX_DEFAULT_GROUPS
-	bool
-	default n
-config BUSYBOX_DEFAULT_SHUF
-	bool
-	default n
-config BUSYBOX_DEFAULT_STAT
+config BUSYBOX_DEFAULT_FEATURE_DF_FANCY
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_STAT_FORMAT
+config BUSYBOX_DEFAULT_DIRNAME
 	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_STAT_FILESYSTEM
+	default y
+config BUSYBOX_DEFAULT_DOS2UNIX
 	bool
 	default n
-config BUSYBOX_DEFAULT_SYNC
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_SYNC_FANCY
+config BUSYBOX_DEFAULT_UNIX2DOS
 	bool
 	default n
-config BUSYBOX_DEFAULT_TEST
+config BUSYBOX_DEFAULT_DU
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_TEST_64
+config BUSYBOX_DEFAULT_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
 	bool
 	default y
-config BUSYBOX_DEFAULT_TOUCH
+config BUSYBOX_DEFAULT_ECHO
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
+config BUSYBOX_DEFAULT_FEATURE_FANCY_ECHO
 	bool
 	default y
-config BUSYBOX_DEFAULT_TR
+config BUSYBOX_DEFAULT_ENV
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
+config BUSYBOX_DEFAULT_FEATURE_ENV_LONG_OPTIONS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
+config BUSYBOX_DEFAULT_EXPAND
 	bool
 	default n
-config BUSYBOX_DEFAULT_TRUNCATE
+config BUSYBOX_DEFAULT_FEATURE_EXPAND_LONG_OPTIONS
 	bool
 	default n
-config BUSYBOX_DEFAULT_UNLINK
+config BUSYBOX_DEFAULT_UNEXPAND
 	bool
 	default n
-config BUSYBOX_DEFAULT_BASE64
+config BUSYBOX_DEFAULT_FEATURE_UNEXPAND_LONG_OPTIONS
 	bool
 	default n
-config BUSYBOX_DEFAULT_WHO
+config BUSYBOX_DEFAULT_EXPR
 	bool
-	default n
-config BUSYBOX_DEFAULT_USERS
+	default y
+config BUSYBOX_DEFAULT_EXPR_MATH_SUPPORT_64
 	bool
-	default n
-config BUSYBOX_DEFAULT_CAL
+	default y
+config BUSYBOX_DEFAULT_FALSE
 	bool
-	default n
-config BUSYBOX_DEFAULT_CATV
+	default y
+config BUSYBOX_DEFAULT_FOLD
 	bool
 	default n
-config BUSYBOX_DEFAULT_CHGRP
+config BUSYBOX_DEFAULT_FSYNC
 	bool
 	default y
-config BUSYBOX_DEFAULT_CHMOD
+config BUSYBOX_DEFAULT_HEAD
 	bool
 	default y
-config BUSYBOX_DEFAULT_CHOWN
+config BUSYBOX_DEFAULT_FEATURE_FANCY_HEAD
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_CHOWN_LONG_OPTIONS
+config BUSYBOX_DEFAULT_HOSTID
 	bool
 	default n
-config BUSYBOX_DEFAULT_CHROOT
+config BUSYBOX_DEFAULT_ID
 	bool
 	default y
-config BUSYBOX_DEFAULT_CKSUM
-	bool
-	default n
-config BUSYBOX_DEFAULT_COMM
-	bool
-	default n
-config BUSYBOX_DEFAULT_CP
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_CP_LONG_OPTIONS
-	bool
-	default n
-config BUSYBOX_DEFAULT_CUT
-	bool
-	default y
-config BUSYBOX_DEFAULT_DF
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_DF_FANCY
-	bool
-	default n
-config BUSYBOX_DEFAULT_DIRNAME
-	bool
-	default y
-config BUSYBOX_DEFAULT_DOS2UNIX
-	bool
-	default n
-config BUSYBOX_DEFAULT_UNIX2DOS
-	bool
-	default n
-config BUSYBOX_DEFAULT_DU
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
-	bool
-	default y
-config BUSYBOX_DEFAULT_ECHO
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_FANCY_ECHO
-	bool
-	default y
-config BUSYBOX_DEFAULT_ENV
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_ENV_LONG_OPTIONS
-	bool
-	default n
-config BUSYBOX_DEFAULT_EXPAND
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_EXPAND_LONG_OPTIONS
-	bool
-	default n
-config BUSYBOX_DEFAULT_EXPR
-	bool
-	default y
-config BUSYBOX_DEFAULT_EXPR_MATH_SUPPORT_64
-	bool
-	default y
-config BUSYBOX_DEFAULT_FALSE
-	bool
-	default y
-config BUSYBOX_DEFAULT_FOLD
+config BUSYBOX_DEFAULT_GROUPS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FSYNC
-	bool
-	default y
-config BUSYBOX_DEFAULT_HEAD
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_FANCY_HEAD
-	bool
-	default y
 config BUSYBOX_DEFAULT_INSTALL
 	bool
 	default n
@@ -661,6 +625,21 @@ config BUSYBOX_DEFAULT_FEATURE_LS_COLOR_IS_DEFAULT
 config BUSYBOX_DEFAULT_MD5SUM
 	bool
 	default y
+config BUSYBOX_DEFAULT_SHA1SUM
+	bool
+	default n
+config BUSYBOX_DEFAULT_SHA256SUM
+	bool
+	default y
+config BUSYBOX_DEFAULT_SHA512SUM
+	bool
+	default n
+config BUSYBOX_DEFAULT_SHA3SUM
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK
+	bool
+	default y
 config BUSYBOX_DEFAULT_MKDIR
 	bool
 	default y
@@ -718,16 +697,7 @@ config BUSYBOX_DEFAULT_FEATURE_RMDIR_LONG_OPTIONS
 config BUSYBOX_DEFAULT_SEQ
 	bool
 	default y
-config BUSYBOX_DEFAULT_SHA1SUM
-	bool
-	default n
-config BUSYBOX_DEFAULT_SHA256SUM
-	bool
-	default y
-config BUSYBOX_DEFAULT_SHA512SUM
-	bool
-	default n
-config BUSYBOX_DEFAULT_SHA3SUM
+config BUSYBOX_DEFAULT_SHUF
 	bool
 	default n
 config BUSYBOX_DEFAULT_SLEEP
@@ -751,12 +721,27 @@ config BUSYBOX_DEFAULT_SPLIT
 config BUSYBOX_DEFAULT_FEATURE_SPLIT_FANCY
 	bool
 	default n
+config BUSYBOX_DEFAULT_STAT
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_STAT_FORMAT
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_STAT_FILESYSTEM
+	bool
+	default n
 config BUSYBOX_DEFAULT_STTY
 	bool
 	default n
 config BUSYBOX_DEFAULT_SUM
 	bool
 	default n
+config BUSYBOX_DEFAULT_SYNC
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_SYNC_FANCY
+	bool
+	default n
 config BUSYBOX_DEFAULT_TAC
 	bool
 	default n
@@ -772,9 +757,42 @@ config BUSYBOX_DEFAULT_TEE
 config BUSYBOX_DEFAULT_FEATURE_TEE_USE_BLOCK_IO
 	bool
 	default y
+config BUSYBOX_DEFAULT_TEST
+	bool
+	default y
+config BUSYBOX_DEFAULT_TEST1
+	bool
+	default y
+config BUSYBOX_DEFAULT_TEST2
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_TEST_64
+	bool
+	default y
+config BUSYBOX_DEFAULT_TOUCH
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
+	bool
+	default y
+config BUSYBOX_DEFAULT_TR
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
+	bool
+	default n
 config BUSYBOX_DEFAULT_TRUE
 	bool
 	default y
+config BUSYBOX_DEFAULT_TRUNCATE
+	bool
+	default n
 config BUSYBOX_DEFAULT_TTY
 	bool
 	default n
@@ -784,21 +802,21 @@ config BUSYBOX_DEFAULT_UNAME
 config BUSYBOX_DEFAULT_UNAME_OSNAME
 	string
 	default "GNU/Linux"
-config BUSYBOX_DEFAULT_UNEXPAND
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_UNEXPAND_LONG_OPTIONS
-	bool
-	default n
 config BUSYBOX_DEFAULT_UNIQ
 	bool
 	default y
+config BUSYBOX_DEFAULT_UNLINK
+	bool
+	default n
 config BUSYBOX_DEFAULT_USLEEP
 	bool
 	default n
 config BUSYBOX_DEFAULT_UUDECODE
 	bool
 	default n
+config BUSYBOX_DEFAULT_BASE64
+	bool
+	default n
 config BUSYBOX_DEFAULT_UUENCODE
 	bool
 	default n
@@ -808,6 +826,12 @@ config BUSYBOX_DEFAULT_WC
 config BUSYBOX_DEFAULT_FEATURE_WC_LARGE
 	bool
 	default n
+config BUSYBOX_DEFAULT_WHO
+	bool
+	default n
+config BUSYBOX_DEFAULT_USERS
+	bool
+	default n
 config BUSYBOX_DEFAULT_WHOAMI
 	bool
 	default n
@@ -826,15 +850,9 @@ config BUSYBOX_DEFAULT_FEATURE_AUTOWIDTH
 config BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK
-	bool
-	default y
 config BUSYBOX_DEFAULT_CHVT
 	bool
 	default n
-config BUSYBOX_DEFAULT_FGCONSOLE
-	bool
-	default n
 config BUSYBOX_DEFAULT_CLEAR
 	bool
 	default y
@@ -844,12 +862,30 @@ config BUSYBOX_DEFAULT_DEALLOCVT
 config BUSYBOX_DEFAULT_DUMPKMAP
 	bool
 	default n
+config BUSYBOX_DEFAULT_FGCONSOLE
+	bool
+	default n
 config BUSYBOX_DEFAULT_KBD_MODE
 	bool
 	default n
 config BUSYBOX_DEFAULT_LOADFONT
 	bool
 	default n
+config BUSYBOX_DEFAULT_SETFONT
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_SETFONT_TEXTUAL_MAP
+	bool
+	default n
+config BUSYBOX_DEFAULT_DEFAULT_SETFONT_DIR
+	string
+	default ""
+config BUSYBOX_DEFAULT_FEATURE_LOADFONT_PSF2
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_LOADFONT_RAW
+	bool
+	default n
 config BUSYBOX_DEFAULT_LOADKMAP
 	bool
 	default n
@@ -871,15 +907,6 @@ config BUSYBOX_DEFAULT_SETCONSOLE
 config BUSYBOX_DEFAULT_FEATURE_SETCONSOLE_LONG_OPTIONS
 	bool
 	default n
-config BUSYBOX_DEFAULT_SETFONT
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_SETFONT_TEXTUAL_MAP
-	bool
-	default n
-config BUSYBOX_DEFAULT_DEFAULT_SETFONT_DIR
-	string
-	default ""
 config BUSYBOX_DEFAULT_SETKEYCODES
 	bool
 	default n
@@ -889,12 +916,6 @@ config BUSYBOX_DEFAULT_SETLOGCONS
 config BUSYBOX_DEFAULT_SHOWKEY
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_LOADFONT_PSF2
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LOADFONT_RAW
-	bool
-	default n
 config BUSYBOX_DEFAULT_MKTEMP
 	bool
 	default y
@@ -1081,10 +1102,10 @@ config BUSYBOX_DEFAULT_FEATURE_FIND_LINKS
 config BUSYBOX_DEFAULT_GREP
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_GREP_EGREP_ALIAS
+config BUSYBOX_DEFAULT_EGREP
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_GREP_FGREP_ALIAS
+config BUSYBOX_DEFAULT_FGREP
 	bool
 	default y
 config BUSYBOX_DEFAULT_FEATURE_GREP_CONTEXT
@@ -1120,6 +1141,12 @@ config BUSYBOX_DEFAULT_FEATURE_BOOTCHARTD_CONFIG_FILE
 config BUSYBOX_DEFAULT_HALT
 	bool
 	default y
+config BUSYBOX_DEFAULT_POWEROFF
+	bool
+	default y
+config BUSYBOX_DEFAULT_REBOOT
+	bool
+	default y
 config BUSYBOX_DEFAULT_FEATURE_CALL_TELINIT
 	bool
 	default n
@@ -1285,28 +1312,28 @@ config BUSYBOX_DEFAULT_LSATTR
 config BUSYBOX_DEFAULT_TUNE2FS
 	bool
 	default n
-config BUSYBOX_DEFAULT_MODINFO
+config BUSYBOX_DEFAULT_MODPROBE_SMALL
 	bool
 	default n
-config BUSYBOX_DEFAULT_MODPROBE_SMALL
+config BUSYBOX_DEFAULT_DEPMOD
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
+config BUSYBOX_DEFAULT_INSMOD
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
+config BUSYBOX_DEFAULT_LSMOD
 	bool
 	default n
-config BUSYBOX_DEFAULT_INSMOD
+config BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
 	bool
 	default n
-config BUSYBOX_DEFAULT_RMMOD
+config BUSYBOX_DEFAULT_MODINFO
 	bool
 	default n
-config BUSYBOX_DEFAULT_LSMOD
+config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
+config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
 	bool
 	default n
 config BUSYBOX_DEFAULT_MODPROBE
@@ -1315,7 +1342,7 @@ config BUSYBOX_DEFAULT_MODPROBE
 config BUSYBOX_DEFAULT_FEATURE_MODPROBE_BLACKLIST
 	bool
 	default n
-config BUSYBOX_DEFAULT_DEPMOD
+config BUSYBOX_DEFAULT_RMMOD
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_2_4_MODULES
@@ -1354,154 +1381,148 @@ config BUSYBOX_DEFAULT_DEFAULT_MODULES_DIR
 config BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
 	string
 	default ""
-config BUSYBOX_DEFAULT_BLKDISCARD
+config BUSYBOX_DEFAULT_ACPID
 	bool
 	default n
-config BUSYBOX_DEFAULT_BLOCKDEV
+config BUSYBOX_DEFAULT_FEATURE_ACPID_COMPAT
 	bool
 	default n
-config BUSYBOX_DEFAULT_FATATTR
+config BUSYBOX_DEFAULT_BLKDISCARD
 	bool
 	default n
-config BUSYBOX_DEFAULT_FSTRIM
+config BUSYBOX_DEFAULT_BLKID
 	bool
 	default n
-config BUSYBOX_DEFAULT_MDEV
+config BUSYBOX_DEFAULT_FEATURE_BLKID_TYPE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
+config BUSYBOX_DEFAULT_BLOCKDEV
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
+config BUSYBOX_DEFAULT_DMESG
 	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
+	default y
+config BUSYBOX_DEFAULT_FEATURE_DMESG_PRETTY
 	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
+	default y
+config BUSYBOX_DEFAULT_FATATTR
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
+config BUSYBOX_DEFAULT_FBSET
 	bool
 	default n
-config BUSYBOX_DEFAULT_MOUNT
+config BUSYBOX_DEFAULT_FEATURE_FBSET_FANCY
 	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_FAKE
+	default n
+config BUSYBOX_DEFAULT_FEATURE_FBSET_READMODE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_VERBOSE
+config BUSYBOX_DEFAULT_FDFORMAT
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_HELPERS
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_LABEL
+config BUSYBOX_DEFAULT_FDISK
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_NFS
+config BUSYBOX_DEFAULT_FDISK_SUPPORT_LARGE_DISKS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_CIFS
+config BUSYBOX_DEFAULT_FEATURE_FDISK_WRITABLE
 	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_FLAGS
+	default n
+config BUSYBOX_DEFAULT_FEATURE_AIX_LABEL
 	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB
+	default n
+config BUSYBOX_DEFAULT_FEATURE_SGI_LABEL
 	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
+	default n
+config BUSYBOX_DEFAULT_FEATURE_SUN_LABEL
 	bool
 	default n
-config BUSYBOX_DEFAULT_NSENTER
+config BUSYBOX_DEFAULT_FEATURE_OSF_LABEL
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS
+config BUSYBOX_DEFAULT_FEATURE_GPT_LABEL
 	bool
 	default n
-config BUSYBOX_DEFAULT_REV
+config BUSYBOX_DEFAULT_FEATURE_FDISK_ADVANCED
 	bool
 	default n
-config BUSYBOX_DEFAULT_SETARCH
+config BUSYBOX_DEFAULT_FINDFS
 	bool
 	default n
-config BUSYBOX_DEFAULT_UEVENT
+config BUSYBOX_DEFAULT_FLOCK
 	bool
 	default n
-config BUSYBOX_DEFAULT_UNSHARE
+config BUSYBOX_DEFAULT_FDFLUSH
 	bool
 	default n
-config BUSYBOX_DEFAULT_ACPID
+config BUSYBOX_DEFAULT_FREERAMDISK
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_ACPID_COMPAT
+config BUSYBOX_DEFAULT_FSCK_MINIX
 	bool
 	default n
-config BUSYBOX_DEFAULT_BLKID
+config BUSYBOX_DEFAULT_FSTRIM
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_BLKID_TYPE
+config BUSYBOX_DEFAULT_GETOPT
 	bool
 	default n
-config BUSYBOX_DEFAULT_DMESG
+config BUSYBOX_DEFAULT_FEATURE_GETOPT_LONG
 	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_DMESG_PRETTY
+	default n
+config BUSYBOX_DEFAULT_HEXDUMP
 	bool
 	default y
-config BUSYBOX_DEFAULT_FBSET
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_FBSET_FANCY
+config BUSYBOX_DEFAULT_FEATURE_HEXDUMP_REVERSE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_FBSET_READMODE
+config BUSYBOX_DEFAULT_HD
 	bool
 	default n
-config BUSYBOX_DEFAULT_FDFLUSH
+config BUSYBOX_DEFAULT_HWCLOCK
 	bool
-	default n
-config BUSYBOX_DEFAULT_FDFORMAT
+	default y
+config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_LONG_OPTIONS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FDISK
+config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_ADJTIME_FHS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FDISK_SUPPORT_LARGE_DISKS
+config BUSYBOX_DEFAULT_IPCRM
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_FDISK_WRITABLE
+config BUSYBOX_DEFAULT_IPCS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_AIX_LABEL
+config BUSYBOX_DEFAULT_LOSETUP
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_SGI_LABEL
+config BUSYBOX_DEFAULT_LSPCI
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_SUN_LABEL
+config BUSYBOX_DEFAULT_LSUSB
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_OSF_LABEL
+config BUSYBOX_DEFAULT_MDEV
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_GPT_LABEL
+config BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_FDISK_ADVANCED
+config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
 	bool
 	default n
-config BUSYBOX_DEFAULT_FINDFS
+config BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
 	bool
 	default n
-config BUSYBOX_DEFAULT_FLOCK
+config BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
 	bool
 	default n
-config BUSYBOX_DEFAULT_FREERAMDISK
+config BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FSCK_MINIX
+config BUSYBOX_DEFAULT_MKE2FS
 	bool
 	default n
 config BUSYBOX_DEFAULT_MKFS_EXT2
@@ -1516,55 +1537,55 @@ config BUSYBOX_DEFAULT_FEATURE_MINIX2
 config BUSYBOX_DEFAULT_MKFS_REISER
 	bool
 	default n
-config BUSYBOX_DEFAULT_MKFS_VFAT
-	bool
-	default n
-config BUSYBOX_DEFAULT_GETOPT
+config BUSYBOX_DEFAULT_MKDOSFS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_GETOPT_LONG
+config BUSYBOX_DEFAULT_MKFS_VFAT
 	bool
 	default n
-config BUSYBOX_DEFAULT_HEXDUMP
+config BUSYBOX_DEFAULT_MKSWAP
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_HEXDUMP_REVERSE
+config BUSYBOX_DEFAULT_FEATURE_MKSWAP_UUID
 	bool
 	default n
-config BUSYBOX_DEFAULT_HD
+config BUSYBOX_DEFAULT_MORE
 	bool
 	default n
-config BUSYBOX_DEFAULT_HWCLOCK
+config BUSYBOX_DEFAULT_MOUNT
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_LONG_OPTIONS
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_FAKE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_ADJTIME_FHS
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_VERBOSE
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPCRM
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_HELPERS
 	bool
-	default n
-config BUSYBOX_DEFAULT_IPCS
+	default y
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_LABEL
 	bool
 	default n
-config BUSYBOX_DEFAULT_LOSETUP
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_NFS
 	bool
 	default n
-config BUSYBOX_DEFAULT_LSPCI
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_CIFS
 	bool
-	default n
-config BUSYBOX_DEFAULT_LSUSB
+	default y
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_FLAGS
 	bool
-	default n
-config BUSYBOX_DEFAULT_MKSWAP
+	default y
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_MKSWAP_UUID
+config BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
 	bool
 	default n
-config BUSYBOX_DEFAULT_MORE
+config BUSYBOX_DEFAULT_NSENTER
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS
 	bool
 	default n
 config BUSYBOX_DEFAULT_PIVOT_ROOT
@@ -1579,6 +1600,9 @@ config BUSYBOX_DEFAULT_RDEV
 config BUSYBOX_DEFAULT_READPROFILE
 	bool
 	default n
+config BUSYBOX_DEFAULT_REV
+	bool
+	default n
 config BUSYBOX_DEFAULT_RTCWAKE
 	bool
 	default n
@@ -1588,24 +1612,42 @@ config BUSYBOX_DEFAULT_SCRIPT
 config BUSYBOX_DEFAULT_SCRIPTREPLAY
 	bool
 	default n
-config BUSYBOX_DEFAULT_SWAPONOFF
+config BUSYBOX_DEFAULT_SETARCH
 	bool
 	default n
+config BUSYBOX_DEFAULT_LINUX32
+	bool
+	default n
+config BUSYBOX_DEFAULT_LINUX64
+	bool
+	default n
+config BUSYBOX_DEFAULT_SWAPON
+	bool
+	default y
 config BUSYBOX_DEFAULT_FEATURE_SWAPON_DISCARD
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
 	bool
 	default n
+config BUSYBOX_DEFAULT_SWAPOFF
+	bool
+	default y
 config BUSYBOX_DEFAULT_SWITCH_ROOT
 	bool
 	default y
+config BUSYBOX_DEFAULT_UEVENT
+	bool
+	default n
 config BUSYBOX_DEFAULT_UMOUNT
 	bool
 	default y
 config BUSYBOX_DEFAULT_FEATURE_UMOUNT_ALL
 	bool
 	default y
+config BUSYBOX_DEFAULT_UNSHARE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_MOUNT_LOOP
 	bool
 	default y
@@ -1678,112 +1720,13 @@ config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SQUASHFS
 config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_SYSV
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
-	bool
-	default n
-config BUSYBOX_DEFAULT_CONSPY
-	bool
-	default n
-config BUSYBOX_DEFAULT_CROND
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_CROND_D
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_CROND_DIR
-	string
-	default "/etc"
-config BUSYBOX_DEFAULT_I2CGET
-	bool
-	default n
-config BUSYBOX_DEFAULT_I2CSET
-	bool
-	default n
-config BUSYBOX_DEFAULT_I2CDUMP
-	bool
-	default n
-config BUSYBOX_DEFAULT_I2CDETECT
-	bool
-	default n
-config BUSYBOX_DEFAULT_LESS
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_LESS_MAXLINES
-	int
-	default 9999999
-config BUSYBOX_DEFAULT_FEATURE_LESS_BRACKETS
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_FLAGS
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_TRUNCATE
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_MARKS
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_REGEXP
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_WINCH
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_ASK_TERMINAL
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_DASHCMD
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS
-	bool
-	default n
-config BUSYBOX_DEFAULT_NANDWRITE
-	bool
-	default n
-config BUSYBOX_DEFAULT_NANDDUMP
-	bool
-	default n
-config BUSYBOX_DEFAULT_RFKILL
+config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UBIFS
 	bool
 	default n
-config BUSYBOX_DEFAULT_SETSERIAL
-	bool
-	default n
-config BUSYBOX_DEFAULT_TASKSET
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
-	bool
-	default n
-config BUSYBOX_DEFAULT_UBIATTACH
-	bool
-	default n
-config BUSYBOX_DEFAULT_UBIDETACH
-	bool
-	default n
-config BUSYBOX_DEFAULT_UBIMKVOL
-	bool
-	default n
-config BUSYBOX_DEFAULT_UBIRMVOL
-	bool
-	default n
-config BUSYBOX_DEFAULT_UBIRSVOL
-	bool
-	default n
-config BUSYBOX_DEFAULT_UBIUPDATEVOL
-	bool
-	default n
-config BUSYBOX_DEFAULT_UBIRENAME
+config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF
 	bool
 	default n
-config BUSYBOX_DEFAULT_WALL
+config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
 	bool
 	default n
 config BUSYBOX_DEFAULT_ADJTIMEX
@@ -1831,6 +1774,21 @@ config BUSYBOX_DEFAULT_FEATURE_CHAT_CLR_ABORT
 config BUSYBOX_DEFAULT_CHRT
 	bool
 	default n
+config BUSYBOX_DEFAULT_CONSPY
+	bool
+	default n
+config BUSYBOX_DEFAULT_CROND
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_CROND_D
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_CROND_DIR
+	string
+	default "/etc"
 config BUSYBOX_DEFAULT_CRONTAB
 	bool
 	default y
@@ -1867,7 +1825,7 @@ config BUSYBOX_DEFAULT_FEATURE_EJECT_SCSI
 config BUSYBOX_DEFAULT_FBSPLASH
 	bool
 	default n
-config BUSYBOX_DEFAULT_FLASHCP
+config BUSYBOX_DEFAULT_FLASH_ERASEALL
 	bool
 	default n
 config BUSYBOX_DEFAULT_FLASH_LOCK
@@ -1876,40 +1834,85 @@ config BUSYBOX_DEFAULT_FLASH_LOCK
 config BUSYBOX_DEFAULT_FLASH_UNLOCK
 	bool
 	default n
-config BUSYBOX_DEFAULT_FLASH_ERASEALL
+config BUSYBOX_DEFAULT_FLASHCP
 	bool
 	default n
-config BUSYBOX_DEFAULT_IONICE
+config BUSYBOX_DEFAULT_HDPARM
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_HDPARM_GET_IDENTITY
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_SCAN_HWIF
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_DRIVE_RESET
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_GETSET_DMA
+	bool
+	default n
+config BUSYBOX_DEFAULT_I2CGET
+	bool
+	default n
+config BUSYBOX_DEFAULT_I2CSET
+	bool
+	default n
+config BUSYBOX_DEFAULT_I2CDUMP
+	bool
+	default n
+config BUSYBOX_DEFAULT_I2CDETECT
 	bool
 	default n
 config BUSYBOX_DEFAULT_INOTIFYD
 	bool
 	default n
+config BUSYBOX_DEFAULT_IONICE
+	bool
+	default n
 config BUSYBOX_DEFAULT_LAST
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
 	bool
 	default n
-config BUSYBOX_DEFAULT_HDPARM
+config BUSYBOX_DEFAULT_LESS
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_LESS_MAXLINES
+	int
+	default 9999999
+config BUSYBOX_DEFAULT_FEATURE_LESS_BRACKETS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HDPARM_GET_IDENTITY
+config BUSYBOX_DEFAULT_FEATURE_LESS_FLAGS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_SCAN_HWIF
+config BUSYBOX_DEFAULT_FEATURE_LESS_TRUNCATE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
+config BUSYBOX_DEFAULT_FEATURE_LESS_MARKS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_DRIVE_RESET
+config BUSYBOX_DEFAULT_FEATURE_LESS_REGEXP
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
+config BUSYBOX_DEFAULT_FEATURE_LESS_WINCH
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_GETSET_DMA
+config BUSYBOX_DEFAULT_FEATURE_LESS_ASK_TERMINAL
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_LESS_DASHCMD
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS
 	bool
 	default n
 config BUSYBOX_DEFAULT_LOCK
@@ -1936,91 +1939,79 @@ config BUSYBOX_DEFAULT_MOUNTPOINT
 config BUSYBOX_DEFAULT_MT
 	bool
 	default n
-config BUSYBOX_DEFAULT_RAIDAUTORUN
+config BUSYBOX_DEFAULT_NANDWRITE
 	bool
 	default n
-config BUSYBOX_DEFAULT_READAHEAD
+config BUSYBOX_DEFAULT_NANDDUMP
 	bool
 	default n
-config BUSYBOX_DEFAULT_RUNLEVEL
+config BUSYBOX_DEFAULT_RAIDAUTORUN
 	bool
 	default n
-config BUSYBOX_DEFAULT_RX
+config BUSYBOX_DEFAULT_READAHEAD
 	bool
 	default n
-config BUSYBOX_DEFAULT_SETSID
+config BUSYBOX_DEFAULT_RFKILL
 	bool
 	default n
-config BUSYBOX_DEFAULT_STRINGS
-	bool
-	default y
-config BUSYBOX_DEFAULT_TIME
-	bool
-	default y
-config BUSYBOX_DEFAULT_TIMEOUT
+config BUSYBOX_DEFAULT_RUNLEVEL
 	bool
 	default n
-config BUSYBOX_DEFAULT_TTYSIZE
+config BUSYBOX_DEFAULT_RX
 	bool
 	default n
-config BUSYBOX_DEFAULT_VOLNAME
+config BUSYBOX_DEFAULT_SETSERIAL
 	bool
 	default n
-config BUSYBOX_DEFAULT_WATCHDOG
+config BUSYBOX_DEFAULT_SETSID
 	bool
 	default n
-config BUSYBOX_DEFAULT_NAMEIF
+config BUSYBOX_DEFAULT_STRINGS
 	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED
+	default y
+config BUSYBOX_DEFAULT_TASKSET
 	bool
 	default n
-config BUSYBOX_DEFAULT_NBDCLIENT
+config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
 	bool
 	default n
-config BUSYBOX_DEFAULT_NC
+config BUSYBOX_DEFAULT_TIME
 	bool
 	default y
-config BUSYBOX_DEFAULT_NC_SERVER
+config BUSYBOX_DEFAULT_TIMEOUT
 	bool
 	default n
-config BUSYBOX_DEFAULT_NC_EXTRA
+config BUSYBOX_DEFAULT_TTYSIZE
 	bool
 	default n
-config BUSYBOX_DEFAULT_NC_110_COMPAT
+config BUSYBOX_DEFAULT_UBIATTACH
 	bool
 	default n
-config BUSYBOX_DEFAULT_PING
-	bool
-	default y
-config BUSYBOX_DEFAULT_PING6
-	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_FANCY_PING
+config BUSYBOX_DEFAULT_UBIDETACH
 	bool
-	default y
-config BUSYBOX_DEFAULT_WGET
+	default n
+config BUSYBOX_DEFAULT_UBIMKVOL
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
+config BUSYBOX_DEFAULT_UBIRMVOL
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
+config BUSYBOX_DEFAULT_UBIRSVOL
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
+config BUSYBOX_DEFAULT_UBIUPDATEVOL
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
+config BUSYBOX_DEFAULT_UBIRENAME
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
+config BUSYBOX_DEFAULT_VOLNAME
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER
+config BUSYBOX_DEFAULT_WALL
 	bool
 	default n
-config BUSYBOX_DEFAULT_WHOIS
+config BUSYBOX_DEFAULT_WATCHDOG
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_IPV6
@@ -2056,19 +2047,16 @@ config BUSYBOX_DEFAULT_DNSD
 config BUSYBOX_DEFAULT_ETHER_WAKE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FAKEIDENTD
-	bool
-	default n
 config BUSYBOX_DEFAULT_FTPD
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_FTP_WRITE
+config BUSYBOX_DEFAULT_FEATURE_FTPD_WRITE
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_FTPD_ACCEPT_BROKEN_LIST
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_FTP_AUTHENTICATION
+config BUSYBOX_DEFAULT_FEATURE_FTPD_AUTHENTICATION
 	bool
 	default n
 config BUSYBOX_DEFAULT_FTPGET
@@ -2083,6 +2071,9 @@ config BUSYBOX_DEFAULT_FEATURE_FTPGETPUT_LONG_OPTIONS
 config BUSYBOX_DEFAULT_HOSTNAME
 	bool
 	default n
+config BUSYBOX_DEFAULT_DNSDOMAINNAME
+	bool
+	default n
 config BUSYBOX_DEFAULT_HTTPD
 	bool
 	default n
@@ -2143,19 +2134,16 @@ config BUSYBOX_DEFAULT_IFENSLAVE
 config BUSYBOX_DEFAULT_IFPLUGD
 	bool
 	default n
-config BUSYBOX_DEFAULT_IFUPDOWN
-	bool
-	default n
-config BUSYBOX_DEFAULT_IFUPDOWN_IFSTATE_PATH
-	string
-	default ""
-config BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP
+config BUSYBOX_DEFAULT_IFUP
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP_BUILTIN
+config BUSYBOX_DEFAULT_IFDOWN
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
+config BUSYBOX_DEFAULT_IFUPDOWN_IFSTATE_PATH
+	string
+	default ""
+config BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV4
@@ -2194,6 +2182,24 @@ config BUSYBOX_DEFAULT_FEATURE_INETD_RPC
 config BUSYBOX_DEFAULT_IP
 	bool
 	default y
+config BUSYBOX_DEFAULT_IPADDR
+	bool
+	default n
+config BUSYBOX_DEFAULT_IPLINK
+	bool
+	default n
+config BUSYBOX_DEFAULT_IPROUTE
+	bool
+	default n
+config BUSYBOX_DEFAULT_IPTUNNEL
+	bool
+	default n
+config BUSYBOX_DEFAULT_IPRULE
+	bool
+	default n
+config BUSYBOX_DEFAULT_IPNEIGH
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_IP_ADDRESS
 	bool
 	default y
@@ -2215,37 +2221,40 @@ config BUSYBOX_DEFAULT_FEATURE_IP_RULE
 config BUSYBOX_DEFAULT_FEATURE_IP_NEIGH
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
+config BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS
+config BUSYBOX_DEFAULT_IPCALC
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPADDR
+config BUSYBOX_DEFAULT_FEATURE_IPCALC_FANCY
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPLINK
+config BUSYBOX_DEFAULT_FEATURE_IPCALC_LONG_OPTIONS
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPROUTE
+config BUSYBOX_DEFAULT_FAKEIDENTD
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPTUNNEL
+config BUSYBOX_DEFAULT_NAMEIF
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPRULE
+config BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPNEIGH
+config BUSYBOX_DEFAULT_NBDCLIENT
 	bool
 	default n
-config BUSYBOX_DEFAULT_IPCALC
+config BUSYBOX_DEFAULT_NC
+	bool
+	default y
+config BUSYBOX_DEFAULT_NC_SERVER
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_IPCALC_FANCY
+config BUSYBOX_DEFAULT_NC_EXTRA
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_IPCALC_LONG_OPTIONS
+config BUSYBOX_DEFAULT_NC_110_COMPAT
 	bool
 	default n
 config BUSYBOX_DEFAULT_NETMSG
@@ -2272,6 +2281,15 @@ config BUSYBOX_DEFAULT_FEATURE_NTPD_SERVER
 config BUSYBOX_DEFAULT_FEATURE_NTPD_CONF
 	bool
 	default n
+config BUSYBOX_DEFAULT_PING
+	bool
+	default y
+config BUSYBOX_DEFAULT_PING6
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_FANCY_PING
+	bool
+	default y
 config BUSYBOX_DEFAULT_PSCAN
 	bool
 	default n
@@ -2284,6 +2302,9 @@ config BUSYBOX_DEFAULT_SLATTACH
 config BUSYBOX_DEFAULT_TCPSVD
 	bool
 	default n
+config BUSYBOX_DEFAULT_UDPSVD
+	bool
+	default n
 config BUSYBOX_DEFAULT_TELNET
 	bool
 	default n
@@ -2332,9 +2353,6 @@ config BUSYBOX_DEFAULT_TRACEROUTE6
 config BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_VERBOSE
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_SOURCE_ROUTE
-	bool
-	default n
 config BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_USE_ICMP
 	bool
 	default n
@@ -2344,6 +2362,36 @@ config BUSYBOX_DEFAULT_TUNCTL
 config BUSYBOX_DEFAULT_FEATURE_TUNCTL_UG
 	bool
 	default n
+config BUSYBOX_DEFAULT_VCONFIG
+	bool
+	default n
+config BUSYBOX_DEFAULT_WGET
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER
+	bool
+	default n
+config BUSYBOX_DEFAULT_WHOIS
+	bool
+	default n
+config BUSYBOX_DEFAULT_ZCIP
+	bool
+	default n
 config BUSYBOX_DEFAULT_UDHCPC6
 	bool
 	default n
@@ -2395,15 +2443,6 @@ config BUSYBOX_DEFAULT_UDHCPC_SLACK_FOR_BUGGY_SERVERS
 config BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS
 	string
 	default ""
-config BUSYBOX_DEFAULT_UDPSVD
-	bool
-	default n
-config BUSYBOX_DEFAULT_VCONFIG
-	bool
-	default n
-config BUSYBOX_DEFAULT_ZCIP
-	bool
-	default n
 config BUSYBOX_DEFAULT_LPD
 	bool
 	default n
@@ -2416,9 +2455,6 @@ config BUSYBOX_DEFAULT_LPQ
 config BUSYBOX_DEFAULT_MAKEMIME
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
-	string
-	default ""
 config BUSYBOX_DEFAULT_POPMAILDIR
 	bool
 	default n
@@ -2434,120 +2470,123 @@ config BUSYBOX_DEFAULT_FEATURE_REFORMIME_COMPAT
 config BUSYBOX_DEFAULT_SENDMAIL
 	bool
 	default n
-config BUSYBOX_DEFAULT_IOSTAT
+config BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
+	string
+	default ""
+config BUSYBOX_DEFAULT_FREE
 	bool
-	default n
-config BUSYBOX_DEFAULT_LSOF
+	default y
+config BUSYBOX_DEFAULT_FUSER
 	bool
 	default n
-config BUSYBOX_DEFAULT_MPSTAT
+config BUSYBOX_DEFAULT_IOSTAT
 	bool
 	default n
-config BUSYBOX_DEFAULT_NMETER
+config BUSYBOX_DEFAULT_KILL
 	bool
-	default n
-config BUSYBOX_DEFAULT_PMAP
+	default y
+config BUSYBOX_DEFAULT_KILLALL
 	bool
-	default n
-config BUSYBOX_DEFAULT_POWERTOP
+	default y
+config BUSYBOX_DEFAULT_KILLALL5
 	bool
 	default n
-config BUSYBOX_DEFAULT_PSTREE
+config BUSYBOX_DEFAULT_LSOF
 	bool
 	default n
-config BUSYBOX_DEFAULT_PWDX
+config BUSYBOX_DEFAULT_MPSTAT
 	bool
 	default n
-config BUSYBOX_DEFAULT_SMEMCAP
+config BUSYBOX_DEFAULT_NMETER
 	bool
 	default n
-config BUSYBOX_DEFAULT_TOP
+config BUSYBOX_DEFAULT_PGREP
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+config BUSYBOX_DEFAULT_PKILL
 	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
+	default n
+config BUSYBOX_DEFAULT_PIDOF
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
+config BUSYBOX_DEFAULT_FEATURE_PIDOF_SINGLE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
+config BUSYBOX_DEFAULT_FEATURE_PIDOF_OMIT
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
+config BUSYBOX_DEFAULT_PMAP
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_TOPMEM
+config BUSYBOX_DEFAULT_POWERTOP
 	bool
 	default n
-config BUSYBOX_DEFAULT_UPTIME
+config BUSYBOX_DEFAULT_PS
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_UPTIME_UTMP_SUPPORT
-	bool
-	default n
-config BUSYBOX_DEFAULT_FREE
+config BUSYBOX_DEFAULT_FEATURE_PS_WIDE
 	bool
 	default y
-config BUSYBOX_DEFAULT_FUSER
+config BUSYBOX_DEFAULT_FEATURE_PS_LONG
 	bool
 	default n
-config BUSYBOX_DEFAULT_KILL
-	bool
-	default y
-config BUSYBOX_DEFAULT_KILLALL
+config BUSYBOX_DEFAULT_FEATURE_PS_TIME
 	bool
-	default y
-config BUSYBOX_DEFAULT_KILLALL5
+	default n
+config BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS
 	bool
 	default n
-config BUSYBOX_DEFAULT_PGREP
+config BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS
 	bool
-	default y
-config BUSYBOX_DEFAULT_PIDOF
+	default n
+config BUSYBOX_DEFAULT_PSTREE
 	bool
-	default y
-config BUSYBOX_DEFAULT_FEATURE_PIDOF_SINGLE
+	default n
+config BUSYBOX_DEFAULT_PWDX
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_PIDOF_OMIT
+config BUSYBOX_DEFAULT_RENICE
 	bool
 	default n
-config BUSYBOX_DEFAULT_PKILL
+config BUSYBOX_DEFAULT_SMEMCAP
 	bool
 	default n
-config BUSYBOX_DEFAULT_PS
+config BUSYBOX_DEFAULT_BB_SYSCTL
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_PS_WIDE
+config BUSYBOX_DEFAULT_TOP
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_PS_LONG
+config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
 	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_PS_TIME
+	default y
+config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
+	bool
+	default y
+config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS
+config BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS
+config BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
 	bool
 	default n
-config BUSYBOX_DEFAULT_RENICE
+config BUSYBOX_DEFAULT_FEATURE_TOPMEM
 	bool
 	default n
-config BUSYBOX_DEFAULT_BB_SYSCTL
+config BUSYBOX_DEFAULT_UPTIME
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
+config BUSYBOX_DEFAULT_FEATURE_UPTIME_UTMP_SUPPORT
 	bool
 	default n
 config BUSYBOX_DEFAULT_WATCH
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
+	bool
+	default n
 config BUSYBOX_DEFAULT_CHPST
 	bool
 	default n
@@ -2578,6 +2617,9 @@ config BUSYBOX_DEFAULT_SV
 config BUSYBOX_DEFAULT_SV_DEFAULT_SERVICE_DIR
 	string
 	default ""
+config BUSYBOX_DEFAULT_SVC
+	bool
+	default n
 config BUSYBOX_DEFAULT_SVLOGD
 	bool
 	default n
@@ -2599,9 +2641,6 @@ config BUSYBOX_DEFAULT_LOAD_POLICY
 config BUSYBOX_DEFAULT_MATCHPATHCON
 	bool
 	default n
-config BUSYBOX_DEFAULT_RESTORECON
-	bool
-	default n
 config BUSYBOX_DEFAULT_RUNCON
 	bool
 	default n
@@ -2611,6 +2650,9 @@ config BUSYBOX_DEFAULT_FEATURE_RUNCON_LONG_OPTIONS
 config BUSYBOX_DEFAULT_SELINUXENABLED
 	bool
 	default n
+config BUSYBOX_DEFAULT_SESTATUS
+	bool
+	default n
 config BUSYBOX_DEFAULT_SETENFORCE
 	bool
 	default n
@@ -2620,15 +2662,45 @@ config BUSYBOX_DEFAULT_SETFILES
 config BUSYBOX_DEFAULT_FEATURE_SETFILES_CHECK_OPTION
 	bool
 	default n
+config BUSYBOX_DEFAULT_RESTORECON
+	bool
+	default n
 config BUSYBOX_DEFAULT_SETSEBOOL
 	bool
 	default n
-config BUSYBOX_DEFAULT_SESTATUS
+config BUSYBOX_DEFAULT_SH_IS_ASH
+	bool
+	default y
+config BUSYBOX_DEFAULT_SH_IS_HUSH
 	bool
 	default n
+config BUSYBOX_DEFAULT_SH_IS_NONE
+	bool
+	default n
+config BUSYBOX_DEFAULT_BASH_IS_ASH
+	bool
+	default n
+config BUSYBOX_DEFAULT_BASH_IS_HUSH
+	bool
+	default n
+config BUSYBOX_DEFAULT_BASH_IS_NONE
+	bool
+	default y
 config BUSYBOX_DEFAULT_ASH
 	bool
 	default y
+config BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
+	bool
+	default n
+config BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB
+	bool
+	default n
+config BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
+	bool
+	default n
+config BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
+	bool
+	default y
 config BUSYBOX_DEFAULT_ASH_BASH_COMPAT
 	bool
 	default y
@@ -2662,15 +2734,6 @@ config BUSYBOX_DEFAULT_ASH_CMDCMD
 config BUSYBOX_DEFAULT_ASH_MAIL
 	bool
 	default n
-config BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
-	bool
-	default n
-config BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
-	bool
-	default n
-config BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
-	bool
-	default y
 config BUSYBOX_DEFAULT_CTTYHACK
 	bool
 	default n
@@ -2725,30 +2788,12 @@ config BUSYBOX_DEFAULT_HUSH_MODE_X
 config BUSYBOX_DEFAULT_MSH
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_SH_IS_ASH
+config BUSYBOX_DEFAULT_FEATURE_SH_MATH
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_SH_IS_HUSH
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_SH_IS_NONE
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_BASH_IS_ASH
+config BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_BASH_IS_HUSH
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_BASH_IS_NONE
-	bool
-	default y
-config BUSYBOX_DEFAULT_SH_MATH_SUPPORT
-	bool
-	default y
-config BUSYBOX_DEFAULT_SH_MATH_SUPPORT_64
-	bool
-	default y
 config BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
 	bool
 	default n
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index c27f1fc..6b78230 100644
--- a/package/utils/busybox/Makefile
+++ b/package/utils/busybox/Makefile
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
-PKG_VERSION:=1.25.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.26.1
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.busybox.net/downloads \
 		http://sources.buildroot.net
-PKG_HASH:=27667e0f2328fdbd79cfd622e4453e5c57e58f781c5da97c9be337d93aa2a02e
+PKG_HASH:=0fbbe487fa35cc3258749cf79c259578c1a221013cc4fb60d6a3542590f781f2
 
 PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
diff --git a/package/utils/busybox/config/Config.in b/package/utils/busybox/config/Config.in
index 3bf67c5..352a0f0 100644
--- a/package/utils/busybox/config/Config.in
+++ b/package/utils/busybox/config/Config.in
@@ -10,15 +10,18 @@ config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
 
 menu "Busybox Settings"
 
-menu "General Configuration"
-
 config BUSYBOX_CONFIG_DESKTOP
 	bool "Enable options for full-blown desktop systems"
 	default BUSYBOX_DEFAULT_DESKTOP
 	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_CONFIG_EXTRA_COMPAT
 	bool "Provide compatible behavior for rare corner cases (bigger code)"
@@ -57,30 +60,6 @@ config BUSYBOX_CONFIG_PLATFORM_LINUX
 	  Answering 'N' here will disable such applets and hide the
 	  corresponding configuration options.
 
-choice
-	prompt "Buffer allocation policy"
-	default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
-	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_CONFIG_FEATURE_BUFFERS_USE_MALLOC
-	bool "Allocate with Malloc"
-
-config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
-	bool "Allocate on the Stack"
-
-config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
-	bool "Allocate in the .bss section"
-
-endchoice
-
 config BUSYBOX_CONFIG_SHOW_USAGE
 	bool "Show applet usage messages"
 	default BUSYBOX_DEFAULT_SHOW_USAGE
@@ -143,131 +122,6 @@ config BUSYBOX_CONFIG_INSTALL_NO_USR
 	  will install applets only to /bin and /sbin,
 	  never to /usr/bin or /usr/sbin.
 
-config BUSYBOX_CONFIG_LOCALE_SUPPORT
-	bool "Enable locale support (system needs locale for this to work)"
-	default BUSYBOX_DEFAULT_LOCALE_SUPPORT
-	help
-	  Enable this if your system has locale support and you would like
-	  busybox to support locale settings.
-
-config BUSYBOX_CONFIG_UNICODE_SUPPORT
-	bool "Support Unicode"
-	default BUSYBOX_DEFAULT_UNICODE_SUPPORT
-	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_CONFIG_UNICODE_USING_LOCALE
-	bool "Use libc routines for Unicode (else uses internal ones)"
-	default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
-	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_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_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
-	bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
-	default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
-	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_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_CONFIG_SUBST_WCHAR
-	int "Character code to substitute unprintable characters with"
-	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
-	default BUSYBOX_DEFAULT_SUBST_WCHAR
-	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_CONFIG_LAST_SUPPORTED_WCHAR
-	int "Range of supported Unicode characters"
-	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
-	default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
-	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_CONFIG_UNICODE_COMBINING_WCHARS
-	bool "Allow zero-width Unicode characters on output"
-	default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
-	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
-	help
-	  With this option off, any Unicode char with width of 0
-	  is substituted on output.
-
-config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
-	bool "Allow wide Unicode characters on output"
-	default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
-	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
-	help
-	  With this option off, any Unicode char with width > 1
-	  is substituted on output.
-
-config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
-	bool "Bidirectional character-aware line input"
-	default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
-	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
-	help
-	  With this option on, right-to-left Unicode characters
-	  are treated differently on input (e.g. cursor movement).
-
-config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
-	bool "In bidi input, support non-ASCII neutral chars too"
-	default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
-	depends on BUSYBOX_CONFIG_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_CONFIG_UNICODE_PRESERVE_BROKEN
-	bool "Make it possible to enter sequences of chars which are not Unicode"
-	default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
-	depends on BUSYBOX_CONFIG_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_CONFIG_PAM
 	bool "Support for PAM (Pluggable Authentication Modules)"
 	default BUSYBOX_DEFAULT_PAM
@@ -275,19 +129,6 @@ config BUSYBOX_CONFIG_PAM
 	  Use PAM in some busybox applets (currently login and httpd) instead
 	  of direct access to password database.
 
-config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
-	bool "Use sendfile system call"
-	default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
-	select BUSYBOX_CONFIG_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_CONFIG_LONG_OPTS
 	bool "Support for --long-options"
 	default BUSYBOX_DEFAULT_LONG_OPTS
@@ -496,9 +337,7 @@ config BUSYBOX_CONFIG_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_CONFIG_STATIC
 	bool "Build BusyBox as a static binary (no shared libs)"
@@ -673,9 +512,73 @@ config BUSYBOX_CONFIG_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_CONFIG_INSTALL_APPLET_SYMLINKS
+	help
+	  Choose what kind of links to applets are created by "make install".
+
+config BUSYBOX_CONFIG_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_CONFIG_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_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
+	bool "as script wrappers"
+	help
+	  Install applets as script wrappers that call the busybox binary.
+
+config BUSYBOX_CONFIG_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_CONFIG_INSTALL_SH_APPLET_SYMLINK
+	depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
+	help
+	  Choose how you install /bin/sh applet link.
+
+config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
+	bool "as soft-link"
+	help
+	  Install /bin/sh applet as soft-link to the busybox binary.
+
+config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
+	bool "as hard-link"
+	help
+	  Install /bin/sh applet as hard-link to the busybox binary.
+
+config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
+	bool "as script wrapper"
+	help
+	  Install /bin/sh applet as script wrapper that calls
+	  the busybox binary.
+
+endchoice
 
-menu 'Debugging Options'
+config BUSYBOX_CONFIG_PREFIX
+	string "BusyBox installation prefix"
+	default BUSYBOX_DEFAULT_PREFIX
+	help
+	  Define your directory to install BusyBox files/subdirs in.
+
+comment 'Debugging Options'
 
 config BUSYBOX_CONFIG_DEBUG
 	bool "Build BusyBox with extra Debugging symbols"
@@ -769,78 +672,8 @@ endchoice
 
 endmenu
 
-menu 'Installation Options ("make install" behavior)'
-
-choice
-	prompt "What kind of applet links to install"
-	default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
-	help
-	  Choose what kind of links to applets are created by "make install".
-
-config BUSYBOX_CONFIG_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_CONFIG_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_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
-	bool "as script wrappers"
-	help
-	  Install applets as script wrappers that call the busybox binary.
-
-config BUSYBOX_CONFIG_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_CONFIG_INSTALL_SH_APPLET_SYMLINK
-	depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
-	help
-	  Choose how you install /bin/sh applet link.
-
-config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
-	bool "as soft-link"
-	help
-	  Install /bin/sh applet as soft-link to the busybox binary.
-
-config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
-	bool "as hard-link"
-	help
-	  Install /bin/sh applet as hard-link to the busybox binary.
-
-config BUSYBOX_CONFIG_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_CONFIG_PREFIX
-	string "BusyBox installation prefix"
-	default BUSYBOX_DEFAULT_PREFIX
-	help
-	  Define your directory to install BusyBox files/subdirs in.
-
-endmenu
-
 source libbb/Config.in
 
-endmenu
-
 comment "Applets"
 
 source archival/Config.in
diff --git a/package/utils/busybox/config/archival/Config.in b/package/utils/busybox/config/archival/Config.in
index ff4c2cf..cf47e65 100644
--- a/package/utils/busybox/config/archival/Config.in
+++ b/package/utils/busybox/config/archival/Config.in
@@ -31,7 +31,7 @@ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
 	  Make tar, rpm, modprobe etc understand .gz data.
 
 config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
-	bool "tar, rpm, modprobe etc understand .Z data"
+	bool "Make tar, rpm, modprobe etc understand .Z data"
 	default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z  # it is ancient
 	help
 	  Make tar, rpm, modprobe etc understand .Z data.
@@ -79,10 +79,16 @@ config BUSYBOX_CONFIG_GUNZIP
 	  You can use the `-t' option to test the integrity of
 	  an archive, without decompressing it.
 
+config BUSYBOX_CONFIG_ZCAT
+	bool "zcat"
+	default BUSYBOX_DEFAULT_ZCAT
+	help
+	  Alias to "gunzip -c".
+
 config BUSYBOX_CONFIG_FEATURE_GUNZIP_LONG_OPTIONS
 	bool "Enable long options"
 	default BUSYBOX_DEFAULT_FEATURE_GUNZIP_LONG_OPTIONS
-	depends on BUSYBOX_CONFIG_GUNZIP && BUSYBOX_CONFIG_LONG_OPTS
+	depends on (BUSYBOX_CONFIG_GUNZIP || BUSYBOX_CONFIG_ZCAT) && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Enable use of long options.
 config BUSYBOX_CONFIG_BUNZIP2
@@ -97,6 +103,12 @@ config BUSYBOX_CONFIG_BUNZIP2
 
 	  Unless you have a specific application which requires bunzip2, you
 	  should probably say N here.
+
+config BUSYBOX_CONFIG_BZCAT
+	bool "bzcat"
+	default BUSYBOX_DEFAULT_BZCAT
+	help
+	  Alias to "bunzip2 -c".
 config BUSYBOX_CONFIG_UNLZMA
 	bool "unlzma"
 	default BUSYBOX_DEFAULT_UNLZMA
@@ -109,31 +121,47 @@ config BUSYBOX_CONFIG_UNLZMA
 	  The BusyBox unlzma applet is limited to decompression only.
 	  On an x86 system, this applet adds about 4K.
 
-config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
-	bool "Optimize unlzma for speed"
-	default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
-	depends on BUSYBOX_CONFIG_UNLZMA
+config BUSYBOX_CONFIG_LZCAT
+	bool "lzcat"
+	default BUSYBOX_DEFAULT_LZCAT
 	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_CONFIG_LZMA
-	bool "Provide lzma alias which supports only unpacking"
+	bool "lzma -d"
 	default BUSYBOX_DEFAULT_LZMA
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_LZMA_FAST
+	bool "Optimize unlzma for speed"
+	default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
+	depends on BUSYBOX_CONFIG_UNLZMA || BUSYBOX_CONFIG_LZCAT || BUSYBOX_CONFIG_LZMA
+	help
+	  This option reduces decompression time by about 25% at the cost of
+	  a 1K bigger binary.
 config BUSYBOX_CONFIG_UNXZ
 	bool "unxz"
 	default BUSYBOX_DEFAULT_UNXZ
 	help
 	  unxz is a unlzma successor.
 
+config BUSYBOX_CONFIG_XZCAT
+	bool "xzcat"
+	default BUSYBOX_DEFAULT_XZCAT
+	help
+	  Alias to "unxz -c".
+
 config BUSYBOX_CONFIG_XZ
-	bool "Provide xz alias which supports only unpacking"
+	bool "xz -d"
 	default BUSYBOX_DEFAULT_XZ
-	depends on BUSYBOX_CONFIG_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_CONFIG_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.
@@ -198,16 +226,6 @@ config BUSYBOX_CONFIG_DPKG_DEB
 
 	  Unless you have a specific application which requires dpkg-deb,
 	  say N here.
-
-config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	bool "Extract only (-x)"
-	default BUSYBOX_DEFAULT_FEATURE_DPKG_DEB_EXTRACT_ONLY
-	depends on BUSYBOX_CONFIG_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_CONFIG_GZIP
 	bool "gzip"
 	default BUSYBOX_DEFAULT_GZIP
@@ -249,10 +267,22 @@ config BUSYBOX_CONFIG_LZOP
 	help
 	  Lzop compression/decompresion.
 
+config BUSYBOX_CONFIG_UNLZOP
+	bool "unlzop"
+	default BUSYBOX_DEFAULT_UNLZOP
+	help
+	  Lzop decompresion.
+
+config BUSYBOX_CONFIG_LZOPCAT
+	bool "lzopcat"
+	default BUSYBOX_DEFAULT_LZOPCAT
+	help
+	  Alias to "unlzop -c".
+
 config BUSYBOX_CONFIG_LZOP_COMPR_HIGH
 	bool "lzop compression levels 7,8,9 (not very useful)"
 	default BUSYBOX_DEFAULT_LZOP_COMPR_HIGH
-	depends on BUSYBOX_CONFIG_LZOP
+	depends on BUSYBOX_CONFIG_LZOP || BUSYBOX_CONFIG_UNLZOP || BUSYBOX_CONFIG_LZOPCAT
 	help
 	  High levels (7,8,9) of lzop compression. These levels
 	  are actually slower than gzip at equivalent compression ratios
diff --git a/package/utils/busybox/config/console-tools/Config.in b/package/utils/busybox/config/console-tools/Config.in
index 53937d2..e5a4bfb 100644
--- a/package/utils/busybox/config/console-tools/Config.in
+++ b/package/utils/busybox/config/console-tools/Config.in
@@ -6,7 +6,6 @@
 
 menu "Console Utilities"
 
-
 config BUSYBOX_CONFIG_CHVT
 	bool "chvt"
 	default BUSYBOX_DEFAULT_CHVT
@@ -14,27 +13,17 @@ config BUSYBOX_CONFIG_CHVT
 	help
 	  This program is used to change to another terminal.
 	  Example: chvt 4 (change to terminal /dev/tty4)
-
-config BUSYBOX_CONFIG_FGCONSOLE
-	bool "fgconsole"
-	default BUSYBOX_DEFAULT_FGCONSOLE
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  This program prints active (foreground) console number.
-
 config BUSYBOX_CONFIG_CLEAR
 	bool "clear"
 	default BUSYBOX_DEFAULT_CLEAR
 	help
 	  This program clears the terminal screen.
-
 config BUSYBOX_CONFIG_DEALLOCVT
 	bool "deallocvt"
 	default BUSYBOX_DEFAULT_DEALLOCVT
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  This program deallocates unused virtual consoles.
-
 config BUSYBOX_CONFIG_DUMPKMAP
 	bool "dumpkmap"
 	default BUSYBOX_DEFAULT_DUMPKMAP
@@ -42,14 +31,18 @@ config BUSYBOX_CONFIG_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_CONFIG_FGCONSOLE
+	bool "fgconsole"
+	default BUSYBOX_DEFAULT_FGCONSOLE
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  This program prints active (foreground) console number.
 config BUSYBOX_CONFIG_KBD_MODE
 	bool "kbd_mode"
 	default BUSYBOX_DEFAULT_KBD_MODE
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  This program reports and sets keyboard mode.
-
 config BUSYBOX_CONFIG_LOADFONT
 	bool "loadfont"
 	default BUSYBOX_DEFAULT_LOADFONT
@@ -57,6 +50,44 @@ config BUSYBOX_CONFIG_LOADFONT
 	help
 	  This program loads a console font from standard input.
 
+config BUSYBOX_CONFIG_SETFONT
+	bool "setfont"
+	default BUSYBOX_DEFAULT_SETFONT
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Allows to load console screen map. Useful for i18n.
+
+config BUSYBOX_CONFIG_FEATURE_SETFONT_TEXTUAL_MAP
+	bool "Support reading textual screen maps"
+	default BUSYBOX_DEFAULT_FEATURE_SETFONT_TEXTUAL_MAP
+	depends on BUSYBOX_CONFIG_SETFONT
+	help
+	  Support reading textual screen maps.
+
+config BUSYBOX_CONFIG_DEFAULT_SETFONT_DIR
+	string "Default directory for console-tools files"
+	default BUSYBOX_DEFAULT_DEFAULT_SETFONT_DIR
+	depends on BUSYBOX_CONFIG_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_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+
+config BUSYBOX_CONFIG_FEATURE_LOADFONT_PSF2
+	bool "Support for PSF2 console fonts"
+	default BUSYBOX_DEFAULT_FEATURE_LOADFONT_PSF2
+	depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+	help
+	  Support PSF2 console fonts.
+
+config BUSYBOX_CONFIG_FEATURE_LOADFONT_RAW
+	bool "Support for old (raw) console fonts"
+	default BUSYBOX_DEFAULT_FEATURE_LOADFONT_RAW
+	depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+	help
+	  Support old (raw) console fonts.
 config BUSYBOX_CONFIG_LOADKMAP
 	bool "loadkmap"
 	default BUSYBOX_DEFAULT_LOADKMAP
@@ -64,7 +95,6 @@ config BUSYBOX_CONFIG_LOADKMAP
 	help
 	  This program loads a keyboard translation table from
 	  standard input.
-
 config BUSYBOX_CONFIG_OPENVT
 	bool "openvt"
 	default BUSYBOX_DEFAULT_OPENVT
@@ -72,14 +102,12 @@ config BUSYBOX_CONFIG_OPENVT
 	help
 	  This program is used to start a command on an unused
 	  virtual terminal.
-
 config BUSYBOX_CONFIG_RESET
 	bool "reset"
 	default BUSYBOX_DEFAULT_RESET
 	help
 	  This program is used to reset the terminal screen, if it
 	  gets messed up.
-
 config BUSYBOX_CONFIG_RESIZE
 	bool "resize"
 	default BUSYBOX_DEFAULT_RESIZE
@@ -96,7 +124,6 @@ config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT
 	  the terminal.
 	  E.g.:
 	  COLUMNS=80;LINES=44;export COLUMNS LINES;
-
 config BUSYBOX_CONFIG_SETCONSOLE
 	bool "setconsole"
 	default BUSYBOX_DEFAULT_SETCONSOLE
@@ -111,29 +138,6 @@ config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the setconsole applet.
-
-config BUSYBOX_CONFIG_SETFONT
-	bool "setfont"
-	default BUSYBOX_DEFAULT_SETFONT
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Allows to load console screen map. Useful for i18n.
-
-config BUSYBOX_CONFIG_FEATURE_SETFONT_TEXTUAL_MAP
-	bool "Support reading textual screen maps"
-	default BUSYBOX_DEFAULT_FEATURE_SETFONT_TEXTUAL_MAP
-	depends on BUSYBOX_CONFIG_SETFONT
-	help
-	  Support reading textual screen maps.
-
-config BUSYBOX_CONFIG_DEFAULT_SETFONT_DIR
-	string "Default directory for console-tools files"
-	default BUSYBOX_DEFAULT_DEFAULT_SETFONT_DIR
-	depends on BUSYBOX_CONFIG_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_CONFIG_SETKEYCODES
 	bool "setkeycodes"
 	default BUSYBOX_DEFAULT_SETKEYCODES
@@ -141,14 +145,12 @@ config BUSYBOX_CONFIG_SETKEYCODES
 	help
 	  This program loads entries into the kernel's scancode-to-keycode
 	  map, allowing unusual keyboards to generate usable keycodes.
-
 config BUSYBOX_CONFIG_SETLOGCONS
 	bool "setlogcons"
 	default BUSYBOX_DEFAULT_SETLOGCONS
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  This program redirects the output console of kernel messages.
-
 config BUSYBOX_CONFIG_SHOWKEY
 	bool "showkey"
 	default BUSYBOX_DEFAULT_SHOWKEY
@@ -156,21 +158,4 @@ config BUSYBOX_CONFIG_SHOWKEY
 	help
 	  Shows keys pressed.
 
-comment "Common options for loadfont and setfont"
-	depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
-
-config BUSYBOX_CONFIG_FEATURE_LOADFONT_PSF2
-	bool "Support for PSF2 console fonts"
-	default BUSYBOX_DEFAULT_FEATURE_LOADFONT_PSF2
-	depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
-	help
-	  Support PSF2 console fonts.
-
-config BUSYBOX_CONFIG_FEATURE_LOADFONT_RAW
-	bool "Support for old (raw) console fonts"
-	default BUSYBOX_DEFAULT_FEATURE_LOADFONT_RAW
-	depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
-	help
-	  Support old (raw) console fonts.
-
 endmenu
diff --git a/package/utils/busybox/config/coreutils/Config.in b/package/utils/busybox/config/coreutils/Config.in
index ec5611b..855bcd1 100644
--- a/package/utils/busybox/config/coreutils/Config.in
+++ b/package/utils/busybox/config/coreutils/Config.in
@@ -13,12 +13,82 @@ config BUSYBOX_CONFIG_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_CONFIG_CAL
+	bool "cal"
+	default BUSYBOX_DEFAULT_CAL
+	help
+	  cal is used to display a monthly calendar.
 config BUSYBOX_CONFIG_CAT
 	bool "cat"
 	default BUSYBOX_DEFAULT_CAT
 	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_CONFIG_CATV
+	bool "catv"
+	default BUSYBOX_DEFAULT_CATV
+	help
+	  Display nonprinting characters as escape sequences (like some
+	  implementations' cat -v option).
+config BUSYBOX_CONFIG_CHGRP
+	bool "chgrp"
+	default BUSYBOX_DEFAULT_CHGRP
+	help
+	  chgrp is used to change the group ownership of files.
+config BUSYBOX_CONFIG_CHMOD
+	bool "chmod"
+	default BUSYBOX_DEFAULT_CHMOD
+	help
+	  chmod is used to change the access permission of files.
+config BUSYBOX_CONFIG_CHOWN
+	bool "chown"
+	default BUSYBOX_DEFAULT_CHOWN
+	help
+	  chown is used to change the user and/or group ownership
+	  of files.
+
+config BUSYBOX_CONFIG_FEATURE_CHOWN_LONG_OPTIONS
+	bool "Enable long options"
+	default BUSYBOX_DEFAULT_FEATURE_CHOWN_LONG_OPTIONS
+	depends on BUSYBOX_CONFIG_CHOWN && BUSYBOX_CONFIG_LONG_OPTS
+	help
+	  Enable use of long options
+config BUSYBOX_CONFIG_CHROOT
+	bool "chroot"
+	default BUSYBOX_DEFAULT_CHROOT
+	help
+	  chroot is used to change the root directory and run a command.
+	  The default command is `/bin/sh'.
+config BUSYBOX_CONFIG_CKSUM
+	bool "cksum"
+	default BUSYBOX_DEFAULT_CKSUM
+	help
+	  cksum is used to calculate the CRC32 checksum of a file.
+config BUSYBOX_CONFIG_COMM
+	bool "comm"
+	default BUSYBOX_DEFAULT_COMM
+	help
+	  comm is used to compare two files line by line and return
+	  a three-column output.
+config BUSYBOX_CONFIG_CP
+	bool "cp"
+	default BUSYBOX_DEFAULT_CP
+	help
+	  cp is used to copy files and directories.
+
+config BUSYBOX_CONFIG_FEATURE_CP_LONG_OPTIONS
+	bool "Enable long options for cp"
+	default BUSYBOX_DEFAULT_FEATURE_CP_LONG_OPTIONS
+	depends on BUSYBOX_CONFIG_CP && BUSYBOX_CONFIG_LONG_OPTS
+	help
+	  Enable long options for cp.
+	  Also add support for --parents option.
+config BUSYBOX_CONFIG_CUT
+	bool "cut"
+	default BUSYBOX_DEFAULT_CUT
+	help
+	  cut is used to print selected parts of lines from
+	  each file to stdout.
 config BUSYBOX_CONFIG_DATE
 	bool "date"
 	default BUSYBOX_DEFAULT_DATE
@@ -102,231 +172,6 @@ config BUSYBOX_CONFIG_FEATURE_DD_STATUS
 	depends on BUSYBOX_CONFIG_DD
 	help
 	  Enables support for status=noxfer/none option.
-config BUSYBOX_CONFIG_HOSTID
-	bool "hostid"
-	default BUSYBOX_DEFAULT_HOSTID
-	help
-	  hostid prints the numeric identifier (in hexadecimal) for
-	  the current host.
-config BUSYBOX_CONFIG_ID
-	bool "id"
-	default BUSYBOX_DEFAULT_ID
-	help
-	  id displays the current user and group ID names.
-config BUSYBOX_CONFIG_GROUPS
-	bool "groups"
-	default BUSYBOX_DEFAULT_GROUPS
-	help
-	  Print the group names associated with current user id.
-config BUSYBOX_CONFIG_SHUF
-	bool "shuf"
-	default BUSYBOX_DEFAULT_SHUF
-	help
-	  Generate random permutations
-config BUSYBOX_CONFIG_STAT
-	bool "stat"
-	default BUSYBOX_DEFAULT_STAT
-	help
-	  display file or filesystem status.
-
-config BUSYBOX_CONFIG_FEATURE_STAT_FORMAT
-	bool "Enable custom formats (-c)"
-	default BUSYBOX_DEFAULT_FEATURE_STAT_FORMAT
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_STAT_FILESYSTEM
-	bool "Enable display of filesystem status (-f)"
-	default BUSYBOX_DEFAULT_FEATURE_STAT_FILESYSTEM
-	depends on BUSYBOX_CONFIG_STAT
-	select BUSYBOX_CONFIG_PLATFORM_LINUX # statfs()
-	help
-	  Without this, stat will not support the '-f' option to display
-	  information about filesystem status.
-config BUSYBOX_CONFIG_SYNC
-	bool "sync"
-	default BUSYBOX_DEFAULT_SYNC
-	help
-	  sync is used to flush filesystem buffers.
-config BUSYBOX_CONFIG_FEATURE_SYNC_FANCY
-	bool "Enable -d and -f flags (requres syncfs(2) in libc)"
-	default BUSYBOX_DEFAULT_FEATURE_SYNC_FANCY
-	depends on BUSYBOX_CONFIG_SYNC
-	help
-	  sync -d FILE... executes fdatasync() on each FILE.
-	  sync -f FILE... executes syncfs() on each FILE.
-config BUSYBOX_CONFIG_TEST
-	bool "test"
-	default BUSYBOX_DEFAULT_TEST
-	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_CONFIG_FEATURE_TEST_64
-	bool "Extend test to 64 bit"
-	default BUSYBOX_DEFAULT_FEATURE_TEST_64
-	depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
-	help
-	  Enable 64-bit support in test.
-config BUSYBOX_CONFIG_TOUCH
-	bool "touch"
-	default BUSYBOX_DEFAULT_TOUCH
-	help
-	  touch is used to create or change the access and/or
-	  modification timestamp of specified files.
-
-config BUSYBOX_CONFIG_FEATURE_TOUCH_NODEREF
-	bool "Add support for -h"
-	default BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
-	depends on BUSYBOX_CONFIG_TOUCH
-	help
-	  Enable touch to have the -h option.
-	  This requires libc support for lutimes() function.
-
-config BUSYBOX_CONFIG_FEATURE_TOUCH_SUSV3
-	bool "Add support for SUSV3 features (-d -t -r)"
-	default BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
-	depends on BUSYBOX_CONFIG_TOUCH
-	help
-	  Enable touch to use a reference file or a given date/time argument.
-config BUSYBOX_CONFIG_TR
-	bool "tr"
-	default BUSYBOX_DEFAULT_TR
-	help
-	  tr is used to squeeze, and/or delete characters from standard
-	  input, writing to standard output.
-
-config BUSYBOX_CONFIG_FEATURE_TR_CLASSES
-	bool "Enable character classes (such as [:upper:])"
-	default BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
-	depends on BUSYBOX_CONFIG_TR
-	help
-	  Enable character classes, enabling commands such as:
-	  tr [:upper:] [:lower:] to convert input into lowercase.
-
-config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
-	bool "Enable equivalence classes"
-	default BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
-	depends on BUSYBOX_CONFIG_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_CONFIG_TRUNCATE
-	bool "truncate"
-	default BUSYBOX_DEFAULT_TRUNCATE
-	help
-	  truncate truncates files to a given size. If a file does
-	  not exist, it is created unless told otherwise.
-config BUSYBOX_CONFIG_UNLINK
-	bool "unlink"
-	default BUSYBOX_DEFAULT_UNLINK
-	help
-	  unlink deletes a file by calling unlink()
-config BUSYBOX_CONFIG_BASE64
-	bool "base64"
-	default BUSYBOX_DEFAULT_BASE64
-	help
-	  Base64 encode and decode
-config BUSYBOX_CONFIG_WHO
-      bool "who"
-      default BUSYBOX_DEFAULT_WHO
-      depends on BUSYBOX_CONFIG_FEATURE_UTMP
-      help
-        who is used to show who is logged on.
-config BUSYBOX_CONFIG_USERS
-      bool "users"
-      default BUSYBOX_DEFAULT_USERS
-      depends on BUSYBOX_CONFIG_FEATURE_UTMP
-      help
-        Print users currently logged on.
-
-config BUSYBOX_CONFIG_CAL
-	bool "cal"
-	default BUSYBOX_DEFAULT_CAL
-	help
-	  cal is used to display a monthly calendar.
-
-config BUSYBOX_CONFIG_CATV
-	bool "catv"
-	default BUSYBOX_DEFAULT_CATV
-	help
-	  Display nonprinting characters as escape sequences (like some
-	  implementations' cat -v option).
-
-config BUSYBOX_CONFIG_CHGRP
-	bool "chgrp"
-	default BUSYBOX_DEFAULT_CHGRP
-	help
-	  chgrp is used to change the group ownership of files.
-
-config BUSYBOX_CONFIG_CHMOD
-	bool "chmod"
-	default BUSYBOX_DEFAULT_CHMOD
-	help
-	  chmod is used to change the access permission of files.
-
-config BUSYBOX_CONFIG_CHOWN
-	bool "chown"
-	default BUSYBOX_DEFAULT_CHOWN
-	help
-	  chown is used to change the user and/or group ownership
-	  of files.
-
-config BUSYBOX_CONFIG_FEATURE_CHOWN_LONG_OPTIONS
-	bool "Enable long options"
-	default BUSYBOX_DEFAULT_FEATURE_CHOWN_LONG_OPTIONS
-	depends on BUSYBOX_CONFIG_CHOWN && BUSYBOX_CONFIG_LONG_OPTS
-	help
-	  Enable use of long options
-
-config BUSYBOX_CONFIG_CHROOT
-	bool "chroot"
-	default BUSYBOX_DEFAULT_CHROOT
-	help
-	  chroot is used to change the root directory and run a command.
-	  The default command is `/bin/sh'.
-
-config BUSYBOX_CONFIG_CKSUM
-	bool "cksum"
-	default BUSYBOX_DEFAULT_CKSUM
-	help
-	  cksum is used to calculate the CRC32 checksum of a file.
-
-config BUSYBOX_CONFIG_COMM
-	bool "comm"
-	default BUSYBOX_DEFAULT_COMM
-	help
-	  comm is used to compare two files line by line and return
-	  a three-column output.
-
-config BUSYBOX_CONFIG_CP
-	bool "cp"
-	default BUSYBOX_DEFAULT_CP
-	help
-	  cp is used to copy files and directories.
-
-config BUSYBOX_CONFIG_FEATURE_CP_LONG_OPTIONS
-	bool "Enable long options for cp"
-	default BUSYBOX_DEFAULT_FEATURE_CP_LONG_OPTIONS
-	depends on BUSYBOX_CONFIG_CP && BUSYBOX_CONFIG_LONG_OPTS
-	help
-	  Enable long options for cp.
-	  Also add support for --parents option.
-
-config BUSYBOX_CONFIG_CUT
-	bool "cut"
-	default BUSYBOX_DEFAULT_CUT
-	help
-	  cut is used to print selected parts of lines from
-	  each file to stdout.
-
 config BUSYBOX_CONFIG_DF
 	bool "df"
 	default BUSYBOX_DEFAULT_DF
@@ -344,29 +189,25 @@ config BUSYBOX_CONFIG_FEATURE_DF_FANCY
 	    -a Show all filesystems
 	    -i Inodes
 	    -B <SIZE> Blocksize
-
 config BUSYBOX_CONFIG_DIRNAME
 	bool "dirname"
 	default BUSYBOX_DEFAULT_DIRNAME
 	help
 	  dirname is used to strip a non-directory suffix from
 	  a file name.
-
 config BUSYBOX_CONFIG_DOS2UNIX
-	bool "dos2unix/unix2dos"
+	bool "dos2unix"
 	default BUSYBOX_DEFAULT_DOS2UNIX
 	help
 	  dos2unix is used to convert a text file from DOS format to
 	  UNIX format, and vice versa.
 
 config BUSYBOX_CONFIG_UNIX2DOS
-	bool
+	bool "unix2dos"
 	default BUSYBOX_DEFAULT_UNIX2DOS
-	depends on BUSYBOX_CONFIG_DOS2UNIX
 	help
 	  unix2dos is used to convert a text file from UNIX format to
 	  DOS format, and vice versa.
-
 config BUSYBOX_CONFIG_DU
 	bool "du (default blocksize of 512 bytes)"
 	default BUSYBOX_DEFAULT_DU
@@ -380,7 +221,6 @@ config BUSYBOX_CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
 	depends on BUSYBOX_CONFIG_DU
 	help
 	  Use a blocksize of (1K) instead of the default 512b.
-
 config BUSYBOX_CONFIG_ECHO
 	bool "echo (basic SuSv3 version taking no options)"
 	default BUSYBOX_DEFAULT_ECHO
@@ -394,7 +234,6 @@ config BUSYBOX_CONFIG_FEATURE_FANCY_ECHO
 	depends on BUSYBOX_CONFIG_ECHO || BUSYBOX_CONFIG_ASH_BUILTIN_ECHO || BUSYBOX_CONFIG_HUSH
 	help
 	  This adds options (-n and -e) to echo.
-
 config BUSYBOX_CONFIG_ENV
 	bool "env"
 	default BUSYBOX_DEFAULT_ENV
@@ -409,7 +248,6 @@ config BUSYBOX_CONFIG_FEATURE_ENV_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_ENV && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the env applet.
-
 config BUSYBOX_CONFIG_EXPAND
 	bool "expand"
 	default BUSYBOX_DEFAULT_EXPAND
@@ -423,6 +261,18 @@ config BUSYBOX_CONFIG_FEATURE_EXPAND_LONG_OPTIONS
 	help
 	  Support long options for the expand applet.
 
+config BUSYBOX_CONFIG_UNEXPAND
+	bool "unexpand"
+	default BUSYBOX_DEFAULT_UNEXPAND
+	help
+	  By default, convert only leading sequences of blanks to tabs.
+
+config BUSYBOX_CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS
+	bool "Enable long options"
+	default BUSYBOX_DEFAULT_FEATURE_UNEXPAND_LONG_OPTIONS
+	depends on BUSYBOX_CONFIG_UNEXPAND && BUSYBOX_CONFIG_LONG_OPTS
+	help
+	  Support long options for the unexpand applet.
 config BUSYBOX_CONFIG_EXPR
 	bool "expr"
 	default BUSYBOX_DEFAULT_EXPR
@@ -438,25 +288,21 @@ config BUSYBOX_CONFIG_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_CONFIG_FALSE
 	bool "false"
 	default BUSYBOX_DEFAULT_FALSE
 	help
 	  false returns an exit code of FALSE (1).
-
 config BUSYBOX_CONFIG_FOLD
 	bool "fold"
 	default BUSYBOX_DEFAULT_FOLD
 	help
 	  Wrap text to fit a specific width.
-
 config BUSYBOX_CONFIG_FSYNC
 	bool "fsync"
 	default BUSYBOX_DEFAULT_FSYNC
 	help
 	  fsync is used to flush file-related cached blocks to disk.
-
 config BUSYBOX_CONFIG_HEAD
 	bool "head"
 	default BUSYBOX_DEFAULT_HEAD
@@ -469,8 +315,24 @@ config BUSYBOX_CONFIG_FEATURE_FANCY_HEAD
 	default BUSYBOX_DEFAULT_FEATURE_FANCY_HEAD
 	depends on BUSYBOX_CONFIG_HEAD
 	help
-	  This enables the head options (-c, -q, and -v).
+	  This enables the head options (-c, -q, and -v).
+config BUSYBOX_CONFIG_HOSTID
+	bool "hostid"
+	default BUSYBOX_DEFAULT_HOSTID
+	help
+	  hostid prints the numeric identifier (in hexadecimal) for
+	  the current host.
+config BUSYBOX_CONFIG_ID
+	bool "id"
+	default BUSYBOX_DEFAULT_ID
+	help
+	  id displays the current user and group ID names.
 
+config BUSYBOX_CONFIG_GROUPS
+	bool "groups"
+	default BUSYBOX_DEFAULT_GROUPS
+	help
+	  Print the group names associated with current user id.
 config BUSYBOX_CONFIG_INSTALL
 	bool "install"
 	default BUSYBOX_DEFAULT_INSTALL
@@ -483,25 +345,16 @@ config BUSYBOX_CONFIG_FEATURE_INSTALL_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_INSTALL && BUSYBOX_CONFIG_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_CONFIG_LN
 	bool "ln"
 	default BUSYBOX_DEFAULT_LN
 	help
 	  ln is used to create hard or soft links between files.
-
 config BUSYBOX_CONFIG_LOGNAME
 	bool "logname"
 	default BUSYBOX_DEFAULT_LOGNAME
 	help
 	  logname is used to print the current user's login name.
-
 config BUSYBOX_CONFIG_LS
 	bool "ls"
 	default BUSYBOX_DEFAULT_LS
@@ -567,13 +420,48 @@ config BUSYBOX_CONFIG_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_CONFIG_MD5SUM
 	bool "md5sum"
 	default BUSYBOX_DEFAULT_MD5SUM
 	help
 	  md5sum is used to print or check MD5 checksums.
 
+config BUSYBOX_CONFIG_SHA1SUM
+	bool "sha1sum"
+	default BUSYBOX_DEFAULT_SHA1SUM
+	help
+	  Compute and check SHA1 message digest
+
+config BUSYBOX_CONFIG_SHA256SUM
+	bool "sha256sum"
+	default BUSYBOX_DEFAULT_SHA256SUM
+	help
+	  Compute and check SHA256 message digest
+
+config BUSYBOX_CONFIG_SHA512SUM
+	bool "sha512sum"
+	default BUSYBOX_DEFAULT_SHA512SUM
+	help
+	  Compute and check SHA512 message digest
+
+config BUSYBOX_CONFIG_SHA3SUM
+	bool "sha3sum"
+	default BUSYBOX_DEFAULT_SHA3SUM
+	help
+	  Compute and check SHA3 message digest
+
+comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
+	depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
+
+config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
+	bool "Enable -c, -s and -w options"
+	default BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK
+	depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_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_CONFIG_MKDIR
 	bool "mkdir"
 	default BUSYBOX_DEFAULT_MKDIR
@@ -586,21 +474,18 @@ config BUSYBOX_CONFIG_FEATURE_MKDIR_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_MKDIR && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the mkdir applet.
-
 config BUSYBOX_CONFIG_MKFIFO
 	bool "mkfifo"
 	default BUSYBOX_DEFAULT_MKFIFO
 	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_CONFIG_MKNOD
 	bool "mknod"
 	default BUSYBOX_DEFAULT_MKNOD
 	help
 	  mknod is used to create FIFOs or block/character special
 	  files with the specified names.
-
 config BUSYBOX_CONFIG_MV
 	bool "mv"
 	default BUSYBOX_DEFAULT_MV
@@ -613,44 +498,37 @@ config BUSYBOX_CONFIG_FEATURE_MV_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_MV && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the mv applet.
-
 config BUSYBOX_CONFIG_NICE
 	bool "nice"
 	default BUSYBOX_DEFAULT_NICE
 	help
 	  nice runs a program with modified scheduling priority.
-
 config BUSYBOX_CONFIG_NOHUP
 	bool "nohup"
 	default BUSYBOX_DEFAULT_NOHUP
 	help
 	  run a command immune to hangups, with output to a non-tty.
-
 config BUSYBOX_CONFIG_OD
 	bool "od"
 	default BUSYBOX_DEFAULT_OD
 	help
 	  od is used to dump binary files in octal and other formats.
-
 config BUSYBOX_CONFIG_PRINTENV
 	bool "printenv"
 	default BUSYBOX_DEFAULT_PRINTENV
 	help
 	  printenv is used to print all or part of environment.
-
 config BUSYBOX_CONFIG_PRINTF
 	bool "printf"
 	default BUSYBOX_DEFAULT_PRINTF
 	help
 	  printf is used to format and print specified strings.
 	  It's similar to `echo' except it has more options.
-
 config BUSYBOX_CONFIG_PWD
 	bool "pwd"
 	default BUSYBOX_DEFAULT_PWD
 	help
 	  pwd is used to print the current directory.
-
 config BUSYBOX_CONFIG_READLINK
 	bool "readlink"
 	default BUSYBOX_DEFAULT_READLINK
@@ -664,20 +542,17 @@ config BUSYBOX_CONFIG_FEATURE_READLINK_FOLLOW
 	depends on BUSYBOX_CONFIG_READLINK
 	help
 	  Enable the readlink option (-f).
-
 config BUSYBOX_CONFIG_REALPATH
 	bool "realpath"
 	default BUSYBOX_DEFAULT_REALPATH
 	help
 	  Return the canonicalized absolute pathname.
 	  This isn't provided by GNU shellutils, but where else does it belong.
-
 config BUSYBOX_CONFIG_RM
 	bool "rm"
 	default BUSYBOX_DEFAULT_RM
 	help
 	  rm is used to remove files or directories.
-
 config BUSYBOX_CONFIG_RMDIR
 	bool "rmdir"
 	default BUSYBOX_DEFAULT_RMDIR
@@ -691,37 +566,16 @@ config BUSYBOX_CONFIG_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_CONFIG_SEQ
 	bool "seq"
 	default BUSYBOX_DEFAULT_SEQ
 	help
 	  print a sequence of numbers
-
-config BUSYBOX_CONFIG_SHA1SUM
-	bool "sha1sum"
-	default BUSYBOX_DEFAULT_SHA1SUM
-	help
-	  Compute and check SHA1 message digest
-
-config BUSYBOX_CONFIG_SHA256SUM
-	bool "sha256sum"
-	default BUSYBOX_DEFAULT_SHA256SUM
-	help
-	  Compute and check SHA256 message digest
-
-config BUSYBOX_CONFIG_SHA512SUM
-	bool "sha512sum"
-	default BUSYBOX_DEFAULT_SHA512SUM
-	help
-	  Compute and check SHA512 message digest
-
-config BUSYBOX_CONFIG_SHA3SUM
-	bool "sha3sum"
-	default BUSYBOX_DEFAULT_SHA3SUM
+config BUSYBOX_CONFIG_SHUF
+	bool "shuf"
+	default BUSYBOX_DEFAULT_SHUF
 	help
-	  Compute and check SHA3 (512-bit) message digest
-
+	  Generate random permutations
 config BUSYBOX_CONFIG_SLEEP
 	bool "sleep"
 	default BUSYBOX_DEFAULT_SLEEP
@@ -749,7 +603,6 @@ config BUSYBOX_CONFIG_FEATURE_FLOAT_SLEEP
 	depends on BUSYBOX_CONFIG_FEATURE_FANCY_SLEEP
 	help
 	  Allow for fractional numeric parameters.
-
 config BUSYBOX_CONFIG_SORT
 	bool "sort"
 	default BUSYBOX_DEFAULT_SORT
@@ -767,7 +620,6 @@ config BUSYBOX_CONFIG_FEATURE_SORT_BIG
 
 	  The SuSv3 sort standard is available at:
 	  http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
-
 config BUSYBOX_CONFIG_SPLIT
 	bool "split"
 	default BUSYBOX_DEFAULT_SPLIT
@@ -782,25 +634,56 @@ config BUSYBOX_CONFIG_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_CONFIG_STAT
+	bool "stat"
+	default BUSYBOX_DEFAULT_STAT
+	help
+	  display file or filesystem status.
+
+config BUSYBOX_CONFIG_FEATURE_STAT_FORMAT
+	bool "Enable custom formats (-c)"
+	default BUSYBOX_DEFAULT_FEATURE_STAT_FORMAT
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_STAT_FILESYSTEM
+	bool "Enable display of filesystem status (-f)"
+	default BUSYBOX_DEFAULT_FEATURE_STAT_FILESYSTEM
+	depends on BUSYBOX_CONFIG_STAT
+	select BUSYBOX_CONFIG_PLATFORM_LINUX # statfs()
+	help
+	  Without this, stat will not support the '-f' option to display
+	  information about filesystem status.
 config BUSYBOX_CONFIG_STTY
 	bool "stty"
 	default BUSYBOX_DEFAULT_STTY
 	help
 	  stty is used to change and print terminal line settings.
-
 config BUSYBOX_CONFIG_SUM
 	bool "sum"
 	default BUSYBOX_DEFAULT_SUM
 	help
 	  checksum and count the blocks in a file
-
+config BUSYBOX_CONFIG_SYNC
+	bool "sync"
+	default BUSYBOX_DEFAULT_SYNC
+	help
+	  sync is used to flush filesystem buffers.
+config BUSYBOX_CONFIG_FEATURE_SYNC_FANCY
+	bool "Enable -d and -f flags (requires syncfs(2) in libc)"
+	default BUSYBOX_DEFAULT_FEATURE_SYNC_FANCY
+	depends on BUSYBOX_CONFIG_SYNC
+	help
+	  sync -d FILE... executes fdatasync() on each FILE.
+	  sync -f FILE... executes syncfs() on each FILE.
 config BUSYBOX_CONFIG_TAC
 	bool "tac"
 	default BUSYBOX_DEFAULT_TAC
 	help
 	  tac is used to concatenate and print files in reverse.
-
 config BUSYBOX_CONFIG_TAIL
 	bool "tail"
 	default BUSYBOX_DEFAULT_TAIL
@@ -820,7 +703,6 @@ config BUSYBOX_CONFIG_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_CONFIG_TEE
 	bool "tee"
 	default BUSYBOX_DEFAULT_TEE
@@ -834,20 +716,95 @@ config BUSYBOX_CONFIG_FEATURE_TEE_USE_BLOCK_IO
 	depends on BUSYBOX_CONFIG_TEE
 	help
 	  Enable this option for a faster tee, at expense of size.
+config BUSYBOX_CONFIG_TEST
+	bool "test"
+	default BUSYBOX_DEFAULT_TEST
+	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_CONFIG_TEST1
+	bool "test as ["
+	default BUSYBOX_DEFAULT_TEST1
+	help
+	  Provide test command in the "[ EXPR ]" form
+
+config BUSYBOX_CONFIG_TEST2
+	bool "test as [["
+	default BUSYBOX_DEFAULT_TEST2
+	help
+	  Provide test command in the "[[ EXPR ]]" form
+
+config BUSYBOX_CONFIG_FEATURE_TEST_64
+	bool "Extend test to 64 bit"
+	default BUSYBOX_DEFAULT_FEATURE_TEST_64
+	depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_TEST1 || BUSYBOX_CONFIG_TEST2 || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
+	help
+	  Enable 64-bit support in test.
+config BUSYBOX_CONFIG_TOUCH
+	bool "touch"
+	default BUSYBOX_DEFAULT_TOUCH
+	help
+	  touch is used to create or change the access and/or
+	  modification timestamp of specified files.
+
+config BUSYBOX_CONFIG_FEATURE_TOUCH_NODEREF
+	bool "Add support for -h"
+	default BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
+	depends on BUSYBOX_CONFIG_TOUCH
+	help
+	  Enable touch to have the -h option.
+	  This requires libc support for lutimes() function.
+
+config BUSYBOX_CONFIG_FEATURE_TOUCH_SUSV3
+	bool "Add support for SUSV3 features (-d -t -r)"
+	default BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
+	depends on BUSYBOX_CONFIG_TOUCH
+	help
+	  Enable touch to use a reference file or a given date/time argument.
+config BUSYBOX_CONFIG_TR
+	bool "tr"
+	default BUSYBOX_DEFAULT_TR
+	help
+	  tr is used to squeeze, and/or delete characters from standard
+	  input, writing to standard output.
 
+config BUSYBOX_CONFIG_FEATURE_TR_CLASSES
+	bool "Enable character classes (such as [:upper:])"
+	default BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
+	depends on BUSYBOX_CONFIG_TR
+	help
+	  Enable character classes, enabling commands such as:
+	  tr [:upper:] [:lower:] to convert input into lowercase.
+
+config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
+	bool "Enable equivalence classes"
+	default BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
+	depends on BUSYBOX_CONFIG_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_CONFIG_TRUE
 	bool "true"
 	default BUSYBOX_DEFAULT_TRUE
 	help
 	  true returns an exit code of TRUE (0).
-
+config BUSYBOX_CONFIG_TRUNCATE
+	bool "truncate"
+	default BUSYBOX_DEFAULT_TRUNCATE
+	help
+	  truncate truncates files to a given size. If a file does
+	  not exist, it is created unless told otherwise.
 config BUSYBOX_CONFIG_TTY
 	bool "tty"
 	default BUSYBOX_DEFAULT_TTY
 	help
 	  tty is used to print the name of the current terminal to
 	  standard output.
-
 config BUSYBOX_CONFIG_UNAME
 	bool "uname"
 	default BUSYBOX_DEFAULT_UNAME
@@ -861,44 +818,36 @@ config BUSYBOX_CONFIG_UNAME_OSNAME
 	help
 	  Sets the operating system name reported by uname -o.  The
 	  default BUSYBOX_DEFAULT_UNAME_OSNAME "GNU/Linux".
-
-config BUSYBOX_CONFIG_UNEXPAND
-	bool "unexpand"
-	default BUSYBOX_DEFAULT_UNEXPAND
-	help
-	  By default, convert only leading sequences of blanks to tabs.
-
-config BUSYBOX_CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS
-	bool "Enable long options"
-	default BUSYBOX_DEFAULT_FEATURE_UNEXPAND_LONG_OPTIONS
-	depends on BUSYBOX_CONFIG_UNEXPAND && BUSYBOX_CONFIG_LONG_OPTS
-	help
-	  Support long options for the unexpand applet.
-
 config BUSYBOX_CONFIG_UNIQ
 	bool "uniq"
 	default BUSYBOX_DEFAULT_UNIQ
 	help
 	  uniq is used to remove duplicate lines from a sorted file.
-
+config BUSYBOX_CONFIG_UNLINK
+	bool "unlink"
+	default BUSYBOX_DEFAULT_UNLINK
+	help
+	  unlink deletes a file by calling unlink()
 config BUSYBOX_CONFIG_USLEEP
 	bool "usleep"
 	default BUSYBOX_DEFAULT_USLEEP
 	help
 	  usleep is used to pause for a specified number of microseconds.
-
 config BUSYBOX_CONFIG_UUDECODE
 	bool "uudecode"
 	default BUSYBOX_DEFAULT_UUDECODE
 	help
 	  uudecode is used to decode a uuencoded file.
-
+config BUSYBOX_CONFIG_BASE64
+	bool "base64"
+	default BUSYBOX_DEFAULT_BASE64
+	help
+	  Base64 encode and decode
 config BUSYBOX_CONFIG_UUENCODE
 	bool "uuencode"
 	default BUSYBOX_DEFAULT_UUENCODE
 	help
 	  uuencode is used to uuencode a file.
-
 config BUSYBOX_CONFIG_WC
 	bool "wc"
 	default BUSYBOX_DEFAULT_WC
@@ -912,14 +861,25 @@ config BUSYBOX_CONFIG_FEATURE_WC_LARGE
 	depends on BUSYBOX_CONFIG_WC
 	help
 	  Use "unsigned long long" in wc for counter variables.
+config BUSYBOX_CONFIG_WHO
+      bool "who"
+      default BUSYBOX_DEFAULT_WHO
+      depends on BUSYBOX_CONFIG_FEATURE_UTMP
+      help
+        who is used to show who is logged on.
 
+config BUSYBOX_CONFIG_USERS
+      bool "users"
+      default BUSYBOX_DEFAULT_USERS
+      depends on BUSYBOX_CONFIG_FEATURE_UTMP
+      help
+        Print users currently logged on.
 config BUSYBOX_CONFIG_WHOAMI
 	bool "whoami"
 	default BUSYBOX_DEFAULT_WHOAMI
 	help
 	  whoami is used to print the username of the current
 	  user id (same as id -un).
-
 config BUSYBOX_CONFIG_YES
 	bool "yes"
 	default BUSYBOX_DEFAULT_YES
@@ -971,17 +931,4 @@ config BUSYBOX_CONFIG_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_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
-
-config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
-	bool "Enable -c, -s and -w options"
-	default BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK
-	depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_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/package/utils/busybox/config/findutils/Config.in b/package/utils/busybox/config/findutils/Config.in
index 85ee1db..7d636d1 100644
--- a/package/utils/busybox/config/findutils/Config.in
+++ b/package/utils/busybox/config/findutils/Config.in
@@ -194,28 +194,22 @@ config BUSYBOX_CONFIG_GREP
 	help
 	  grep is used to search files for a specified pattern.
 
-config BUSYBOX_CONFIG_FEATURE_GREP_EGREP_ALIAS
-	bool "Enable extended regular expressions (egrep & grep -E)"
-	default BUSYBOX_DEFAULT_FEATURE_GREP_EGREP_ALIAS
-	depends on BUSYBOX_CONFIG_GREP
+config BUSYBOX_CONFIG_EGREP
+	bool "egrep"
+	default BUSYBOX_DEFAULT_EGREP
 	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_CONFIG_FEATURE_GREP_FGREP_ALIAS
-	bool "Alias fgrep to grep -F"
-	default BUSYBOX_DEFAULT_FEATURE_GREP_FGREP_ALIAS
-	depends on BUSYBOX_CONFIG_GREP
+config BUSYBOX_CONFIG_FGREP
+	bool "fgrep"
+	default BUSYBOX_DEFAULT_FGREP
 	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_CONFIG_FEATURE_GREP_CONTEXT
 	bool "Enable before and after context flags (-A, -B and -C)"
 	default BUSYBOX_DEFAULT_FEATURE_GREP_CONTEXT
-	depends on BUSYBOX_CONFIG_GREP
+	depends on BUSYBOX_CONFIG_GREP || BUSYBOX_CONFIG_EGREP
 	help
 	  Print the specified number of leading (-B) and/or trailing (-A)
 	  context surrounding our matching lines.
diff --git a/package/utils/busybox/config/init/Config.in b/package/utils/busybox/config/init/Config.in
index 021656d..cd1a345 100644
--- a/package/utils/busybox/config/init/Config.in
+++ b/package/utils/busybox/config/init/Config.in
@@ -45,15 +45,27 @@ config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE
 	  Enable reading and parsing of $PWD/bootchartd.conf
 	  and /etc/bootchartd.conf files.
 config BUSYBOX_CONFIG_HALT
-	bool "poweroff, halt, and reboot"
+	bool "halt"
 	default BUSYBOX_DEFAULT_HALT
 	help
-	  Stop all processes and either halt, reboot, or power off the system.
+	  Stop all processes and halt the system.
+
+config BUSYBOX_CONFIG_POWEROFF
+	bool "poweroff"
+	default BUSYBOX_DEFAULT_POWEROFF
+	help
+	  Stop all processes and power off the system.
+
+config BUSYBOX_CONFIG_REBOOT
+	bool "reboot"
+	default BUSYBOX_DEFAULT_REBOOT
+	help
+	  Stop all processes and reboot the system.
 
 config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
 	bool "Call telinit on shutdown and reboot"
 	default BUSYBOX_DEFAULT_FEATURE_CALL_TELINIT
-	depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT
+	depends on (BUSYBOX_CONFIG_HALT || BUSYBOX_CONFIG_POWEROFF || BUSYBOX_CONFIG_REBOOT) && !BUSYBOX_CONFIG_INIT
 	help
 	  Call an external program (normally telinit) to facilitate
 	  a switch to a proper runlevel.
@@ -143,7 +155,7 @@ config BUSYBOX_CONFIG_FEATURE_EXTRA_QUIET
 
 config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS
 	bool "Support dumping core for child processes (debugging only)"
-	default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
+	default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS	# not Y because this is a debug option
 	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	  If this option is enabled and the file /.init_enable_core
diff --git a/package/utils/busybox/config/libbb/Config.in b/package/utils/busybox/config/libbb/Config.in
index 0695f9b..ec08351 100644
--- a/package/utils/busybox/config/libbb/Config.in
+++ b/package/utils/busybox/config/libbb/Config.in
@@ -45,6 +45,30 @@ config BUSYBOX_CONFIG_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_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
+	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_CONFIG_FEATURE_BUFFERS_USE_MALLOC
+	bool "Allocate with Malloc"
+
+config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
+	bool "Allocate on the Stack"
+
+config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
+	bool "Allocate in the .bss section"
+
+endchoice
+
 config BUSYBOX_CONFIG_PASSWORD_MINLEN
 	int "Minimum password length"
 	default BUSYBOX_DEFAULT_PASSWORD_MINLEN
@@ -191,6 +215,131 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
 	  correctly, or want to save on code size (about 400 bytes),
 	  then do not turn this option on.
 
+config BUSYBOX_CONFIG_LOCALE_SUPPORT
+	bool "Enable locale support (system needs locale for this to work)"
+	default BUSYBOX_DEFAULT_LOCALE_SUPPORT
+	help
+	  Enable this if your system has locale support and you would like
+	  busybox to support locale settings.
+
+config BUSYBOX_CONFIG_UNICODE_SUPPORT
+	bool "Support Unicode"
+	default BUSYBOX_DEFAULT_UNICODE_SUPPORT
+	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_CONFIG_UNICODE_USING_LOCALE
+	bool "Use libc routines for Unicode (else uses internal ones)"
+	default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
+	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_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_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
+	bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
+	default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
+	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_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_CONFIG_SUBST_WCHAR
+	int "Character code to substitute unprintable characters with"
+	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+	default BUSYBOX_DEFAULT_SUBST_WCHAR
+	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_CONFIG_LAST_SUPPORTED_WCHAR
+	int "Range of supported Unicode characters"
+	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+	default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
+	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_CONFIG_UNICODE_COMBINING_WCHARS
+	bool "Allow zero-width Unicode characters on output"
+	default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
+	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+	help
+	  With this option off, any Unicode char with width of 0
+	  is substituted on output.
+
+config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
+	bool "Allow wide Unicode characters on output"
+	default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
+	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+	help
+	  With this option off, any Unicode char with width > 1
+	  is substituted on output.
+
+config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
+	bool "Bidirectional character-aware line input"
+	default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
+	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
+	help
+	  With this option on, right-to-left Unicode characters
+	  are treated differently on input (e.g. cursor movement).
+
+config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
+	bool "In bidi input, support non-ASCII neutral chars too"
+	default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
+	depends on BUSYBOX_CONFIG_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_CONFIG_UNICODE_PRESERVE_BROKEN
+	bool "Make it possible to enter sequences of chars which are not Unicode"
+	default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_NON_POSIX_CP
 	bool "Non-POSIX, but safer, copying to special nodes"
 	default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
@@ -215,6 +364,19 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
 	    cp: cannot stat '/vmlinuz/file': Not a directory
 	  This will cost you ~60 bytes.
 
+config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
+	bool "Use sendfile system call"
+	default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_COPYBUF_KB
 	int "Copy buffer size, in kilobytes"
 	range 1 1024
diff --git a/package/utils/busybox/config/mailutils/Config.in b/package/utils/busybox/config/mailutils/Config.in
index 64b9a2b..7e77407 100644
--- a/package/utils/busybox/config/mailutils/Config.in
+++ b/package/utils/busybox/config/mailutils/Config.in
@@ -1,20 +1,11 @@
 # DO NOT EDIT. This file is generated from Config.src
 menu "Mail Utilities"
 
-
 config BUSYBOX_CONFIG_MAKEMIME
 	bool "makemime"
 	default BUSYBOX_DEFAULT_MAKEMIME
 	help
 	  Create MIME-formatted messages.
-
-config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET
-	string "Default charset"
-	default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
-	depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL
-	help
-	  Default charset of the message.
-
 config BUSYBOX_CONFIG_POPMAILDIR
 	bool "popmaildir"
 	default BUSYBOX_DEFAULT_POPMAILDIR
@@ -31,7 +22,6 @@ config BUSYBOX_CONFIG_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_CONFIG_REFORMIME
 	bool "reformime"
 	default BUSYBOX_DEFAULT_REFORMIME
@@ -45,11 +35,17 @@ config BUSYBOX_CONFIG_FEATURE_REFORMIME_COMPAT
 	help
 	  Accept (for compatibility only) and ignore options
 	  other than -x and -X.
-
 config BUSYBOX_CONFIG_SENDMAIL
 	bool "sendmail"
 	default BUSYBOX_DEFAULT_SENDMAIL
 	help
 	  Barebones sendmail.
 
+config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET
+	string "Default charset"
+	default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
+	depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL
+	help
+	  Default charset of the message.
+
 endmenu
diff --git a/package/utils/busybox/config/miscutils/Config.in b/package/utils/busybox/config/miscutils/Config.in
index 3465df4..817a514 100644
--- a/package/utils/busybox/config/miscutils/Config.in
+++ b/package/utils/busybox/config/miscutils/Config.in
@@ -6,259 +6,6 @@
 
 menu "Miscellaneous Utilities"
 
-config BUSYBOX_CONFIG_CONSPY
-	bool "conspy"
-	default BUSYBOX_DEFAULT_CONSPY
-	select BUSYBOX_CONFIG_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_CONFIG_CROND
-	bool "crond"
-	default BUSYBOX_DEFAULT_CROND
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_CROND_D
-	bool "Support option -d to redirect output to stderr"
-	depends on BUSYBOX_CONFIG_CROND
-	default BUSYBOX_DEFAULT_FEATURE_CROND_D
-	help
-	  -d N sets loglevel (0:most verbose) and directs all output to stderr.
-
-config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
-	bool "Report command output via email (using sendmail)"
-	default BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
-	depends on BUSYBOX_CONFIG_CROND
-	help
-	  Command output will be sent to corresponding user via email.
-
-config BUSYBOX_CONFIG_FEATURE_CROND_DIR
-	string "crond spool directory"
-	default BUSYBOX_DEFAULT_FEATURE_CROND_DIR
-	depends on BUSYBOX_CONFIG_CROND || BUSYBOX_CONFIG_CRONTAB
-	help
-	  Location of crond spool.
-config BUSYBOX_CONFIG_I2CGET
-	bool "i2cget"
-	default BUSYBOX_DEFAULT_I2CGET
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Read from I2C/SMBus chip registers.
-
-config BUSYBOX_CONFIG_I2CSET
-	bool "i2cset"
-	default BUSYBOX_DEFAULT_I2CSET
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Set I2C registers.
-
-config BUSYBOX_CONFIG_I2CDUMP
-	bool "i2cdump"
-	default BUSYBOX_DEFAULT_I2CDUMP
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Examine I2C registers.
-
-config BUSYBOX_CONFIG_I2CDETECT
-	bool "i2cdetect"
-	default BUSYBOX_DEFAULT_I2CDETECT
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Detect I2C chips.
-
-config BUSYBOX_CONFIG_LESS
-	bool "less"
-	default BUSYBOX_DEFAULT_LESS
-	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_CONFIG_FEATURE_LESS_MAXLINES
-	int "Max number of input lines less will try to eat"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_MAXLINES
-	depends on BUSYBOX_CONFIG_LESS
-
-config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
-	bool "Enable bracket searching"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_BRACKETS
-	depends on BUSYBOX_CONFIG_LESS
-	help
-	  This option adds the capability to search for matching left and right
-	  brackets, facilitating programming.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
-	bool "Enable -m/-M"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_FLAGS
-	depends on BUSYBOX_CONFIG_LESS
-	help
-	  The -M/-m flag enables a more sophisticated status line.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_TRUNCATE
-	bool "Enable -S"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_TRUNCATE
-	depends on BUSYBOX_CONFIG_LESS
-	help
-	  The -S flag causes long lines to be truncated rather than
-	  wrapped.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
-	bool "Enable marks"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_MARKS
-	depends on BUSYBOX_CONFIG_LESS
-	help
-	  Marks enable positions in a file to be stored for easy reference.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
-	bool "Enable regular expressions"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_REGEXP
-	depends on BUSYBOX_CONFIG_LESS
-	help
-	  Enable regular expressions, allowing complex file searches.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
-	bool "Enable automatic resizing on window size changes"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_WINCH
-	depends on BUSYBOX_CONFIG_LESS
-	help
-	  Makes less track window size changes.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_ASK_TERMINAL
-	bool "Use 'tell me cursor position' ESC sequence to measure window"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_ASK_TERMINAL
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_LESS_DASHCMD
-	bool "Enable flag changes ('-' command)"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_DASHCMD
-	depends on BUSYBOX_CONFIG_LESS
-	help
-	  This enables the ability to change command-line flags within
-	  less itself ('-' keyboard command).
-
-config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS
-	bool "Enable dynamic switching of line numbers"
-	default BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS
-	depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
-	help
-	  Enables "-N" command.
-config BUSYBOX_CONFIG_NANDWRITE
-	bool "nandwrite"
-	default BUSYBOX_DEFAULT_NANDWRITE
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Write to the specified MTD device, with bad blocks awareness
-
-config BUSYBOX_CONFIG_NANDDUMP
-	bool "nanddump"
-	default BUSYBOX_DEFAULT_NANDDUMP
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Dump the content of raw NAND chip
-config BUSYBOX_CONFIG_RFKILL
-	bool "rfkill"
-	default BUSYBOX_DEFAULT_RFKILL # doesn't build on Ubuntu 9.04
-	select BUSYBOX_CONFIG_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_CONFIG_SETSERIAL
-	bool "setserial"
-	default BUSYBOX_DEFAULT_SETSERIAL
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Retrieve or set Linux serial port.
-config BUSYBOX_CONFIG_TASKSET
-	bool "taskset"
-	default BUSYBOX_DEFAULT_TASKSET  # 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_CONFIG_FEATURE_TASKSET_FANCY
-	bool "Fancy output"
-	default BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
-	depends on BUSYBOX_CONFIG_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_CONFIG_UBIATTACH
-	bool "ubiattach"
-	default BUSYBOX_DEFAULT_UBIATTACH
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Attach MTD device to an UBI device.
-
-config BUSYBOX_CONFIG_UBIDETACH
-	bool "ubidetach"
-	default BUSYBOX_DEFAULT_UBIDETACH
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Detach MTD device from an UBI device.
-
-config BUSYBOX_CONFIG_UBIMKVOL
-	bool "ubimkvol"
-	default BUSYBOX_DEFAULT_UBIMKVOL
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Create a UBI volume.
-
-config BUSYBOX_CONFIG_UBIRMVOL
-	bool "ubirmvol"
-	default BUSYBOX_DEFAULT_UBIRMVOL
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Delete a UBI volume.
-
-config BUSYBOX_CONFIG_UBIRSVOL
-	bool "ubirsvol"
-	default BUSYBOX_DEFAULT_UBIRSVOL
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Resize a UBI volume.
-
-config BUSYBOX_CONFIG_UBIUPDATEVOL
-	bool "ubiupdatevol"
-	default BUSYBOX_DEFAULT_UBIUPDATEVOL
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Update a UBI volume.
-config BUSYBOX_CONFIG_UBIRENAME
-	bool "ubirename"
-	default BUSYBOX_DEFAULT_UBIRENAME
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Utility to rename UBI volumes
-config BUSYBOX_CONFIG_WALL
-	bool "wall"
-	default BUSYBOX_DEFAULT_WALL
-	depends on BUSYBOX_CONFIG_FEATURE_UTMP
-	help
-	  Write a message to all users that are logged in.
-
 config BUSYBOX_CONFIG_ADJTIMEX
 	bool "adjtimex"
 	default BUSYBOX_DEFAULT_ADJTIMEX
@@ -266,7 +13,6 @@ config BUSYBOX_CONFIG_ADJTIMEX
 	help
 	  Adjtimex reads and optionally sets adjustment parameters for
 	  the Linux clock adjustment algorithm.
-
 config BUSYBOX_CONFIG_BBCONFIG
 	bool "bbconfig"
 	default BUSYBOX_DEFAULT_BBCONFIG
@@ -287,7 +33,6 @@ config BUSYBOX_CONFIG_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_CONFIG_BEEP
 	bool "beep"
 	default BUSYBOX_DEFAULT_BEEP
@@ -310,7 +55,6 @@ config BUSYBOX_CONFIG_FEATURE_BEEP_LENGTH_MS
 	depends on BUSYBOX_CONFIG_BEEP
 	help
 	  Length in ms for default beep.
-
 config BUSYBOX_CONFIG_CHAT
 	bool "chat"
 	default BUSYBOX_DEFAULT_CHAT
@@ -377,14 +121,54 @@ config BUSYBOX_CONFIG_FEATURE_CHAT_CLR_ABORT
 	default BUSYBOX_DEFAULT_FEATURE_CHAT_CLR_ABORT
 	help
 	  Support CLR_ABORT directive.
-
 config BUSYBOX_CONFIG_CHRT
 	bool "chrt"
 	default BUSYBOX_DEFAULT_CHRT
 	help
 	  manipulate real-time attributes of a process.
 	  This requires sched_{g,s}etparam support in your libc.
+config BUSYBOX_CONFIG_CONSPY
+	bool "conspy"
+	default BUSYBOX_DEFAULT_CONSPY
+	select BUSYBOX_CONFIG_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_CONFIG_CROND
+	bool "crond"
+	default BUSYBOX_DEFAULT_CROND
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_CROND_D
+	bool "Support option -d to redirect output to stderr"
+	depends on BUSYBOX_CONFIG_CROND
+	default BUSYBOX_DEFAULT_FEATURE_CROND_D
+	help
+	  -d N sets loglevel (0:most verbose) and directs all output to stderr.
+
+config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
+	bool "Report command output via email (using sendmail)"
+	default BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
+	depends on BUSYBOX_CONFIG_CROND
+	help
+	  Command output will be sent to corresponding user via email.
+
+config BUSYBOX_CONFIG_FEATURE_CROND_DIR
+	string "crond spool directory"
+	default BUSYBOX_DEFAULT_FEATURE_CROND_DIR
+	depends on BUSYBOX_CONFIG_CROND || BUSYBOX_CONFIG_CRONTAB
+	help
+	  Location of crond spool.
 config BUSYBOX_CONFIG_CRONTAB
 	bool "crontab"
 	default BUSYBOX_DEFAULT_CRONTAB
@@ -393,7 +177,6 @@ config BUSYBOX_CONFIG_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_CONFIG_DC
 	bool "dc"
 	default BUSYBOX_DEFAULT_DC
@@ -408,7 +191,6 @@ config BUSYBOX_CONFIG_FEATURE_DC_LIBM
 	help
 	  Enable power and exp functions.
 	  NOTE: This will require libm to be present for linking.
-
 config BUSYBOX_CONFIG_DEVFSD
 	bool "devfsd (obsolete)"
 	default BUSYBOX_DEFAULT_DEVFSD
@@ -465,14 +247,12 @@ config BUSYBOX_CONFIG_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_CONFIG_DEVMEM
 	bool "devmem"
 	default BUSYBOX_DEFAULT_DEVMEM
 	help
 	  devmem is a small program that reads and writes from physical
 	  memory using /dev/mem.
-
 config BUSYBOX_CONFIG_EJECT
 	bool "eject"
 	default BUSYBOX_DEFAULT_EJECT
@@ -487,7 +267,6 @@ config BUSYBOX_CONFIG_FEATURE_EJECT_SCSI
 	help
 	  Add the -s option to eject, this allows to eject SCSI-Devices and
 	  usb-storage devices.
-
 config BUSYBOX_CONFIG_FBSPLASH
 	bool "fbsplash"
 	default BUSYBOX_DEFAULT_FBSPLASH
@@ -509,65 +288,31 @@ config BUSYBOX_CONFIG_FBSPLASH
 	  - commands for fifo:
 	    "NN" (ASCII decimal number) - percentage to show on progress bar
 	    "exit" - well you guessed it
-
-config BUSYBOX_CONFIG_FLASHCP
-	bool "flashcp"
-	default BUSYBOX_DEFAULT_FLASHCP  # 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_CONFIG_FLASH_LOCK
-	bool "flash_lock"
-	default BUSYBOX_DEFAULT_FLASH_LOCK  # 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_CONFIG_FLASH_UNLOCK
-	bool "flash_unlock"
-	default BUSYBOX_DEFAULT_FLASH_UNLOCK  # 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_CONFIG_FLASH_ERASEALL
 	bool "flash_eraseall"
 	default BUSYBOX_DEFAULT_FLASH_ERASEALL  # 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_CONFIG_IONICE
-	bool "ionice"
-	default BUSYBOX_DEFAULT_IONICE
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Set/set program io scheduling class and priority
-	  Requires kernel >= 2.6.13
-
-config BUSYBOX_CONFIG_INOTIFYD
-	bool "inotifyd"
-	default BUSYBOX_DEFAULT_INOTIFYD  # doesn't build on Knoppix 5
-	help
-	  Simple inotify daemon. Reports filesystem changes. Requires
-	  kernel >= 2.6.13
-
-config BUSYBOX_CONFIG_LAST
-	bool "last"
-	default BUSYBOX_DEFAULT_LAST
-	depends on BUSYBOX_CONFIG_FEATURE_WTMP
-	help
-	  'last' displays a list of the last users that logged into the system.
-
-config BUSYBOX_CONFIG_FEATURE_LAST_FANCY
-	bool "Turn on output of extra information"
-	default BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
-	depends on BUSYBOX_CONFIG_LAST
+config BUSYBOX_CONFIG_FLASH_LOCK
+	bool "flash_lock"
+	default BUSYBOX_DEFAULT_FLASH_LOCK  # 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_CONFIG_FLASH_UNLOCK
+	bool "flash_unlock"
+	default BUSYBOX_DEFAULT_FLASH_UNLOCK  # 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_CONFIG_FLASHCP
+	bool "flashcp"
+	default BUSYBOX_DEFAULT_FLASHCP  # 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_CONFIG_HDPARM
 	bool "hdparm"
 	default BUSYBOX_DEFAULT_HDPARM
@@ -626,13 +371,149 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
 	depends on BUSYBOX_CONFIG_HDPARM
 	help
 	  Enables the 'hdparm -d' option to get/set using_dma flag.
+config BUSYBOX_CONFIG_I2CGET
+	bool "i2cget"
+	default BUSYBOX_DEFAULT_I2CGET
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Read from I2C/SMBus chip registers.
+
+config BUSYBOX_CONFIG_I2CSET
+	bool "i2cset"
+	default BUSYBOX_DEFAULT_I2CSET
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Set I2C registers.
+
+config BUSYBOX_CONFIG_I2CDUMP
+	bool "i2cdump"
+	default BUSYBOX_DEFAULT_I2CDUMP
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Examine I2C registers.
+
+config BUSYBOX_CONFIG_I2CDETECT
+	bool "i2cdetect"
+	default BUSYBOX_DEFAULT_I2CDETECT
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Detect I2C chips.
+
+config BUSYBOX_CONFIG_INOTIFYD
+	bool "inotifyd"
+	default BUSYBOX_DEFAULT_INOTIFYD  # doesn't build on Knoppix 5
+	help
+	  Simple inotify daemon. Reports filesystem changes. Requires
+	  kernel >= 2.6.13
+config BUSYBOX_CONFIG_IONICE
+	bool "ionice"
+	default BUSYBOX_DEFAULT_IONICE
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Set/set program io scheduling class and priority
+	  Requires kernel >= 2.6.13
+config BUSYBOX_CONFIG_LAST
+	bool "last"
+	default BUSYBOX_DEFAULT_LAST
+	depends on BUSYBOX_CONFIG_FEATURE_WTMP
+	help
+	  'last' displays a list of the last users that logged into the system.
+
+config BUSYBOX_CONFIG_FEATURE_LAST_FANCY
+	bool "Turn on output of extra information"
+	default BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
+	depends on BUSYBOX_CONFIG_LAST
+	help
+	  'last' displays detailed information about the last users that
+	  logged into the system (mimics sysvinit last). +900 bytes.
+config BUSYBOX_CONFIG_LESS
+	bool "less"
+	default BUSYBOX_DEFAULT_LESS
+	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_CONFIG_FEATURE_LESS_MAXLINES
+	int "Max number of input lines less will try to eat"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_MAXLINES
+	depends on BUSYBOX_CONFIG_LESS
+
+config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
+	bool "Enable bracket searching"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_BRACKETS
+	depends on BUSYBOX_CONFIG_LESS
+	help
+	  This option adds the capability to search for matching left and right
+	  brackets, facilitating programming.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
+	bool "Enable -m/-M"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_FLAGS
+	depends on BUSYBOX_CONFIG_LESS
+	help
+	  The -M/-m flag enables a more sophisticated status line.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_TRUNCATE
+	bool "Enable -S"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_TRUNCATE
+	depends on BUSYBOX_CONFIG_LESS
+	help
+	  The -S flag causes long lines to be truncated rather than
+	  wrapped.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
+	bool "Enable marks"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_MARKS
+	depends on BUSYBOX_CONFIG_LESS
+	help
+	  Marks enable positions in a file to be stored for easy reference.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
+	bool "Enable regular expressions"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_REGEXP
+	depends on BUSYBOX_CONFIG_LESS
+	help
+	  Enable regular expressions, allowing complex file searches.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
+	bool "Enable automatic resizing on window size changes"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_WINCH
+	depends on BUSYBOX_CONFIG_LESS
+	help
+	  Makes less track window size changes.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_ASK_TERMINAL
+	bool "Use 'tell me cursor position' ESC sequence to measure window"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_ASK_TERMINAL
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_LESS_DASHCMD
+	bool "Enable flag changes ('-' command)"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_DASHCMD
+	depends on BUSYBOX_CONFIG_LESS
+	help
+	  This enables the ability to change command-line flags within
+	  less itself ('-' keyboard command).
 
+config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS
+	bool "Enable dynamic switching of line numbers"
+	default BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS
+	depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
+	help
+	  Enables "-N" command.
 config BUSYBOX_CONFIG_LOCK
 	bool "lock"
 	default BUSYBOX_DEFAULT_LOCK
 	help
 	  Small utility for using locks in scripts
-
 config BUSYBOX_CONFIG_MAKEDEVS
 	bool "makedevs"
 	default BUSYBOX_DEFAULT_MAKEDEVS
@@ -664,25 +545,21 @@ config BUSYBOX_CONFIG_FEATURE_MAKEDEVS_TABLE
 	bool "table"
 
 endchoice
-
 config BUSYBOX_CONFIG_MAN
 	bool "man"
 	default BUSYBOX_DEFAULT_MAN
 	help
 	  Format and display manual pages.
-
 config BUSYBOX_CONFIG_MICROCOM
 	bool "microcom"
 	default BUSYBOX_DEFAULT_MICROCOM
 	help
 	  The poor man's minicom utility for chatting with serial port devices.
-
 config BUSYBOX_CONFIG_MOUNTPOINT
 	bool "mountpoint"
 	default BUSYBOX_DEFAULT_MOUNTPOINT
 	help
 	  mountpoint checks if the directory is a mountpoint.
-
 config BUSYBOX_CONFIG_MT
 	bool "mt"
 	default BUSYBOX_DEFAULT_MT
@@ -690,7 +567,19 @@ config BUSYBOX_CONFIG_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_CONFIG_NANDWRITE
+	bool "nandwrite"
+	default BUSYBOX_DEFAULT_NANDWRITE
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Write to the specified MTD device, with bad blocks awareness
 
+config BUSYBOX_CONFIG_NANDDUMP
+	bool "nanddump"
+	default BUSYBOX_DEFAULT_NANDDUMP
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Dump the content of raw NAND chip
 config BUSYBOX_CONFIG_RAIDAUTORUN
 	bool "raidautorun"
 	default BUSYBOX_DEFAULT_RAIDAUTORUN
@@ -698,7 +587,6 @@ config BUSYBOX_CONFIG_RAIDAUTORUN
 	help
 	  raidautorun tells the kernel md driver to
 	  search and start RAID arrays.
-
 config BUSYBOX_CONFIG_READAHEAD
 	bool "readahead"
 	default BUSYBOX_DEFAULT_READAHEAD
@@ -716,6 +604,17 @@ config BUSYBOX_CONFIG_READAHEAD
 
 	  As readahead(2) blocks until each file has been read, it is best to
 	  run this applet as a background job.
+config BUSYBOX_CONFIG_RFKILL
+	bool "rfkill"
+	default BUSYBOX_DEFAULT_RFKILL # doesn't build on Ubuntu 9.04
+	select BUSYBOX_CONFIG_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_CONFIG_RUNLEVEL
 	bool "runlevel"
@@ -726,27 +625,44 @@ config BUSYBOX_CONFIG_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_CONFIG_RX
 	bool "rx"
 	default BUSYBOX_DEFAULT_RX
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Receive files using the Xmodem protocol.
-
+config BUSYBOX_CONFIG_SETSERIAL
+	bool "setserial"
+	default BUSYBOX_DEFAULT_SETSERIAL
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Retrieve or set Linux serial port.
 config BUSYBOX_CONFIG_SETSID
 	bool "setsid"
 	default BUSYBOX_DEFAULT_SETSID
 	help
 	  setsid runs a program in a new session
-
 config BUSYBOX_CONFIG_STRINGS
 	bool "strings"
 	default BUSYBOX_DEFAULT_STRINGS
 	help
 	  strings prints the printable character sequences for each file
 	  specified.
+config BUSYBOX_CONFIG_TASKSET
+	bool "taskset"
+	default BUSYBOX_DEFAULT_TASKSET  # 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_CONFIG_FEATURE_TASKSET_FANCY
+	bool "Fancy output"
+	default BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
+	depends on BUSYBOX_CONFIG_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_CONFIG_TIME
 	bool "time"
 	default BUSYBOX_DEFAULT_TIME
@@ -754,14 +670,12 @@ config BUSYBOX_CONFIG_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_CONFIG_TIMEOUT
 	bool "timeout"
 	default BUSYBOX_DEFAULT_TIMEOUT
 	help
 	  Runs a program and watches it. If it does not terminate in
 	  specified number of seconds, it is sent a signal.
-
 config BUSYBOX_CONFIG_TTYSIZE
 	bool "ttysize"
 	default BUSYBOX_DEFAULT_TTYSIZE
@@ -770,13 +684,64 @@ config BUSYBOX_CONFIG_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_CONFIG_UBIATTACH
+	bool "ubiattach"
+	default BUSYBOX_DEFAULT_UBIATTACH
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Attach MTD device to an UBI device.
+
+config BUSYBOX_CONFIG_UBIDETACH
+	bool "ubidetach"
+	default BUSYBOX_DEFAULT_UBIDETACH
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Detach MTD device from an UBI device.
+
+config BUSYBOX_CONFIG_UBIMKVOL
+	bool "ubimkvol"
+	default BUSYBOX_DEFAULT_UBIMKVOL
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Create a UBI volume.
+
+config BUSYBOX_CONFIG_UBIRMVOL
+	bool "ubirmvol"
+	default BUSYBOX_DEFAULT_UBIRMVOL
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Delete a UBI volume.
+
+config BUSYBOX_CONFIG_UBIRSVOL
+	bool "ubirsvol"
+	default BUSYBOX_DEFAULT_UBIRSVOL
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Resize a UBI volume.
 
+config BUSYBOX_CONFIG_UBIUPDATEVOL
+	bool "ubiupdatevol"
+	default BUSYBOX_DEFAULT_UBIUPDATEVOL
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Update a UBI volume.
+config BUSYBOX_CONFIG_UBIRENAME
+	bool "ubirename"
+	default BUSYBOX_DEFAULT_UBIRENAME
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Utility to rename UBI volumes
 config BUSYBOX_CONFIG_VOLNAME
 	bool "volname"
 	default BUSYBOX_DEFAULT_VOLNAME
 	help
 	  Prints a CD-ROM volume name.
-
+config BUSYBOX_CONFIG_WALL
+	bool "wall"
+	default BUSYBOX_DEFAULT_WALL
+	depends on BUSYBOX_CONFIG_FEATURE_UTMP
+	help
+	  Write a message to all users that are logged in.
 config BUSYBOX_CONFIG_WATCHDOG
 	bool "watchdog"
 	default BUSYBOX_DEFAULT_WATCHDOG
diff --git a/package/utils/busybox/config/modutils/Config.in b/package/utils/busybox/config/modutils/Config.in
index 8e0e2af..5203db8 100644
--- a/package/utils/busybox/config/modutils/Config.in
+++ b/package/utils/busybox/config/modutils/Config.in
@@ -6,13 +6,6 @@
 
 menu "Linux Module Utilities"
 
-config BUSYBOX_CONFIG_MODINFO
-	bool "modinfo"
-	default BUSYBOX_DEFAULT_MODINFO
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Show information about a Linux Kernel module
-
 config BUSYBOX_CONFIG_MODPROBE_SMALL
 	bool "Simplified modutils"
 	default BUSYBOX_DEFAULT_MODPROBE_SMALL
@@ -44,41 +37,23 @@ config BUSYBOX_CONFIG_MODPROBE_SMALL
 	  - rmmod is an alias to modprobe -r
 	  - depmod generates modules.dep.bb
 
-config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
-	bool "Accept module options on modprobe command line"
-	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
-	depends on BUSYBOX_CONFIG_MODPROBE_SMALL
+config BUSYBOX_CONFIG_DEPMOD
+	bool "depmod"
+	default BUSYBOX_DEFAULT_DEPMOD
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
-	  Allow insmod and modprobe take module options from command line.
-
-config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
-	bool "Skip loading of already loaded modules"
-	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
-	depends on BUSYBOX_CONFIG_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_CONFIG_INSMOD
 	bool "insmod"
 	default BUSYBOX_DEFAULT_INSMOD
-	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  insmod is used to load specified modules in the running kernel.
-
-config BUSYBOX_CONFIG_RMMOD
-	bool "rmmod"
-	default BUSYBOX_DEFAULT_RMMOD
-	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  rmmod is used to unload specified modules from the kernel.
-
 config BUSYBOX_CONFIG_LSMOD
 	bool "lsmod"
 	default BUSYBOX_DEFAULT_LSMOD
-	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  lsmod is used to display a list of loaded modules.
@@ -86,17 +61,35 @@ config BUSYBOX_CONFIG_LSMOD
 config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
 	bool "Pretty output"
 	default BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
-	depends on BUSYBOX_CONFIG_LSMOD
+	depends on BUSYBOX_CONFIG_LSMOD && !BUSYBOX_CONFIG_MODPROBE_SMALL
 	select BUSYBOX_CONFIG_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_CONFIG_MODINFO
+	bool "modinfo"
+	default BUSYBOX_DEFAULT_MODINFO
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Show information about a Linux Kernel module
+config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
+	bool "Accept module options on modprobe command line"
+	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
+	depends on BUSYBOX_CONFIG_MODPROBE_SMALL
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Allow insmod and modprobe take module options from command line.
 
+config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
+	bool "Skip loading of already loaded modules"
+	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
+	depends on BUSYBOX_CONFIG_MODPROBE_SMALL
+	help
+	  Check if the module is already loaded.
 config BUSYBOX_CONFIG_MODPROBE
 	bool "modprobe"
 	default BUSYBOX_DEFAULT_MODPROBE
-	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Handle the loading of modules, and their dependencies on a high
@@ -105,7 +98,7 @@ config BUSYBOX_CONFIG_MODPROBE
 config BUSYBOX_CONFIG_FEATURE_MODPROBE_BLACKLIST
 	bool "Blacklist support"
 	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_BLACKLIST
-	depends on BUSYBOX_CONFIG_MODPROBE
+	depends on BUSYBOX_CONFIG_MODPROBE && !BUSYBOX_CONFIG_MODPROBE_SMALL
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Say 'y' here to enable support for the 'blacklist' command in
@@ -113,16 +106,12 @@ config BUSYBOX_CONFIG_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_CONFIG_DEPMOD
-	bool "depmod"
-	default BUSYBOX_DEFAULT_DEPMOD
-	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
+config BUSYBOX_CONFIG_RMMOD
+	bool "rmmod"
+	default BUSYBOX_DEFAULT_RMMOD
 	select BUSYBOX_CONFIG_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/package/utils/busybox/config/networking/Config.in b/package/utils/busybox/config/networking/Config.in
index 407ddd3..bc2f127 100644
--- a/package/utils/busybox/config/networking/Config.in
+++ b/package/utils/busybox/config/networking/Config.in
@@ -6,183 +6,6 @@
 
 menu "Networking Utilities"
 
-config BUSYBOX_CONFIG_NAMEIF
-	bool "nameif"
-	default BUSYBOX_DEFAULT_NAMEIF
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_NAMEIF_EXTENDED
-	bool "Extended nameif"
-	default BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED
-	depends on BUSYBOX_CONFIG_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_CONFIG_NBDCLIENT
-	bool "nbd-client"
-	default BUSYBOX_DEFAULT_NBDCLIENT
-	help
-	  Network block device client
-config BUSYBOX_CONFIG_NC
-	bool "nc"
-	default BUSYBOX_DEFAULT_NC
-	help
-	  A simple Unix utility which reads and writes data across network
-	  connections.
-
-config BUSYBOX_CONFIG_NC_SERVER
-	bool "Netcat server options (-l)"
-	default BUSYBOX_DEFAULT_NC_SERVER
-	depends on BUSYBOX_CONFIG_NC
-	help
-	  Allow netcat to act as a server.
-
-config BUSYBOX_CONFIG_NC_EXTRA
-	bool "Netcat extensions (-eiw and -f FILE)"
-	default BUSYBOX_DEFAULT_NC_EXTRA
-	depends on BUSYBOX_CONFIG_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_CONFIG_NC_110_COMPAT
-	bool "Netcat 1.10 compatibility (+2.5k)"
-	default BUSYBOX_DEFAULT_NC_110_COMPAT  # off specially for Rob
-	depends on BUSYBOX_CONFIG_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_CONFIG_PING
-	bool "ping"
-	default BUSYBOX_DEFAULT_PING
-	select BUSYBOX_CONFIG_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_CONFIG_PING6
-	bool "ping6"
-	default BUSYBOX_DEFAULT_PING6
-	depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_PING
-	help
-	  This will give you a ping that can talk IPv6.
-
-config BUSYBOX_CONFIG_FEATURE_FANCY_PING
-	bool "Enable fancy ping output"
-	default BUSYBOX_DEFAULT_FEATURE_FANCY_PING
-	depends on BUSYBOX_CONFIG_PING
-	help
-	  Make the output from the ping applet include statistics, and at the
-	  same time provide full support for ICMP packets.
-config BUSYBOX_CONFIG_WGET
-	bool "wget"
-	default BUSYBOX_DEFAULT_WGET
-	help
-	  wget is a utility for non-interactive download of files from HTTP
-	  and FTP servers.
-
-config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR
-	bool "Enable a nifty process meter (+2k)"
-	default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
-	depends on BUSYBOX_CONFIG_WGET
-	help
-	  Enable the transfer progress bar for wget transfers.
-
-config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
-	bool "Enable HTTP authentication"
-	default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
-	depends on BUSYBOX_CONFIG_WGET
-	help
-	  Support authenticated HTTP transfers.
-
-config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
-	bool "Enable long options"
-	default BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
-	depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_LONG_OPTS
-	help
-	  Support long options for the wget applet.
-
-config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT
-	bool "Enable timeout option -T SEC"
-	default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_WGET_OPENSSL
-	bool "Try to connect to HTTPS using openssl"
-	default BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_WGET_SSL_HELPER
-	bool "Try to connect to HTTPS using ssl_helper"
-	default BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER
-	depends on BUSYBOX_CONFIG_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_CONFIG_WHOIS
-	bool "whois"
-	default BUSYBOX_DEFAULT_WHOIS
-	help
-	  whois is a client for the whois directory service
-
 config BUSYBOX_CONFIG_FEATURE_IPV6
 	bool "Enable IPv6 support"
 	default BUSYBOX_DEFAULT_FEATURE_IPV6
@@ -230,7 +53,6 @@ config BUSYBOX_CONFIG_ARP
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Manipulate the system ARP cache.
-
 config BUSYBOX_CONFIG_ARPING
 	bool "arping"
 	default BUSYBOX_DEFAULT_ARPING
@@ -264,37 +86,26 @@ config BUSYBOX_CONFIG_FEATURE_BRCTL_SHOW
 	help
 	  Add support for option which prints the current config:
 	    show
-
 config BUSYBOX_CONFIG_DNSD
 	bool "dnsd"
 	default BUSYBOX_DEFAULT_DNSD
 	help
 	  Small and static DNS server daemon.
-
 config BUSYBOX_CONFIG_ETHER_WAKE
 	bool "ether-wake"
 	default BUSYBOX_DEFAULT_ETHER_WAKE
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Send a magic packet to wake up sleeping machines.
-
-config BUSYBOX_CONFIG_FAKEIDENTD
-	bool "fakeidentd"
-	default BUSYBOX_DEFAULT_FAKEIDENTD
-	select BUSYBOX_CONFIG_FEATURE_SYSLOG
-	help
-	  fakeidentd listens on the ident port and returns a predefined
-	  fake value on any query.
-
 config BUSYBOX_CONFIG_FTPD
 	bool "ftpd"
 	default BUSYBOX_DEFAULT_FTPD
 	help
 	  simple FTP daemon. You have to run it via inetd.
 
-config BUSYBOX_CONFIG_FEATURE_FTP_WRITE
+config BUSYBOX_CONFIG_FEATURE_FTPD_WRITE
 	bool "Enable upload commands"
-	default BUSYBOX_DEFAULT_FEATURE_FTP_WRITE
+	default BUSYBOX_DEFAULT_FEATURE_FTPD_WRITE
 	depends on BUSYBOX_CONFIG_FTPD
 	help
 	  Enable all kinds of FTP upload commands (-w option)
@@ -310,13 +121,12 @@ config BUSYBOX_CONFIG_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_CONFIG_FEATURE_FTP_AUTHENTICATION
+config BUSYBOX_CONFIG_FEATURE_FTPD_AUTHENTICATION
 	bool "Enable authentication"
-	default BUSYBOX_DEFAULT_FEATURE_FTP_AUTHENTICATION
+	default BUSYBOX_DEFAULT_FEATURE_FTPD_AUTHENTICATION
 	depends on BUSYBOX_CONFIG_FTPD
 	help
 	  Enable basic system login as seen in telnet etc.
-
 config BUSYBOX_CONFIG_FTPGET
 	bool "ftpget"
 	default BUSYBOX_DEFAULT_FTPGET
@@ -335,13 +145,17 @@ config BUSYBOX_CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_LONG_OPTS && (BUSYBOX_CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT)
 	help
 	  Support long options for the ftpget/ftpput applet.
-
 config BUSYBOX_CONFIG_HOSTNAME
 	bool "hostname"
 	default BUSYBOX_DEFAULT_HOSTNAME
 	help
 	  Show or set the system's host name.
 
+config BUSYBOX_CONFIG_DNSDOMAINNAME
+	bool "dnsdomainname"
+	default BUSYBOX_DEFAULT_DNSDOMAINNAME
+	help
+	  Alias to "hostname -d".
 config BUSYBOX_CONFIG_HTTPD
 	bool "httpd"
 	default BUSYBOX_DEFAULT_HTTPD
@@ -460,7 +274,6 @@ config BUSYBOX_CONFIG_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_CONFIG_IFCONFIG
 	bool "ifconfig"
 	default BUSYBOX_DEFAULT_IFCONFIG
@@ -508,7 +321,6 @@ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS
 	help
 	  Setting this will make ifconfig attempt to find the broadcast
 	  automatically if the value '+' is used.
-
 config BUSYBOX_CONFIG_IFENSLAVE
 	bool "ifenslave"
 	default BUSYBOX_DEFAULT_IFENSLAVE
@@ -516,20 +328,18 @@ config BUSYBOX_CONFIG_IFENSLAVE
 	help
 	  Userspace application to bind several interfaces
 	  to a logical interface (use with kernel bonding driver).
-
 config BUSYBOX_CONFIG_IFPLUGD
 	bool "ifplugd"
 	default BUSYBOX_DEFAULT_IFPLUGD
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Network interface plug detection daemon.
-
-config BUSYBOX_CONFIG_IFUPDOWN
-	bool "ifupdown"
-	default BUSYBOX_DEFAULT_IFUPDOWN
+config BUSYBOX_CONFIG_IFUP
+	bool "ifup"
+	default BUSYBOX_DEFAULT_IFUP
 	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_CONFIG_IFUPDOWN
 	  "ifconfig", "route" and "run-parts" or the "ip" command, either
 	  via busybox or via standalone utilities.
 
+config BUSYBOX_CONFIG_IFDOWN
+	bool "ifdown"
+	default BUSYBOX_DEFAULT_IFDOWN
+	help
+	  Deactivate the specified interfaces.
+
 config BUSYBOX_CONFIG_IFUPDOWN_IFSTATE_PATH
 	string "Absolute path to ifstate file"
 	default BUSYBOX_DEFAULT_IFUPDOWN_IFSTATE_PATH
-	depends on BUSYBOX_CONFIG_IFUPDOWN
+	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_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_CONFIG_IFUPDOWN_IFSTATE_PATH
 	  This config option defines location of ifstate.
 
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
-	bool "Use ip applet"
+	bool "Use ip tool (else ifconfig/route is used)"
 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP
-	depends on BUSYBOX_CONFIG_IFUPDOWN
+	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_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_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
-	bool "Use busybox ip applet"
-	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP_BUILTIN
-	depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	select BUSYBOX_CONFIG_IP
-	select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
-	select BUSYBOX_CONFIG_FEATURE_IP_LINK
-	select BUSYBOX_CONFIG_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.
-
-config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
-	bool "Use busybox ifconfig and route applets"
-	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
-	depends on BUSYBOX_CONFIG_IFUPDOWN && !BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
-	select BUSYBOX_CONFIG_IFCONFIG
-	select BUSYBOX_CONFIG_ROUTE
-	help
-	  Use the busybox iproute "ifconfig" and "route" applets to
-	  implement the "ifup" and "ifdown" utilities.
+	  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.
 
-	  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_CONFIG_FEATURE_IFUPDOWN_IPV4
 	bool "Support for IPv4"
 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV4
-	depends on BUSYBOX_CONFIG_IFUPDOWN
+	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
 	help
 	  If you want ifup/ifdown to talk IPv4, leave this on.
 
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV6
 	bool "Support for IPv6"
 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV6
-	depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_FEATURE_IPV6
+	depends on (BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN) && BUSYBOX_CONFIG_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_CONFIG_FEATURE_IFUPDOWN_MAPPING
 	bool "Enable mapping support"
 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_MAPPING
-	depends on BUSYBOX_CONFIG_IFUPDOWN
+	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_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_CONFIG_FEATURE_IFUPDOWN_MAPPING
 config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP
 	bool "Support for external dhcp clients"
 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_EXTERNAL_DHCP
-	depends on BUSYBOX_CONFIG_IFUPDOWN
+	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_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_CONFIG_INETD
 	bool "inetd"
 	default BUSYBOX_DEFAULT_INETD
@@ -678,7 +463,6 @@ config BUSYBOX_CONFIG_FEATURE_INETD_RPC
 	select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
 	help
 	  Support Sun-RPC based services
-
 config BUSYBOX_CONFIG_IP
 	bool "ip"
 	default BUSYBOX_DEFAULT_IP
@@ -688,24 +472,72 @@ config BUSYBOX_CONFIG_IP
 	  utility. You generally don't need "ip" to use busybox with
 	  TCP/IP.
 
+config BUSYBOX_CONFIG_IPADDR
+	bool "ipaddr"
+	default BUSYBOX_DEFAULT_IPADDR
+	select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Support short form of ip addr: ipaddr
+
+config BUSYBOX_CONFIG_IPLINK
+	bool "iplink"
+	default BUSYBOX_DEFAULT_IPLINK
+	select BUSYBOX_CONFIG_FEATURE_IP_LINK
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Support short form of ip link: iplink
+
+config BUSYBOX_CONFIG_IPROUTE
+	bool "iproute"
+	default BUSYBOX_DEFAULT_IPROUTE
+	select BUSYBOX_CONFIG_FEATURE_IP_ROUTE
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Support short form of ip route: iproute
+
+config BUSYBOX_CONFIG_IPTUNNEL
+	bool "iptunnel"
+	default BUSYBOX_DEFAULT_IPTUNNEL
+	select BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Support short form of ip tunnel: iptunnel
+
+config BUSYBOX_CONFIG_IPRULE
+	bool "iprule"
+	default BUSYBOX_DEFAULT_IPRULE
+	select BUSYBOX_CONFIG_FEATURE_IP_RULE
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Support short form of ip rule: iprule
+
+config BUSYBOX_CONFIG_IPNEIGH
+	bool "ipneigh"
+	default BUSYBOX_DEFAULT_IPNEIGH
+	select BUSYBOX_CONFIG_FEATURE_IP_NEIGH
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Support short form of ip neigh: ipneigh
+
 config BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
 	bool "ip address"
 	default BUSYBOX_DEFAULT_FEATURE_IP_ADDRESS
-	depends on BUSYBOX_CONFIG_IP
+	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR
 	help
 	  Address manipulation support for the "ip" applet.
 
 config BUSYBOX_CONFIG_FEATURE_IP_LINK
 	bool "ip link"
 	default BUSYBOX_DEFAULT_FEATURE_IP_LINK
-	depends on BUSYBOX_CONFIG_IP
+	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPLINK
 	help
 	  Configure network devices with "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_ROUTE
 	bool "ip route"
 	default BUSYBOX_DEFAULT_FEATURE_IP_ROUTE
-	depends on BUSYBOX_CONFIG_IP
+	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPROUTE
 	help
 	  Add support for routing table management to "ip".
 
@@ -719,80 +551,33 @@ config BUSYBOX_CONFIG_FEATURE_IP_ROUTE_DIR
 config BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
 	bool "ip tunnel"
 	default BUSYBOX_DEFAULT_FEATURE_IP_TUNNEL
-	depends on BUSYBOX_CONFIG_IP
+	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPTUNNEL
 	help
 	  Add support for tunneling commands to "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_RULE
 	bool "ip rule"
 	default BUSYBOX_DEFAULT_FEATURE_IP_RULE
-	depends on BUSYBOX_CONFIG_IP
+	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPRULE
 	help
 	  Add support for rule commands to "ip".
 
 config BUSYBOX_CONFIG_FEATURE_IP_NEIGH
 	bool "ip neighbor"
 	default BUSYBOX_DEFAULT_FEATURE_IP_NEIGH
-	depends on BUSYBOX_CONFIG_IP
+	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPNEIGH
 	help
 	  Add support for neighbor commands to "ip".
 
-config BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS
-	bool "Support short forms of ip commands"
-	default BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_IP_RARE_PROTOCOLS
 	bool "Support displaying rarely used link types"
 	default BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS
-	depends on BUSYBOX_CONFIG_IP
+	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR || BUSYBOX_CONFIG_IPLINK || BUSYBOX_CONFIG_IPROUTE || BUSYBOX_CONFIG_IPTUNNEL || BUSYBOX_CONFIG_IPRULE || BUSYBOX_CONFIG_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_CONFIG_IPADDR
-	bool
-	default BUSYBOX_DEFAULT_IPADDR
-	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
-
-config BUSYBOX_CONFIG_IPLINK
-	bool
-	default BUSYBOX_DEFAULT_IPLINK
-	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_LINK
-
-config BUSYBOX_CONFIG_IPROUTE
-	bool
-	default BUSYBOX_DEFAULT_IPROUTE
-	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_ROUTE
-
-config BUSYBOX_CONFIG_IPTUNNEL
-	bool
-	default BUSYBOX_DEFAULT_IPTUNNEL
-	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
-
-config BUSYBOX_CONFIG_IPRULE
-	bool
-	default BUSYBOX_DEFAULT_IPRULE
-	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_RULE
-
-config BUSYBOX_CONFIG_IPNEIGH
-	bool
-	default BUSYBOX_DEFAULT_IPNEIGH
-	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_NEIGH
-
 config BUSYBOX_CONFIG_IPCALC
 	bool "ipcalc"
 	default BUSYBOX_DEFAULT_IPCALC
@@ -814,13 +599,84 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_IPCALC && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the ipcalc applet.
+config BUSYBOX_CONFIG_FAKEIDENTD
+	bool "fakeidentd"
+	default BUSYBOX_DEFAULT_FAKEIDENTD
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
+	help
+	  fakeidentd listens on the ident port and returns a predefined
+	  fake value on any query.
+config BUSYBOX_CONFIG_NAMEIF
+	bool "nameif"
+	default BUSYBOX_DEFAULT_NAMEIF
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_NAMEIF_EXTENDED
+	bool "Extended nameif"
+	default BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED
+	depends on BUSYBOX_CONFIG_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_CONFIG_NBDCLIENT
+	bool "nbd-client"
+	default BUSYBOX_DEFAULT_NBDCLIENT
+	help
+	  Network block device client
+config BUSYBOX_CONFIG_NC
+	bool "nc"
+	default BUSYBOX_DEFAULT_NC
+	help
+	  A simple Unix utility which reads and writes data across network
+	  connections.
+
+config BUSYBOX_CONFIG_NC_SERVER
+	bool "Netcat server options (-l)"
+	default BUSYBOX_DEFAULT_NC_SERVER
+	depends on BUSYBOX_CONFIG_NC
+	help
+	  Allow netcat to act as a server.
+
+config BUSYBOX_CONFIG_NC_EXTRA
+	bool "Netcat extensions (-eiw and -f FILE)"
+	default BUSYBOX_DEFAULT_NC_EXTRA
+	depends on BUSYBOX_CONFIG_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_CONFIG_NC_110_COMPAT
+	bool "Netcat 1.10 compatibility (+2.5k)"
+	default BUSYBOX_DEFAULT_NC_110_COMPAT  # off specially for Rob
+	depends on BUSYBOX_CONFIG_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_CONFIG_NETMSG
 	bool "netmsg"
 	default BUSYBOX_DEFAULT_NETMSG
 	help
 	  simple program for sending udp broadcast messages
-
 config BUSYBOX_CONFIG_NETSTAT
 	bool "netstat"
 	default BUSYBOX_DEFAULT_NETSTAT
@@ -843,13 +699,11 @@ config BUSYBOX_CONFIG_FEATURE_NETSTAT_PRG
 	help
 	  Add support for -p flag to print out PID and program name.
 	  +700 bytes of code.
-
 config BUSYBOX_CONFIG_NSLOOKUP
 	bool "nslookup"
 	default BUSYBOX_DEFAULT_NSLOOKUP
 	help
 	  nslookup is a tool to query Internet name servers.
-
 config BUSYBOX_CONFIG_NTPD
 	bool "ntpd"
 	default BUSYBOX_DEFAULT_NTPD
@@ -872,20 +726,39 @@ config BUSYBOX_CONFIG_FEATURE_NTPD_CONF
 	help
 	  Make ntpd look in /etc/ntp.conf for peers. Only "server address"
 	  is supported.
+config BUSYBOX_CONFIG_PING
+	bool "ping"
+	default BUSYBOX_DEFAULT_PING
+	select BUSYBOX_CONFIG_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_CONFIG_PING6
+	bool "ping6"
+	default BUSYBOX_DEFAULT_PING6
+	depends on BUSYBOX_CONFIG_FEATURE_IPV6
+	help
+	  This will give you a ping that can talk IPv6.
+
+config BUSYBOX_CONFIG_FEATURE_FANCY_PING
+	bool "Enable fancy ping output"
+	default BUSYBOX_DEFAULT_FEATURE_FANCY_PING
+	depends on BUSYBOX_CONFIG_PING || BUSYBOX_CONFIG_PING6
+	help
+	  Make the output from the ping applet include statistics, and at the
+	  same time provide full support for ICMP packets.
 config BUSYBOX_CONFIG_PSCAN
 	bool "pscan"
 	default BUSYBOX_DEFAULT_PSCAN
 	help
 	  Simple network port scanner.
-
 config BUSYBOX_CONFIG_ROUTE
 	bool "route"
 	default BUSYBOX_DEFAULT_ROUTE
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Route displays or manipulates the kernel's IP routing tables.
-
 config BUSYBOX_CONFIG_SLATTACH
 	bool "slattach"
 	default BUSYBOX_DEFAULT_SLATTACH
@@ -893,17 +766,6 @@ config BUSYBOX_CONFIG_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_CONFIG_TCPSVD
 	bool "tcpsvd"
 	default BUSYBOX_DEFAULT_TCPSVD
@@ -911,6 +773,12 @@ config BUSYBOX_CONFIG_TCPSVD
 	  tcpsvd listens on a TCP port and runs a program for each new
 	  connection.
 
+config BUSYBOX_CONFIG_UDPSVD
+	bool "udpsvd"
+	default BUSYBOX_DEFAULT_UDPSVD
+	help
+	  udpsvd listens on an UDP port and runs a program for each new
+	  connection.
 config BUSYBOX_CONFIG_TELNET
 	bool "telnet"
 	default BUSYBOX_DEFAULT_TELNET
@@ -936,7 +804,6 @@ config BUSYBOX_CONFIG_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_CONFIG_TELNETD
 	bool "telnetd"
 	default BUSYBOX_DEFAULT_TELNETD
@@ -978,7 +845,6 @@ config BUSYBOX_CONFIG_TELNETD
 
 	  with all that done, telnetd _should_ work....
 
-
 config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
 	bool "Support standalone telnetd (not inetd only)"
 	default BUSYBOX_DEFAULT_FEATURE_TELNETD_STANDALONE
@@ -1006,7 +872,6 @@ config BUSYBOX_CONFIG_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_CONFIG_TFTP
 	bool "tftp"
 	default BUSYBOX_DEFAULT_TFTP
@@ -1071,7 +936,6 @@ config BUSYBOX_CONFIG_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_CONFIG_TRACEROUTE
 	bool "traceroute"
 	default BUSYBOX_DEFAULT_TRACEROUTE
@@ -1082,33 +946,24 @@ config BUSYBOX_CONFIG_TRACEROUTE
 config BUSYBOX_CONFIG_TRACEROUTE6
 	bool "traceroute6"
 	default BUSYBOX_DEFAULT_TRACEROUTE6
-	depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_TRACEROUTE
+	depends on BUSYBOX_CONFIG_FEATURE_IPV6
 	help
 	  Utility to trace the route of IPv6 packets.
 
 config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
 	bool "Enable verbose output"
 	default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_VERBOSE
-	depends on BUSYBOX_CONFIG_TRACEROUTE
+	depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6
 	help
 	  Add some verbosity to traceroute. This includes among other things
 	  hostnames and ICMP response types.
 
-config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
-	bool "Enable loose source route"
-	default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_SOURCE_ROUTE
-	depends on BUSYBOX_CONFIG_TRACEROUTE
-	help
-	  Add option to specify a loose source route gateway
-	  (8 maximum).
-
 config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP
-	bool "Use ICMP instead of UDP"
+	bool "Enable -I option (use ICMP instead of UDP)"
 	default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_USE_ICMP
-	depends on BUSYBOX_CONFIG_TRACEROUTE
+	depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6
 	help
 	  Add option -I to use ICMP ECHO instead of UDP datagrams.
-
 config BUSYBOX_CONFIG_TUNCTL
 	bool "tunctl"
 	default BUSYBOX_DEFAULT_TUNCTL
@@ -1123,32 +978,101 @@ config BUSYBOX_CONFIG_FEATURE_TUNCTL_UG
 	help
 	  Allow to specify owner and group of newly created interface.
 	  340 bytes of pure bloat. Say no here.
+config BUSYBOX_CONFIG_VCONFIG
+	bool "vconfig"
+	default BUSYBOX_DEFAULT_VCONFIG
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Creates, removes, and configures VLAN interfaces
+config BUSYBOX_CONFIG_WGET
+	bool "wget"
+	default BUSYBOX_DEFAULT_WGET
+	help
+	  wget is a utility for non-interactive download of files from HTTP
+	  and FTP servers.
 
-source udhcp/Config.in
+config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR
+	bool "Enable a nifty process meter (+2k)"
+	default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
+	depends on BUSYBOX_CONFIG_WGET
+	help
+	  Enable the transfer progress bar for wget transfers.
 
-config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
-	string "ifup udhcpc command line options"
-	default BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS
-	depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC
+config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
+	bool "Enable HTTP authentication"
+	default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
+	depends on BUSYBOX_CONFIG_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_CONFIG_UDPSVD
-	bool "udpsvd"
-	default BUSYBOX_DEFAULT_UDPSVD
+config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
+	bool "Enable long options"
+	default BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
+	depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_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_CONFIG_VCONFIG
-	bool "vconfig"
-	default BUSYBOX_DEFAULT_VCONFIG
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
+config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT
+	bool "Enable timeout option -T SEC"
+	default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_WGET_OPENSSL
+	bool "Try to connect to HTTPS using openssl"
+	default BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_WGET_SSL_HELPER
+	bool "Try to connect to HTTPS using ssl_helper"
+	default BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER
+	depends on BUSYBOX_CONFIG_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_CONFIG_WHOIS
+	bool "whois"
+	default BUSYBOX_DEFAULT_WHOIS
+	help
+	  whois is a client for the whois directory service
 config BUSYBOX_CONFIG_ZCIP
 	bool "zcip"
 	default BUSYBOX_DEFAULT_ZCIP
@@ -1162,4 +1086,15 @@ config BUSYBOX_CONFIG_ZCIP
 	  See http://www.zeroconf.org for further details, and "zcip.script"
 	  in the busybox examples.
 
+source udhcp/Config.in
+
+config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
+	string "ifup udhcpc command line options"
+	default BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS
+	depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC
+	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/package/utils/busybox/config/networking/udhcp/Config.in b/package/utils/busybox/config/networking/udhcp/Config.in
index 4f48400..cdba5d5 100644
--- a/package/utils/busybox/config/networking/udhcp/Config.in
+++ b/package/utils/busybox/config/networking/udhcp/Config.in
@@ -22,7 +22,6 @@ config BUSYBOX_CONFIG_UDHCPD
 config BUSYBOX_CONFIG_DHCPRELAY
 	bool "dhcprelay"
 	default BUSYBOX_DEFAULT_DHCPRELAY
-	depends on BUSYBOX_CONFIG_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_CONFIG_DHCPRELAY
 config BUSYBOX_CONFIG_DUMPLEASES
 	bool "Lease display utility (dumpleases)"
 	default BUSYBOX_DEFAULT_DUMPLEASES
-	depends on BUSYBOX_CONFIG_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/package/utils/busybox/config/procps/Config.in b/package/utils/busybox/config/procps/Config.in
index 6eafbda..6bc5ec0 100644
--- a/package/utils/busybox/config/procps/Config.in
+++ b/package/utils/busybox/config/procps/Config.in
@@ -6,122 +6,6 @@
 
 menu "Process Utilities"
 
-config BUSYBOX_CONFIG_IOSTAT
-	bool "iostat"
-	default BUSYBOX_DEFAULT_IOSTAT
-	help
-	  Report CPU and I/O statistics
-config BUSYBOX_CONFIG_LSOF
-	bool "lsof"
-	default BUSYBOX_DEFAULT_LSOF
-	help
-	  Show open files in the format of:
-	  PID <TAB> /path/to/executable <TAB> /path/to/opened/file
-config BUSYBOX_CONFIG_MPSTAT
-	bool "mpstat"
-	default BUSYBOX_DEFAULT_MPSTAT
-	help
-	  Per-processor statistics
-config BUSYBOX_CONFIG_NMETER
-	bool "nmeter"
-	default BUSYBOX_DEFAULT_NMETER
-	help
-	  Prints selected system stats continuously, one line per update.
-config BUSYBOX_CONFIG_PMAP
-       bool "pmap"
-       default BUSYBOX_DEFAULT_PMAP
-       help
-         Display processes' memory mappings.
-config BUSYBOX_CONFIG_POWERTOP
-	bool "powertop"
-	default BUSYBOX_DEFAULT_POWERTOP
-	help
-	  Analyze power consumption on Intel-based laptops
-config BUSYBOX_CONFIG_PSTREE
-	bool "pstree"
-	default BUSYBOX_DEFAULT_PSTREE
-	help
-	  Display a tree of processes.
-config BUSYBOX_CONFIG_PWDX
-	bool "pwdx"
-	default BUSYBOX_DEFAULT_PWDX
-	help
-	  Report current working directory of a process
-config BUSYBOX_CONFIG_SMEMCAP
-	bool "smemcap"
-	default BUSYBOX_DEFAULT_SMEMCAP
-	help
-	  smemcap is a tool for capturing process data for smem,
-	  a memory usage statistic tool.
-config BUSYBOX_CONFIG_TOP
-	bool "top"
-	default BUSYBOX_DEFAULT_TOP
-	help
-	  The top program provides a dynamic real-time view of a running
-	  system.
-
-config BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
-	bool "Show CPU per-process usage percentage"
-	default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
-	depends on BUSYBOX_CONFIG_TOP
-	help
-	  Make top display CPU usage for each process.
-	  This adds about 2k.
-
-config BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
-	bool "Show CPU global usage percentage"
-	default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
-	depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
-	help
-	  Makes top display "CPU: NN% usr NN% sys..." line.
-	  This adds about 0.5k.
-
-config BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU
-	bool "SMP CPU usage display ('c' key)"
-	default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
-	depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
-	help
-	  Allow 'c' key to switch between individual/cumulative CPU stats
-	  This adds about 0.5k.
-
-config BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS
-	bool "Show 1/10th of a percent in CPU/mem statistics"
-	default BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
-	depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
-	help
-	  Show 1/10th of a percent in CPU/mem statistics.
-	  This adds about 0.3k.
-
-config BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS
-	bool "Show CPU process runs on ('j' field)"
-	default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
-	depends on BUSYBOX_CONFIG_TOP
-	help
-	  Show CPU where process was last found running on.
-	  This is the 'j' field.
-
-config BUSYBOX_CONFIG_FEATURE_TOPMEM
-	bool "Topmem command ('s' key)"
-	default BUSYBOX_DEFAULT_FEATURE_TOPMEM
-	depends on BUSYBOX_CONFIG_TOP
-	help
-	  Enable 's' in top (gives lots of memory info).
-config BUSYBOX_CONFIG_UPTIME
-	bool "uptime"
-	default BUSYBOX_DEFAULT_UPTIME
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
-	bool "Support for showing the number of users"
-	default BUSYBOX_DEFAULT_FEATURE_UPTIME_UTMP_SUPPORT
-	depends on BUSYBOX_CONFIG_UPTIME && BUSYBOX_CONFIG_FEATURE_UTMP
-	help
-	  Makes uptime display the number of users currently logged on.
-
 config BUSYBOX_CONFIG_FREE
 	bool "free"
 	default BUSYBOX_DEFAULT_FREE
@@ -130,7 +14,6 @@ config BUSYBOX_CONFIG_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_CONFIG_FUSER
 	bool "fuser"
 	default BUSYBOX_DEFAULT_FUSER
@@ -138,7 +21,11 @@ config BUSYBOX_CONFIG_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_CONFIG_IOSTAT
+	bool "iostat"
+	default BUSYBOX_DEFAULT_IOSTAT
+	help
+	  Report CPU and I/O statistics
 config BUSYBOX_CONFIG_KILL
 	bool "kill"
 	default BUSYBOX_DEFAULT_KILL
@@ -150,7 +37,6 @@ config BUSYBOX_CONFIG_KILL
 config BUSYBOX_CONFIG_KILLALL
 	bool "killall"
 	default BUSYBOX_DEFAULT_KILLALL
-	depends on BUSYBOX_CONFIG_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_CONFIG_KILLALL
 config BUSYBOX_CONFIG_KILLALL5
 	bool "killall5"
 	default BUSYBOX_DEFAULT_KILLALL5
-	depends on BUSYBOX_CONFIG_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_CONFIG_LSOF
+	bool "lsof"
+	default BUSYBOX_DEFAULT_LSOF
+	help
+	  Show open files in the format of:
+	  PID <TAB> /path/to/executable <TAB> /path/to/opened/file
+config BUSYBOX_CONFIG_MPSTAT
+	bool "mpstat"
+	default BUSYBOX_DEFAULT_MPSTAT
+	help
+	  Per-processor statistics
+config BUSYBOX_CONFIG_NMETER
+	bool "nmeter"
+	default BUSYBOX_DEFAULT_NMETER
+	help
+	  Prints selected system stats continuously, one line per update.
 config BUSYBOX_CONFIG_PGREP
 	bool "pgrep"
 	default BUSYBOX_DEFAULT_PGREP
 	help
 	  Look for processes by name.
 
+config BUSYBOX_CONFIG_PKILL
+	bool "pkill"
+	default BUSYBOX_DEFAULT_PKILL
+	help
+	  Send signals to processes by name.
 config BUSYBOX_CONFIG_PIDOF
 	bool "pidof"
 	default BUSYBOX_DEFAULT_PIDOF
@@ -189,13 +99,16 @@ config BUSYBOX_CONFIG_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_CONFIG_PKILL
-	bool "pkill"
-	default BUSYBOX_DEFAULT_PKILL
+config BUSYBOX_CONFIG_PMAP
+       bool "pmap"
+       default BUSYBOX_DEFAULT_PMAP
+       help
+         Display processes' memory mappings.
+config BUSYBOX_CONFIG_POWERTOP
+	bool "powertop"
+	default BUSYBOX_DEFAULT_POWERTOP
 	help
-	  Send signals to processes by name.
-
+	  Analyze power consumption on Intel-based laptops
 config BUSYBOX_CONFIG_PS
 	bool "ps"
 	default BUSYBOX_DEFAULT_PS
@@ -241,28 +154,101 @@ config BUSYBOX_CONFIG_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_CONFIG_PSTREE
+	bool "pstree"
+	default BUSYBOX_DEFAULT_PSTREE
+	help
+	  Display a tree of processes.
+config BUSYBOX_CONFIG_PWDX
+	bool "pwdx"
+	default BUSYBOX_DEFAULT_PWDX
+	help
+	  Report current working directory of a process
 config BUSYBOX_CONFIG_RENICE
 	bool "renice"
 	default BUSYBOX_DEFAULT_RENICE
 	help
 	  Renice alters the scheduling priority of one or more running
 	  processes.
-
+config BUSYBOX_CONFIG_SMEMCAP
+	bool "smemcap"
+	default BUSYBOX_DEFAULT_SMEMCAP
+	help
+	  smemcap is a tool for capturing process data for smem,
+	  a memory usage statistic tool.
 config BUSYBOX_CONFIG_BB_SYSCTL
 	bool "sysctl"
 	default BUSYBOX_DEFAULT_BB_SYSCTL
 	help
 	  Configure kernel parameters at runtime.
+config BUSYBOX_CONFIG_TOP
+	bool "top"
+	default BUSYBOX_DEFAULT_TOP
+	help
+	  The top program provides a dynamic real-time view of a running
+	  system.
 
-config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
-	bool "Support for showing threads in ps/pstree/top"
-	default BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
-	depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_PSTREE
+config BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+	bool "Show CPU per-process usage percentage"
+	default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
+	bool "Show CPU global usage percentage"
+	default BUSYBOX_DEFAULT_FEATURE_TOP_CPU_GLOBAL_PERCENTS
+	depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+	help
+	  Makes top display "CPU: NN% usr NN% sys..." line.
+	  This adds about 0.5k.
+
+config BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU
+	bool "SMP CPU usage display ('c' key)"
+	default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_CPU
+	depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS
+	help
+	  Allow 'c' key to switch between individual/cumulative CPU stats
+	  This adds about 0.5k.
+
+config BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS
+	bool "Show 1/10th of a percent in CPU/mem statistics"
+	default BUSYBOX_DEFAULT_FEATURE_TOP_DECIMALS
+	depends on BUSYBOX_CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE
+	help
+	  Show 1/10th of a percent in CPU/mem statistics.
+	  This adds about 0.3k.
+
+config BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS
+	bool "Show CPU process runs on ('j' field)"
+	default BUSYBOX_DEFAULT_FEATURE_TOP_SMP_PROCESS
+	depends on BUSYBOX_CONFIG_TOP
+	help
+	  Show CPU where process was last found running on.
+	  This is the 'j' field.
+
+config BUSYBOX_CONFIG_FEATURE_TOPMEM
+	bool "Topmem command ('s' key)"
+	default BUSYBOX_DEFAULT_FEATURE_TOPMEM
+	depends on BUSYBOX_CONFIG_TOP
+	help
+	  Enable 's' in top (gives lots of memory info).
+config BUSYBOX_CONFIG_UPTIME
+	bool "uptime"
+	default BUSYBOX_DEFAULT_UPTIME
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
+	bool "Support for showing the number of users"
+	default BUSYBOX_DEFAULT_FEATURE_UPTIME_UTMP_SUPPORT
+	depends on BUSYBOX_CONFIG_UPTIME && BUSYBOX_CONFIG_FEATURE_UTMP
+	help
+	  Makes uptime display the number of users currently logged on.
 config BUSYBOX_CONFIG_WATCH
 	bool "watch"
 	default BUSYBOX_DEFAULT_WATCH
@@ -270,4 +256,12 @@ config BUSYBOX_CONFIG_WATCH
 	  watch is used to execute a program periodically, showing
 	  output to the screen.
 
+config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
+	bool "Support for showing threads in ps/pstree/top"
+	default BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
+	depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_PSTREE
+	help
+	  Enables the ps -T option, showing of threads in pstree,
+	  and 'h' command in top.
+
 endmenu
diff --git a/package/utils/busybox/config/runit/Config.in b/package/utils/busybox/config/runit/Config.in
index a322a2c..8750b59 100644
--- a/package/utils/busybox/config/runit/Config.in
+++ b/package/utils/busybox/config/runit/Config.in
@@ -73,6 +73,13 @@ config BUSYBOX_CONFIG_SV_DEFAULT_SERVICE_DIR
 	help
 	  Default directory for services.
 	  Defaults to "/var/service"
+
+config BUSYBOX_CONFIG_SVC
+	bool "svc"
+	default BUSYBOX_DEFAULT_SVC
+	help
+	  svc controls the state of services monitored by the runsv supervisor.
+	  It is comaptible with daemontools command with the same name.
 config BUSYBOX_CONFIG_SVLOGD
 	bool "svlogd"
 	default BUSYBOX_DEFAULT_SVLOGD
diff --git a/package/utils/busybox/config/selinux/Config.in b/package/utils/busybox/config/selinux/Config.in
index 1d23f7d..1aac9f4 100644
--- a/package/utils/busybox/config/selinux/Config.in
+++ b/package/utils/busybox/config/selinux/Config.in
@@ -7,7 +7,6 @@
 menu "SELinux Utilities"
 	depends on BUSYBOX_CONFIG_SELINUX
 
-
 config BUSYBOX_CONFIG_CHCON
 	bool "chcon"
 	default BUSYBOX_DEFAULT_CHCON
@@ -21,28 +20,24 @@ config BUSYBOX_CONFIG_FEATURE_CHCON_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_CHCON && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the chcon applet.
-
 config BUSYBOX_CONFIG_GETENFORCE
 	bool "getenforce"
 	default BUSYBOX_DEFAULT_GETENFORCE
 	depends on BUSYBOX_CONFIG_SELINUX
 	help
 	  Enable support to get the current mode of SELinux.
-
 config BUSYBOX_CONFIG_GETSEBOOL
 	bool "getsebool"
 	default BUSYBOX_DEFAULT_GETSEBOOL
 	depends on BUSYBOX_CONFIG_SELINUX
 	help
 	  Enable support to get SELinux boolean values.
-
 config BUSYBOX_CONFIG_LOAD_POLICY
 	bool "load_policy"
 	default BUSYBOX_DEFAULT_LOAD_POLICY
 	depends on BUSYBOX_CONFIG_SELINUX
 	help
 	  Enable support to load SELinux policy.
-
 config BUSYBOX_CONFIG_MATCHPATHCON
 	bool "matchpathcon"
 	default BUSYBOX_DEFAULT_MATCHPATHCON
@@ -50,15 +45,6 @@ config BUSYBOX_CONFIG_MATCHPATHCON
 	help
 	  Enable support to get default security context of the
 	  specified path from the file contexts configuration.
-
-config BUSYBOX_CONFIG_RESTORECON
-	bool "restorecon"
-	default BUSYBOX_DEFAULT_RESTORECON
-	depends on BUSYBOX_CONFIG_SELINUX
-	help
-	  Enable support to relabel files. The feature is almost
-	  the same as setfiles, but usage is a little different.
-
 config BUSYBOX_CONFIG_RUNCON
 	bool "runcon"
 	default BUSYBOX_DEFAULT_RUNCON
@@ -72,7 +58,6 @@ config BUSYBOX_CONFIG_FEATURE_RUNCON_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_RUNCON && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the runcon applet.
-
 config BUSYBOX_CONFIG_SELINUXENABLED
 	bool "selinuxenabled"
 	default BUSYBOX_DEFAULT_SELINUXENABLED
@@ -80,14 +65,18 @@ config BUSYBOX_CONFIG_SELINUXENABLED
 	help
 	  Enable support for this command to be used within shell scripts
 	  to determine if selinux is enabled.
-
+config BUSYBOX_CONFIG_SESTATUS
+	bool "sestatus"
+	default BUSYBOX_DEFAULT_SESTATUS
+	depends on BUSYBOX_CONFIG_SELINUX
+	help
+	  Displays the status of SELinux.
 config BUSYBOX_CONFIG_SETENFORCE
 	bool "setenforce"
 	default BUSYBOX_DEFAULT_SETENFORCE
 	depends on BUSYBOX_CONFIG_SELINUX
 	help
 	  Enable support to modify the mode SELinux is running in.
-
 config BUSYBOX_CONFIG_SETFILES
 	bool "setfiles"
 	default BUSYBOX_DEFAULT_SETFILES
@@ -106,6 +95,13 @@ config BUSYBOX_CONFIG_FEATURE_SETFILES_CHECK_OPTION
 	  Support "-c" option (check the validity of the contexts against
 	  the specified binary policy) for setfiles. Requires libsepol.
 
+config BUSYBOX_CONFIG_RESTORECON
+	bool "restorecon"
+	default BUSYBOX_DEFAULT_RESTORECON
+	depends on BUSYBOX_CONFIG_SELINUX
+	help
+	  Enable support to relabel files. The feature is almost
+	  the same as setfiles, but usage is a little different.
 config BUSYBOX_CONFIG_SETSEBOOL
 	bool "setsebool"
 	default BUSYBOX_DEFAULT_SETSEBOOL
@@ -114,11 +110,4 @@ config BUSYBOX_CONFIG_SETSEBOOL
 	  Enable support for change boolean.
 	  semanage and -P option is not supported yet.
 
-config BUSYBOX_CONFIG_SESTATUS
-	bool "sestatus"
-	default BUSYBOX_DEFAULT_SESTATUS
-	depends on BUSYBOX_CONFIG_SELINUX
-	help
-	  Displays the status of SELinux.
-
 endmenu
diff --git a/package/utils/busybox/config/shell/Config.in b/package/utils/busybox/config/shell/Config.in
index 69ecf14..4193c18 100644
--- a/package/utils/busybox/config/shell/Config.in
+++ b/package/utils/busybox/config/shell/Config.in
@@ -6,6 +6,57 @@
 
 menu "Shells"
 
+
+choice
+	prompt "Choose which shell is aliased to 'sh' name"
+	default BUSYBOX_CONFIG_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_CONFIG_SH_IS_ASH
+	depends on !BUSYBOX_CONFIG_NOMMU
+	bool "ash"
+
+config BUSYBOX_CONFIG_SH_IS_HUSH
+	bool "hush"
+
+config BUSYBOX_CONFIG_SH_IS_NONE
+	bool "none"
+
+endchoice
+
+choice
+	prompt "Choose which shell is aliased to 'bash' name"
+	default BUSYBOX_CONFIG_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_CONFIG_BASH_IS_ASH
+	depends on !BUSYBOX_CONFIG_NOMMU
+	bool "ash"
+
+config BUSYBOX_CONFIG_BASH_IS_HUSH
+	bool "hush"
+
+config BUSYBOX_CONFIG_BASH_IS_NONE
+	bool "none"
+
+endchoice
+
+
 config BUSYBOX_CONFIG_ASH
 	bool "ash"
 	default BUSYBOX_DEFAULT_ASH
@@ -17,73 +68,109 @@ config BUSYBOX_CONFIG_ASH
 	  shell (by Herbert Xu), which was created by porting the 'ash' shell
 	  (written by Kenneth Almquist) from NetBSD.
 
+config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
+	bool "Optimize for size instead of speed"
+	default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
+	help
+	  Compile ash for reduced size at the price of speed.
+
+config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
+	bool "Use internal glob() implementation"
+	default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB	# Y is bigger, but because of uclibc glob() bug, let Y be default for now
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_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_CONFIG_ASH_RANDOM_SUPPORT
+	bool "Pseudorandom generator and $RANDOM variable"
+	default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_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_CONFIG_ASH_EXPAND_PRMT
+	bool "Expand prompt string"
+	default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_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_CONFIG_ASH_BASH_COMPAT
 	bool "bash-compatible extensions"
 	default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable bash-compatible extensions.
 
 config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
 	bool "Idle timeout variable"
 	default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enables bash-like auto-logout after $TMOUT seconds of idle time.
 
 config BUSYBOX_CONFIG_ASH_JOB_CONTROL
 	bool "Job control"
 	default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable job control in the ash shell.
 
 config BUSYBOX_CONFIG_ASH_ALIAS
 	bool "Alias support"
 	default BUSYBOX_DEFAULT_ASH_ALIAS
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable alias support in the ash shell.
 
 config BUSYBOX_CONFIG_ASH_GETOPTS
 	bool "Builtin getopt to parse positional parameters"
 	default BUSYBOX_DEFAULT_ASH_GETOPTS
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable support for getopts builtin in ash.
 
 config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
 	bool "Builtin version of 'echo'"
 	default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable support for echo builtin in ash.
 
 config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
 	bool "Builtin version of 'printf'"
 	default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable support for printf builtin in ash.
 
 config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
 	bool "Builtin version of 'test'"
 	default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable support for test builtin in ash.
 
 config BUSYBOX_CONFIG_ASH_HELP
 	bool "help builtin"
 	default BUSYBOX_DEFAULT_ASH_HELP
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable help builtin in ash.
 
 config BUSYBOX_CONFIG_ASH_CMDCMD
 	bool "'command' command to override shell builtins"
 	default BUSYBOX_DEFAULT_ASH_CMDCMD
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable support for the ash 'command' builtin, which allows
 	  you to run the specified command with the specified arguments,
@@ -92,37 +179,9 @@ config BUSYBOX_CONFIG_ASH_CMDCMD
 config BUSYBOX_CONFIG_ASH_MAIL
 	bool "Check for new mail on interactive shells"
 	default BUSYBOX_DEFAULT_ASH_MAIL
-	depends on BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
 	help
 	  Enable "check for new mail" function in the ash shell.
-
-config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
-	bool "Optimize for size instead of speed"
-	default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
-	depends on BUSYBOX_CONFIG_ASH
-	help
-	  Compile ash for reduced size at the price of speed.
-
-config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
-	bool "Pseudorandom generator and $RANDOM variable"
-	default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
-	depends on BUSYBOX_CONFIG_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_CONFIG_ASH_EXPAND_PRMT
-	bool "Expand prompt string"
-	default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
-	depends on BUSYBOX_CONFIG_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_CONFIG_CTTYHACK
 	bool "cttyhack"
 	default BUSYBOX_DEFAULT_CTTYHACK
@@ -183,7 +242,7 @@ config BUSYBOX_CONFIG_HUSH
 config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
 	bool "bash-compatible extensions"
 	default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable bash-compatible extensions.
 
@@ -197,14 +256,14 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
 config BUSYBOX_CONFIG_HUSH_HELP
 	bool "help builtin"
 	default BUSYBOX_DEFAULT_HUSH_HELP
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable help builtin in hush. Code size + ~1 kbyte.
 
 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
 	bool "Interactive mode"
 	default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_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_CONFIG_HUSH_JOB
 config BUSYBOX_CONFIG_HUSH_TICK
 	bool "Process substitution"
 	default BUSYBOX_DEFAULT_HUSH_TICK
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable process substitution `command` and $(command) in hush.
 
 config BUSYBOX_CONFIG_HUSH_IF
 	bool "Support if/then/elif/else/fi"
 	default BUSYBOX_DEFAULT_HUSH_IF
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable if/then/elif/else/fi in hush.
 
 config BUSYBOX_CONFIG_HUSH_LOOPS
 	bool "Support for, while and until loops"
 	default BUSYBOX_DEFAULT_HUSH_LOOPS
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable for, while and until loops in hush.
 
 config BUSYBOX_CONFIG_HUSH_CASE
 	bool "Support case ... esac statement"
 	default BUSYBOX_DEFAULT_HUSH_CASE
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable case ... esac statement in hush. +400 bytes.
 
 config BUSYBOX_CONFIG_HUSH_FUNCTIONS
 	bool "Support funcname() { commands; } syntax"
 	default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable support for shell functions in hush. +800 bytes.
 
@@ -274,7 +333,7 @@ config BUSYBOX_CONFIG_HUSH_LOCAL
 config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
 	bool "Pseudorandom generator and $RANDOM variable"
 	default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_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_CONFIG_HUSH_RANDOM_SUPPORT
 config BUSYBOX_CONFIG_HUSH_EXPORT_N
 	bool "Support 'export -n' option"
 	default BUSYBOX_DEFAULT_HUSH_EXPORT_N
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  export -n unexports variables. It is a bash extension.
 
 config BUSYBOX_CONFIG_HUSH_MODE_X
 	bool "Support 'hush -x' option and 'set -x' command"
 	default BUSYBOX_DEFAULT_HUSH_MODE_X
-	depends on BUSYBOX_CONFIG_HUSH
+	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  This instructs hush to print commands before execution.
 	  Adds ~300 bytes.
@@ -302,72 +361,17 @@ config BUSYBOX_CONFIG_MSH
 	  msh is deprecated and will be removed, please migrate to hush.
 
 
-
-choice
-	prompt "Choose which shell is aliased to 'sh' name"
-	default BUSYBOX_CONFIG_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_CONFIG_FEATURE_SH_IS_ASH
-	depends on BUSYBOX_CONFIG_ASH
-	bool "ash"
-	depends on !BUSYBOX_CONFIG_NOMMU
-
-config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
-	depends on BUSYBOX_CONFIG_HUSH
-	bool "hush"
-
-config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
-	bool "none"
-
-endchoice
-
-choice
-	prompt "Choose which shell is aliased to 'bash' name"
-	default BUSYBOX_CONFIG_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_CONFIG_FEATURE_BASH_IS_ASH
-	depends on BUSYBOX_CONFIG_ASH
-	bool "ash"
-	depends on !BUSYBOX_CONFIG_NOMMU
-
-config BUSYBOX_CONFIG_FEATURE_BASH_IS_HUSH
-	depends on BUSYBOX_CONFIG_HUSH
-	bool "hush"
-
-config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
-	bool "none"
-
-endchoice
-
-
-config BUSYBOX_CONFIG_SH_MATH_SUPPORT
+config BUSYBOX_CONFIG_FEATURE_SH_MATH
 	bool "POSIX math support"
-	default BUSYBOX_DEFAULT_SH_MATH_SUPPORT
-	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH
+	default BUSYBOX_DEFAULT_FEATURE_SH_MATH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Enable math support in the shell via $((...)) syntax.
 
-config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
+config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
 	bool "Extend POSIX math support to 64 bit"
-	default BUSYBOX_DEFAULT_SH_MATH_SUPPORT_64
-	depends on BUSYBOX_CONFIG_SH_MATH_SUPPORT
+	default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
+	depends on BUSYBOX_CONFIG_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_CONFIG_SH_MATH_SUPPORT_64
 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
 	bool "Hide message on interactive shell startup"
 	default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
-	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
 	help
 	  Remove the busybox introduction when starting a shell.
 
 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
 	bool "Standalone shell"
 	default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
-	depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_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_CONFIG_FEATURE_SH_STANDALONE
 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
 	bool "Run 'nofork' applets directly"
 	default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
-	depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_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_CONFIG_FEATURE_SH_NOFORK
 config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
 	bool "Use $HISTFILESIZE"
 	default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
-	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
+	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_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/package/utils/busybox/config/sysklogd/Config.in b/package/utils/busybox/config/sysklogd/Config.in
index 5fcee2c..1f8f3cf 100644
--- a/package/utils/busybox/config/sysklogd/Config.in
+++ b/package/utils/busybox/config/sysklogd/Config.in
@@ -47,7 +47,6 @@ config BUSYBOX_CONFIG_LOGGER
 config BUSYBOX_CONFIG_LOGREAD
 	bool "logread"
 	default BUSYBOX_DEFAULT_LOGREAD
-	depends on BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
 	help
 	  If you enabled Circular Buffer support, you almost
 	  certainly want to enable this feature as well. This
diff --git a/package/utils/busybox/config/util-linux/Config.in b/package/utils/busybox/config/util-linux/Config.in
index 08bddf8..8df023c 100644
--- a/package/utils/busybox/config/util-linux/Config.in
+++ b/package/utils/busybox/config/util-linux/Config.in
@@ -6,222 +6,6 @@
 
 menu "Linux System Utilities"
 
-config BUSYBOX_CONFIG_BLKDISCARD
-	bool "blkdiscard"
-	default BUSYBOX_DEFAULT_BLKDISCARD
-	help
-	  blkdiscard discards sectors on a given device.
-config BUSYBOX_CONFIG_BLOCKDEV
-	bool "blockdev"
-	default BUSYBOX_DEFAULT_BLOCKDEV
-	help
-	  Performs some ioctls with block devices.
-config BUSYBOX_CONFIG_FATATTR
-	bool "fatattr"
-	default BUSYBOX_DEFAULT_FATATTR
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  fatattr lists or changes the file attributes on a fat file system.
-config BUSYBOX_CONFIG_FSTRIM
-	bool "fstrim"
-	default BUSYBOX_DEFAULT_FSTRIM
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Discard unused blocks on a mounted filesystem.
-config BUSYBOX_CONFIG_MDEV
-	bool "mdev"
-	default BUSYBOX_DEFAULT_MDEV
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MDEV_CONF
-	bool "Support /etc/mdev.conf"
-	default BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MDEV_RENAME
-	bool "Support subdirs/symlinks"
-	default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
-	depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
-	help
-	  Add support for renaming devices and creating symlinks.
-
-	  For more information, please see docs/mdev.txt
-
-config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME_REGEXP
-	bool "Support regular expressions substitutions when renaming device"
-	default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
-	depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
-	help
-	  Add support for regular expressions substitutions when renaming
-	  device.
-
-config BUSYBOX_CONFIG_FEATURE_MDEV_EXEC
-	bool "Support command execution at device addition/removal"
-	default BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
-	bool "Support loading of firmwares"
-	default BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
-	depends on BUSYBOX_CONFIG_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_CONFIG_MOUNT
-	bool "mount"
-	default BUSYBOX_DEFAULT_MOUNT
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_FAKE
-	bool "Support option -f"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_FAKE
-	depends on BUSYBOX_CONFIG_MOUNT
-	help
-	  Enable support for faking a file system mount.
-
-config BUSYBOX_CONFIG_FEATURE_MOUNT_VERBOSE
-	bool "Support option -v"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_VERBOSE
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_HELPERS
-	bool "Support mount helpers"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_HELPERS
-	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_LABEL
-	bool "Support specifying devices by label or UUID"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_LABEL
-	depends on BUSYBOX_CONFIG_MOUNT
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_NFS
-	bool "Support mounting NFS file systems on Linux < 2.6.23"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_NFS
-	depends on BUSYBOX_CONFIG_MOUNT
-	select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_CIFS
-	bool "Support mounting CIFS/SMB file systems"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_CIFS
-	depends on BUSYBOX_CONFIG_MOUNT
-	help
-	  Enable support for samba mounts.
-
-config BUSYBOX_CONFIG_FEATURE_MOUNT_FLAGS
-	depends on BUSYBOX_CONFIG_MOUNT
-	bool "Support lots of -o flags in mount"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_FLAGS
-	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_CONFIG_FEATURE_MOUNT_FSTAB
-	depends on BUSYBOX_CONFIG_MOUNT
-	bool "Support /etc/fstab and -a"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB
-	help
-	  Support mount all and looking for files in /etc/fstab.
-
-config BUSYBOX_CONFIG_FEATURE_MOUNT_OTHERTAB
-	depends on BUSYBOX_CONFIG_FEATURE_MOUNT_FSTAB
-	bool "Support -T <alt_fstab>"
-	default BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
-	help
-	  Support mount -T (specifying an alternate fstab)
-config BUSYBOX_CONFIG_NSENTER
-	bool "nsenter"
-	default BUSYBOX_DEFAULT_NSENTER
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Run program with namespaces of other processes.
-
-config BUSYBOX_CONFIG_FEATURE_NSENTER_LONG_OPTS
-	bool "Enable long options"
-	default BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS
-	depends on BUSYBOX_CONFIG_NSENTER && BUSYBOX_CONFIG_LONG_OPTS
-	help
-	  Support long options for the nsenter applet. This makes
-	  the busybox implementation more compatible with upstream.
-config BUSYBOX_CONFIG_REV
-	bool "rev"
-	default BUSYBOX_DEFAULT_REV
-	help
-	  Reverse lines of a file or files.
-config BUSYBOX_CONFIG_SETARCH
-	bool "setarch"
-	default BUSYBOX_DEFAULT_SETARCH
-	select BUSYBOX_CONFIG_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_CONFIG_UEVENT
-	bool "uevent"
-	default BUSYBOX_DEFAULT_UEVENT
-	select BUSYBOX_CONFIG_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_CONFIG_UNSHARE
-	bool "unshare"
-	default BUSYBOX_DEFAULT_UNSHARE
-	depends on BUSYBOX_CONFIG_LONG_OPTS && !BUSYBOX_CONFIG_NOMMU
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Run program with some namespaces unshared from parent.
-
 config BUSYBOX_CONFIG_ACPID
 	bool "acpid"
 	default BUSYBOX_DEFAULT_ACPID
@@ -244,7 +28,11 @@ config BUSYBOX_CONFIG_FEATURE_ACPID_COMPAT
 	depends on BUSYBOX_CONFIG_ACPID
 	help
 	  Accept and ignore compatibility options -g -m -s -S -v.
-
+config BUSYBOX_CONFIG_BLKDISCARD
+	bool "blkdiscard"
+	default BUSYBOX_DEFAULT_BLKDISCARD
+	help
+	  blkdiscard discards sectors on a given device.
 config BUSYBOX_CONFIG_BLKID
 	bool "blkid"
 	default BUSYBOX_DEFAULT_BLKID
@@ -261,7 +49,11 @@ config BUSYBOX_CONFIG_FEATURE_BLKID_TYPE
 	depends on BUSYBOX_CONFIG_BLKID
 	help
 	  Show TYPE="filesystem type"
-
+config BUSYBOX_CONFIG_BLOCKDEV
+	bool "blockdev"
+	default BUSYBOX_DEFAULT_BLOCKDEV
+	help
+	  Performs some ioctls with block devices.
 config BUSYBOX_CONFIG_DMESG
 	bool "dmesg"
 	default BUSYBOX_DEFAULT_DMESG
@@ -295,7 +87,12 @@ config BUSYBOX_CONFIG_FEATURE_DMESG_PRETTY
 	    <5>Linux version 2.6.17.4 .....
 	    <6>BIOS-provided physical RAM map:
 	    <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
-
+config BUSYBOX_CONFIG_FATATTR
+	bool "fatattr"
+	default BUSYBOX_DEFAULT_FATATTR
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  fatattr lists or changes the file attributes on a fat file system.
 config BUSYBOX_CONFIG_FBSET
 	bool "fbset"
 	default BUSYBOX_DEFAULT_FBSET
@@ -324,27 +121,12 @@ config BUSYBOX_CONFIG_FEATURE_FBSET_READMODE
 	  This option allows fbset to read the video mode database stored by
 	  default BUSYBOX_DEFAULT_FEATURE_FBSET_READMODE /etc/fb.modes, which can be used to set frame buffer
 	  device to pre-defined video modes.
-
-config BUSYBOX_CONFIG_FDFLUSH
-	bool "fdflush"
-	default BUSYBOX_DEFAULT_FDFLUSH
-	select BUSYBOX_CONFIG_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_CONFIG_FDFORMAT
 	bool "fdformat"
 	default BUSYBOX_DEFAULT_FDFORMAT
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  fdformat is used to low-level format a floppy disk.
-
 config BUSYBOX_CONFIG_FDISK
 	bool "fdisk"
 	default BUSYBOX_DEFAULT_FDISK
@@ -421,7 +203,6 @@ config BUSYBOX_CONFIG_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_CONFIG_FINDFS
 	bool "findfs"
 	default BUSYBOX_DEFAULT_FINDFS
@@ -431,12 +212,23 @@ config BUSYBOX_CONFIG_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_CONFIG_FLOCK
 	bool "flock"
 	default BUSYBOX_DEFAULT_FLOCK
 	help
 	  Manage locks from shell scripts
+config BUSYBOX_CONFIG_FDFLUSH
+	bool "fdflush"
+	default BUSYBOX_DEFAULT_FDFLUSH
+	select BUSYBOX_CONFIG_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_CONFIG_FREERAMDISK
 	bool "freeramdisk"
@@ -449,7 +241,6 @@ config BUSYBOX_CONFIG_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_CONFIG_FSCK_MINIX
 	bool "fsck_minix"
 	default BUSYBOX_DEFAULT_FSCK_MINIX
@@ -460,47 +251,12 @@ config BUSYBOX_CONFIG_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_CONFIG_MKFS_EXT2
-	bool "mkfs_ext2"
-	default BUSYBOX_DEFAULT_MKFS_EXT2
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Utility to create EXT2 filesystems.
-
-config BUSYBOX_CONFIG_MKFS_MINIX
-	bool "mkfs_minix"
-	default BUSYBOX_DEFAULT_MKFS_MINIX
-	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MINIX2
-	bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
-	default BUSYBOX_DEFAULT_FEATURE_MINIX2
-	depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_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_CONFIG_MKFS_REISER
-	bool "mkfs_reiser"
-	default BUSYBOX_DEFAULT_MKFS_REISER
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Utility to create ReiserFS filesystems.
-	  Note: this applet needs a lot of testing and polishing.
-
-config BUSYBOX_CONFIG_MKFS_VFAT
-	bool "mkfs_vfat"
-	default BUSYBOX_DEFAULT_MKFS_VFAT
+config BUSYBOX_CONFIG_FSTRIM
+	bool "fstrim"
+	default BUSYBOX_DEFAULT_FSTRIM
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  Utility to create FAT32 filesystems.
-
+	help
+	  Discard unused blocks on a mounted filesystem.
 config BUSYBOX_CONFIG_GETOPT
 	bool "getopt"
 	default BUSYBOX_DEFAULT_GETOPT
@@ -518,7 +274,6 @@ config BUSYBOX_CONFIG_FEATURE_GETOPT_LONG
 	depends on BUSYBOX_CONFIG_GETOPT
 	help
 	  Enable support for long options (option -l).
-
 config BUSYBOX_CONFIG_HEXDUMP
 	bool "hexdump"
 	default BUSYBOX_DEFAULT_HEXDUMP
@@ -539,10 +294,8 @@ config BUSYBOX_CONFIG_FEATURE_HEXDUMP_REVERSE
 config BUSYBOX_CONFIG_HD
 	bool "hd"
 	default BUSYBOX_DEFAULT_HD
-	depends on BUSYBOX_CONFIG_HEXDUMP
 	help
 	  hd is an alias to hexdump -C.
-
 config BUSYBOX_CONFIG_HWCLOCK
 	bool "hwclock"
 	default BUSYBOX_DEFAULT_HWCLOCK
@@ -573,7 +326,6 @@ config BUSYBOX_CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS
 	  classic /etc/adjtime path.
 
 	  pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
-
 config BUSYBOX_CONFIG_IPCRM
 	bool "ipcrm"
 	default BUSYBOX_DEFAULT_IPCRM
@@ -581,7 +333,6 @@ config BUSYBOX_CONFIG_IPCRM
 	  The ipcrm utility allows the removal of System V interprocess
 	  communication (IPC) objects and the associated data structures
 	  from the system.
-
 config BUSYBOX_CONFIG_IPCS
 	bool "ipcs"
 	default BUSYBOX_DEFAULT_IPCS
@@ -589,7 +340,6 @@ config BUSYBOX_CONFIG_IPCS
 	help
 	  The ipcs utility is used to provide information on the currently
 	  allocated System V interprocess (IPC) objects in the system.
-
 config BUSYBOX_CONFIG_LOSETUP
 	bool "losetup"
 	default BUSYBOX_DEFAULT_LOSETUP
@@ -598,7 +348,6 @@ config BUSYBOX_CONFIG_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_CONFIG_LSPCI
 	bool "lspci"
 	default BUSYBOX_DEFAULT_LSPCI
@@ -608,7 +357,6 @@ config BUSYBOX_CONFIG_LSPCI
 	  system and devices connected to them.
 
 	  This version uses sysfs (/sys/bus/pci/devices) only.
-
 config BUSYBOX_CONFIG_LSUSB
 	bool "lsusb"
 	default BUSYBOX_DEFAULT_LSUSB
@@ -618,7 +366,113 @@ config BUSYBOX_CONFIG_LSUSB
 	  system and devices connected to them.
 
 	  This version uses sysfs (/sys/bus/usb/devices) only.
+config BUSYBOX_CONFIG_MDEV
+	bool "mdev"
+	default BUSYBOX_DEFAULT_MDEV
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MDEV_CONF
+	bool "Support /etc/mdev.conf"
+	default BUSYBOX_DEFAULT_FEATURE_MDEV_CONF
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MDEV_RENAME
+	bool "Support subdirs/symlinks"
+	default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME
+	depends on BUSYBOX_CONFIG_FEATURE_MDEV_CONF
+	help
+	  Add support for renaming devices and creating symlinks.
+
+	  For more information, please see docs/mdev.txt
+
+config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME_REGEXP
+	bool "Support regular expressions substitutions when renaming device"
+	default BUSYBOX_DEFAULT_FEATURE_MDEV_RENAME_REGEXP
+	depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
+	help
+	  Add support for regular expressions substitutions when renaming
+	  device.
+
+config BUSYBOX_CONFIG_FEATURE_MDEV_EXEC
+	bool "Support command execution at device addition/removal"
+	default BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
+	bool "Support loading of firmwares"
+	default BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE
+	depends on BUSYBOX_CONFIG_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_CONFIG_MKE2FS
+	bool "mke2fs"
+	default BUSYBOX_DEFAULT_MKE2FS
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Utility to create EXT2 filesystems.
+
+config BUSYBOX_CONFIG_MKFS_EXT2
+	bool "mkfs.ext2"
+	default BUSYBOX_DEFAULT_MKFS_EXT2
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Alias to "mke2fs".
+config BUSYBOX_CONFIG_MKFS_MINIX
+	bool "mkfs_minix"
+	default BUSYBOX_DEFAULT_MKFS_MINIX
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MINIX2
+	bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
+	default BUSYBOX_DEFAULT_FEATURE_MINIX2
+	depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_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_CONFIG_MKFS_REISER
+	bool "mkfs_reiser"
+	default BUSYBOX_DEFAULT_MKFS_REISER
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Utility to create ReiserFS filesystems.
+	  Note: this applet needs a lot of testing and polishing.
+config BUSYBOX_CONFIG_MKDOSFS
+	bool "mkdosfs"
+	default BUSYBOX_DEFAULT_MKDOSFS
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Utility to create FAT32 filesystems.
 
+config BUSYBOX_CONFIG_MKFS_VFAT
+	bool "mkfs.vfat"
+	default BUSYBOX_DEFAULT_MKFS_VFAT
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Alias to "mkdosfs".
 config BUSYBOX_CONFIG_MKSWAP
 	bool "mkswap"
 	default BUSYBOX_DEFAULT_MKSWAP
@@ -638,7 +492,6 @@ config BUSYBOX_CONFIG_FEATURE_MKSWAP_UUID
 	depends on BUSYBOX_CONFIG_MKSWAP
 	help
 	  Generate swap spaces with universally unique identifiers.
-
 config BUSYBOX_CONFIG_MORE
 	bool "more"
 	default BUSYBOX_DEFAULT_MORE
@@ -648,7 +501,114 @@ config BUSYBOX_CONFIG_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_CONFIG_MOUNT
+	bool "mount"
+	default BUSYBOX_DEFAULT_MOUNT
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_FAKE
+	bool "Support option -f"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_FAKE
+	depends on BUSYBOX_CONFIG_MOUNT
+	help
+	  Enable support for faking a file system mount.
+
+config BUSYBOX_CONFIG_FEATURE_MOUNT_VERBOSE
+	bool "Support option -v"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_VERBOSE
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_HELPERS
+	bool "Support mount helpers"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_HELPERS
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_LABEL
+	bool "Support specifying devices by label or UUID"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_LABEL
+	depends on BUSYBOX_CONFIG_MOUNT
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_NFS
+	bool "Support mounting NFS file systems on Linux < 2.6.23"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_NFS
+	depends on BUSYBOX_CONFIG_MOUNT
+	select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
+	select BUSYBOX_CONFIG_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_CONFIG_FEATURE_MOUNT_CIFS
+	bool "Support mounting CIFS/SMB file systems"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_CIFS
+	depends on BUSYBOX_CONFIG_MOUNT
+	help
+	  Enable support for samba mounts.
+
+config BUSYBOX_CONFIG_FEATURE_MOUNT_FLAGS
+	depends on BUSYBOX_CONFIG_MOUNT
+	bool "Support lots of -o flags in mount"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_FLAGS
+	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_CONFIG_FEATURE_MOUNT_FSTAB
+	depends on BUSYBOX_CONFIG_MOUNT
+	bool "Support /etc/fstab and -a"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB
+	help
+	  Support mount all and looking for files in /etc/fstab.
+
+config BUSYBOX_CONFIG_FEATURE_MOUNT_OTHERTAB
+	depends on BUSYBOX_CONFIG_FEATURE_MOUNT_FSTAB
+	bool "Support -T <alt_fstab>"
+	default BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
+	help
+	  Support mount -T (specifying an alternate fstab)
+config BUSYBOX_CONFIG_NSENTER
+	bool "nsenter"
+	default BUSYBOX_DEFAULT_NSENTER
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Run program with namespaces of other processes.
 
+config BUSYBOX_CONFIG_FEATURE_NSENTER_LONG_OPTS
+	bool "Enable long options"
+	default BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS
+	depends on BUSYBOX_CONFIG_NSENTER && BUSYBOX_CONFIG_LONG_OPTS
+	help
+	  Support long options for the nsenter applet. This makes
+	  the busybox implementation more compatible with upstream.
 config BUSYBOX_CONFIG_PIVOT_ROOT
 	bool "pivot_root"
 	default BUSYBOX_DEFAULT_PIVOT_ROOT
@@ -661,7 +621,6 @@ config BUSYBOX_CONFIG_PIVOT_ROOT
 
 	  Note: This is for initrd in linux 2.4. Under initramfs (introduced
 	  in linux 2.6) use switch_root instead.
-
 config BUSYBOX_CONFIG_RDATE
 	bool "rdate"
 	default BUSYBOX_DEFAULT_RDATE
@@ -670,46 +629,68 @@ config BUSYBOX_CONFIG_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_CONFIG_RDEV
 	bool "rdev"
 	default BUSYBOX_DEFAULT_RDEV
 	help
 	  Print the device node associated with the filesystem mounted at '/'.
-
 config BUSYBOX_CONFIG_READPROFILE
 	bool "readprofile"
 	default BUSYBOX_DEFAULT_READPROFILE
 	#select PLATFORM_LINUX
 	help
 	  This allows you to parse /proc/profile for basic profiling.
-
+config BUSYBOX_CONFIG_REV
+	bool "rev"
+	default BUSYBOX_DEFAULT_REV
+	help
+	  Reverse lines of a file or files.
 config BUSYBOX_CONFIG_RTCWAKE
 	bool "rtcwake"
 	default BUSYBOX_DEFAULT_RTCWAKE
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  Enter a system sleep state until specified wakeup time.
-
 config BUSYBOX_CONFIG_SCRIPT
 	bool "script"
 	default BUSYBOX_DEFAULT_SCRIPT
 	help
 	  The script makes typescript of terminal session.
-
 config BUSYBOX_CONFIG_SCRIPTREPLAY
 	bool "scriptreplay"
 	default BUSYBOX_DEFAULT_SCRIPTREPLAY
 	help
 	  This program replays a typescript, using timing information
 	  given by script -t.
+config BUSYBOX_CONFIG_SETARCH
+	bool "setarch"
+	default BUSYBOX_DEFAULT_SETARCH
+	select BUSYBOX_CONFIG_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_CONFIG_LINUX32
+	bool "linux32"
+	default BUSYBOX_DEFAULT_LINUX32
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Alias to "setarch linux32".
 
-config BUSYBOX_CONFIG_SWAPONOFF
-	bool "swaponoff"
-	default BUSYBOX_DEFAULT_SWAPONOFF
+config BUSYBOX_CONFIG_LINUX64
+	bool "linux64"
+	default BUSYBOX_DEFAULT_LINUX64
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Alias to "setarch linux64".
+config BUSYBOX_CONFIG_SWAPON
+	bool "swapon"
+	default BUSYBOX_DEFAULT_SWAPON
 	select BUSYBOX_CONFIG_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_CONFIG_SWAPONOFF
 config BUSYBOX_CONFIG_FEATURE_SWAPON_DISCARD
 	bool "Support discard option -d"
 	default BUSYBOX_DEFAULT_FEATURE_SWAPON_DISCARD
-	depends on BUSYBOX_CONFIG_SWAPONOFF
+	depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_SWAPON_DISCARD
 config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI
 	bool "Support priority option -p"
 	default BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
-	depends on BUSYBOX_CONFIG_SWAPONOFF
+	depends on BUSYBOX_CONFIG_SWAPON
 	help
 	  Enable support for setting swap device priority in swapon.
 
+config BUSYBOX_CONFIG_SWAPOFF
+	bool "swapoff"
+	default BUSYBOX_DEFAULT_SWAPOFF
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  This option enables the 'swapoff' utility.
 config BUSYBOX_CONFIG_SWITCH_ROOT
 	bool "switch_root"
 	default BUSYBOX_DEFAULT_SWITCH_ROOT
@@ -751,7 +738,13 @@ config BUSYBOX_CONFIG_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_CONFIG_UEVENT
+	bool "uevent"
+	default BUSYBOX_DEFAULT_UEVENT
+	select BUSYBOX_CONFIG_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_CONFIG_UMOUNT
 	bool "umount"
 	default BUSYBOX_DEFAULT_UMOUNT
@@ -768,6 +761,13 @@ config BUSYBOX_CONFIG_FEATURE_UMOUNT_ALL
 	depends on BUSYBOX_CONFIG_UMOUNT
 	help
 	  Support -a option to unmount all currently mounted filesystems.
+config BUSYBOX_CONFIG_UNSHARE
+	bool "unshare"
+	default BUSYBOX_DEFAULT_UNSHARE
+	depends on BUSYBOX_CONFIG_LONG_OPTS && !BUSYBOX_CONFIG_NOMMU
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  Run program with some namespaces unshared from parent.
 
 comment "Common options for mount/umount"
 	depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT
diff --git a/package/utils/busybox/config/util-linux/volume_id/Config.in b/package/utils/busybox/config/util-linux/volume_id/Config.in
index 6153314..49a5785 100644
--- a/package/utils/busybox/config/util-linux/volume_id/Config.in
+++ b/package/utils/busybox/config/util-linux/volume_id/Config.in
@@ -189,6 +189,15 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
 	  TODO
 
 
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UBIFS
+	bool "UBIFS filesystem"
+	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UBIFS
+	depends on BUSYBOX_CONFIG_VOLUMEID
+	help
+	  UBIFS (Unsorted Block Image File System) is a file
+	  system for use with raw flash memory media.
+
+
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
 	bool "udf filesystem"
 	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF
diff --git a/package/utils/busybox/patches/002-libbb-send_to_from-do-not-require-that-to-should-hav.patch b/package/utils/busybox/patches/002-libbb-send_to_from-do-not-require-that-to-should-hav.patch
deleted file mode 100644
index f33c3b2..0000000
--- a/package/utils/busybox/patches/002-libbb-send_to_from-do-not-require-that-to-should-hav.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7cef4817d6d6d61a1166ed7dfc13537b95c65970 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux at googlemail.com>
-Date: Thu, 15 Sep 2016 13:20:51 +0200
-Subject: [PATCH] libbb:/send_to_from: do not require that "to" should have the
- same AF. Closes 9146
-
-Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
----
- libbb/udp_io.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
---- a/libbb/udp_io.c
-+++ b/libbb/udp_io.c
-@@ -70,7 +70,13 @@ send_to_from(int fd, void *buf, size_t l
- 	msg.msg_flags = flags;
- 
- 	cmsgptr = CMSG_FIRSTHDR(&msg);
--	if (to->sa_family == AF_INET && from->sa_family == AF_INET) {
-+	/*
-+	 * Users report that to->sa_family can be AF_INET6 too,
-+	 * if "to" was acquired by recv_from_to(). IOW: recv_from_to()
-+	 * was seen showing IPv6 "from" even when the destination
-+	 * of received packet (our local address) was IPv4.
-+	 */
-+	if (/* to->sa_family == AF_INET && */ from->sa_family == AF_INET) {
- 		struct in_pktinfo *pktptr;
- 		cmsgptr->cmsg_level = IPPROTO_IP;
- 		cmsgptr->cmsg_type = IP_PKTINFO;
-@@ -86,7 +92,7 @@ send_to_from(int fd, void *buf, size_t l
- 		pktptr->ipi_spec_dst = ((struct sockaddr_in*)from)->sin_addr;
- 	}
- # if ENABLE_FEATURE_IPV6 && defined(IPV6_PKTINFO)
--	else if (to->sa_family == AF_INET6 && from->sa_family == AF_INET6) {
-+	else if (/* to->sa_family == AF_INET6 && */ from->sa_family == AF_INET6) {
- 		struct in6_pktinfo *pktptr;
- 		cmsgptr->cmsg_level = IPPROTO_IPV6;
- 		cmsgptr->cmsg_type = IPV6_PKTINFO;
diff --git a/package/utils/busybox/patches/102-trylink_mktemp_fix.patch b/package/utils/busybox/patches/102-trylink_mktemp_fix.patch
deleted file mode 100644
index ed1dcbb..0000000
--- a/package/utils/busybox/patches/102-trylink_mktemp_fix.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/scripts/trylink
-+++ b/scripts/trylink
-@@ -46,7 +46,7 @@ try() {
- }
- 
- check_cc() {
--    local tempname="$(mktemp)"
-+    local tempname="$(mktemp /tmp/tmp.XXXXXXXXXX)"
-     local r
-     echo "int main(int argc,char**argv){return argv?argc:0;}" >"$tempname".c
-     # Can use "-o /dev/null", but older gcc tend to *unlink it* on failure! :(
-@@ -61,7 +61,7 @@ check_cc() {
- }
- 
- check_libc_is_glibc() {
--    local tempname="$(mktemp)"
-+    local tempname="$(mktemp /tmp/tmp.XXXXXXXXXX)"
-     local r
-     echo "\
- 	#include <stdlib.h>
diff --git a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch b/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch
index 4825bc8..682a68e 100644
--- a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch
+++ b/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch
@@ -1,6 +1,6 @@
 --- a/util-linux/mount.c
 +++ b/util-linux/mount.c
-@@ -237,9 +237,6 @@
+@@ -245,9 +245,6 @@
  #if ENABLE_FEATURE_MOUNT_NFS
  /* This is just a warning of a common mistake.  Possibly this should be a
   * uclibc faq entry rather than in busybox... */
diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
index 0fdaed5..8ef8f22 100644
--- a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
+++ b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -697,6 +697,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -704,6 +704,7 @@ static int bcast_or_ucast(struct dhcp_pa
  static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
  {
  	struct dhcp_packet packet;
@@ -8,7 +8,7 @@
  
  	/* Fill in: op, htype, hlen, cookie, chaddr fields,
  	 * random xid field (we override it below),
-@@ -714,6 +715,7 @@ static NOINLINE int send_discover(uint32
+@@ -721,6 +722,7 @@ static NOINLINE int send_discover(uint32
  	 */
  	add_client_options(&packet);
  
diff --git a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
index 4a9ae98..f5e3a07 100644
--- a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
+++ b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -1422,6 +1422,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1439,6 +1439,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
  		/* silence "uninitialized!" warning */
  		unsigned timestamp_before_wait = timestamp_before_wait;
  
diff --git a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
index 1e44552..3df8d93 100644
--- a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
+++ b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -1103,7 +1103,6 @@ static void perform_renew(void)
+@@ -1110,7 +1110,6 @@ static void perform_renew(void)
  		state = RENEW_REQUESTED;
  		break;
  	case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
diff --git a/package/utils/busybox/patches/240-telnetd_intr.patch b/package/utils/busybox/patches/240-telnetd_intr.patch
index d52ea3f..fec2a3a 100644
--- a/package/utils/busybox/patches/240-telnetd_intr.patch
+++ b/package/utils/busybox/patches/240-telnetd_intr.patch
@@ -1,6 +1,6 @@
 --- a/networking/telnetd.c
 +++ b/networking/telnetd.c
-@@ -333,6 +333,7 @@ make_new_session(
+@@ -497,6 +497,7 @@ make_new_session(
  
  	/* Restore default signal handling ASAP */
  	bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);
diff --git a/package/utils/busybox/patches/250-date-k-flag.patch b/package/utils/busybox/patches/250-date-k-flag.patch
index b2681a1..476440f 100644
--- a/package/utils/busybox/patches/250-date-k-flag.patch
+++ b/package/utils/busybox/patches/250-date-k-flag.patch
@@ -1,6 +1,6 @@
 --- a/coreutils/date.c
 +++ b/coreutils/date.c
-@@ -123,6 +123,7 @@
+@@ -122,6 +122,7 @@
  //usage:	IF_FEATURE_DATE_ISOFMT(
  //usage:     "\n	-D FMT		Use FMT for -d TIME conversion"
  //usage:	)
@@ -8,7 +8,7 @@
  //usage:     "\n"
  //usage:     "\nRecognized TIME formats:"
  //usage:     "\n	hh:mm[:ss]"
-@@ -139,9 +140,8 @@
+@@ -138,9 +139,8 @@
  
  #include "libbb.h"
  #include "common_bufsiz.h"
@@ -20,7 +20,7 @@
  
  enum {
  	OPT_RFC2822   = (1 << 0), /* R */
-@@ -149,8 +149,9 @@ enum {
+@@ -148,8 +148,9 @@ enum {
  	OPT_UTC       = (1 << 2), /* u */
  	OPT_DATE      = (1 << 3), /* d */
  	OPT_REFERENCE = (1 << 4), /* r */
@@ -32,7 +32,7 @@
  };
  
  static void maybe_set_utc(int opt)
-@@ -168,12 +169,15 @@ static const char date_longopts[] ALIGN1
+@@ -167,12 +168,15 @@ static const char date_longopts[] ALIGN1
  	/*	"universal\0" No_argument       "u" */
  		"date\0"      Required_argument "d"
  		"reference\0" Required_argument "r"
@@ -48,7 +48,7 @@
  	struct timespec ts;
  	struct tm tm_time;
  	char buf_fmt_dt2str[64];
-@@ -188,7 +192,7 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -187,7 +191,7 @@ int date_main(int argc UNUSED_PARAM, cha
  	opt_complementary = "d--s:s--d"
  		IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
  	IF_LONG_OPTS(applet_long_options = date_longopts;)
@@ -57,7 +57,7 @@
  			IF_FEATURE_DATE_ISOFMT("I::D:"),
  			&date_str, &date_str, &filename
  			IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
-@@ -245,6 +249,31 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -244,6 +248,31 @@ int date_main(int argc UNUSED_PARAM, cha
  	if (*argv)
  		bb_show_usage();
  
diff --git a/package/utils/busybox/patches/302-netlink-alignment.patch b/package/utils/busybox/patches/302-netlink-alignment.patch
deleted file mode 100644
index 4cd25b1..0000000
--- a/package/utils/busybox/patches/302-netlink-alignment.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From a843f09a4d4428cf11ca02307e60058251b05743 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke at hauke-m.de>
-Date: Fri, 16 Sep 2016 21:52:03 +0200
-Subject: [PATCH] libnetlink: fix alignment of netlink messages
-
-An padding to align a message should not only be added between
-different attributes of a netlink message, but also at the end of the
-message to pad it to the correct size.
-
-Without this patch the following command does not work and returns an
-error code:
-ip link add type nlmon
-
-Without this ip from busybox sends this:
-sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=45, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1474057401, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon"}, iov_len=45}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 45
-return value: 2
-
-The normal ip utile from iproute2 sends this:
-sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=48, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1473716938, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon\0\0\0"}, iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48
-return value: 0
-
-With this patch ip from busybox sends this:
-sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=48, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1473716908, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon\0\0\0"}, iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48
-return value: 0
-
-Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
----
- networking/libiproute/libnetlink.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
---- a/networking/libiproute/libnetlink.c
-+++ b/networking/libiproute/libnetlink.c
-@@ -338,14 +338,14 @@ int FAST_FUNC addattr32(struct nlmsghdr
- 	int len = RTA_LENGTH(4);
- 	struct rtattr *rta;
- 
--	if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) {
-+	if ((int)(NLMSG_ALIGN(n->nlmsg_len + len)) > maxlen) {
- 		return -1;
- 	}
- 	rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len));
- 	rta->rta_type = type;
- 	rta->rta_len = len;
- 	move_to_unaligned32(RTA_DATA(rta), data);
--	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len;
-+	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len + len);
- 	return 0;
- }
- 
-@@ -354,14 +354,14 @@ int FAST_FUNC addattr_l(struct nlmsghdr
- 	int len = RTA_LENGTH(alen);
- 	struct rtattr *rta;
- 
--	if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) {
-+	if ((int)(NLMSG_ALIGN(n->nlmsg_len + len)) > maxlen) {
- 		return -1;
- 	}
- 	rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len));
- 	rta->rta_type = type;
- 	rta->rta_len = len;
- 	memcpy(RTA_DATA(rta), data, alen);
--	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len;
-+	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len + len);
- 	return 0;
- }
- 
-@@ -370,14 +370,14 @@ int FAST_FUNC rta_addattr32(struct rtatt
- 	int len = RTA_LENGTH(4);
- 	struct rtattr *subrta;
- 
--	if (RTA_ALIGN(rta->rta_len) + len > maxlen) {
-+	if (RTA_ALIGN(rta->rta_len + len) > maxlen) {
- 		return -1;
- 	}
- 	subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len));
- 	subrta->rta_type = type;
- 	subrta->rta_len = len;
- 	move_to_unaligned32(RTA_DATA(subrta), data);
--	rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len;
-+	rta->rta_len = NLMSG_ALIGN(rta->rta_len + len);
- 	return 0;
- }
- 
-@@ -386,14 +386,14 @@ int FAST_FUNC rta_addattr_l(struct rtatt
- 	struct rtattr *subrta;
- 	int len = RTA_LENGTH(alen);
- 
--	if (RTA_ALIGN(rta->rta_len) + len > maxlen) {
-+	if (RTA_ALIGN(rta->rta_len + len) > maxlen) {
- 		return -1;
- 	}
- 	subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len));
- 	subrta->rta_type = type;
- 	subrta->rta_len = len;
- 	memcpy(RTA_DATA(subrta), data, alen);
--	rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len;
-+	rta->rta_len = NLMSG_ALIGN(rta->rta_len + len);
- 	return 0;
- }
- 
diff --git a/package/utils/busybox/patches/303-ip-route-fix-high-table-ids.patch b/package/utils/busybox/patches/303-ip-route-fix-high-table-ids.patch
deleted file mode 100644
index d7a38f6..0000000
--- a/package/utils/busybox/patches/303-ip-route-fix-high-table-ids.patch
+++ /dev/null
@@ -1,486 +0,0 @@
-From 485fcc89b99eae9cc7501eaff344b104e52ab7bf Mon Sep 17 00:00:00 2001
-From: Jo-Philipp Wich <jo at mein.io>
-Date: Mon, 26 Sep 2016 17:48:22 +0200
-Subject: [PATCH] iproute: properly support high routing table IDs
-
-The Linux kernel uses two distinct fields to denote the routing table ID in
-use by network routes; the 8 bit `rtm_table` member of `struct rtmsg` and the
-32 bit `RTA_TABLE` netlink attribute.
-
-If a routing table ID is larger than 255, the `RT_TABLE` attribute must be used
-and the `rtm_table` field has to be set to the special `RT_TABLE_UNSPEC` value.
-
-This commit ...
- - switches the *_n2a() and *_a2n() functions of rt_names.c to use dynamically
-   sized, name-sorted arrays instead of fixed arrays limited to 1024 slots in
-   order to support IDs up to 65535
- - adds proper handling of high table IDs to iprule.c and iproute.c when
-   adding, removing and dumping ip rules and network routes
-
-After this change, the Busybox ip applet fully supports IP rules with high ID
-numbers, using the same logic as the full iproute2.
-
-Signed-off-by: Jo-Philipp Wich <jo at mein.io>
----
- networking/libiproute/iproute.c  |  75 ++++++++------
- networking/libiproute/iprule.c   |   4 +-
- networking/libiproute/rt_names.c | 204 +++++++++++++++++++++++----------------
- 3 files changed, 169 insertions(+), 114 deletions(-)
-
---- a/networking/libiproute/iproute.c
-+++ b/networking/libiproute/iproute.c
-@@ -66,6 +66,7 @@ static int FAST_FUNC print_route(const s
- 	inet_prefix dst;
- 	inet_prefix src;
- 	int host_len = -1;
-+	uint32_t rtable;
- 
- 	if (n->nlmsg_type != RTM_NEWROUTE && n->nlmsg_type != RTM_DELROUTE) {
- 		fprintf(stderr, "Not a route: %08x %08x %08x\n",
-@@ -83,34 +84,6 @@ static int FAST_FUNC print_route(const s
- 	else if (r->rtm_family == AF_INET)
- 		host_len = 32;
- 
--	if (r->rtm_family == AF_INET6) {
--		if (G_filter.tb) {
--			if (G_filter.tb < 0) {
--				if (!(r->rtm_flags & RTM_F_CLONED)) {
--					return 0;
--				}
--			} else {
--				if (r->rtm_flags & RTM_F_CLONED) {
--					return 0;
--				}
--				if (G_filter.tb == RT_TABLE_LOCAL) {
--					if (r->rtm_type != RTN_LOCAL) {
--						return 0;
--					}
--				} else if (G_filter.tb == RT_TABLE_MAIN) {
--					if (r->rtm_type == RTN_LOCAL) {
--						return 0;
--					}
--				} else {
--					return 0;
--				}
--			}
--		}
--	} else {
--		if (G_filter.tb > 0 && G_filter.tb != r->rtm_table) {
--			return 0;
--		}
--	}
- 	if (G_filter.rdst.family
- 	 && (r->rtm_family != G_filter.rdst.family || G_filter.rdst.bitlen > r->rtm_dst_len)
- 	) {
-@@ -141,6 +114,37 @@ static int FAST_FUNC print_route(const s
- 	memset(&dst, 0, sizeof(dst));
- 	parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len);
- 
-+	rtable = tb[RTA_TABLE] ? *(uint32_t*)RTA_DATA(tb[RTA_TABLE]) : r->rtm_table;
-+
-+	if (G_filter.tb) {
-+		if (r->rtm_family == AF_INET6) {
-+			if (G_filter.tb < 0) {
-+				if (!(r->rtm_flags & RTM_F_CLONED)) {
-+					return 0;
-+				}
-+			} else {
-+				if (r->rtm_flags & RTM_F_CLONED) {
-+					return 0;
-+				}
-+				if (G_filter.tb == RT_TABLE_LOCAL) {
-+					if (r->rtm_type != RTN_LOCAL) {
-+						return 0;
-+					}
-+				} else if (G_filter.tb == RT_TABLE_MAIN) {
-+					if (r->rtm_type == RTN_LOCAL) {
-+						return 0;
-+					}
-+				} else if (G_filter.tb != rtable) {
-+					return 0;
-+				}
-+			}
-+		} else {
-+			if (G_filter.tb != rtable) {
-+				return 0;
-+			}
-+		}
-+	}
-+
- 	if (tb[RTA_SRC]) {
- 		src.bitlen = r->rtm_src_len;
- 		src.bytelen = (r->rtm_family == AF_INET6 ? 16 : 4);
-@@ -349,7 +353,9 @@ IF_FEATURE_IP_RULE(ARG_table,)
- 	smalluint ok = 0;
- 	smalluint scope_ok = 0;
- 	int arg;
--
-+#if ENABLE_FEATURE_IP_RULE
-+	uint32_t rtable = 0;
-+#endif
- 	memset(&req, 0, sizeof(req));
- 
- 	req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
-@@ -419,7 +425,7 @@ IF_FEATURE_IP_RULE(ARG_table,)
- 			NEXT_ARG();
- 			if (rtnl_rttable_a2n(&tid, *argv))
- 				invarg_1_to_2(*argv, "table");
--			req.r.rtm_table = tid;
-+			rtable = tid;
- #endif
- 		} else if (arg == ARG_dev || arg == ARG_oif) {
- 			NEXT_ARG();
-@@ -475,6 +481,15 @@ IF_FEATURE_IP_RULE(ARG_table,)
- 		}
- 	}
- 
-+#if ENABLE_FEATURE_IP_RULE
-+	if (rtable >= 256) {
-+		addattr32(&req.n, sizeof(req), RTA_TABLE, rtable);
-+		req.r.rtm_table = RT_TABLE_UNSPEC;
-+	} else if (rtable > 0) {
-+		req.r.rtm_table = rtable;
-+	}
-+#endif
-+
- 	if (mxrta->rta_len > RTA_LENGTH(0)) {
- 		if (mxlock) {
- 			rta_addattr32(mxrta, sizeof(mxbuf), RTAX_LOCK, mxlock);
---- a/networking/libiproute/iprule.c
-+++ b/networking/libiproute/iprule.c
-@@ -114,7 +114,9 @@ static int FAST_FUNC print_rule(const st
- 		printf("iif %s ", (char*)RTA_DATA(tb[RTA_IIF]));
- 	}
- 
--	if (r->rtm_table)
-+	if (tb[RTA_TABLE])
-+		printf("lookup %s ", rtnl_rttable_n2a(*(uint32_t*)RTA_DATA(tb[RTA_TABLE])));
-+	else if (r->rtm_table)
- 		printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table));
- 
- 	if (tb[RTA_FLOW]) {
---- a/networking/libiproute/rt_names.c
-+++ b/networking/libiproute/rt_names.c
-@@ -11,21 +11,26 @@
- #include "rt_names.h"
- 
- #define CONFDIR          CONFIG_FEATURE_IP_ROUTE_DIR
-+#define RT_TABLE_MAX	65535
-+
-+struct rtnl_tab_entry {
-+	unsigned int id;
-+	const char *name;
-+};
- 
- typedef struct rtnl_tab_t {
--	const char *cached_str;
--	unsigned cached_result;
--	/* upstream version switched to a hash table and removed
--	 * id < 256 limit. For now bbox bumps this array size from 256
--	 * to 1024. If you plan to change this to a hash table,
--	 * consider merging several hash tables we have (for example,
--	 * awk has resizable one!
--	 */
--#define RT_TABLE_MAX 1023
--	const char *tab[RT_TABLE_MAX+1];
-+	struct rtnl_tab_entry *tab;
-+	size_t length;
- } rtnl_tab_t;
- 
--static void rtnl_tab_initialize(const char *file, const char **tab)
-+static int tabcmp(const void *p1, const void *p2)
-+{
-+	const struct rtnl_tab_entry *e1 = p1;
-+	const struct rtnl_tab_entry *e2 = p2;
-+	return strcmp(e1->name, e2->name);
-+}
-+
-+static void rtnl_tab_initialize(const char *file, rtnl_tab_t *tab)
- {
- 	char *token[2];
- 	char fullname[sizeof(CONFDIR"/rt_dsfield") + 8];
-@@ -40,34 +45,42 @@ static void rtnl_tab_initialize(const ch
- 				file, parser->lineno);
- 			break;
- 		}
--		tab[id] = xstrdup(token[1]);
-+
-+		tab->tab = xrealloc(tab->tab, (tab->length + 1) * sizeof(*tab->tab));
-+		tab->tab[tab->length].id = id;
-+		tab->tab[tab->length].name = xstrdup(token[1]);
-+		tab->length++;
- 	}
- 	config_close(parser);
-+	qsort(tab->tab, tab->length, sizeof(*tab->tab), tabcmp);
- }
- 
- static int rtnl_a2n(rtnl_tab_t *tab, uint32_t *id, const char *arg, int base)
- {
--	unsigned i;
--
--	if (tab->cached_str && strcmp(tab->cached_str, arg) == 0) {
--		*id = tab->cached_result;
--		return 0;
--	}
-+	int delta;
-+	ssize_t l = 0;
-+	ssize_t r = tab->length - 1;
-+	ssize_t m;
-+	uint32_t i;
-+
-+	while (l <= r) {
-+		m = l + (r - l) / 2;
-+		delta = strcmp(tab->tab[m].name, arg);
- 
--	for (i = 0; i <= RT_TABLE_MAX; i++) {
--		if (tab->tab[i]
--		 && strcmp(tab->tab[i], arg) == 0
--		) {
--			tab->cached_str = tab->tab[i];
--			tab->cached_result = i;
--			*id = i;
-+		if (delta == 0) {
-+			*id = tab->tab[m].id;
- 			return 0;
-+		} else if (delta < 0) {
-+			l = m + 1;
-+		} else {
-+			r = m - 1;
- 		}
- 	}
- 
- 	i = bb_strtou(arg, NULL, base);
- 	if (i > RT_TABLE_MAX)
- 		return -1;
-+
- 	*id = i;
- 	return 0;
- }
-@@ -77,40 +90,39 @@ static rtnl_tab_t *rtnl_rtprot_tab;
- 
- static void rtnl_rtprot_initialize(void)
- {
--	static const char *const init_tab[] = {
--		"none",
--		"redirect",
--		"kernel",
--		"boot",
--		"static",
--		NULL,
--		NULL,
--		NULL,
--		"gated",
--		"ra",
--		"mrt",
--		"zebra",
--		"bird",
-+	static const struct rtnl_tab_entry init_tab[] = {
-+		{  0, "none"     },
-+		{  1, "redirect" },
-+		{  2, "kernel"   },
-+		{  3, "boot"     },
-+		{  4, "static"   },
-+		{  8, "gated"    },
-+		{  9, "ra"       },
-+		{ 10, "mrt"      },
-+		{ 11, "zebra"    },
-+		{ 12, "bird"     }
- 	};
- 
- 	if (rtnl_rtprot_tab)
- 		return;
- 	rtnl_rtprot_tab = xzalloc(sizeof(*rtnl_rtprot_tab));
-+	rtnl_rtprot_tab->tab = xzalloc(sizeof(init_tab));
-+	rtnl_rtprot_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
- 	memcpy(rtnl_rtprot_tab->tab, init_tab, sizeof(init_tab));
--	rtnl_tab_initialize("protos", rtnl_rtprot_tab->tab);
-+	rtnl_tab_initialize("protos", rtnl_rtprot_tab);
- }
- 
- #if 0 /* UNUSED */
- const char* FAST_FUNC rtnl_rtprot_n2a(int id)
- {
--	if (id < 0 || id > RT_TABLE_MAX) {
--		return itoa(id);
--	}
-+	size_t i;
- 
- 	rtnl_rtprot_initialize();
- 
--	if (rtnl_rtprot_tab->tab[id])
--		return rtnl_rtprot_tab->tab[id];
-+	for (i = 0; i < rtnl_rtprot_tab->length; i++)
-+		if (rtnl_rtprot_tab->tab[i].id == id)
-+			return rtnl_rtprot_tab->tab[i].name;
-+
- 	return itoa(id);
- }
- #endif
-@@ -126,27 +138,33 @@ static rtnl_tab_t *rtnl_rtscope_tab;
- 
- static void rtnl_rtscope_initialize(void)
- {
-+	static const struct rtnl_tab_entry init_tab[] = {
-+		{   0, "global"  },
-+		{ 200, "site"    },
-+		{ 253, "link"    },
-+		{ 254, "host"    },
-+		{ 255, "nowhere" }
-+	};
-+
- 	if (rtnl_rtscope_tab)
- 		return;
- 	rtnl_rtscope_tab = xzalloc(sizeof(*rtnl_rtscope_tab));
--	rtnl_rtscope_tab->tab[0] = "global";
--	rtnl_rtscope_tab->tab[255] = "nowhere";
--	rtnl_rtscope_tab->tab[254] = "host";
--	rtnl_rtscope_tab->tab[253] = "link";
--	rtnl_rtscope_tab->tab[200] = "site";
--	rtnl_tab_initialize("scopes", rtnl_rtscope_tab->tab);
-+	rtnl_rtscope_tab->tab = xzalloc(sizeof(init_tab));
-+	rtnl_rtscope_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
-+	memcpy(rtnl_rtscope_tab->tab, init_tab, sizeof(init_tab));
-+	rtnl_tab_initialize("scopes", rtnl_rtscope_tab);
- }
- 
- const char* FAST_FUNC rtnl_rtscope_n2a(int id)
- {
--	if (id < 0 || id > RT_TABLE_MAX) {
--		return itoa(id);
--	}
-+	size_t i;
- 
- 	rtnl_rtscope_initialize();
- 
--	if (rtnl_rtscope_tab->tab[id])
--		return rtnl_rtscope_tab->tab[id];
-+	for (i = 0; i < rtnl_rtscope_tab->length; i++)
-+		if (rtnl_rtscope_tab->tab[i].id == id)
-+			return rtnl_rtscope_tab->tab[i].name;
-+
- 	return itoa(id);
- }
- 
-@@ -161,10 +179,17 @@ static rtnl_tab_t *rtnl_rtrealm_tab;
- 
- static void rtnl_rtrealm_initialize(void)
- {
--	if (rtnl_rtrealm_tab) return;
-+	static const struct rtnl_tab_entry init_tab[] = {
-+		{ 0, "unknown" }
-+	};
-+
-+	if (rtnl_rtrealm_tab)
-+		return;
- 	rtnl_rtrealm_tab = xzalloc(sizeof(*rtnl_rtrealm_tab));
--	rtnl_rtrealm_tab->tab[0] = "unknown";
--	rtnl_tab_initialize("realms", rtnl_rtrealm_tab->tab);
-+	rtnl_rtrealm_tab->tab = xzalloc(sizeof(init_tab));
-+	rtnl_rtrealm_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
-+	memcpy(rtnl_rtrealm_tab->tab, init_tab, sizeof(init_tab));
-+	rtnl_tab_initialize("realms", rtnl_rtrealm_tab);
- }
- 
- int FAST_FUNC rtnl_rtrealm_a2n(uint32_t *id, char *arg)
-@@ -176,14 +201,14 @@ int FAST_FUNC rtnl_rtrealm_a2n(uint32_t
- #if ENABLE_FEATURE_IP_RULE
- const char* FAST_FUNC rtnl_rtrealm_n2a(int id)
- {
--	if (id < 0 || id > RT_TABLE_MAX) {
--		return itoa(id);
--	}
-+	size_t i;
- 
- 	rtnl_rtrealm_initialize();
- 
--	if (rtnl_rtrealm_tab->tab[id])
--		return rtnl_rtrealm_tab->tab[id];
-+	for (i = 0; i < rtnl_rtrealm_tab->length; i++)
-+		if (rtnl_rtrealm_tab->tab[i].id == id)
-+			return rtnl_rtrealm_tab->tab[i].name;
-+
- 	return itoa(id);
- }
- #endif
-@@ -193,22 +218,29 @@ static rtnl_tab_t *rtnl_rtdsfield_tab;
- 
- static void rtnl_rtdsfield_initialize(void)
- {
--	if (rtnl_rtdsfield_tab) return;
-+	static const struct rtnl_tab_entry init_tab[] = {
-+		{ 0, "0" }
-+	};
-+
-+	if (rtnl_rtdsfield_tab)
-+		return;
- 	rtnl_rtdsfield_tab = xzalloc(sizeof(*rtnl_rtdsfield_tab));
--	rtnl_rtdsfield_tab->tab[0] = "0";
--	rtnl_tab_initialize("dsfield", rtnl_rtdsfield_tab->tab);
-+	rtnl_rtdsfield_tab->tab = xzalloc(sizeof(init_tab));
-+	rtnl_rtdsfield_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
-+	memcpy(rtnl_rtdsfield_tab->tab, init_tab, sizeof(init_tab));
-+	rtnl_tab_initialize("dsfield", rtnl_rtdsfield_tab);
- }
- 
- const char* FAST_FUNC rtnl_dsfield_n2a(int id)
- {
--	if (id < 0 || id > RT_TABLE_MAX) {
--		return itoa(id);
--	}
-+	size_t i;
- 
- 	rtnl_rtdsfield_initialize();
- 
--	if (rtnl_rtdsfield_tab->tab[id])
--		return rtnl_rtdsfield_tab->tab[id];
-+	for (i = 0; i < rtnl_rtdsfield_tab->length; i++)
-+		if (rtnl_rtdsfield_tab->tab[i].id == id)
-+			return rtnl_rtdsfield_tab->tab[i].name;
-+
- 	return itoa(id);
- }
- 
-@@ -224,27 +256,33 @@ static rtnl_tab_t *rtnl_rttable_tab;
- 
- static void rtnl_rttable_initialize(void)
- {
-+	static const struct rtnl_tab_entry tab_init[] = {
-+		{   0, "unspec"  },
-+		{ 253, "default" },
-+		{ 254, "main"    },
-+		{ 255, "local"   }
-+	};
-+
- 	if (rtnl_rttable_tab)
- 		return;
- 
- 	rtnl_rttable_tab = xzalloc(sizeof(*rtnl_rttable_tab));
--	rtnl_rttable_tab->tab[0] = "unspec";
--	rtnl_rttable_tab->tab[255] = "local";
--	rtnl_rttable_tab->tab[254] = "main";
--	rtnl_rttable_tab->tab[253] = "default";
--	rtnl_tab_initialize("tables", rtnl_rttable_tab->tab);
-+	rtnl_rttable_tab->tab = xzalloc(sizeof(tab_init));
-+	rtnl_rttable_tab->length = sizeof(tab_init) / sizeof(tab_init[0]);
-+	memcpy(rtnl_rttable_tab->tab, tab_init, sizeof(tab_init));
-+	rtnl_tab_initialize("tables", rtnl_rttable_tab);
- }
- 
- const char* FAST_FUNC rtnl_rttable_n2a(int id)
- {
--	if (id < 0 || id > RT_TABLE_MAX) {
--		return itoa(id);
--	}
-+	size_t i;
- 
- 	rtnl_rttable_initialize();
- 
--	if (rtnl_rttable_tab->tab[id])
--		return rtnl_rttable_tab->tab[id];
-+	for (i = 0; i < rtnl_rttable_tab->length; i++)
-+		if (rtnl_rttable_tab->tab[i].id == id)
-+			return rtnl_rttable_tab->tab[i].name;
-+
- 	return itoa(id);
- }
- 
-- 
2.1.4




More information about the Lede-dev mailing list