[LEDE-DEV] [PATCH] busybox: update to version 1.25.0

Hauke Mehrtens hauke at hauke-m.de
Sun Sep 18 14:46:40 PDT 2016


cd config
../convert_menuconfig.pl .../build_dir/target-*/busybox-1.25.0
cd ..
./convert_defaults.pl < .../build_dir/target-*/busybox-1.25.0/.config > Config-defaults.in

Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/utils/busybox/Config-defaults.in           | 169 +++++++++++++--------
 package/utils/busybox/Makefile                     |   4 +-
 package/utils/busybox/config/Config.in             |  22 +++
 package/utils/busybox/config/archival/Config.in    |  29 ++--
 package/utils/busybox/config/coreutils/Config.in   |  39 +++--
 package/utils/busybox/config/debianutils/Config.in |   5 -
 package/utils/busybox/config/e2fsprogs/Config.in   |  34 ++---
 package/utils/busybox/config/init/Config.in        |  49 +++---
 package/utils/busybox/config/libbb/Config.in       |  48 ++++--
 package/utils/busybox/config/loginutils/Config.in  | 112 +++++++-------
 package/utils/busybox/config/miscutils/Config.in   |  22 ++-
 package/utils/busybox/config/modutils/Config.in    |   3 -
 package/utils/busybox/config/networking/Config.in  |  15 +-
 package/utils/busybox/config/printutils/Config.in  |   2 -
 package/utils/busybox/config/runit/Config.in       |  65 ++++----
 package/utils/busybox/config/sysklogd/Config.in    | 121 +++++++--------
 package/utils/busybox/config/util-linux/Config.in  |  45 ++++--
 .../busybox/config/util-linux/volume_id/Config.in  |   8 +
 .../busybox/patches/001-resource_h_include.patch   |   2 +-
 ...fix-uninitialized-memory-when-displaying-.patch |  23 ---
 ...libiproute-fix-displaying-route-table-for.patch |   2 +-
 ...lem-on-mips64-n64-big-endian-musl-systems.patch |  75 ---------
 .../patches/120-remove_uclibc_rpc_check.patch      |   2 +-
 .../busybox/patches/200-udhcpc_reduce_msgs.patch   |   8 +-
 .../patches/201-udhcpc_changed_ifindex.patch       |   2 +-
 .../patches/203-udhcpc_renew_no_deconfig.patch     |   2 +-
 .../busybox/patches/204-udhcpc_src_ip_rebind.patch |  51 -------
 .../busybox/patches/210-add_netmsg_util.patch      |   4 +-
 .../utils/busybox/patches/220-add_lock_util.patch  |  16 +-
 .../busybox/patches/230-ntpd_delayed_resolve.patch |  48 ------
 .../utils/busybox/patches/240-telnetd_intr.patch   |   2 +-
 .../utils/busybox/patches/250-date-k-flag.patch    |  12 +-
 32 files changed, 482 insertions(+), 559 deletions(-)
 delete mode 100644 package/utils/busybox/patches/010-networking-fix-uninitialized-memory-when-displaying-.patch
 delete mode 100644 package/utils/busybox/patches/030-ip-fix-problem-on-mips64-n64-big-endian-musl-systems.patch
 delete mode 100644 package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch
 delete mode 100644 package/utils/busybox/patches/230-ntpd_delayed_resolve.patch

diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index 105a3fc..11cce03 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -34,6 +34,9 @@ config BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE
 config BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE
 	bool
 	default y
+config BUSYBOX_DEFAULT_BUSYBOX
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_INSTALLER
 	bool
 	default n
@@ -166,6 +169,9 @@ config BUSYBOX_DEFAULT_DEBUG
 config BUSYBOX_DEFAULT_DEBUG_PESSIMIZE
 	bool
 	default n
+config BUSYBOX_DEFAULT_DEBUG_SANITIZE
+	bool
+	default n
 config BUSYBOX_DEFAULT_UNIT_TEST
 	bool
 	default n
@@ -205,7 +211,7 @@ config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_SCRIPT_WRAPPER
 config BUSYBOX_DEFAULT_PREFIX
 	string
 	default "./_install"
-config BUSYBOX_DEFAULT_FEATURE_SYSTEMD
+config BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_RTMINMAX
@@ -313,6 +319,9 @@ config BUSYBOX_DEFAULT_UNCOMPRESS
 config BUSYBOX_DEFAULT_GUNZIP
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_GUNZIP_LONG_OPTIONS
+	bool
+	default n
 config BUSYBOX_DEFAULT_BUNZIP2
 	bool
 	default y
@@ -460,6 +469,15 @@ config BUSYBOX_DEFAULT_GROUPS
 config BUSYBOX_DEFAULT_SHUF
 	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_SYNC
 	bool
 	default y
@@ -733,12 +751,6 @@ 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_STTY
 	bool
 	default n
@@ -1117,6 +1129,9 @@ config BUSYBOX_DEFAULT_TELINIT_PATH
 config BUSYBOX_DEFAULT_INIT
 	bool
 	default n
+config BUSYBOX_DEFAULT_LINUXRC
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_USE_INITTAB
 	bool
 	default n
@@ -1138,22 +1153,16 @@ config BUSYBOX_DEFAULT_FEATURE_EXTRA_QUIET
 config BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_INITRD
-	bool
-	default n
 config BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE
 	string
 	default ""
-config BUSYBOX_DEFAULT_MESG
+config BUSYBOX_DEFAULT_FEATURE_INIT_MODIFY_CMDLINE
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP
-	bool
-	default n
-config BUSYBOX_DEFAULT_ADD_SHELL
+config BUSYBOX_DEFAULT_MESG
 	bool
 	default n
-config BUSYBOX_DEFAULT_REMOVE_SHELL
+config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS
@@ -1171,6 +1180,21 @@ config BUSYBOX_DEFAULT_USE_BB_CRYPT
 config BUSYBOX_DEFAULT_USE_BB_CRYPT_SHA
 	bool
 	default n
+config BUSYBOX_DEFAULT_ADD_SHELL
+	bool
+	default n
+config BUSYBOX_DEFAULT_REMOVE_SHELL
+	bool
+	default n
+config BUSYBOX_DEFAULT_ADDGROUP
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_ADDGROUP_LONG_OPTIONS
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_ADDUSER_TO_GROUP
+	bool
+	default n
 config BUSYBOX_DEFAULT_ADDUSER
 	bool
 	default n
@@ -1189,13 +1213,16 @@ config BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
 config BUSYBOX_DEFAULT_LAST_SYSTEM_ID
 	int
 	default 0
-config BUSYBOX_DEFAULT_ADDGROUP
+config BUSYBOX_DEFAULT_CHPASSWD
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_ADDGROUP_LONG_OPTIONS
+config BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
+	string
+	default "md5"
+config BUSYBOX_DEFAULT_CRYPTPW
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_ADDUSER_TO_GROUP
+config BUSYBOX_DEFAULT_MKPASSWD
 	bool
 	default n
 config BUSYBOX_DEFAULT_DELUSER
@@ -1231,15 +1258,6 @@ config BUSYBOX_DEFAULT_PASSWD
 config BUSYBOX_DEFAULT_FEATURE_PASSWD_WEAK_CHECK
 	bool
 	default y
-config BUSYBOX_DEFAULT_CRYPTPW
-	bool
-	default n
-config BUSYBOX_DEFAULT_CHPASSWD
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
-	string
-	default "md5"
 config BUSYBOX_DEFAULT_SU
 	bool
 	default n
@@ -1336,6 +1354,9 @@ config BUSYBOX_DEFAULT_DEFAULT_MODULES_DIR
 config BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
 	string
 	default ""
+config BUSYBOX_DEFAULT_BLKDISCARD
+	bool
+	default n
 config BUSYBOX_DEFAULT_BLOCKDEV
 	bool
 	default n
@@ -1393,12 +1414,24 @@ config BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB
 config BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
 	bool
 	default n
+config BUSYBOX_DEFAULT_NSENTER
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS
+	bool
+	default n
 config BUSYBOX_DEFAULT_REV
 	bool
 	default n
+config BUSYBOX_DEFAULT_SETARCH
+	bool
+	default n
 config BUSYBOX_DEFAULT_UEVENT
 	bool
 	default n
+config BUSYBOX_DEFAULT_UNSHARE
+	bool
+	default n
 config BUSYBOX_DEFAULT_ACPID
 	bool
 	default n
@@ -1555,9 +1588,6 @@ config BUSYBOX_DEFAULT_SCRIPT
 config BUSYBOX_DEFAULT_SCRIPTREPLAY
 	bool
 	default n
-config BUSYBOX_DEFAULT_SETARCH
-	bool
-	default n
 config BUSYBOX_DEFAULT_SWAPONOFF
 	bool
 	default n
@@ -1588,6 +1618,9 @@ config BUSYBOX_DEFAULT_FEATURE_MTAB_SUPPORT
 config BUSYBOX_DEFAULT_VOLUMEID
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BCACHE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
 	bool
 	default n
@@ -1747,6 +1780,9 @@ config BUSYBOX_DEFAULT_UBIRSVOL
 config BUSYBOX_DEFAULT_UBIUPDATEVOL
 	bool
 	default n
+config BUSYBOX_DEFAULT_UBIRENAME
+	bool
+	default n
 config BUSYBOX_DEFAULT_WALL
 	bool
 	default n
@@ -1852,9 +1888,6 @@ config BUSYBOX_DEFAULT_INOTIFYD
 config BUSYBOX_DEFAULT_LAST
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_LAST_SMALL
-	bool
-	default n
 config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
 	bool
 	default n
@@ -1971,13 +2004,13 @@ config BUSYBOX_DEFAULT_WGET
 	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
 	bool
-	default y
+	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
 	bool
-	default y
+	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
 	bool
-	default y
+	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
 	bool
 	default n
@@ -2179,6 +2212,9 @@ config BUSYBOX_DEFAULT_FEATURE_IP_TUNNEL
 config BUSYBOX_DEFAULT_FEATURE_IP_RULE
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_IP_NEIGH
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
 	bool
 	default n
@@ -2200,6 +2236,9 @@ config BUSYBOX_DEFAULT_IPTUNNEL
 config BUSYBOX_DEFAULT_IPRULE
 	bool
 	default n
+config BUSYBOX_DEFAULT_IPNEIGH
+	bool
+	default n
 config BUSYBOX_DEFAULT_IPCALC
 	bool
 	default n
@@ -2509,37 +2548,37 @@ config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
 config BUSYBOX_DEFAULT_WATCH
 	bool
 	default n
-config BUSYBOX_DEFAULT_RUNSV
+config BUSYBOX_DEFAULT_CHPST
 	bool
 	default n
-config BUSYBOX_DEFAULT_RUNSVDIR
+config BUSYBOX_DEFAULT_SETUIDGID
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_RUNSVDIR_LOG
+config BUSYBOX_DEFAULT_ENVUIDGID
 	bool
 	default n
-config BUSYBOX_DEFAULT_SV
+config BUSYBOX_DEFAULT_ENVDIR
 	bool
 	default n
-config BUSYBOX_DEFAULT_SV_DEFAULT_SERVICE_DIR
-	string
-	default ""
-config BUSYBOX_DEFAULT_SVLOGD
+config BUSYBOX_DEFAULT_SOFTLIMIT
 	bool
 	default n
-config BUSYBOX_DEFAULT_CHPST
+config BUSYBOX_DEFAULT_RUNSV
 	bool
 	default n
-config BUSYBOX_DEFAULT_SETUIDGID
+config BUSYBOX_DEFAULT_RUNSVDIR
 	bool
 	default n
-config BUSYBOX_DEFAULT_ENVUIDGID
+config BUSYBOX_DEFAULT_FEATURE_RUNSVDIR_LOG
 	bool
 	default n
-config BUSYBOX_DEFAULT_ENVDIR
+config BUSYBOX_DEFAULT_SV
 	bool
 	default n
-config BUSYBOX_DEFAULT_SOFTLIMIT
+config BUSYBOX_DEFAULT_SV_DEFAULT_SERVICE_DIR
+	string
+	default ""
+config BUSYBOX_DEFAULT_SVLOGD
 	bool
 	default n
 config BUSYBOX_DEFAULT_CHCON
@@ -2722,6 +2761,21 @@ config BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
 config BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
 	bool
 	default n
+config BUSYBOX_DEFAULT_KLOGD
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_KLOGD_KLOGCTL
+	bool
+	default n
+config BUSYBOX_DEFAULT_LOGGER
+	bool
+	default y
+config BUSYBOX_DEFAULT_LOGREAD
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_LOGREAD_REDUCED_LOCKING
+	bool
+	default n
 config BUSYBOX_DEFAULT_SYSLOGD
 	bool
 	default n
@@ -2746,21 +2800,6 @@ config BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG
 config BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG_BUFFER_SIZE
 	int
 	default 0
-config BUSYBOX_DEFAULT_LOGREAD
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_LOGREAD_REDUCED_LOCKING
-	bool
-	default n
 config BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG
 	bool
 	default n
-config BUSYBOX_DEFAULT_KLOGD
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_KLOGD_KLOGCTL
-	bool
-	default n
-config BUSYBOX_DEFAULT_LOGGER
-	bool
-	default y
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index 5767e36..a50f3aa 100644
--- a/package/utils/busybox/Makefile
+++ b/package/utils/busybox/Makefile
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
-PKG_VERSION:=1.24.2
-PKG_RELEASE:=4
+PKG_VERSION:=1.25.0
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/package/utils/busybox/config/Config.in b/package/utils/busybox/config/Config.in
index 113eb62..3bf67c5 100644
--- a/package/utils/busybox/config/Config.in
+++ b/package/utils/busybox/config/Config.in
@@ -115,9 +115,21 @@ config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
 	  and have very little memory, this might not be a win. Otherwise,
 	  you probably want this.
 
+config BUSYBOX_CONFIG_BUSYBOX
+	bool "Include busybox applet"
+	default BUSYBOX_DEFAULT_BUSYBOX
+	help
+	  The busybox applet provides general help regarding busybox and
+	  allows the included applets to be listed.  It's also required
+	  if applet links are to be installed at runtime.
+
+	  If you can live without these features disabling this will save
+	  some space.
+
 config BUSYBOX_CONFIG_FEATURE_INSTALLER
 	bool "Support --install [-s] to install applet links at runtime"
 	default BUSYBOX_DEFAULT_FEATURE_INSTALLER
+	depends on BUSYBOX_CONFIG_BUSYBOX
 	help
 	  Enable 'busybox --install [-s]' support. This will allow you to use
 	  busybox at runtime to create hard links or symlinks for all the
@@ -687,6 +699,16 @@ config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
 	  in a much bigger executable that more closely matches the source
 	  code.
 
+config BUSYBOX_CONFIG_DEBUG_SANITIZE
+	bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)"
+	default BUSYBOX_DEFAULT_DEBUG_SANITIZE
+	help
+	  Say Y here if you want to enable runtime sanitizers. These help
+	  catch bad memory accesses (e.g. buffer overflows), but will make
+	  the executable larger and slow down runtime a bit.
+
+	  If you aren't developing/testing busybox, say N here.
+
 config BUSYBOX_CONFIG_UNIT_TEST
 	bool "Build unit tests"
 	default BUSYBOX_DEFAULT_UNIT_TEST
diff --git a/package/utils/busybox/config/archival/Config.in b/package/utils/busybox/config/archival/Config.in
index 1ca610c..ff4c2cf 100644
--- a/package/utils/busybox/config/archival/Config.in
+++ b/package/utils/busybox/config/archival/Config.in
@@ -32,7 +32,7 @@ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
 
 config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
 	bool "tar, rpm, modprobe etc understand .Z data"
-	default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z
+	default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z  # it is ancient
 	help
 	  Make tar, rpm, modprobe etc understand .Z data.
 
@@ -41,23 +41,13 @@ config BUSYBOX_CONFIG_AR
 	default BUSYBOX_DEFAULT_AR  # needs to be improved to be able to replace binutils ar
 	help
 	  ar is an archival utility program used to create, modify, and
-	  extract contents from archives. An archive is a single file holding
-	  a collection of other files in a structure that makes it possible to
-	  retrieve the original individual files (called archive members).
-	  The original files' contents, mode (permissions), timestamp, owner,
-	  and group are preserved in the archive, and can be restored on
-	  extraction.
-
-	  The stored filename is limited to 15 characters. (for more information
-	  see long filename support).
-	  ar has 60 bytes of overheads for every stored file.
-
-	  This implementation of ar can extract archives, it cannot create or
-	  modify them.
+	  extract contents from archives. In practice, it is used exclusively
+	  for object module archives used by compilers.
+
 	  On an x86 system, the ar applet adds about 1K.
 
 	  Unless you have a specific application which requires ar, you should
-	  probably say N here.
+	  probably say N here: most compilers come with their own ar utility.
 
 config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES
 	bool "Support for long filenames (not needed for debs)"
@@ -77,7 +67,7 @@ config BUSYBOX_CONFIG_FEATURE_AR_CREATE
 	  This enables archive creation (-c and -r) with busybox ar.
 config BUSYBOX_CONFIG_UNCOMPRESS
 	bool "uncompress"
-	default BUSYBOX_DEFAULT_UNCOMPRESS
+	default BUSYBOX_DEFAULT_UNCOMPRESS  # ancient
 	help
 	  uncompress is used to decompress archives created by compress.
 	  Not much used anymore, replaced by gzip/gunzip.
@@ -88,6 +78,13 @@ config BUSYBOX_CONFIG_GUNZIP
 	  gunzip is used to decompress archives created by gzip.
 	  You can use the `-t' option to test the integrity of
 	  an archive, without decompressing it.
+
+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
+	help
+	  Enable use of long options.
 config BUSYBOX_CONFIG_BUNZIP2
 	bool "bunzip2"
 	default BUSYBOX_DEFAULT_BUNZIP2
diff --git a/package/utils/busybox/config/coreutils/Config.in b/package/utils/busybox/config/coreutils/Config.in
index 2f94738..ec5611b 100644
--- a/package/utils/busybox/config/coreutils/Config.in
+++ b/package/utils/busybox/config/coreutils/Config.in
@@ -123,6 +123,29 @@ config BUSYBOX_CONFIG_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
@@ -760,22 +783,6 @@ config BUSYBOX_CONFIG_FEATURE_SPLIT_FANCY
 	  Supports additional suffixes 'b' for 512 bytes,
 	  'g' for 1GiB for the -b option.
 
-config BUSYBOX_CONFIG_STAT
-	bool "stat"
-	default BUSYBOX_DEFAULT_STAT
-	select BUSYBOX_CONFIG_PLATFORM_LINUX # statfs()
-	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_STTY
 	bool "stty"
 	default BUSYBOX_DEFAULT_STTY
diff --git a/package/utils/busybox/config/debianutils/Config.in b/package/utils/busybox/config/debianutils/Config.in
index 533ad47..d39c60f 100644
--- a/package/utils/busybox/config/debianutils/Config.in
+++ b/package/utils/busybox/config/debianutils/Config.in
@@ -6,19 +6,16 @@
 
 menu "Debian Utilities"
 
-
 config BUSYBOX_CONFIG_MKTEMP
 	bool "mktemp"
 	default BUSYBOX_DEFAULT_MKTEMP
 	help
 	  mktemp is used to create unique temporary files
-
 config BUSYBOX_CONFIG_PIPE_PROGRESS
 	bool "pipe_progress"
 	default BUSYBOX_DEFAULT_PIPE_PROGRESS
 	help
 	  Display a dot to indicate pipe activity.
-
 config BUSYBOX_CONFIG_RUN_PARTS
 	bool "run-parts"
 	default BUSYBOX_DEFAULT_RUN_PARTS
@@ -49,7 +46,6 @@ config BUSYBOX_CONFIG_FEATURE_RUN_PARTS_FANCY
 	  Support additional options:
 	  -l --list print the names of the all matching files (not
 	            limited to executables), but don't actually run them.
-
 config BUSYBOX_CONFIG_START_STOP_DAEMON
 	bool "start-stop-daemon"
 	default BUSYBOX_DEFAULT_START_STOP_DAEMON
@@ -74,7 +70,6 @@ config BUSYBOX_CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
 	depends on BUSYBOX_CONFIG_START_STOP_DAEMON && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	  Support long options for the start-stop-daemon applet.
-
 config BUSYBOX_CONFIG_WHICH
 	bool "which"
 	default BUSYBOX_DEFAULT_WHICH
diff --git a/package/utils/busybox/config/e2fsprogs/Config.in b/package/utils/busybox/config/e2fsprogs/Config.in
index f826240..df25548 100644
--- a/package/utils/busybox/config/e2fsprogs/Config.in
+++ b/package/utils/busybox/config/e2fsprogs/Config.in
@@ -6,22 +6,11 @@
 
 menu "Linux Ext2 FS Progs"
 
-
 config BUSYBOX_CONFIG_CHATTR
 	bool "chattr"
 	default BUSYBOX_DEFAULT_CHATTR
 	help
 	  chattr changes the file attributes on a second extended file system.
-
-### config E2FSCK
-###	bool "e2fsck"
-###	default y
-###	help
-###	  e2fsck is used to check Linux second extended file systems (ext2fs).
-###	  e2fsck also supports ext2 filesystems countaining a journal (ext3).
-###	  The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
-###	  provided.
-
 config BUSYBOX_CONFIG_FSCK
 	bool "fsck"
 	default BUSYBOX_DEFAULT_FSCK
@@ -29,13 +18,27 @@ config BUSYBOX_CONFIG_FSCK
 	  fsck is used to check and optionally repair one or more filesystems.
 	  In actuality, fsck is simply a front-end for the various file system
 	  checkers (fsck.fstype) available under Linux.
-
 config BUSYBOX_CONFIG_LSATTR
 	bool "lsattr"
 	default BUSYBOX_DEFAULT_LSATTR
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	  lsattr lists the file attributes on a second extended file system.
+config BUSYBOX_CONFIG_TUNE2FS
+	bool "tune2fs"
+	default BUSYBOX_DEFAULT_TUNE2FS  # off: it is too limited compared to upstream version
+	help
+	  tune2fs allows the system administrator to adjust various tunable
+	  filesystem parameters on Linux ext2/ext3 filesystems.
+
+### config E2FSCK
+###	bool "e2fsck"
+###	default y
+###	help
+###	  e2fsck is used to check Linux second extended file systems (ext2fs).
+###	  e2fsck also supports ext2 filesystems countaining a journal (ext3).
+###	  The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
+###	  provided.
 
 ### config MKE2FS
 ###	bool "mke2fs"
@@ -44,13 +47,6 @@ config BUSYBOX_CONFIG_LSATTR
 ###	  mke2fs is used to create an ext2/ext3 filesystem. The normal compat
 ###	  symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
 
-config BUSYBOX_CONFIG_TUNE2FS
-	bool "tune2fs"
-	default BUSYBOX_DEFAULT_TUNE2FS  # off: it is too limited compared to upstream version
-	help
-	  tune2fs allows the system administrator to adjust various tunable
-	  filesystem parameters on Linux ext2/ext3 filesystems.
-
 ### config E2LABEL
 ###	bool "e2label"
 ###	default y
diff --git a/package/utils/busybox/config/init/Config.in b/package/utils/busybox/config/init/Config.in
index 634207f..021656d 100644
--- a/package/utils/busybox/config/init/Config.in
+++ b/package/utils/busybox/config/init/Config.in
@@ -76,10 +76,21 @@ config BUSYBOX_CONFIG_INIT
 	help
 	  init is the first program run when the system boots.
 
+config BUSYBOX_CONFIG_LINUXRC
+	bool "Support running init from within an initrd (not initramfs)"
+	default BUSYBOX_DEFAULT_LINUXRC
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
+	help
+	  Legacy support for running init under the old-style initrd. Allows
+	  the name linuxrc to act as init, and it doesn't assume init is PID 1.
+
+	  This does not apply to initramfs, which runs /init as PID 1 and
+	  requires no special support.
+
 config BUSYBOX_CONFIG_FEATURE_USE_INITTAB
 	bool "Support reading an inittab file"
 	default BUSYBOX_DEFAULT_FEATURE_USE_INITTAB
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	  Allow init to read an inittab file when the system boot.
 
@@ -106,7 +117,7 @@ config BUSYBOX_CONFIG_FEATURE_KILL_DELAY
 config BUSYBOX_CONFIG_FEATURE_INIT_SCTTY
 	bool "Run commands with leading dash with controlling tty"
 	default BUSYBOX_DEFAULT_FEATURE_INIT_SCTTY
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	  If this option is enabled, init will try to give a controlling
 	  tty to any command which has leading hyphen (often it's "-/bin/sh").
@@ -121,40 +132,29 @@ config BUSYBOX_CONFIG_FEATURE_INIT_SCTTY
 config BUSYBOX_CONFIG_FEATURE_INIT_SYSLOG
 	bool "Enable init to write to syslog"
 	default BUSYBOX_DEFAULT_FEATURE_INIT_SYSLOG
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 
 config BUSYBOX_CONFIG_FEATURE_EXTRA_QUIET
 	bool "Be _extra_ quiet on boot"
 	default BUSYBOX_DEFAULT_FEATURE_EXTRA_QUIET
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	  Prevent init from logging some messages to the console during boot.
 
 config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS
 	bool "Support dumping core for child processes (debugging only)"
 	default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	  If this option is enabled and the file /.init_enable_core
 	  exists, then init will call setrlimit() to allow unlimited
 	  core file sizes. If this option is disabled, processes
 	  will not generate any core files.
 
-config BUSYBOX_CONFIG_FEATURE_INITRD
-	bool "Support running init from within an initrd (not initramfs)"
-	default BUSYBOX_DEFAULT_FEATURE_INITRD
-	depends on BUSYBOX_CONFIG_INIT
-	help
-	  Legacy support for running init under the old-style initrd. Allows
-	  the name linuxrc to act as init, and it doesn't assume init is PID 1.
-
-	  This does not apply to initramfs, which runs /init as PID 1 and
-	  requires no special support.
-
 config BUSYBOX_CONFIG_INIT_TERMINAL_TYPE
 	string "Initial terminal type"
 	default BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	  This is the initial value set by init for the TERM environment
 	  variable. This variable is used by programs which make use of
@@ -162,6 +162,21 @@ config BUSYBOX_CONFIG_INIT_TERMINAL_TYPE
 
 	  Note that on Linux, init attempts to detect serial terminal and
 	  sets TERM to "vt102" if one is found.
+
+config BUSYBOX_CONFIG_FEATURE_INIT_MODIFY_CMDLINE
+	bool "Modify the command-line to \"init\""
+	default BUSYBOX_DEFAULT_FEATURE_INIT_MODIFY_CMDLINE
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
+	help
+	  When launched as PID 1 and after parsing its arguments, init
+	  wipes all the arguments but argv[0] and rewrites argv[0] to
+	  contain only "init", so that its command-line appears solely as
+	  "init" in tools such as ps.
+	  If this option is set to Y, init will keep its original behavior,
+	  otherwise, all the arguments including argv[0] will be preserved,
+	  be they parsed or ignored by init.
+	  The original command-line used to launch init can then be
+	  retrieved in /proc/1/cmdline on Linux, for example.
 config BUSYBOX_CONFIG_MESG
 	bool "mesg"
 	default BUSYBOX_DEFAULT_MESG
diff --git a/package/utils/busybox/config/libbb/Config.in b/package/utils/busybox/config/libbb/Config.in
index e66a15b..0695f9b 100644
--- a/package/utils/busybox/config/libbb/Config.in
+++ b/package/utils/busybox/config/libbb/Config.in
@@ -6,14 +6,38 @@
 
 menu "Busybox Library Tuning"
 
-config BUSYBOX_CONFIG_FEATURE_SYSTEMD
-	bool "Enable systemd support"
-	default BUSYBOX_DEFAULT_FEATURE_SYSTEMD
-	help
-	  If you plan to use busybox daemons on a system where daemons
-	  are controlled by systemd, enable this option.
-	  If you don't use systemd, it is still safe to enable it,
-	  but the downside is increased code size.
+config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
+	bool "Use the end of BSS page"
+	default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
+	help
+	  Attempt to reclaim a small unused part of BSS.
+
+	  Executables have the following parts:
+	  = read-only executable code and constants, also known as "text"
+	  = read-write data
+	  = non-initialized (zeroed on demand) data, also known as "bss"
+
+	  At link time, "text" is padded to a full page. At runtime, all "text"
+	  pages are mapped RO and executable.
+	  "Data" starts on the next page boundary, but is not padded
+	  to a full page at the end. "Bss" starts wherever "data" ends.
+	  At runtime, "data" pages are mapped RW and they are file-backed
+	  (this includes a small portion of "bss" which may live in the last
+	  partial page of "data").
+	  Pages which are fully in "bss" are mapped to anonymous memory.
+
+	  "Bss" end is usually not page-aligned. There is an unused space
+	  in the last page. Linker marks its start with the "_end" symbol.
+
+	  This option will attempt to use that space for bb_common_bufsiz1[]
+	  array. If it fits after _end, it will be used, and COMMON_BUFSIZE
+	  will be enlarged from its guaranteed minimum size of 1 kbyte.
+	  This may require recompilation a second time, since value of _end
+	  is known only after final link.
+
+	  If you are getting a build error like this:
+	        appletlib.c:(.text.main+0xd): undefined reference to '_end'
+	  disable this option.
 config BUSYBOX_CONFIG_FEATURE_RTMINMAX
 	bool "Support RTMIN[+n] and RTMAX[-n] signal names"
 	default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
@@ -30,7 +54,7 @@ config BUSYBOX_CONFIG_PASSWORD_MINLEN
 
 config BUSYBOX_CONFIG_MD5_SMALL
 	int "MD5: Trade bytes for speed (0:fast, 3:slow)"
-	default BUSYBOX_DEFAULT_MD5_SMALL
+	default BUSYBOX_DEFAULT_MD5_SMALL  # all "fast or small" options default to small
 	range 0 3
 	help
 	  Trade binary size versus speed for the md5sum algorithm.
@@ -44,7 +68,7 @@ config BUSYBOX_CONFIG_MD5_SMALL
 
 config BUSYBOX_CONFIG_SHA3_SMALL
 	int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
-	default BUSYBOX_DEFAULT_SHA3_SMALL
+	default BUSYBOX_DEFAULT_SHA3_SMALL  # all "fast or small" options default to small
 	range 0 1
 	help
 	  Trade binary size versus speed for the sha3sum algorithm.
@@ -54,7 +78,7 @@ config BUSYBOX_CONFIG_SHA3_SMALL
 
 config BUSYBOX_CONFIG_FEATURE_FAST_TOP
 	bool "Faster /proc scanning code (+100 bytes)"
-	default BUSYBOX_DEFAULT_FEATURE_FAST_TOP
+	default BUSYBOX_DEFAULT_FEATURE_FAST_TOP  # all "fast or small" options default to small
 	help
 	  This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
 	  but code size is slightly bigger.
@@ -128,7 +152,7 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
 config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
 	bool "Reverse history search"
 	default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
-	depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
+	depends on BUSYBOX_CONFIG_FEATURE_EDITING
 	help
 	  Enable readline-like Ctrl-R combination for reverse history search.
 	  Increases code by about 0.5k.
diff --git a/package/utils/busybox/config/loginutils/Config.in b/package/utils/busybox/config/loginutils/Config.in
index f5ecf6f..956115c 100644
--- a/package/utils/busybox/config/loginutils/Config.in
+++ b/package/utils/busybox/config/loginutils/Config.in
@@ -6,18 +6,6 @@
 
 menu "Login/Password Management Utilities"
 
-config BUSYBOX_CONFIG_ADD_SHELL
-       bool "add-shell"
-       default BUSYBOX_DEFAULT_ADD_SHELL if BUSYBOX_CONFIG_DESKTOP
-       help
-         Add shells to /etc/shells.
-
-config BUSYBOX_CONFIG_REMOVE_SHELL
-       bool "remove-shell"
-       default BUSYBOX_DEFAULT_REMOVE_SHELL if BUSYBOX_CONFIG_DESKTOP
-       help
-         Remove shells from /etc/shells.
-
 config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
 	bool "Support for shadow passwords"
 	default BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS
@@ -104,6 +92,38 @@ config BUSYBOX_CONFIG_USE_BB_CRYPT_SHA
 	  With this option off, login will fail password check for any
 	  user which has password encrypted with these algorithms.
 
+config BUSYBOX_CONFIG_ADD_SHELL
+       bool "add-shell"
+       default BUSYBOX_DEFAULT_ADD_SHELL if BUSYBOX_CONFIG_DESKTOP
+       help
+         Add shells to /etc/shells.
+
+config BUSYBOX_CONFIG_REMOVE_SHELL
+       bool "remove-shell"
+       default BUSYBOX_DEFAULT_REMOVE_SHELL if BUSYBOX_CONFIG_DESKTOP
+       help
+         Remove shells from /etc/shells.
+config BUSYBOX_CONFIG_ADDGROUP
+	bool "addgroup"
+	default BUSYBOX_DEFAULT_ADDGROUP
+	help
+	  Utility for creating a new group account.
+
+config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
+	bool "Enable long options"
+	default BUSYBOX_DEFAULT_FEATURE_ADDGROUP_LONG_OPTIONS
+	depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS
+	help
+	  Support long options for the addgroup applet.
+
+config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP
+	bool "Support for adding users to groups"
+	default BUSYBOX_DEFAULT_FEATURE_ADDUSER_TO_GROUP
+	depends on BUSYBOX_CONFIG_ADDGROUP
+	help
+	  If  called  with two non-option arguments,
+	  addgroup will add an existing user to an
+	  existing group.
 config BUSYBOX_CONFIG_ADDUSER
 	bool "adduser"
 	default BUSYBOX_DEFAULT_ADDUSER
@@ -151,29 +171,33 @@ config BUSYBOX_CONFIG_LAST_SYSTEM_ID
 	default BUSYBOX_DEFAULT_LAST_SYSTEM_ID
 	help
 	  Last valid system uid or gid for adduser and addgroup
-
-config BUSYBOX_CONFIG_ADDGROUP
-	bool "addgroup"
-	default BUSYBOX_DEFAULT_ADDGROUP
+config BUSYBOX_CONFIG_CHPASSWD
+	bool "chpasswd"
+	default BUSYBOX_DEFAULT_CHPASSWD
 	help
-	  Utility for creating a new group account.
+	  Reads a file of user name and password pairs from standard input
+	  and uses this information to update a group of existing users.
 
-config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
-	bool "Enable long options"
-	default BUSYBOX_DEFAULT_FEATURE_ADDGROUP_LONG_OPTIONS
-	depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS
+config BUSYBOX_CONFIG_FEATURE_DEFAULT_PASSWD_ALGO
+	string "Default password encryption method (passwd -a, cryptpw -m parameter)"
+	default BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
+	depends on BUSYBOX_CONFIG_PASSWD || BUSYBOX_CONFIG_CRYPTPW
 	help
-	  Support long options for the addgroup applet.
-
-config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP
-	bool "Support for adding users to groups"
-	default BUSYBOX_DEFAULT_FEATURE_ADDUSER_TO_GROUP
-	depends on BUSYBOX_CONFIG_ADDGROUP
+	  Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
+config BUSYBOX_CONFIG_CRYPTPW
+	bool "cryptpw"
+	default BUSYBOX_DEFAULT_CRYPTPW
 	help
-	  If  called  with two non-option arguments,
-	  addgroup will add an existing user to an
-	  existing group.
+	  Encrypts the given password with the crypt(3) libc function
+	  using the given salt.
 
+config BUSYBOX_CONFIG_MKPASSWD
+	bool "mkpasswd"
+	default BUSYBOX_DEFAULT_MKPASSWD
+	help
+	  Encrypts the given password with the crypt(3) libc function
+	  using the given salt. Debian has this utility under mkpasswd
+	  name. Busybox provides mkpasswd as an alias for cryptpw.
 config BUSYBOX_CONFIG_DELUSER
 	bool "deluser"
 	default BUSYBOX_DEFAULT_DELUSER
@@ -193,7 +217,6 @@ config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP
 	help
 	  If called with two non-option arguments, deluser
 	  or delgroup will remove an user from a specified group.
-
 config BUSYBOX_CONFIG_GETTY
 	bool "getty"
 	default BUSYBOX_DEFAULT_GETTY
@@ -212,7 +235,6 @@ config BUSYBOX_CONFIG_GETTY
 	  printf "%s login: " "`hostname`"
 	  read -r login
 	  exec /bin/login "$login"
-
 config BUSYBOX_CONFIG_LOGIN
 	bool "login"
 	default BUSYBOX_DEFAULT_LOGIN
@@ -258,7 +280,6 @@ config BUSYBOX_CONFIG_FEATURE_SECURETTY
 	  The file /etc/securetty is used by (some versions of) login(1).
 	  The file contains the device names of tty lines (one per line,
 	  without leading /dev/) on which root is allowed to login.
-
 config BUSYBOX_CONFIG_PASSWD
 	bool "passwd"
 	default BUSYBOX_DEFAULT_PASSWD
@@ -278,29 +299,6 @@ config BUSYBOX_CONFIG_FEATURE_PASSWD_WEAK_CHECK
 	depends on BUSYBOX_CONFIG_PASSWD
 	help
 	  With this option passwd will refuse new passwords which are "weak".
-
-config BUSYBOX_CONFIG_CRYPTPW
-	bool "cryptpw"
-	default BUSYBOX_DEFAULT_CRYPTPW
-	help
-	  Encrypts the given password with the crypt(3) libc function
-	  using the given salt. Debian has this utility under mkpasswd
-	  name. Busybox provides mkpasswd as an alias for cryptpw.
-
-config BUSYBOX_CONFIG_CHPASSWD
-	bool "chpasswd"
-	default BUSYBOX_DEFAULT_CHPASSWD
-	help
-	  Reads a file of user name and password pairs from standard input
-	  and uses this information to update a group of existing users.
-
-config BUSYBOX_CONFIG_FEATURE_DEFAULT_PASSWD_ALGO
-	string "Default password encryption method (passwd -a, cryptpw -m parameter)"
-	default BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
-	depends on BUSYBOX_CONFIG_PASSWD || BUSYBOX_CONFIG_CRYPTPW
-	help
-	  Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
-
 config BUSYBOX_CONFIG_SU
 	bool "su"
 	default BUSYBOX_DEFAULT_SU
@@ -321,7 +319,6 @@ config BUSYBOX_CONFIG_FEATURE_SU_CHECKS_SHELLS
 	bool "Enable su to check user's shell to be listed in /etc/shells"
 	depends on BUSYBOX_CONFIG_SU
 	default BUSYBOX_DEFAULT_FEATURE_SU_CHECKS_SHELLS
-
 config BUSYBOX_CONFIG_SULOGIN
 	bool "sulogin"
 	default BUSYBOX_DEFAULT_SULOGIN
@@ -329,7 +326,6 @@ config BUSYBOX_CONFIG_SULOGIN
 	help
 	  sulogin is invoked when the system goes into single user
 	  mode (this is done through an entry in inittab).
-
 config BUSYBOX_CONFIG_VLOCK
 	bool "vlock"
 	default BUSYBOX_DEFAULT_VLOCK
diff --git a/package/utils/busybox/config/miscutils/Config.in b/package/utils/busybox/config/miscutils/Config.in
index c6deaaf..3465df4 100644
--- a/package/utils/busybox/config/miscutils/Config.in
+++ b/package/utils/busybox/config/miscutils/Config.in
@@ -246,6 +246,12 @@ config BUSYBOX_CONFIG_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
@@ -554,23 +560,13 @@ config BUSYBOX_CONFIG_LAST
 	help
 	  'last' displays a list of the last users that logged into the system.
 
-choice
-	prompt "Choose last implementation"
-	depends on BUSYBOX_CONFIG_LAST
-	default BUSYBOX_CONFIG_FEATURE_LAST_FANCY
-
-config BUSYBOX_CONFIG_FEATURE_LAST_SMALL
-	bool "small"
-	help
-	  This is a small version of last with just the basic set of
-	  features.
-
 config BUSYBOX_CONFIG_FEATURE_LAST_FANCY
-	bool "huge"
+	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.
-endchoice
 
 config BUSYBOX_CONFIG_HDPARM
 	bool "hdparm"
diff --git a/package/utils/busybox/config/modutils/Config.in b/package/utils/busybox/config/modutils/Config.in
index 9add56e..8e0e2af 100644
--- a/package/utils/busybox/config/modutils/Config.in
+++ b/package/utils/busybox/config/modutils/Config.in
@@ -44,9 +44,6 @@ config BUSYBOX_CONFIG_MODPROBE_SMALL
 	  - rmmod is an alias to modprobe -r
 	  - depmod generates modules.dep.bb
 
-	  As of 2008-07, this code is experimental. It is 14kb smaller
-	  than "non-small" modutils.
-
 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
diff --git a/package/utils/busybox/config/networking/Config.in b/package/utils/busybox/config/networking/Config.in
index 7e5a414..407ddd3 100644
--- a/package/utils/busybox/config/networking/Config.in
+++ b/package/utils/busybox/config/networking/Config.in
@@ -673,7 +673,7 @@ config BUSYBOX_CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
 
 config BUSYBOX_CONFIG_FEATURE_INETD_RPC
 	bool "Support RPC services"
-	default BUSYBOX_DEFAULT_FEATURE_INETD_RPC
+	default BUSYBOX_DEFAULT_FEATURE_INETD_RPC  # very rarely used, and needs Sun RPC support in libc
 	depends on BUSYBOX_CONFIG_INETD
 	select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
 	help
@@ -730,6 +730,13 @@ config BUSYBOX_CONFIG_FEATURE_IP_RULE
 	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
+	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
@@ -741,6 +748,7 @@ config BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS
 	  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.
@@ -780,6 +788,11 @@ config BUSYBOX_CONFIG_IPRULE
 	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
diff --git a/package/utils/busybox/config/printutils/Config.in b/package/utils/busybox/config/printutils/Config.in
index cccc4a5..3a2baa3 100644
--- a/package/utils/busybox/config/printutils/Config.in
+++ b/package/utils/busybox/config/printutils/Config.in
@@ -6,13 +6,11 @@
 
 menu "Print Utilities"
 
-
 config BUSYBOX_CONFIG_LPD
 	bool "lpd"
 	default BUSYBOX_DEFAULT_LPD
 	help
 	  lpd is a print spooling daemon.
-
 config BUSYBOX_CONFIG_LPR
 	bool "lpr"
 	default BUSYBOX_DEFAULT_LPR
diff --git a/package/utils/busybox/config/runit/Config.in b/package/utils/busybox/config/runit/Config.in
index 8074fb1..a322a2c 100644
--- a/package/utils/busybox/config/runit/Config.in
+++ b/package/utils/busybox/config/runit/Config.in
@@ -6,14 +6,43 @@
 
 menu "Runit Utilities"
 
+config BUSYBOX_CONFIG_CHPST
+	bool "chpst"
+	default BUSYBOX_DEFAULT_CHPST
+	help
+	  chpst changes the process state according to the given options, and
+	  execs specified program.
 
+config BUSYBOX_CONFIG_SETUIDGID
+	bool "setuidgid"
+	default BUSYBOX_DEFAULT_SETUIDGID
+	help
+	  Sets soft resource limits as specified by options
+
+config BUSYBOX_CONFIG_ENVUIDGID
+	bool "envuidgid"
+	default BUSYBOX_DEFAULT_ENVUIDGID
+	help
+	  Sets $UID to account's uid and $GID to account's gid
+
+config BUSYBOX_CONFIG_ENVDIR
+	bool "envdir"
+	default BUSYBOX_DEFAULT_ENVDIR
+	help
+	  Sets various environment variables as specified by files
+	  in the given directory
+
+config BUSYBOX_CONFIG_SOFTLIMIT
+	bool "softlimit"
+	default BUSYBOX_DEFAULT_SOFTLIMIT
+	help
+	  Sets soft resource limits as specified by options
 config BUSYBOX_CONFIG_RUNSV
 	bool "runsv"
 	default BUSYBOX_DEFAULT_RUNSV
 	help
 	  runsv starts and monitors a service and optionally an appendant log
 	  service.
-
 config BUSYBOX_CONFIG_RUNSVDIR
 	bool "runsvdir"
 	default BUSYBOX_DEFAULT_RUNSVDIR
@@ -30,7 +59,6 @@ config BUSYBOX_CONFIG_FEATURE_RUNSVDIR_LOG
 	  Enable feature where second parameter of runsvdir holds last error
 	  message (viewable via top/ps). Otherwise (feature is off
 	  or no parameter), error messages go to stderr only.
-
 config BUSYBOX_CONFIG_SV
 	bool "sv"
 	default BUSYBOX_DEFAULT_SV
@@ -45,7 +73,6 @@ config BUSYBOX_CONFIG_SV_DEFAULT_SERVICE_DIR
 	help
 	  Default directory for services.
 	  Defaults to "/var/service"
-
 config BUSYBOX_CONFIG_SVLOGD
 	bool "svlogd"
 	default BUSYBOX_DEFAULT_SVLOGD
@@ -54,36 +81,4 @@ config BUSYBOX_CONFIG_SVLOGD
 	  filters log messages, and writes the data to one or more automatically
 	  rotated logs.
 
-config BUSYBOX_CONFIG_CHPST
-	bool "chpst"
-	default BUSYBOX_DEFAULT_CHPST
-	help
-	  chpst changes the process state according to the given options, and
-	  execs specified program.
-
-config BUSYBOX_CONFIG_SETUIDGID
-	bool "setuidgid"
-	default BUSYBOX_DEFAULT_SETUIDGID
-	help
-	  Sets soft resource limits as specified by options
-
-config BUSYBOX_CONFIG_ENVUIDGID
-	bool "envuidgid"
-	default BUSYBOX_DEFAULT_ENVUIDGID
-	help
-	  Sets $UID to account's uid and $GID to account's gid
-
-config BUSYBOX_CONFIG_ENVDIR
-	bool "envdir"
-	default BUSYBOX_DEFAULT_ENVDIR
-	help
-	  Sets various environment variables as specified by files
-	  in the given directory
-
-config BUSYBOX_CONFIG_SOFTLIMIT
-	bool "softlimit"
-	default BUSYBOX_DEFAULT_SOFTLIMIT
-	help
-	  Sets soft resource limits as specified by options
-
 endmenu
diff --git a/package/utils/busybox/config/sysklogd/Config.in b/package/utils/busybox/config/sysklogd/Config.in
index de36a1e..5fcee2c 100644
--- a/package/utils/busybox/config/sysklogd/Config.in
+++ b/package/utils/busybox/config/sysklogd/Config.in
@@ -6,6 +6,64 @@
 
 menu "System Logging Utilities"
 
+config BUSYBOX_CONFIG_KLOGD
+	bool "klogd"
+	default BUSYBOX_DEFAULT_KLOGD
+	help
+	  klogd is a utility which intercepts and logs all
+	  messages from the Linux kernel and sends the messages
+	  out to the 'syslogd' utility so they can be logged. If
+	  you wish to record the messages produced by the kernel,
+	  you should enable this option.
+
+comment "klogd should not be used together with syslog to kernel printk buffer"
+	depends on BUSYBOX_CONFIG_KLOGD && BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
+
+config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL
+	bool "Use the klogctl() interface"
+	default BUSYBOX_DEFAULT_FEATURE_KLOGD_KLOGCTL
+	depends on BUSYBOX_CONFIG_KLOGD
+	select BUSYBOX_CONFIG_PLATFORM_LINUX
+	help
+	  The klogd applet supports two interfaces for reading
+	  kernel messages. Linux provides the klogctl() interface
+	  which allows reading messages from the kernel ring buffer
+	  independently from the file system.
+
+	  If you answer 'N' here, klogd will use the more portable
+	  approach of reading them from /proc or a device node.
+	  However, this method requires the file to be available.
+
+	  If in doubt, say 'Y'.
+config BUSYBOX_CONFIG_LOGGER
+	bool "logger"
+	default BUSYBOX_DEFAULT_LOGGER
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
+	help
+	    The logger utility allows you to send arbitrary text
+	    messages to the system log (i.e. the 'syslogd' utility) so
+	    they can be logged. This is generally used to help locate
+	    problems that occur within programs and scripts.
+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
+	  utility will allow you to read the messages that are
+	  stored in the syslogd circular buffer.
+
+config BUSYBOX_CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING
+	bool "Double buffering"
+	default BUSYBOX_DEFAULT_FEATURE_LOGREAD_REDUCED_LOCKING
+	depends on BUSYBOX_CONFIG_LOGREAD
+	help
+	  'logread' ouput to slow serial terminals can have
+	  side effects on syslog because of the semaphore.
+	  This option make logread to double buffer copy
+	  from circular buffer, minimizing semaphore
+	  contention at some minor memory expense.
 
 config BUSYBOX_CONFIG_SYSLOGD
 	bool "syslogd"
@@ -28,7 +86,7 @@ config BUSYBOX_CONFIG_FEATURE_ROTATE_LOGFILE
 	depends on BUSYBOX_CONFIG_SYSLOGD
 	help
 	  This enables syslogd to rotate the message files
-	  on his own. No need to use an external rotatescript.
+	  on his own. No need to use an external rotate script.
 
 config BUSYBOX_CONFIG_FEATURE_REMOTE_LOG
 	bool "Remote Log support"
@@ -92,27 +150,6 @@ config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE
 	  This option sets the size of the circular buffer
 	  used to record system log messages.
 
-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
-	  utility will allow you to read the messages that are
-	  stored in the syslogd circular buffer.
-
-config BUSYBOX_CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING
-	bool "Double buffering"
-	default BUSYBOX_DEFAULT_FEATURE_LOGREAD_REDUCED_LOCKING
-	depends on BUSYBOX_CONFIG_LOGREAD
-	help
-	  'logread' ouput to slow serial terminals can have
-	  side effects on syslog because of the semaphore.
-	  This option make logread to double buffer copy
-	  from circular buffer, minimizing semaphore
-	  contention at some minor memory expense.
-
 config BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
 	bool "Linux kernel printk buffer support"
 	default BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG
@@ -126,44 +163,4 @@ config BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
 
 	  NOTICE: Syslog facilities in log entries needs kernel 3.5+.
 
-config BUSYBOX_CONFIG_KLOGD
-	bool "klogd"
-	default BUSYBOX_DEFAULT_KLOGD
-	help
-	  klogd is a utility which intercepts and logs all
-	  messages from the Linux kernel and sends the messages
-	  out to the 'syslogd' utility so they can be logged. If
-	  you wish to record the messages produced by the kernel,
-	  you should enable this option.
-
-comment "klogd should not be used together with syslog to kernel printk buffer"
-	depends on BUSYBOX_CONFIG_KLOGD && BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
-
-config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL
-	bool "Use the klogctl() interface"
-	default BUSYBOX_DEFAULT_FEATURE_KLOGD_KLOGCTL
-	depends on BUSYBOX_CONFIG_KLOGD
-	select BUSYBOX_CONFIG_PLATFORM_LINUX
-	help
-	  The klogd applet supports two interfaces for reading
-	  kernel messages. Linux provides the klogctl() interface
-	  which allows reading messages from the kernel ring buffer
-	  independently from the file system.
-
-	  If you answer 'N' here, klogd will use the more portable
-	  approach of reading them from /proc or a device node.
-	  However, this method requires the file to be available.
-
-	  If in doubt, say 'Y'.
-
-config BUSYBOX_CONFIG_LOGGER
-	bool "logger"
-	default BUSYBOX_DEFAULT_LOGGER
-	select BUSYBOX_CONFIG_FEATURE_SYSLOG
-	help
-	    The logger utility allows you to send arbitrary text
-	    messages to the system log (i.e. the 'syslogd' utility) so
-	    they can be logged. This is generally used to help locate
-	    problems that occur within programs and scripts.
-
 endmenu
diff --git a/package/utils/busybox/config/util-linux/Config.in b/package/utils/busybox/config/util-linux/Config.in
index 017b119..08bddf8 100644
--- a/package/utils/busybox/config/util-linux/Config.in
+++ b/package/utils/busybox/config/util-linux/Config.in
@@ -6,6 +6,11 @@
 
 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
@@ -174,11 +179,34 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_OTHERTAB
 	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
@@ -186,6 +214,13 @@ config BUSYBOX_CONFIG_UEVENT
 	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"
@@ -669,16 +704,6 @@ config BUSYBOX_CONFIG_SCRIPTREPLAY
 	  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_SWAPONOFF
 	bool "swaponoff"
 	default BUSYBOX_DEFAULT_SWAPONOFF
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 306550b..6153314 100644
--- a/package/utils/busybox/config/util-linux/volume_id/Config.in
+++ b/package/utils/busybox/config/util-linux/volume_id/Config.in
@@ -12,6 +12,14 @@ menu "Filesystem/Volume identification"
 	depends on BUSYBOX_CONFIG_VOLUMEID
 
 
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BCACHE
+	bool "bcache filesystem"
+	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BCACHE
+	depends on BUSYBOX_CONFIG_VOLUMEID
+	help
+	  TODO
+
+
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
 	bool "btrfs filesystem"
 	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
diff --git a/package/utils/busybox/patches/001-resource_h_include.patch b/package/utils/busybox/patches/001-resource_h_include.patch
index 5e2f172..33e12c8 100644
--- a/package/utils/busybox/patches/001-resource_h_include.patch
+++ b/package/utils/busybox/patches/001-resource_h_include.patch
@@ -1,6 +1,6 @@
 --- a/include/libbb.h
 +++ b/include/libbb.h
-@@ -40,6 +40,7 @@
+@@ -41,6 +41,7 @@
  #include <poll.h>
  #include <sys/ioctl.h>
  #include <sys/mman.h>
diff --git a/package/utils/busybox/patches/010-networking-fix-uninitialized-memory-when-displaying-.patch b/package/utils/busybox/patches/010-networking-fix-uninitialized-memory-when-displaying-.patch
deleted file mode 100644
index eabbf3f..0000000
--- a/package/utils/busybox/patches/010-networking-fix-uninitialized-memory-when-displaying-.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Felix Fietkau <nbd at nbd.name>
-Date: Mon, 18 Jan 2016 12:03:45 +0100
-Subject: [PATCH] networking: fix uninitialized memory when displaying IPv6
- addresses
-
-After commit 8e74adab0107658e3dc04ed342206272a284f43e
-("libbb: make INET[6]_rresolve use sockaddr2{host,dotted}_noport")
-INET_sprint6 uses more than just sin6_addr, it also tries to display the
-scope id, which is uninitialized when called from ife_print6.
-
-Signed-off-by: Felix Fietkau <nbd at nbd.name>
----
-
---- a/networking/interface.c
-+++ b/networking/interface.c
-@@ -881,6 +881,7 @@ static void ife_print6(struct interface
- 			sprintf(addr6, "%s:%s:%s:%s:%s:%s:%s:%s",
- 					addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- 					addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
-+			memset(&sap, 0, sizeof(sap));
- 			inet_pton(AF_INET6, addr6,
- 					  (struct sockaddr *) &sap.sin6_addr);
- 			sap.sin6_family = AF_INET6;
diff --git a/package/utils/busybox/patches/020-networking-libiproute-fix-displaying-route-table-for.patch b/package/utils/busybox/patches/020-networking-libiproute-fix-displaying-route-table-for.patch
index 60027c4..68754de 100644
--- a/package/utils/busybox/patches/020-networking-libiproute-fix-displaying-route-table-for.patch
+++ b/package/utils/busybox/patches/020-networking-libiproute-fix-displaying-route-table-for.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/networking/libiproute/iprule.c
 +++ b/networking/libiproute/iprule.c
-@@ -119,7 +119,9 @@ static int FAST_FUNC print_rule(const st
+@@ -114,7 +114,9 @@ static int FAST_FUNC print_rule(const st
  		printf("iif %s ", (char*)RTA_DATA(tb[RTA_IIF]));
  	}
  
diff --git a/package/utils/busybox/patches/030-ip-fix-problem-on-mips64-n64-big-endian-musl-systems.patch b/package/utils/busybox/patches/030-ip-fix-problem-on-mips64-n64-big-endian-musl-systems.patch
deleted file mode 100644
index 6e25f55..0000000
--- a/package/utils/busybox/patches/030-ip-fix-problem-on-mips64-n64-big-endian-musl-systems.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From: Szabolcs Nagy <nsz at port70.net>
-Date: Sun, 24 Apr 2016 17:39:02 +0200
-Subject: [PATCH] ip: fix problem on mips64 n64 big endian musl systems
-
-Use designated initializers for struct msghdr.
-The struct layout is non-portable and musl libc does not match what busybox expects.
-
-Signed-off-by: Szabolcs Nagy <nsz at port70.net>
-Tested-by: Waldemar Brodkorb <wbx at openadk.org>
-Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
----
-
---- a/networking/libiproute/libnetlink.c
-+++ b/networking/libiproute/libnetlink.c
-@@ -71,11 +71,15 @@ int FAST_FUNC rtnl_dump_request(struct r
- 	struct nlmsghdr nlh;
- 	struct sockaddr_nl nladdr;
- 	struct iovec iov[2] = { { &nlh, sizeof(nlh) }, { req, len } };
-+	/* Use designated initializers, struct layout is non-portable */
- 	struct msghdr msg = {
--		(void*)&nladdr, sizeof(nladdr),
--		iov,  2,
--		NULL, 0,
--		0
-+		.msg_name = (void*)&nladdr,
-+		.msg_namelen = sizeof(nladdr),
-+		.msg_iov = iov,
-+		.msg_iovlen = 2,
-+		.msg_control = NULL,
-+		.msg_controllen = 0,
-+		.msg_flags = 0
- 	};
- 
- 	memset(&nladdr, 0, sizeof(nladdr));
-@@ -104,12 +108,15 @@ static int rtnl_dump_filter(struct rtnl_
- 	while (1) {
- 		int status;
- 		struct nlmsghdr *h;
--
-+		/* Use designated initializers, struct layout is non-portable */
- 		struct msghdr msg = {
--			(void*)&nladdr, sizeof(nladdr),
--			&iov, 1,
--			NULL, 0,
--			0
-+			.msg_name = (void*)&nladdr,
-+			.msg_namelen = sizeof(nladdr),
-+			.msg_iov = &iov,
-+			.msg_iovlen = 1,
-+			.msg_control = NULL,
-+			.msg_controllen = 0,
-+			.msg_flags = 0
- 		};
- 
- 		status = recvmsg(rth->fd, &msg, 0);
-@@ -211,11 +218,15 @@ int FAST_FUNC rtnl_talk(struct rtnl_hand
- 	struct sockaddr_nl nladdr;
- 	struct iovec iov = { (void*)n, n->nlmsg_len };
- 	char   *buf = xmalloc(8*1024); /* avoid big stack buffer */
-+	/* Use designated initializers, struct layout is non-portable */
- 	struct msghdr msg = {
--		(void*)&nladdr, sizeof(nladdr),
--		&iov, 1,
--		NULL, 0,
--		0
-+		.msg_name = (void*)&nladdr,
-+		.msg_namelen = sizeof(nladdr),
-+		.msg_iov = &iov,
-+		.msg_iovlen = 1,
-+		.msg_control = NULL,
-+		.msg_controllen = 0,
-+		.msg_flags = 0
- 	};
- 
- 	memset(&nladdr, 0, sizeof(nladdr));
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 5499efd..4825bc8 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
-@@ -236,9 +236,6 @@
+@@ -237,9 +237,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 1083675..0fdaed5 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
-@@ -695,6 +695,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -697,6 +697,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,11 +8,11 @@
  
  	/* Fill in: op, htype, hlen, cookie, chaddr fields,
  	 * random xid field (we override it below),
-@@ -712,6 +713,7 @@ static NOINLINE int send_discover(uint32
+@@ -714,6 +715,7 @@ static NOINLINE int send_discover(uint32
  	 */
  	add_client_options(&packet);
  
 +	if (msgs++ < 3)
- 	bb_info_msg("Sending discover...");
- 	return raw_bcast_from_client_config_ifindex(&packet);
+ 	bb_error_msg("sending %s", "discover");
+ 	return raw_bcast_from_client_config_ifindex(&packet, INADDR_ANY);
  }
diff --git a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
index f32cea2..4a9ae98 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
-@@ -1418,6 +1418,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1422,6 +1422,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 f38b128..1e44552 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
-@@ -1101,7 +1101,6 @@ static void perform_renew(void)
+@@ -1103,7 +1103,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/204-udhcpc_src_ip_rebind.patch b/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch
deleted file mode 100644
index 21fec51..0000000
--- a/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- a/networking/udhcp/dhcpc.c
-+++ b/networking/udhcp/dhcpc.c
-@@ -673,10 +673,10 @@ static void add_client_options(struct dh
-  * client reverts to using the IP broadcast address.
-  */
- 
--static int raw_bcast_from_client_config_ifindex(struct dhcp_packet *packet)
-+static int raw_bcast_from_client_config_ifindex(struct dhcp_packet *packet, uint32_t src_nip)
- {
- 	return udhcp_send_raw_packet(packet,
--		/*src*/ INADDR_ANY, CLIENT_PORT,
-+		/*src*/ src_nip, CLIENT_PORT,
- 		/*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR,
- 		client_config.ifindex);
- }
-@@ -687,7 +687,7 @@ static int bcast_or_ucast(struct dhcp_pa
- 		return udhcp_send_kernel_packet(packet,
- 			ciaddr, CLIENT_PORT,
- 			server, SERVER_PORT);
--	return raw_bcast_from_client_config_ifindex(packet);
-+	return raw_bcast_from_client_config_ifindex(packet, ciaddr);
- }
- 
- /* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
-@@ -715,7 +715,7 @@ static NOINLINE int send_discover(uint32
- 
- 	if (msgs++ < 3)
- 	bb_info_msg("Sending discover...");
--	return raw_bcast_from_client_config_ifindex(&packet);
-+	return raw_bcast_from_client_config_ifindex(&packet, INADDR_ANY);
- }
- 
- /* Broadcast a DHCP request message */
-@@ -759,7 +759,7 @@ static NOINLINE int send_select(uint32_t
- 
- 	addr.s_addr = requested;
- 	bb_info_msg("Sending select for %s...", inet_ntoa(addr));
--	return raw_bcast_from_client_config_ifindex(&packet);
-+	return raw_bcast_from_client_config_ifindex(&packet, INADDR_ANY);
- }
- 
- /* Unicast or broadcast a DHCP renew message */
-@@ -827,7 +827,7 @@ static NOINLINE int send_decline(/*uint3
- 	udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server);
- 
- 	bb_info_msg("Sending decline...");
--	return raw_bcast_from_client_config_ifindex(&packet);
-+	return raw_bcast_from_client_config_ifindex(&packet, INADDR_ANY);
- }
- #endif
- 
diff --git a/package/utils/busybox/patches/210-add_netmsg_util.patch b/package/utils/busybox/patches/210-add_netmsg_util.patch
index 23f0575..2382698 100644
--- a/package/utils/busybox/patches/210-add_netmsg_util.patch
+++ b/package/utils/busybox/patches/210-add_netmsg_util.patch
@@ -1,6 +1,6 @@
 --- a/include/applets.src.h
 +++ b/include/applets.src.h
-@@ -254,6 +254,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO
+@@ -229,6 +229,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO
  IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
  IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
  IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -10,7 +10,7 @@
  IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
 --- a/networking/Config.src
 +++ b/networking/Config.src
-@@ -626,6 +626,12 @@ config FEATURE_IPCALC_LONG_OPTIONS
+@@ -639,6 +639,12 @@ config FEATURE_IPCALC_LONG_OPTIONS
  	help
  	  Support long options for the ipcalc applet.
  
diff --git a/package/utils/busybox/patches/220-add_lock_util.patch b/package/utils/busybox/patches/220-add_lock_util.patch
index 047d32e..c60f5db 100644
--- a/package/utils/busybox/patches/220-add_lock_util.patch
+++ b/package/utils/busybox/patches/220-add_lock_util.patch
@@ -1,16 +1,16 @@
 --- a/include/applets.src.h
 +++ b/include/applets.src.h
-@@ -211,6 +211,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN,
+@@ -196,6 +196,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN,
  IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
  IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
  IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
 +IF_LOCK(APPLET(lock, BB_DIR_BIN, BB_SUID_DROP))
- IF_LOGGER(APPLET(logger, BB_DIR_USR_BIN, BB_SUID_DROP))
- /* Needs to be run by root or be suid root - needs to change uid and gid: */
- IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
+ IF_LOGNAME(APPLET_NOFORK(logname, logname, BB_DIR_USR_BIN, BB_SUID_DROP, logname))
+ IF_LOSETUP(APPLET(losetup, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_LS(APPLET_NOEXEC(ls, ls, BB_DIR_BIN, BB_SUID_DROP, ls))
 --- a/miscutils/Config.src
 +++ b/miscutils/Config.src
-@@ -385,6 +385,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
+@@ -375,6 +375,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
  	help
  	  Enables the 'hdparm -d' option to get/set using_dma flag.
  
@@ -25,9 +25,9 @@
  	default y
 --- a/miscutils/Kbuild.src
 +++ b/miscutils/Kbuild.src
-@@ -28,6 +28,7 @@ lib-$(CONFIG_INOTIFYD)    += inotifyd.o
- lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
- lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
+@@ -33,6 +33,7 @@ lib-$(CONFIG_LAST)        += last.o
+ endif
+ 
  lib-$(CONFIG_LESS)        += less.o
 +lib-$(CONFIG_LOCK)        += lock.o
  lib-$(CONFIG_MAKEDEVS)    += makedevs.o
diff --git a/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch b/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch
deleted file mode 100644
index b0af08e..0000000
--- a/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- a/networking/ntpd.c
-+++ b/networking/ntpd.c
-@@ -265,6 +265,7 @@ typedef struct {
- typedef struct {
- 	len_and_sockaddr *p_lsa;
- 	char             *p_dotted;
-+	char             *p_hostname;
- 	int              p_fd;
- 	int              datapoint_idx;
- 	uint32_t         lastpkt_refid;
-@@ -766,8 +767,9 @@ add_peers(const char *s)
- 	peer_t *p;
- 
- 	p = xzalloc(sizeof(*p));
--	p->p_lsa = xhost2sockaddr(s, 123);
--	p->p_dotted = xmalloc_sockaddr2dotted_noport(&p->p_lsa->u.sa);
-+	p->p_hostname = s;
-+	p->p_lsa = NULL;
-+	p->p_dotted = NULL;
- 	p->p_fd = -1;
- 	p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3);
- 	p->next_action_time = G.cur_time; /* = set_next(p, 0); */
-@@ -816,6 +818,25 @@ send_query_to_peer(peer_t *p)
- 	 *
- 	 * Uncomment this and use strace to see it in action:
- 	 */
-+
-+	/* See if the peer hostname already resolved yet, if not, retry to resolv and return on failure */
-+	if (!p->p_lsa)
-+	{
-+		p->p_lsa = host2sockaddr(p->p_hostname, 123);
-+
-+		if (p->p_lsa)
-+		{
-+			p->p_dotted = xmalloc_sockaddr2dotted_noport(&p->p_lsa->u.sa);
-+			VERB1 bb_error_msg("resolved peer %s to %s", p->p_hostname, p->p_dotted);
-+		}
-+		else
-+		{
-+			set_next(p, RETRY_INTERVAL);
-+			VERB1 bb_error_msg("could not resolve peer %s, skipping", p->p_hostname);
-+			return;
-+		}
-+	}
-+
- #define PROBE_LOCAL_ADDR /* { len_and_sockaddr lsa; lsa.len = LSA_SIZEOF_SA; getsockname(p->query.fd, &lsa.u.sa, &lsa.len); } */
- 
- 	if (p->p_fd == -1) {
diff --git a/package/utils/busybox/patches/240-telnetd_intr.patch b/package/utils/busybox/patches/240-telnetd_intr.patch
index ccb4ea4..d52ea3f 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
-@@ -331,6 +331,7 @@ make_new_session(
+@@ -333,6 +333,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 111a861..b2681a1 100644
--- a/package/utils/busybox/patches/250-date-k-flag.patch
+++ b/package/utils/busybox/patches/250-date-k-flag.patch
@@ -8,10 +8,10 @@
  //usage:     "\n"
  //usage:     "\nRecognized TIME formats:"
  //usage:     "\n	hh:mm[:ss]"
-@@ -138,9 +139,8 @@
- //usage:       "Wed Apr 12 18:52:41 MDT 2000\n"
+@@ -139,9 +140,8 @@
  
  #include "libbb.h"
+ #include "common_bufsiz.h"
 -#if ENABLE_FEATURE_DATE_NANO
 -# include <sys/syscall.h>
 -#endif
@@ -20,7 +20,7 @@
  
  enum {
  	OPT_RFC2822   = (1 << 0), /* R */
-@@ -148,8 +148,9 @@ enum {
+@@ -149,8 +149,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)
-@@ -167,12 +168,15 @@ static const char date_longopts[] ALIGN1
+@@ -168,12 +169,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];
-@@ -187,7 +191,7 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -188,7 +192,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));
-@@ -244,6 +248,31 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -245,6 +249,31 @@ int date_main(int argc UNUSED_PARAM, cha
  	if (*argv)
  		bb_show_usage();
  
-- 
2.9.3




More information about the Lede-dev mailing list