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

Koen Vandeputte koen.vandeputte at ncentric.com
Thu Jan 5 02:02:50 PST 2017


Compile & run-tested on cns3xxx

Tested-by: Koen Vandeputte <koen.vandeputte at ncentric.com>

On 2017-01-04 23:54, Magnus Kroken wrote:
> 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);
> - }
> -

-- 
Koen Vandeputte - Software Developer
koen.vandeputte at ncentric.com | +32499736158




More information about the Lede-dev mailing list