From: Felix Fietkau <nbd@openwrt.org>
Date: Sat, 4 Apr 2015 17:52:02 +0000 (+0000)
Subject: busybox: update to version 1.23.2
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c31df6e995c36e2b14b74f727b8392e6c1c10afc;p=lede.git

busybox: update to version 1.23.2

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45272
---

diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index 5797243a04..380ede7300 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -73,6 +73,12 @@ config BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
 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
@@ -160,6 +166,9 @@ config BUSYBOX_DEFAULT_DEBUG
 config BUSYBOX_DEFAULT_DEBUG_PESSIMIZE
 	bool
 	default n
+config BUSYBOX_DEFAULT_UNIT_TEST
+	bool
+	default n
 config BUSYBOX_DEFAULT_WERROR
 	bool
 	default n
@@ -430,6 +439,9 @@ config BUSYBOX_DEFAULT_ID
 config BUSYBOX_DEFAULT_GROUPS
 	bool
 	default n
+config BUSYBOX_DEFAULT_SHUF
+	bool
+	default n
 config BUSYBOX_DEFAULT_TEST
 	bool
 	default y
@@ -454,6 +466,9 @@ config BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
 config BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
 	bool
 	default n
+config BUSYBOX_DEFAULT_UNLINK
+	bool
+	default n
 config BUSYBOX_DEFAULT_BASE64
 	bool
 	default n
@@ -772,6 +787,9 @@ config BUSYBOX_DEFAULT_WHOAMI
 config BUSYBOX_DEFAULT_YES
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_VERBOSE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
 	bool
 	default y
@@ -949,6 +967,15 @@ config BUSYBOX_DEFAULT_FEATURE_VI_WIN_RESIZE
 config BUSYBOX_DEFAULT_FEATURE_VI_ASK_TERMINAL
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_VI_UNDO
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE_MAX
+	int
+	default 0
 config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
 	bool
 	default y
@@ -985,6 +1012,9 @@ config BUSYBOX_DEFAULT_FEATURE_FIND_INUM
 config BUSYBOX_DEFAULT_FEATURE_FIND_EXEC
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_FIND_EXEC_PLUS
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_FIND_USER
 	bool
 	default y
@@ -1048,6 +1078,9 @@ config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_TERMOPT
 config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_ZERO_TERM
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_REPL_STR
+	bool
+	default n
 config BUSYBOX_DEFAULT_BOOTCHARTD
 	bool
 	default n
@@ -1132,6 +1165,9 @@ config BUSYBOX_DEFAULT_FEATURE_ADDUSER_LONG_OPTIONS
 config BUSYBOX_DEFAULT_FEATURE_CHECK_NAMES
 	bool
 	default n
+config BUSYBOX_DEFAULT_LAST_ID
+	int
+	default 0
 config BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
 	int
 	default 0
@@ -1165,9 +1201,6 @@ config BUSYBOX_DEFAULT_LOGIN
 config BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD
 	bool
 	default n
-config BUSYBOX_DEFAULT_PAM
-	bool
-	default n
 config BUSYBOX_DEFAULT_LOGIN_SCRIPTS
 	bool
 	default n
@@ -1291,6 +1324,9 @@ config BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
 config BUSYBOX_DEFAULT_BLOCKDEV
 	bool
 	default n
+config BUSYBOX_DEFAULT_FATATTR
+	bool
+	default n
 config BUSYBOX_DEFAULT_FSTRIM
 	bool
 	default n
@@ -1504,6 +1540,9 @@ config BUSYBOX_DEFAULT_SETARCH
 config BUSYBOX_DEFAULT_SWAPONOFF
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_SWAPON_DISCARD
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
 	bool
 	default n
@@ -1594,6 +1633,18 @@ config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
 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_LESS
 	bool
 	default y
@@ -1636,6 +1687,12 @@ config BUSYBOX_DEFAULT_RFKILL
 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
@@ -1702,18 +1759,6 @@ config BUSYBOX_DEFAULT_FEATURE_CHAT_CLR_ABORT
 config BUSYBOX_DEFAULT_CHRT
 	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
@@ -1840,12 +1885,6 @@ config BUSYBOX_DEFAULT_SETSID
 config BUSYBOX_DEFAULT_STRINGS
 	bool
 	default y
-config BUSYBOX_DEFAULT_TASKSET
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
-	bool
-	default n
 config BUSYBOX_DEFAULT_TIME
 	bool
 	default y
@@ -1939,6 +1978,9 @@ config BUSYBOX_DEFAULT_FEATURE_FTP_WRITE
 config BUSYBOX_DEFAULT_FEATURE_FTPD_ACCEPT_BROKEN_LIST
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_FTP_AUTHENTICATION
+	bool
+	default n
 config BUSYBOX_DEFAULT_FTPGET
 	bool
 	default n
@@ -1957,9 +1999,6 @@ config BUSYBOX_DEFAULT_HTTPD
 config BUSYBOX_DEFAULT_FEATURE_HTTPD_RANGES
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_HTTPD_USE_SENDFILE
-	bool
-	default n
 config BUSYBOX_DEFAULT_FEATURE_HTTPD_SETUID
 	bool
 	default n
@@ -2131,6 +2170,9 @@ config BUSYBOX_DEFAULT_NTPD
 config BUSYBOX_DEFAULT_FEATURE_NTPD_SERVER
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_NTPD_CONF
+	bool
+	default n
 config BUSYBOX_DEFAULT_PSCAN
 	bool
 	default n
@@ -2230,6 +2272,9 @@ config BUSYBOX_DEFAULT_UDHCPC
 config BUSYBOX_DEFAULT_FEATURE_UDHCPC_ARPING
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
 	bool
 	default n
@@ -2524,6 +2569,9 @@ config BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
 config BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
 	bool
 	default y
+config BUSYBOX_DEFAULT_ASH_HELP
+	bool
+	default n
 config BUSYBOX_DEFAULT_ASH_CMDCMD
 	bool
 	default y
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index 7c9bca530e..9571d48bec 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.22.1
-PKG_RELEASE:=6
+PKG_VERSION:=1.23.2
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.busybox.net/downloads \
 		http://distfiles.gentoo.org/distfiles/
-PKG_MD5SUM:=337d1a15ab1cb1d4ed423168b1eb7d7e
+PKG_MD5SUM:=7925683d7dd105aabe9b6b618d48cc73
 
 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 71ba45b9b6..6a205f6c0c 100644
--- a/package/utils/busybox/config/Config.in
+++ b/package/utils/busybox/config/Config.in
@@ -256,6 +256,26 @@ config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
 	  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
+	help
+	  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
@@ -415,10 +435,7 @@ config BUSYBOX_CONFIG_SELINUX
 	  the option of compiling in SELinux applets.
 
 	  If you do not have a complete SELinux userland installed, this stuff
-	  will not compile. Go visit
-		http://www.nsa.gov/selinux/index.html
-	  to download the necessary stuff to allow busybox to compile with
-	  this option enabled. Specifially, libselinux 1.28 or better is
+	  will not compile.  Specifially, libselinux 1.28 or better is
 	  directly required by busybox. If the installation is located in a
 	  non-standard directory, provide it by invoking make as follows:
 		CFLAGS=-I<libselinux-include-path> \
@@ -670,6 +687,14 @@ config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
 	  in a much bigger executable that more closely matches the source
 	  code.
 
+config BUSYBOX_CONFIG_UNIT_TEST
+	bool "Build unit tests"
+	default BUSYBOX_DEFAULT_UNIT_TEST
+	help
+	  Say Y here if you want to build unit tests (both the framework and
+	  test cases) as a Busybox applet. This results in bigger code, so you
+	  probably don't want this option in production builds.
+
 config BUSYBOX_CONFIG_WERROR
 	bool "Abort compilation on any warning"
 	default BUSYBOX_DEFAULT_WERROR
diff --git a/package/utils/busybox/config/coreutils/Config.in b/package/utils/busybox/config/coreutils/Config.in
index c00eca9534..f50823f012 100644
--- a/package/utils/busybox/config/coreutils/Config.in
+++ b/package/utils/busybox/config/coreutils/Config.in
@@ -74,6 +74,11 @@ config BUSYBOX_CONFIG_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_TEST
 	bool "test"
 	default BUSYBOX_DEFAULT_TEST
@@ -134,6 +139,11 @@ config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
 	  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_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
@@ -778,12 +788,13 @@ config BUSYBOX_CONFIG_FEATURE_FANCY_TAIL
 	default BUSYBOX_DEFAULT_FEATURE_FANCY_TAIL
 	depends on BUSYBOX_CONFIG_TAIL
 	help
-	  The options (-q, -s, and -v) are provided by GNU tail, but
+	  The options (-q, -s, -v and -F) are provided by GNU tail, but
 	  are not specific in the SUSv3 standard.
 
 	    -q      Never output headers giving file names
 	    -s SEC  Wait SEC seconds between reads with -f
 	    -v      Always output headers giving file names
+	    -F      Same as -f, but keep retrying
 
 config BUSYBOX_CONFIG_TEE
 	bool "tee"
@@ -883,6 +894,16 @@ config BUSYBOX_CONFIG_YES
 	  yes is used to repeatedly output a specific string, or
 	  the default string `y'.
 
+comment "Common options"
+
+config BUSYBOX_CONFIG_FEATURE_VERBOSE
+	bool "Support verbose options (usually -v) for various applets"
+	default BUSYBOX_DEFAULT_FEATURE_VERBOSE
+	help
+	  Enable cp -v, rm -v and similar messages.
+	  Also enables long option (--verbose) if it exists.
+	  Without this option, -v is accepted but ignored.
+
 comment "Common options for cp and mv"
 	depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
 
diff --git a/package/utils/busybox/config/editors/Config.in b/package/utils/busybox/config/editors/Config.in
index 90f9f0086e..6ae361f7ff 100644
--- a/package/utils/busybox/config/editors/Config.in
+++ b/package/utils/busybox/config/editors/Config.in
@@ -192,6 +192,36 @@ config BUSYBOX_CONFIG_FEATURE_VI_ASK_TERMINAL
 	  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_VI_UNDO
+	bool "Support undo command 'u'"
+	default BUSYBOX_DEFAULT_FEATURE_VI_UNDO
+	depends on BUSYBOX_CONFIG_VI
+	help
+	  Support the 'u' command to undo insertion, deletion, and replacement
+	  of text.
+config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE
+	bool "Enable undo operation queuing"
+	default BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE
+	depends on BUSYBOX_CONFIG_FEATURE_VI_UNDO
+	help
+	  The vi undo functions can use an intermediate queue to greatly lower
+	  malloc() calls and overhead. When the maximum size of this queue is
+	  reached, the contents of the queue are committed to the undo stack.
+	  This increases the size of the undo code and allows some undo
+	  operations (especially un-typing/backspacing) to be far more useful.
+config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX
+	int "Maximum undo character queue size"
+	default BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE_MAX
+	range 32 65536
+	depends on BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE
+	help
+	  This option sets the number of bytes used at runtime for the queue.
+	  Smaller values will create more undo objects and reduce the amount
+	  of typed or backspaced characters that are grouped into one undo
+	  operation; larger values increase the potential size of each undo
+	  and will generally malloc() larger objects and less frequently.
+	  Unless you want more (or less) frequent "undo points" while typing,
+	  you should probably leave this unchanged.
 
 config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
 	bool "Allow vi and awk to execute shell commands"
diff --git a/package/utils/busybox/config/findutils/Config.in b/package/utils/busybox/config/findutils/Config.in
index 55929d2846..85ee1db2c3 100644
--- a/package/utils/busybox/config/findutils/Config.in
+++ b/package/utils/busybox/config/findutils/Config.in
@@ -90,6 +90,16 @@ config BUSYBOX_CONFIG_FEATURE_FIND_EXEC
 	  Support the 'find -exec' option for executing commands based upon
 	  the files matched.
 
+config BUSYBOX_CONFIG_FEATURE_FIND_EXEC_PLUS
+	bool "Enable -exec ... {} +"
+	default BUSYBOX_DEFAULT_FEATURE_FIND_EXEC_PLUS
+	depends on BUSYBOX_CONFIG_FEATURE_FIND_EXEC
+	help
+	  Support the 'find -exec ... {} +' option for executing commands
+	  for all matched files at once.
+	  Without this option, -exec + is a synonym for -exec ;
+	  (IOW: it works correctly, but without expected speedup)
+
 config BUSYBOX_CONFIG_FEATURE_FIND_USER
 	bool "Enable -user: username/uid matching"
 	default BUSYBOX_DEFAULT_FEATURE_FIND_USER
@@ -249,4 +259,11 @@ config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
 	  instead of whitespace, and the quotes and backslash
 	  are not special.
 
+config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR
+	bool "Enable -I STR: string to replace"
+	default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_REPL_STR
+	depends on BUSYBOX_CONFIG_XARGS
+	help
+	  Support -I STR and -i[STR] options.
+
 endmenu
diff --git a/package/utils/busybox/config/loginutils/Config.in b/package/utils/busybox/config/loginutils/Config.in
index 7fbe6a0aec..f5ecf6f23b 100644
--- a/package/utils/busybox/config/loginutils/Config.in
+++ b/package/utils/busybox/config/loginutils/Config.in
@@ -129,10 +129,17 @@ config BUSYBOX_CONFIG_FEATURE_CHECK_NAMES
 	  For compatibility with Samba machine accounts "$" is also supported
 	  at the end of the user or group name.
 
+config BUSYBOX_CONFIG_LAST_ID
+	int "Last valid uid or gid for adduser and addgroup"
+	depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
+	default BUSYBOX_DEFAULT_LAST_ID
+	help
+	  Last valid uid or gid for adduser and addgroup
+
 config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
 	int "First valid system uid or gid for adduser and addgroup"
 	depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
-	range 0 64900
+	range 0 BUSYBOX_CONFIG_LAST_ID
 	default BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
 	help
 	  First valid system uid or gid for adduser and addgroup
@@ -140,7 +147,7 @@ config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
 config BUSYBOX_CONFIG_LAST_SYSTEM_ID
 	int "Last valid system uid or gid for adduser and addgroup"
 	depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
-	range 0 64900
+	range BUSYBOX_CONFIG_FIRST_SYSTEM_ID BUSYBOX_CONFIG_LAST_ID
 	default BUSYBOX_DEFAULT_LAST_SYSTEM_ID
 	help
 	  Last valid system uid or gid for adduser and addgroup
@@ -227,13 +234,6 @@ config BUSYBOX_CONFIG_LOGIN_SESSION_AS_CHILD
 	  almost always would want this to be set to Y, else PAM session
 	  will not be cleaned up.
 
-config BUSYBOX_CONFIG_PAM
-	bool "Support for PAM (Pluggable Authentication Modules)"
-	default BUSYBOX_DEFAULT_PAM
-	depends on BUSYBOX_CONFIG_LOGIN
-	help
-	  Use PAM in login(1) instead of direct access to password database.
-
 config BUSYBOX_CONFIG_LOGIN_SCRIPTS
 	bool "Support for login scripts"
 	depends on BUSYBOX_CONFIG_LOGIN
diff --git a/package/utils/busybox/config/miscutils/Config.in b/package/utils/busybox/config/miscutils/Config.in
index 0e0e459a23..7819e30583 100644
--- a/package/utils/busybox/config/miscutils/Config.in
+++ b/package/utils/busybox/config/miscutils/Config.in
@@ -15,6 +15,39 @@ config BUSYBOX_CONFIG_CONSPY
 	  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_LESS
 	bool "less"
 	default BUSYBOX_DEFAULT_LESS
@@ -121,6 +154,21 @@ config BUSYBOX_CONFIG_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
@@ -295,40 +343,6 @@ config BUSYBOX_CONFIG_CHRT
 	  manipulate real-time attributes of a process.
 	  This requires sched_{g,s}etparam support in your libc.
 
-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 sets loglevel to 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
@@ -701,22 +715,6 @@ config BUSYBOX_CONFIG_STRINGS
 	  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
diff --git a/package/utils/busybox/config/networking/Config.in b/package/utils/busybox/config/networking/Config.in
index 52e38a3f00..b3dd8c8b89 100644
--- a/package/utils/busybox/config/networking/Config.in
+++ b/package/utils/busybox/config/networking/Config.in
@@ -67,7 +67,6 @@ 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
-	select BUSYBOX_CONFIG_NC_SERVER
 	help
 	  This option makes nc closely follow original nc-1.10.
 	  The code is about 2.5k bigger. It enables
@@ -228,6 +227,13 @@ 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
+	bool "Enable authentication"
+	default BUSYBOX_DEFAULT_FEATURE_FTP_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
@@ -268,14 +274,6 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_RANGES
 	  "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
 	  downloads, seeking in multimedia players etc.
 
-config BUSYBOX_CONFIG_FEATURE_HTTPD_USE_SENDFILE
-	bool "Use sendfile system call"
-	default BUSYBOX_DEFAULT_FEATURE_HTTPD_USE_SENDFILE
-	depends on BUSYBOX_CONFIG_HTTPD
-	help
-	  When enabled, httpd will use the kernel sendfile() function
-	  instead of read/write loop.
-
 config BUSYBOX_CONFIG_FEATURE_HTTPD_SETUID
 	bool "Enable -u <user> option"
 	default BUSYBOX_DEFAULT_FEATURE_HTTPD_SETUID
@@ -764,6 +762,14 @@ config BUSYBOX_CONFIG_FEATURE_NTPD_SERVER
 	  Make ntpd usable as a NTP server. If you disable this option
 	  ntpd will be usable only as a NTP client.
 
+config BUSYBOX_CONFIG_FEATURE_NTPD_CONF
+	bool "Make ntpd understand /etc/ntp.conf"
+	default BUSYBOX_DEFAULT_FEATURE_NTPD_CONF
+	depends on BUSYBOX_CONFIG_NTPD
+	help
+	  Make ntpd look in /etc/ntp.conf for peers. Only "server address"
+	  is supported.
+
 config BUSYBOX_CONFIG_PSCAN
 	bool "pscan"
 	default BUSYBOX_DEFAULT_PSCAN
diff --git a/package/utils/busybox/config/networking/udhcp/Config.in b/package/utils/busybox/config/networking/udhcp/Config.in
index 576a01a25f..4f48400225 100644
--- a/package/utils/busybox/config/networking/udhcp/Config.in
+++ b/package/utils/busybox/config/networking/udhcp/Config.in
@@ -90,6 +90,17 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING
 	  will DHCPDECLINE the offer if the address is in use,
 	  and restart the discover process.
 
+config BUSYBOX_CONFIG_FEATURE_UDHCPC_SANITIZEOPT
+	bool "Do not pass malformed host and domain names"
+	default BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
+	depends on BUSYBOX_CONFIG_UDHCPC
+	help
+	  If selected, udhcpc will check some options (such as option 12 -
+	  hostname) and if they don't look like valid hostnames
+	  (for example, if they start with dash or contain spaces),
+	  they will be replaced with string "bad" when exporting
+	  to the environment.
+
 config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
 	bool "Enable '-P port' option for udhcpd and udhcpc"
 	default BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
diff --git a/package/utils/busybox/config/shell/Config.in b/package/utils/busybox/config/shell/Config.in
index c375f0c26e..69ecf145e1 100644
--- a/package/utils/busybox/config/shell/Config.in
+++ b/package/utils/busybox/config/shell/Config.in
@@ -73,6 +73,13 @@ config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
 	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
+	help
+	  Enable help builtin in ash.
+
 config BUSYBOX_CONFIG_ASH_CMDCMD
 	bool "'command' command to override shell builtins"
 	default BUSYBOX_DEFAULT_ASH_CMDCMD
diff --git a/package/utils/busybox/config/util-linux/Config.in b/package/utils/busybox/config/util-linux/Config.in
index f78234de82..8d1464dc0c 100644
--- a/package/utils/busybox/config/util-linux/Config.in
+++ b/package/utils/busybox/config/util-linux/Config.in
@@ -11,6 +11,12 @@ config BUSYBOX_CONFIG_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
@@ -672,6 +678,15 @@ config BUSYBOX_CONFIG_SWAPONOFF
 	  space. If you are not using any swap space, you can leave this
 	  option disabled.
 
+config BUSYBOX_CONFIG_FEATURE_SWAPON_DISCARD
+	bool "Support discard option -d"
+	default BUSYBOX_DEFAULT_FEATURE_SWAPON_DISCARD
+	depends on BUSYBOX_CONFIG_SWAPONOFF
+	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
+	  'swapon' and the 'discard' option for swap entries in /etc/fstab.
+
 config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI
 	bool "Support priority option -p"
 	default BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
diff --git a/package/utils/busybox/convert_menuconfig.pl b/package/utils/busybox/convert_menuconfig.pl
index cc4802a61c..fd99349b65 100755
--- a/package/utils/busybox/convert_menuconfig.pl
+++ b/package/utils/busybox/convert_menuconfig.pl
@@ -41,6 +41,14 @@ while (<FIND>) {
 			undef $default_set;
 		}
 		$line =~ s/^(\s*source\s+)/$1package\/utils\/busybox\/config\//;
+		if ($line =~ /^(\s*range\s*)(\w+)(\s+)(\w+)\s*$/) {
+			my $prefix = $1;
+			my $r1 = $2;
+			my $r2 = $4;
+			$r1 =~ s/^([a-zA-Z]+)/BUSYBOX_CONFIG_$1/;
+			$r2 =~ s/^([a-zA-Z]+)/BUSYBOX_CONFIG_$1/;
+			$line = "$prefix$r1 $r2\n";
+		}
 
 		$line =~ s/^(\s*(prompt "[^"]+" if|config|depends|depends on|select|default|default \w if)\s+\!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
 		$line =~ s/(( \|\| | \&\& | \( )!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
diff --git a/package/utils/busybox/patches/001-resource_h_include.patch b/package/utils/busybox/patches/001-resource_h_include.patch
index d66d66d67e..5e2f1721c4 100644
--- a/package/utils/busybox/patches/001-resource_h_include.patch
+++ b/package/utils/busybox/patches/001-resource_h_include.patch
@@ -1,7 +1,7 @@
 --- a/include/libbb.h
 +++ b/include/libbb.h
-@@ -35,6 +35,7 @@
- #include <sys/poll.h>
+@@ -40,6 +40,7 @@
+ #include <poll.h>
  #include <sys/ioctl.h>
  #include <sys/mman.h>
 +#include <sys/resource.h>
diff --git a/package/utils/busybox/patches/002-upstream_ash_fix.patch b/package/utils/busybox/patches/002-upstream_ash_fix.patch
deleted file mode 100644
index 46fd7f88fe..0000000000
--- a/package/utils/busybox/patches/002-upstream_ash_fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -13014,7 +13014,7 @@ init(void)
- 		setvar2("PPID", utoa(getppid()));
- #if ENABLE_ASH_BASH_COMPAT
- 		p = lookupvar("SHLVL");
--		setvar2("SHLVL", utoa(p ? atoi(p) + 1 : 1));
-+		setvar("SHLVL", utoa((p ? atoi(p) : 0) + 1), VEXPORT);
- #endif
- 		p = lookupvar("PWD");
- 		if (p) {
diff --git a/package/utils/busybox/patches/003-upstream_date_fix.patch b/package/utils/busybox/patches/003-upstream_date_fix.patch
deleted file mode 100644
index 5b389c4794..0000000000
--- a/package/utils/busybox/patches/003-upstream_date_fix.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/libbb/time.c
-+++ b/libbb/time.c
-@@ -68,15 +68,23 @@ void FAST_FUNC parse_datestr(const char 
- 			/* else end != NUL and we error out */
- 		}
- 	} else
--	/* yyyy-mm-dd HH */
--	if (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
-+	if (strchr(date_str, '-')
-+	    /* Why strchr('-') check?
-+	     * sscanf below will trash ptm->tm_year, this breaks
-+	     * if parse_str is "10101010" (iow, "MMddhhmm" form)
-+	     * because we destroy year. Do these sscanf
-+	     * only if we saw a dash in parse_str.
-+	     */
-+		/* yyyy-mm-dd HH */
-+	 && (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
- 				&ptm->tm_mon, &ptm->tm_mday,
- 				&ptm->tm_hour,
- 				&end) >= 4
--	/* yyyy-mm-dd */
--	 || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
-+		/* yyyy-mm-dd */
-+	     || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
- 				&ptm->tm_mon, &ptm->tm_mday,
- 				&end) >= 3
-+	    )
- 	) {
- 		ptm->tm_year -= 1900; /* Adjust years */
- 		ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */
diff --git a/package/utils/busybox/patches/004-upstream_iplink_fix.patch b/package/utils/busybox/patches/004-upstream_iplink_fix.patch
deleted file mode 100644
index 0e2535687c..0000000000
--- a/package/utils/busybox/patches/004-upstream_iplink_fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/networking/libiproute/iplink.c
-+++ b/networking/libiproute/iplink.c
-@@ -31,6 +31,16 @@
- #ifndef IFLA_LINKINFO
- # define IFLA_LINKINFO 18
- # define IFLA_INFO_KIND 1
-+# define IFLA_INFO_DATA 2
-+#endif
-+
-+#ifndef IFLA_VLAN_MAX
-+# define IFLA_VLAN_ID 1
-+# define IFLA_VLAN_FLAGS 2
-+struct ifla_vlan_flags {
-+	uint32_t	flags;
-+	uint32_t	mask;
-+};
- #endif
- 
- /* taken from linux/sockios.h */
diff --git a/package/utils/busybox/patches/005-upstream_nc_fix.patch b/package/utils/busybox/patches/005-upstream_nc_fix.patch
deleted file mode 100644
index 1bd235924d..0000000000
--- a/package/utils/busybox/patches/005-upstream_nc_fix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/networking/nc_bloaty.c
-+++ b/networking/nc_bloaty.c
-@@ -175,9 +175,9 @@ enum {
- 	OPT_w = (1 << 5),
- 	OPT_l = (1 << 6) * ENABLE_NC_SERVER,
- 	OPT_k = (1 << 7) * ENABLE_NC_SERVER,
--	OPT_i = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
--	OPT_o = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
--	OPT_z = (1 << (9+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+	OPT_i = (1 << (6+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+	OPT_o = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+	OPT_z = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
- };
- 
- #define o_nflag   (option_mask32 & OPT_n)
diff --git a/package/utils/busybox/patches/006-upstream_lzop_fix.patch b/package/utils/busybox/patches/006-upstream_lzop_fix.patch
deleted file mode 100644
index 6e453eb981..0000000000
--- a/package/utils/busybox/patches/006-upstream_lzop_fix.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From a9dc7c2f59dc5e92870d2d46316ea5c1f14740e3 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Mon, 30 Jun 2014 10:14:34 +0200
-Subject: [PATCH] lzop: add overflow check
-
-See CVE-2014-4607
-http://www.openwall.com/lists/oss-security/2014/06/26/20
-
-function                                             old     new   delta
-lzo1x_decompress_safe                               1010    1031     +21
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- archival/libarchive/liblzo.h  | 2 ++
- archival/libarchive/lzo1x_d.c | 3 +++
- 2 files changed, 5 insertions(+)
-
---- a/archival/libarchive/liblzo.h
-+++ b/archival/libarchive/liblzo.h
-@@ -76,11 +76,13 @@
- #    define TEST_IP             (ip < ip_end)
- #    define NEED_IP(x) \
-             if ((unsigned)(ip_end - ip) < (unsigned)(x))  goto input_overrun
-+#    define TEST_IV(x)          if ((x) > (unsigned)0 - (511)) goto input_overrun
- 
- #    undef TEST_OP              /* don't need both of the tests here */
- #    define TEST_OP             1
- #    define NEED_OP(x) \
-             if ((unsigned)(op_end - op) < (unsigned)(x))  goto output_overrun
-+#    define TEST_OV(x)          if ((x) > (unsigned)0 - (511)) goto output_overrun
- 
- #define HAVE_ANY_OP 1
- 
---- a/archival/libarchive/lzo1x_d.c
-+++ b/archival/libarchive/lzo1x_d.c
-@@ -92,6 +92,7 @@ int lzo1x_decompress_safe(const uint8_t*
- 				ip++;
- 				NEED_IP(1);
- 			}
-+			TEST_IV(t);
- 			t += 15 + *ip++;
- 		}
- 		/* copy literals */
-@@ -224,6 +225,7 @@ int lzo1x_decompress_safe(const uint8_t*
- 						ip++;
- 						NEED_IP(1);
- 					}
-+					TEST_IV(t);
- 					t += 31 + *ip++;
- 				}
- #if defined(COPY_DICT)
-@@ -265,6 +267,7 @@ int lzo1x_decompress_safe(const uint8_t*
- 						ip++;
- 						NEED_IP(1);
- 					}
-+					TEST_IV(t);
- 					t += 7 + *ip++;
- 				}
- #if defined(COPY_DICT)
diff --git a/package/utils/busybox/patches/007-upstream_zcat_no_ext_fix.patch b/package/utils/busybox/patches/007-upstream_zcat_no_ext_fix.patch
deleted file mode 100644
index 24838001ad..0000000000
--- a/package/utils/busybox/patches/007-upstream_zcat_no_ext_fix.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 28dd64a0e1a9cffcde7799f2849b66c0e16bb9cc Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Fri, 10 Jan 2014 14:06:57 +0100
-Subject: [PATCH] libarchive: open_zipped() does not need to check extensions
- for e.g. gzip
-
-We only need to check for signature-less extensions,
-currently only .lzma. The rest can be happily autodetected.
-
-This fixes "zcat FILE_WITHOUT_GZ_EXT" case, among others.
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-(cherry picked from commit 7c47b560a8fc97956dd8132bd7f1863d83c19866)
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- archival/libarchive/open_transformer.c | 23 +++++++++++------------
- 1 file changed, 11 insertions(+), 12 deletions(-)
-
---- a/archival/libarchive/open_transformer.c
-+++ b/archival/libarchive/open_transformer.c
-@@ -182,27 +182,26 @@ int FAST_FUNC setup_unzip_on_fd(int fd,
- 
- int FAST_FUNC open_zipped(const char *fname)
- {
--	char *sfx;
- 	int fd;
- 
- 	fd = open(fname, O_RDONLY);
- 	if (fd < 0)
- 		return fd;
- 
--	sfx = strrchr(fname, '.');
--	if (sfx) {
--		sfx++;
--		if (ENABLE_FEATURE_SEAMLESS_LZMA && strcmp(sfx, "lzma") == 0)
--			/* .lzma has no header/signature, just trust it */
-+	if (ENABLE_FEATURE_SEAMLESS_LZMA) {
-+		/* .lzma has no header/signature, can only detect it by extension */
-+		char *sfx = strrchr(fname, '.');
-+		if (sfx && strcmp(sfx+1, "lzma") == 0) {
- 			open_transformer_with_sig(fd, unpack_lzma_stream, "unlzma");
--		else
--		if ((ENABLE_FEATURE_SEAMLESS_GZ && strcmp(sfx, "gz") == 0)
--		 || (ENABLE_FEATURE_SEAMLESS_BZ2 && strcmp(sfx, "bz2") == 0)
--		 || (ENABLE_FEATURE_SEAMLESS_XZ && strcmp(sfx, "xz") == 0)
--		) {
--			setup_unzip_on_fd(fd, /*fail_if_not_detected:*/ 1);
-+			return fd;
- 		}
- 	}
-+	if ((ENABLE_FEATURE_SEAMLESS_GZ)
-+	 || (ENABLE_FEATURE_SEAMLESS_BZ2)
-+	 || (ENABLE_FEATURE_SEAMLESS_XZ)
-+	) {
-+		setup_unzip_on_fd(fd, /*fail_if_not_detected:*/ 1);
-+	}
- 
- 	return fd;
- }
diff --git a/package/utils/busybox/patches/102-freebsd-compat.patch b/package/utils/busybox/patches/102-freebsd-compat.patch
deleted file mode 100644
index 26d1ec6f71..0000000000
--- a/package/utils/busybox/patches/102-freebsd-compat.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/scripts/basic/docproc.c
-+++ b/scripts/basic/docproc.c
-@@ -39,7 +39,10 @@
- #include <limits.h>
- #include <sys/types.h>
- #include <sys/wait.h>
-+
-+#ifndef __FreeBSD__
- #include <alloca.h>
-+#endif
- 
- /* exitstatus is used to keep track of any failing calls to kernel-doc,
-  * but execution continues. */
---- a/scripts/basic/fixdep.c
-+++ b/scripts/basic/fixdep.c
-@@ -113,7 +113,10 @@
- #include <limits.h>
- #include <ctype.h>
- #include <arpa/inet.h>
-+
-+#ifndef __FreeBSD__
- #include <alloca.h>
-+#endif
- 
- /* bbox: not needed
- #define INT_CONF ntohl(0x434f4e46)
diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
index f3470fdc16..c3de9783b4 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
-@@ -681,6 +681,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -685,6 +685,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),
-@@ -698,6 +699,7 @@ static NOINLINE int send_discover(uint32
+@@ -702,6 +703,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 3e4e049684..e7e2fce309 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
-@@ -1400,6 +1400,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1410,6 +1410,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 4bb64b8ad0..471f12f728 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
-@@ -1087,7 +1087,6 @@ static void perform_renew(void)
+@@ -1093,7 +1093,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
index 6da568a914..b6d8b6f1a9 100644
--- a/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch
+++ b/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch
@@ -1,8 +1,6 @@
-Index: busybox-1.22.1/networking/udhcp/dhcpc.c
-===================================================================
---- busybox-1.22.1.orig/networking/udhcp/dhcpc.c
-+++ busybox-1.22.1/networking/udhcp/dhcpc.c
-@@ -659,10 +659,10 @@ static void add_client_options(struct dh
+--- a/networking/udhcp/dhcpc.c
++++ b/networking/udhcp/dhcpc.c
+@@ -663,10 +663,10 @@ static void add_client_options(struct dh
   * client reverts to using the IP broadcast address.
   */
  
@@ -15,7 +13,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
  		/*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR,
  		client_config.ifindex);
  }
-@@ -673,7 +673,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -677,7 +677,7 @@ static int bcast_or_ucast(struct dhcp_pa
  		return udhcp_send_kernel_packet(packet,
  			ciaddr, CLIENT_PORT,
  			server, SERVER_PORT);
@@ -24,7 +22,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
  }
  
  /* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
-@@ -701,7 +701,7 @@ static NOINLINE int send_discover(uint32
+@@ -705,7 +705,7 @@ static NOINLINE int send_discover(uint32
  
  	if (msgs++ < 3)
  	bb_info_msg("Sending discover...");
@@ -33,7 +31,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
  }
  
  /* Broadcast a DHCP request message */
-@@ -745,7 +745,7 @@ static NOINLINE int send_select(uint32_t
+@@ -749,7 +749,7 @@ static NOINLINE int send_select(uint32_t
  
  	addr.s_addr = requested;
  	bb_info_msg("Sending select for %s...", inet_ntoa(addr));
@@ -42,7 +40,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
  }
  
  /* Unicast or broadcast a DHCP renew message */
-@@ -813,7 +813,7 @@ static NOINLINE int send_decline(/*uint3
+@@ -817,7 +817,7 @@ static NOINLINE int send_decline(/*uint3
  	udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server);
  
  	bb_info_msg("Sending decline...");
diff --git a/package/utils/busybox/patches/210-add_netmsg_util.patch b/package/utils/busybox/patches/210-add_netmsg_util.patch
index 1f6c92edad..4da61447fe 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
-@@ -255,6 +255,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO
+@@ -254,6 +254,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
-@@ -620,6 +620,12 @@ config FEATURE_IPCALC_LONG_OPTIONS
+@@ -619,6 +619,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 ce663b61f5..f42edcb0de 100644
--- a/package/utils/busybox/patches/220-add_lock_util.patch
+++ b/package/utils/busybox/patches/220-add_lock_util.patch
@@ -1,6 +1,6 @@
 --- a/include/applets.src.h
 +++ b/include/applets.src.h
-@@ -212,6 +212,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, 
+@@ -211,6 +211,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))
@@ -10,7 +10,7 @@
  IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
 --- a/miscutils/Config.src
 +++ b/miscutils/Config.src
-@@ -419,6 +419,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
+@@ -385,6 +385,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
  	help
  	  Enables the 'hdparm -d' option to get/set using_dma flag.
  
@@ -25,7 +25,7 @@
  	default y
 --- a/miscutils/Kbuild.src
 +++ b/miscutils/Kbuild.src
-@@ -29,6 +29,7 @@ lib-$(CONFIG_INOTIFYD)    += inotifyd.o
+@@ -28,6 +28,7 @@ lib-$(CONFIG_INOTIFYD)    += inotifyd.o
  lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
  lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
  lib-$(CONFIG_LESS)        += less.o
diff --git a/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch b/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch
index d46a0e3f24..1543e53173 100644
--- a/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch
+++ b/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch
@@ -1,6 +1,6 @@
 --- a/networking/ntpd.c
 +++ b/networking/ntpd.c
-@@ -238,6 +238,7 @@ typedef struct {
+@@ -251,6 +251,7 @@ typedef struct {
  typedef struct {
  	len_and_sockaddr *p_lsa;
  	char             *p_dotted;
@@ -8,7 +8,7 @@
  	int              p_fd;
  	int              datapoint_idx;
  	uint32_t         lastpkt_refid;
-@@ -738,8 +739,9 @@ add_peers(char *s)
+@@ -756,8 +757,9 @@ add_peers(const char *s)
  	peer_t *p;
  
  	p = xzalloc(sizeof(*p));
@@ -20,7 +20,7 @@
  	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); */
-@@ -788,6 +790,25 @@ send_query_to_peer(peer_t *p)
+@@ -806,6 +808,25 @@ send_query_to_peer(peer_t *p)
  	 *
  	 * Uncomment this and use strace to see it in action:
  	 */