Selaa lähdekoodia

busybox: update to version 1.25.0

The following patches were removed:
010-networking-fix-uninitialized-memory-when-displaying-.patch
  https://git.busybox.net/busybox/commit/?id=f2c043acfcf9dad9fd3d65821b81f89986bbe54e

030-ip-fix-problem-on-mips64-n64-big-endian-musl-systems.patch
  https://git.busybox.net/busybox/commit/?id=4ab372d49a6e82b0bf097dedb96d26330c5f2d5f

204-udhcpc_src_ip_rebind.patch
  https://git.busybox.net/busybox/commit/?id=abe8f7515aded80889d78c2c1c8947997918cf90

230-ntpd_delayed_resolve.patch
  https://git.busybox.net/busybox/commit/?id=c8641962e4cbde48108ddfc1c105e3320778190d
  https://git.busybox.net/busybox/commit/?id=e4caf1dd9ce8569371a0eeb77ccf02a572dc0f11

260-arping_missing_includes.patch
  Not needed any more, still builds with musl for me.
  Add in 92fd6e6f1a "busybox: fix arping applet building on musl"

The Kconfig files were updated with these commands:
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 <[email protected]>
Hauke Mehrtens 9 vuotta sitten
vanhempi
sitoutus
06fa1c46fc
33 muutettua tiedostoa jossa 482 lisäystä ja 570 poistoa
  1. 104 65
      package/utils/busybox/Config-defaults.in
  2. 2 2
      package/utils/busybox/Makefile
  3. 22 0
      package/utils/busybox/config/Config.in
  4. 13 16
      package/utils/busybox/config/archival/Config.in
  5. 23 16
      package/utils/busybox/config/coreutils/Config.in
  6. 0 5
      package/utils/busybox/config/debianutils/Config.in
  7. 15 19
      package/utils/busybox/config/e2fsprogs/Config.in
  8. 32 17
      package/utils/busybox/config/init/Config.in
  9. 36 12
      package/utils/busybox/config/libbb/Config.in
  10. 54 58
      package/utils/busybox/config/loginutils/Config.in
  11. 9 13
      package/utils/busybox/config/miscutils/Config.in
  12. 0 3
      package/utils/busybox/config/modutils/Config.in
  13. 14 1
      package/utils/busybox/config/networking/Config.in
  14. 0 2
      package/utils/busybox/config/printutils/Config.in
  15. 30 35
      package/utils/busybox/config/runit/Config.in
  16. 59 62
      package/utils/busybox/config/sysklogd/Config.in
  17. 35 10
      package/utils/busybox/config/util-linux/Config.in
  18. 8 0
      package/utils/busybox/config/util-linux/volume_id/Config.in
  19. 1 1
      package/utils/busybox/patches/001-resource_h_include.patch
  20. 0 23
      package/utils/busybox/patches/010-networking-fix-uninitialized-memory-when-displaying-.patch
  21. 1 1
      package/utils/busybox/patches/020-networking-libiproute-fix-displaying-route-table-for.patch
  22. 0 75
      package/utils/busybox/patches/030-ip-fix-problem-on-mips64-n64-big-endian-musl-systems.patch
  23. 1 1
      package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch
  24. 4 4
      package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
  25. 1 1
      package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
  26. 1 1
      package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
  27. 0 51
      package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch
  28. 2 2
      package/utils/busybox/patches/210-add_netmsg_util.patch
  29. 8 8
      package/utils/busybox/patches/220-add_lock_util.patch
  30. 0 48
      package/utils/busybox/patches/230-ntpd_delayed_resolve.patch
  31. 1 1
      package/utils/busybox/patches/240-telnetd_intr.patch
  32. 6 6
      package/utils/busybox/patches/250-date-k-flag.patch
  33. 0 11
      package/utils/busybox/patches/260-arping_missing_includes.patch

+ 104 - 65
package/utils/busybox/Config-defaults.in

@@ -34,6 +34,9 @@ config BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE
 config BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE
 config BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE
 	bool
 	bool
 	default y
 	default y
+config BUSYBOX_DEFAULT_BUSYBOX
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_INSTALLER
 config BUSYBOX_DEFAULT_FEATURE_INSTALLER
 	bool
 	bool
 	default n
 	default n
@@ -166,6 +169,9 @@ config BUSYBOX_DEFAULT_DEBUG
 config BUSYBOX_DEFAULT_DEBUG_PESSIMIZE
 config BUSYBOX_DEFAULT_DEBUG_PESSIMIZE
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_DEBUG_SANITIZE
+	bool
+	default n
 config BUSYBOX_DEFAULT_UNIT_TEST
 config BUSYBOX_DEFAULT_UNIT_TEST
 	bool
 	bool
 	default n
 	default n
@@ -205,7 +211,7 @@ config BUSYBOX_DEFAULT_INSTALL_SH_APPLET_SCRIPT_WRAPPER
 config BUSYBOX_DEFAULT_PREFIX
 config BUSYBOX_DEFAULT_PREFIX
 	string
 	string
 	default "./_install"
 	default "./_install"
-config BUSYBOX_DEFAULT_FEATURE_SYSTEMD
+config BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
 	bool
 	bool
 	default n
 	default n
 config BUSYBOX_DEFAULT_FEATURE_RTMINMAX
 config BUSYBOX_DEFAULT_FEATURE_RTMINMAX
@@ -313,6 +319,9 @@ config BUSYBOX_DEFAULT_UNCOMPRESS
 config BUSYBOX_DEFAULT_GUNZIP
 config BUSYBOX_DEFAULT_GUNZIP
 	bool
 	bool
 	default y
 	default y
+config BUSYBOX_DEFAULT_FEATURE_GUNZIP_LONG_OPTIONS
+	bool
+	default n
 config BUSYBOX_DEFAULT_BUNZIP2
 config BUSYBOX_DEFAULT_BUNZIP2
 	bool
 	bool
 	default y
 	default y
@@ -460,6 +469,15 @@ config BUSYBOX_DEFAULT_GROUPS
 config BUSYBOX_DEFAULT_SHUF
 config BUSYBOX_DEFAULT_SHUF
 	bool
 	bool
 	default n
 	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
 config BUSYBOX_DEFAULT_SYNC
 	bool
 	bool
 	default y
 	default y
@@ -733,12 +751,6 @@ config BUSYBOX_DEFAULT_SPLIT
 config BUSYBOX_DEFAULT_FEATURE_SPLIT_FANCY
 config BUSYBOX_DEFAULT_FEATURE_SPLIT_FANCY
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_STAT
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_STAT_FORMAT
-	bool
-	default n
 config BUSYBOX_DEFAULT_STTY
 config BUSYBOX_DEFAULT_STTY
 	bool
 	bool
 	default n
 	default n
@@ -1117,6 +1129,9 @@ config BUSYBOX_DEFAULT_TELINIT_PATH
 config BUSYBOX_DEFAULT_INIT
 config BUSYBOX_DEFAULT_INIT
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_LINUXRC
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_USE_INITTAB
 config BUSYBOX_DEFAULT_FEATURE_USE_INITTAB
 	bool
 	bool
 	default n
 	default n
@@ -1138,22 +1153,16 @@ config BUSYBOX_DEFAULT_FEATURE_EXTRA_QUIET
 config BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
 config BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_FEATURE_INITRD
-	bool
-	default n
 config BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE
 config BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE
 	string
 	string
 	default ""
 	default ""
-config BUSYBOX_DEFAULT_MESG
+config BUSYBOX_DEFAULT_FEATURE_INIT_MODIFY_CMDLINE
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP
-	bool
-	default n
-config BUSYBOX_DEFAULT_ADD_SHELL
+config BUSYBOX_DEFAULT_MESG
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_REMOVE_SHELL
+config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP
 	bool
 	bool
 	default n
 	default n
 config BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS
 config BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS
@@ -1171,6 +1180,21 @@ config BUSYBOX_DEFAULT_USE_BB_CRYPT
 config BUSYBOX_DEFAULT_USE_BB_CRYPT_SHA
 config BUSYBOX_DEFAULT_USE_BB_CRYPT_SHA
 	bool
 	bool
 	default n
 	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
 config BUSYBOX_DEFAULT_ADDUSER
 	bool
 	bool
 	default n
 	default n
@@ -1189,13 +1213,16 @@ config BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
 config BUSYBOX_DEFAULT_LAST_SYSTEM_ID
 config BUSYBOX_DEFAULT_LAST_SYSTEM_ID
 	int
 	int
 	default 0
 	default 0
-config BUSYBOX_DEFAULT_ADDGROUP
+config BUSYBOX_DEFAULT_CHPASSWD
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_FEATURE_ADDGROUP_LONG_OPTIONS
+config BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
+	string
+	default "md5"
+config BUSYBOX_DEFAULT_CRYPTPW
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_FEATURE_ADDUSER_TO_GROUP
+config BUSYBOX_DEFAULT_MKPASSWD
 	bool
 	bool
 	default n
 	default n
 config BUSYBOX_DEFAULT_DELUSER
 config BUSYBOX_DEFAULT_DELUSER
@@ -1231,15 +1258,6 @@ config BUSYBOX_DEFAULT_PASSWD
 config BUSYBOX_DEFAULT_FEATURE_PASSWD_WEAK_CHECK
 config BUSYBOX_DEFAULT_FEATURE_PASSWD_WEAK_CHECK
 	bool
 	bool
 	default y
 	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
 config BUSYBOX_DEFAULT_SU
 	bool
 	bool
 	default n
 	default n
@@ -1336,6 +1354,9 @@ config BUSYBOX_DEFAULT_DEFAULT_MODULES_DIR
 config BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
 config BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
 	string
 	string
 	default ""
 	default ""
+config BUSYBOX_DEFAULT_BLKDISCARD
+	bool
+	default n
 config BUSYBOX_DEFAULT_BLOCKDEV
 config BUSYBOX_DEFAULT_BLOCKDEV
 	bool
 	bool
 	default n
 	default n
@@ -1393,12 +1414,24 @@ config BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB
 config BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
 config BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_NSENTER
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS
+	bool
+	default n
 config BUSYBOX_DEFAULT_REV
 config BUSYBOX_DEFAULT_REV
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_SETARCH
+	bool
+	default n
 config BUSYBOX_DEFAULT_UEVENT
 config BUSYBOX_DEFAULT_UEVENT
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_UNSHARE
+	bool
+	default n
 config BUSYBOX_DEFAULT_ACPID
 config BUSYBOX_DEFAULT_ACPID
 	bool
 	bool
 	default n
 	default n
@@ -1555,9 +1588,6 @@ config BUSYBOX_DEFAULT_SCRIPT
 config BUSYBOX_DEFAULT_SCRIPTREPLAY
 config BUSYBOX_DEFAULT_SCRIPTREPLAY
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_SETARCH
-	bool
-	default n
 config BUSYBOX_DEFAULT_SWAPONOFF
 config BUSYBOX_DEFAULT_SWAPONOFF
 	bool
 	bool
 	default n
 	default n
@@ -1588,6 +1618,9 @@ config BUSYBOX_DEFAULT_FEATURE_MTAB_SUPPORT
 config BUSYBOX_DEFAULT_VOLUMEID
 config BUSYBOX_DEFAULT_VOLUMEID
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BCACHE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
 config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
 	bool
 	bool
 	default n
 	default n
@@ -1747,6 +1780,9 @@ config BUSYBOX_DEFAULT_UBIRSVOL
 config BUSYBOX_DEFAULT_UBIUPDATEVOL
 config BUSYBOX_DEFAULT_UBIUPDATEVOL
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_UBIRENAME
+	bool
+	default n
 config BUSYBOX_DEFAULT_WALL
 config BUSYBOX_DEFAULT_WALL
 	bool
 	bool
 	default n
 	default n
@@ -1852,9 +1888,6 @@ config BUSYBOX_DEFAULT_INOTIFYD
 config BUSYBOX_DEFAULT_LAST
 config BUSYBOX_DEFAULT_LAST
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_FEATURE_LAST_SMALL
-	bool
-	default n
 config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
 config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
 	bool
 	bool
 	default n
 	default n
@@ -1971,13 +2004,13 @@ config BUSYBOX_DEFAULT_WGET
 	default n
 	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
 config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
 	bool
 	bool
-	default y
+	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
 config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
 	bool
 	bool
-	default y
+	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
 config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
 	bool
 	bool
-	default y
+	default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
 config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
 	bool
 	bool
 	default n
 	default n
@@ -2179,6 +2212,9 @@ config BUSYBOX_DEFAULT_FEATURE_IP_TUNNEL
 config BUSYBOX_DEFAULT_FEATURE_IP_RULE
 config BUSYBOX_DEFAULT_FEATURE_IP_RULE
 	bool
 	bool
 	default y
 	default y
+config BUSYBOX_DEFAULT_FEATURE_IP_NEIGH
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
 config BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
 	bool
 	bool
 	default n
 	default n
@@ -2200,6 +2236,9 @@ config BUSYBOX_DEFAULT_IPTUNNEL
 config BUSYBOX_DEFAULT_IPRULE
 config BUSYBOX_DEFAULT_IPRULE
 	bool
 	bool
 	default n
 	default n
+config BUSYBOX_DEFAULT_IPNEIGH
+	bool
+	default n
 config BUSYBOX_DEFAULT_IPCALC
 config BUSYBOX_DEFAULT_IPCALC
 	bool
 	bool
 	default n
 	default n
@@ -2509,37 +2548,37 @@ config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
 config BUSYBOX_DEFAULT_WATCH
 config BUSYBOX_DEFAULT_WATCH
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_RUNSV
+config BUSYBOX_DEFAULT_CHPST
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_RUNSVDIR
+config BUSYBOX_DEFAULT_SETUIDGID
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_FEATURE_RUNSVDIR_LOG
+config BUSYBOX_DEFAULT_ENVUIDGID
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_SV
+config BUSYBOX_DEFAULT_ENVDIR
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_SV_DEFAULT_SERVICE_DIR
-	string
-	default ""
-config BUSYBOX_DEFAULT_SVLOGD
+config BUSYBOX_DEFAULT_SOFTLIMIT
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_CHPST
+config BUSYBOX_DEFAULT_RUNSV
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_SETUIDGID
+config BUSYBOX_DEFAULT_RUNSVDIR
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_ENVUIDGID
+config BUSYBOX_DEFAULT_FEATURE_RUNSVDIR_LOG
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_ENVDIR
+config BUSYBOX_DEFAULT_SV
 	bool
 	bool
 	default n
 	default n
-config BUSYBOX_DEFAULT_SOFTLIMIT
+config BUSYBOX_DEFAULT_SV_DEFAULT_SERVICE_DIR
+	string
+	default ""
+config BUSYBOX_DEFAULT_SVLOGD
 	bool
 	bool
 	default n
 	default n
 config BUSYBOX_DEFAULT_CHCON
 config BUSYBOX_DEFAULT_CHCON
@@ -2722,6 +2761,21 @@ config BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
 config BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
 config BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
 	bool
 	bool
 	default n
 	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
 config BUSYBOX_DEFAULT_SYSLOGD
 	bool
 	bool
 	default n
 	default n
@@ -2746,21 +2800,6 @@ config BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG
 config BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG_BUFFER_SIZE
 config BUSYBOX_DEFAULT_FEATURE_IPC_SYSLOG_BUFFER_SIZE
 	int
 	int
 	default 0
 	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
 config BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG
 	bool
 	bool
 	default n
 	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

+ 2 - 2
package/utils/busybox/Makefile

@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=busybox
 PKG_NAME:=busybox
-PKG_VERSION:=1.24.2
-PKG_RELEASE:=4
+PKG_VERSION:=1.25.0
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 PKG_FLAGS:=essential
 
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2

+ 22 - 0
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,
 	  and have very little memory, this might not be a win. Otherwise,
 	  you probably want this.
 	  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
 config BUSYBOX_CONFIG_FEATURE_INSTALLER
 	bool "Support --install [-s] to install applet links at runtime"
 	bool "Support --install [-s] to install applet links at runtime"
 	default BUSYBOX_DEFAULT_FEATURE_INSTALLER
 	default BUSYBOX_DEFAULT_FEATURE_INSTALLER
+	depends on BUSYBOX_CONFIG_BUSYBOX
 	help
 	help
 	  Enable 'busybox --install [-s]' support. This will allow you to use
 	  Enable 'busybox --install [-s]' support. This will allow you to use
 	  busybox at runtime to create hard links or symlinks for all the
 	  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
 	  in a much bigger executable that more closely matches the source
 	  code.
 	  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
 config BUSYBOX_CONFIG_UNIT_TEST
 	bool "Build unit tests"
 	bool "Build unit tests"
 	default BUSYBOX_DEFAULT_UNIT_TEST
 	default BUSYBOX_DEFAULT_UNIT_TEST

+ 13 - 16
package/utils/busybox/config/archival/Config.in

@@ -32,7 +32,7 @@ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
 
 
 config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
 config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
 	bool "tar, rpm, modprobe etc understand .Z data"
 	bool "tar, rpm, modprobe etc understand .Z data"
-	default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z
+	default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z  # it is ancient
 	help
 	help
 	  Make tar, rpm, modprobe etc understand .Z data.
 	  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
 	default BUSYBOX_DEFAULT_AR  # needs to be improved to be able to replace binutils ar
 	help
 	help
 	  ar is an archival utility program used to create, modify, and
 	  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.
 	  On an x86 system, the ar applet adds about 1K.
 
 
 	  Unless you have a specific application which requires ar, you should
 	  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
 config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES
 	bool "Support for long filenames (not needed for debs)"
 	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.
 	  This enables archive creation (-c and -r) with busybox ar.
 config BUSYBOX_CONFIG_UNCOMPRESS
 config BUSYBOX_CONFIG_UNCOMPRESS
 	bool "uncompress"
 	bool "uncompress"
-	default BUSYBOX_DEFAULT_UNCOMPRESS
+	default BUSYBOX_DEFAULT_UNCOMPRESS  # ancient
 	help
 	help
 	  uncompress is used to decompress archives created by compress.
 	  uncompress is used to decompress archives created by compress.
 	  Not much used anymore, replaced by gzip/gunzip.
 	  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.
 	  gunzip is used to decompress archives created by gzip.
 	  You can use the `-t' option to test the integrity of
 	  You can use the `-t' option to test the integrity of
 	  an archive, without decompressing it.
 	  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
 config BUSYBOX_CONFIG_BUNZIP2
 	bool "bunzip2"
 	bool "bunzip2"
 	default BUSYBOX_DEFAULT_BUNZIP2
 	default BUSYBOX_DEFAULT_BUNZIP2

+ 23 - 16
package/utils/busybox/config/coreutils/Config.in

@@ -123,6 +123,29 @@ config BUSYBOX_CONFIG_SHUF
 	default BUSYBOX_DEFAULT_SHUF
 	default BUSYBOX_DEFAULT_SHUF
 	help
 	help
 	  Generate random permutations
 	  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
 config BUSYBOX_CONFIG_SYNC
 	bool "sync"
 	bool "sync"
 	default BUSYBOX_DEFAULT_SYNC
 	default BUSYBOX_DEFAULT_SYNC
@@ -760,22 +783,6 @@ config BUSYBOX_CONFIG_FEATURE_SPLIT_FANCY
 	  Supports additional suffixes 'b' for 512 bytes,
 	  Supports additional suffixes 'b' for 512 bytes,
 	  'g' for 1GiB for the -b option.
 	  '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
 config BUSYBOX_CONFIG_STTY
 	bool "stty"
 	bool "stty"
 	default BUSYBOX_DEFAULT_STTY
 	default BUSYBOX_DEFAULT_STTY

+ 0 - 5
package/utils/busybox/config/debianutils/Config.in

@@ -6,19 +6,16 @@
 
 
 menu "Debian Utilities"
 menu "Debian Utilities"
 
 
-
 config BUSYBOX_CONFIG_MKTEMP
 config BUSYBOX_CONFIG_MKTEMP
 	bool "mktemp"
 	bool "mktemp"
 	default BUSYBOX_DEFAULT_MKTEMP
 	default BUSYBOX_DEFAULT_MKTEMP
 	help
 	help
 	  mktemp is used to create unique temporary files
 	  mktemp is used to create unique temporary files
-
 config BUSYBOX_CONFIG_PIPE_PROGRESS
 config BUSYBOX_CONFIG_PIPE_PROGRESS
 	bool "pipe_progress"
 	bool "pipe_progress"
 	default BUSYBOX_DEFAULT_PIPE_PROGRESS
 	default BUSYBOX_DEFAULT_PIPE_PROGRESS
 	help
 	help
 	  Display a dot to indicate pipe activity.
 	  Display a dot to indicate pipe activity.
-
 config BUSYBOX_CONFIG_RUN_PARTS
 config BUSYBOX_CONFIG_RUN_PARTS
 	bool "run-parts"
 	bool "run-parts"
 	default BUSYBOX_DEFAULT_RUN_PARTS
 	default BUSYBOX_DEFAULT_RUN_PARTS
@@ -49,7 +46,6 @@ config BUSYBOX_CONFIG_FEATURE_RUN_PARTS_FANCY
 	  Support additional options:
 	  Support additional options:
 	  -l --list print the names of the all matching files (not
 	  -l --list print the names of the all matching files (not
 	            limited to executables), but don't actually run them.
 	            limited to executables), but don't actually run them.
-
 config BUSYBOX_CONFIG_START_STOP_DAEMON
 config BUSYBOX_CONFIG_START_STOP_DAEMON
 	bool "start-stop-daemon"
 	bool "start-stop-daemon"
 	default BUSYBOX_DEFAULT_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
 	depends on BUSYBOX_CONFIG_START_STOP_DAEMON && BUSYBOX_CONFIG_LONG_OPTS
 	help
 	help
 	  Support long options for the start-stop-daemon applet.
 	  Support long options for the start-stop-daemon applet.
-
 config BUSYBOX_CONFIG_WHICH
 config BUSYBOX_CONFIG_WHICH
 	bool "which"
 	bool "which"
 	default BUSYBOX_DEFAULT_WHICH
 	default BUSYBOX_DEFAULT_WHICH

+ 15 - 19
package/utils/busybox/config/e2fsprogs/Config.in

@@ -6,22 +6,11 @@
 
 
 menu "Linux Ext2 FS Progs"
 menu "Linux Ext2 FS Progs"
 
 
-
 config BUSYBOX_CONFIG_CHATTR
 config BUSYBOX_CONFIG_CHATTR
 	bool "chattr"
 	bool "chattr"
 	default BUSYBOX_DEFAULT_CHATTR
 	default BUSYBOX_DEFAULT_CHATTR
 	help
 	help
 	  chattr changes the file attributes on a second extended file system.
 	  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
 config BUSYBOX_CONFIG_FSCK
 	bool "fsck"
 	bool "fsck"
 	default BUSYBOX_DEFAULT_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.
 	  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
 	  In actuality, fsck is simply a front-end for the various file system
 	  checkers (fsck.fstype) available under Linux.
 	  checkers (fsck.fstype) available under Linux.
-
 config BUSYBOX_CONFIG_LSATTR
 config BUSYBOX_CONFIG_LSATTR
 	bool "lsattr"
 	bool "lsattr"
 	default BUSYBOX_DEFAULT_LSATTR
 	default BUSYBOX_DEFAULT_LSATTR
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	help
 	  lsattr lists the file attributes on a second extended file system.
 	  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
 ### config MKE2FS
 ###	bool "mke2fs"
 ###	bool "mke2fs"
@@ -44,13 +47,6 @@ config BUSYBOX_CONFIG_LSATTR
 ###	  mke2fs is used to create an ext2/ext3 filesystem. The normal compat
 ###	  mke2fs is used to create an ext2/ext3 filesystem. The normal compat
 ###	  symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
 ###	  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
 ### config E2LABEL
 ###	bool "e2label"
 ###	bool "e2label"
 ###	default y
 ###	default y

+ 32 - 17
package/utils/busybox/config/init/Config.in

@@ -76,10 +76,21 @@ config BUSYBOX_CONFIG_INIT
 	help
 	help
 	  init is the first program run when the system boots.
 	  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
 config BUSYBOX_CONFIG_FEATURE_USE_INITTAB
 	bool "Support reading an inittab file"
 	bool "Support reading an inittab file"
 	default BUSYBOX_DEFAULT_FEATURE_USE_INITTAB
 	default BUSYBOX_DEFAULT_FEATURE_USE_INITTAB
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	help
 	  Allow init to read an inittab file when the system boot.
 	  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
 config BUSYBOX_CONFIG_FEATURE_INIT_SCTTY
 	bool "Run commands with leading dash with controlling tty"
 	bool "Run commands with leading dash with controlling tty"
 	default BUSYBOX_DEFAULT_FEATURE_INIT_SCTTY
 	default BUSYBOX_DEFAULT_FEATURE_INIT_SCTTY
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	help
 	  If this option is enabled, init will try to give a controlling
 	  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").
 	  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
 config BUSYBOX_CONFIG_FEATURE_INIT_SYSLOG
 	bool "Enable init to write to syslog"
 	bool "Enable init to write to syslog"
 	default BUSYBOX_DEFAULT_FEATURE_INIT_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
 config BUSYBOX_CONFIG_FEATURE_EXTRA_QUIET
 	bool "Be _extra_ quiet on boot"
 	bool "Be _extra_ quiet on boot"
 	default BUSYBOX_DEFAULT_FEATURE_EXTRA_QUIET
 	default BUSYBOX_DEFAULT_FEATURE_EXTRA_QUIET
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	help
 	  Prevent init from logging some messages to the console during boot.
 	  Prevent init from logging some messages to the console during boot.
 
 
 config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS
 config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS
 	bool "Support dumping core for child processes (debugging only)"
 	bool "Support dumping core for child processes (debugging only)"
 	default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
 	default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	help
 	  If this option is enabled and the file /.init_enable_core
 	  If this option is enabled and the file /.init_enable_core
 	  exists, then init will call setrlimit() to allow unlimited
 	  exists, then init will call setrlimit() to allow unlimited
 	  core file sizes. If this option is disabled, processes
 	  core file sizes. If this option is disabled, processes
 	  will not generate any core files.
 	  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
 config BUSYBOX_CONFIG_INIT_TERMINAL_TYPE
 	string "Initial terminal type"
 	string "Initial terminal type"
 	default BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE
 	default BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE
-	depends on BUSYBOX_CONFIG_INIT
+	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
 	help
 	help
 	  This is the initial value set by init for the TERM environment
 	  This is the initial value set by init for the TERM environment
 	  variable. This variable is used by programs which make use of
 	  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
 	  Note that on Linux, init attempts to detect serial terminal and
 	  sets TERM to "vt102" if one is found.
 	  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
 config BUSYBOX_CONFIG_MESG
 	bool "mesg"
 	bool "mesg"
 	default BUSYBOX_DEFAULT_MESG
 	default BUSYBOX_DEFAULT_MESG

+ 36 - 12
package/utils/busybox/config/libbb/Config.in

@@ -6,14 +6,38 @@
 
 
 menu "Busybox Library Tuning"
 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
 config BUSYBOX_CONFIG_FEATURE_RTMINMAX
 	bool "Support RTMIN[+n] and RTMAX[-n] signal names"
 	bool "Support RTMIN[+n] and RTMAX[-n] signal names"
 	default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
 	default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
@@ -30,7 +54,7 @@ config BUSYBOX_CONFIG_PASSWORD_MINLEN
 
 
 config BUSYBOX_CONFIG_MD5_SMALL
 config BUSYBOX_CONFIG_MD5_SMALL
 	int "MD5: Trade bytes for speed (0:fast, 3:slow)"
 	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
 	range 0 3
 	help
 	help
 	  Trade binary size versus speed for the md5sum algorithm.
 	  Trade binary size versus speed for the md5sum algorithm.
@@ -44,7 +68,7 @@ config BUSYBOX_CONFIG_MD5_SMALL
 
 
 config BUSYBOX_CONFIG_SHA3_SMALL
 config BUSYBOX_CONFIG_SHA3_SMALL
 	int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
 	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
 	range 0 1
 	help
 	help
 	  Trade binary size versus speed for the sha3sum algorithm.
 	  Trade binary size versus speed for the sha3sum algorithm.
@@ -54,7 +78,7 @@ config BUSYBOX_CONFIG_SHA3_SMALL
 
 
 config BUSYBOX_CONFIG_FEATURE_FAST_TOP
 config BUSYBOX_CONFIG_FEATURE_FAST_TOP
 	bool "Faster /proc scanning code (+100 bytes)"
 	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
 	help
 	  This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
 	  This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
 	  but code size is slightly bigger.
 	  but code size is slightly bigger.
@@ -128,7 +152,7 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
 config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
 config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
 	bool "Reverse history search"
 	bool "Reverse history search"
 	default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
 	default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
-	depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
+	depends on BUSYBOX_CONFIG_FEATURE_EDITING
 	help
 	help
 	  Enable readline-like Ctrl-R combination for reverse history search.
 	  Enable readline-like Ctrl-R combination for reverse history search.
 	  Increases code by about 0.5k.
 	  Increases code by about 0.5k.

+ 54 - 58
package/utils/busybox/config/loginutils/Config.in

@@ -6,18 +6,6 @@
 
 
 menu "Login/Password Management Utilities"
 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
 config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
 	bool "Support for shadow passwords"
 	bool "Support for shadow passwords"
 	default BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS
 	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
 	  With this option off, login will fail password check for any
 	  user which has password encrypted with these algorithms.
 	  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
 config BUSYBOX_CONFIG_ADDUSER
 	bool "adduser"
 	bool "adduser"
 	default BUSYBOX_DEFAULT_ADDUSER
 	default BUSYBOX_DEFAULT_ADDUSER
@@ -151,29 +171,33 @@ config BUSYBOX_CONFIG_LAST_SYSTEM_ID
 	default BUSYBOX_DEFAULT_LAST_SYSTEM_ID
 	default BUSYBOX_DEFAULT_LAST_SYSTEM_ID
 	help
 	help
 	  Last valid system uid or gid for adduser and addgroup
 	  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
 	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
 	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
 	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
 config BUSYBOX_CONFIG_DELUSER
 	bool "deluser"
 	bool "deluser"
 	default BUSYBOX_DEFAULT_DELUSER
 	default BUSYBOX_DEFAULT_DELUSER
@@ -193,7 +217,6 @@ config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP
 	help
 	help
 	  If called with two non-option arguments, deluser
 	  If called with two non-option arguments, deluser
 	  or delgroup will remove an user from a specified group.
 	  or delgroup will remove an user from a specified group.
-
 config BUSYBOX_CONFIG_GETTY
 config BUSYBOX_CONFIG_GETTY
 	bool "getty"
 	bool "getty"
 	default BUSYBOX_DEFAULT_GETTY
 	default BUSYBOX_DEFAULT_GETTY
@@ -212,7 +235,6 @@ config BUSYBOX_CONFIG_GETTY
 	  printf "%s login: " "`hostname`"
 	  printf "%s login: " "`hostname`"
 	  read -r login
 	  read -r login
 	  exec /bin/login "$login"
 	  exec /bin/login "$login"
-
 config BUSYBOX_CONFIG_LOGIN
 config BUSYBOX_CONFIG_LOGIN
 	bool "login"
 	bool "login"
 	default BUSYBOX_DEFAULT_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 /etc/securetty is used by (some versions of) login(1).
 	  The file contains the device names of tty lines (one per line,
 	  The file contains the device names of tty lines (one per line,
 	  without leading /dev/) on which root is allowed to login.
 	  without leading /dev/) on which root is allowed to login.
-
 config BUSYBOX_CONFIG_PASSWD
 config BUSYBOX_CONFIG_PASSWD
 	bool "passwd"
 	bool "passwd"
 	default BUSYBOX_DEFAULT_PASSWD
 	default BUSYBOX_DEFAULT_PASSWD
@@ -278,29 +299,6 @@ config BUSYBOX_CONFIG_FEATURE_PASSWD_WEAK_CHECK
 	depends on BUSYBOX_CONFIG_PASSWD
 	depends on BUSYBOX_CONFIG_PASSWD
 	help
 	help
 	  With this option passwd will refuse new passwords which are "weak".
 	  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
 config BUSYBOX_CONFIG_SU
 	bool "su"
 	bool "su"
 	default BUSYBOX_DEFAULT_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"
 	bool "Enable su to check user's shell to be listed in /etc/shells"
 	depends on BUSYBOX_CONFIG_SU
 	depends on BUSYBOX_CONFIG_SU
 	default BUSYBOX_DEFAULT_FEATURE_SU_CHECKS_SHELLS
 	default BUSYBOX_DEFAULT_FEATURE_SU_CHECKS_SHELLS
-
 config BUSYBOX_CONFIG_SULOGIN
 config BUSYBOX_CONFIG_SULOGIN
 	bool "sulogin"
 	bool "sulogin"
 	default BUSYBOX_DEFAULT_SULOGIN
 	default BUSYBOX_DEFAULT_SULOGIN
@@ -329,7 +326,6 @@ config BUSYBOX_CONFIG_SULOGIN
 	help
 	help
 	  sulogin is invoked when the system goes into single user
 	  sulogin is invoked when the system goes into single user
 	  mode (this is done through an entry in inittab).
 	  mode (this is done through an entry in inittab).
-
 config BUSYBOX_CONFIG_VLOCK
 config BUSYBOX_CONFIG_VLOCK
 	bool "vlock"
 	bool "vlock"
 	default BUSYBOX_DEFAULT_VLOCK
 	default BUSYBOX_DEFAULT_VLOCK

+ 9 - 13
package/utils/busybox/config/miscutils/Config.in

@@ -246,6 +246,12 @@ config BUSYBOX_CONFIG_UBIUPDATEVOL
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	select BUSYBOX_CONFIG_PLATFORM_LINUX
 	help
 	help
 	  Update a UBI volume.
 	  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
 config BUSYBOX_CONFIG_WALL
 	bool "wall"
 	bool "wall"
 	default BUSYBOX_DEFAULT_WALL
 	default BUSYBOX_DEFAULT_WALL
@@ -554,23 +560,13 @@ config BUSYBOX_CONFIG_LAST
 	help
 	help
 	  'last' displays a list of the last users that logged into the system.
 	  '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
 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
 	help
 	  'last' displays detailed information about the last users that
 	  'last' displays detailed information about the last users that
 	  logged into the system (mimics sysvinit last). +900 bytes.
 	  logged into the system (mimics sysvinit last). +900 bytes.
-endchoice
 
 
 config BUSYBOX_CONFIG_HDPARM
 config BUSYBOX_CONFIG_HDPARM
 	bool "hdparm"
 	bool "hdparm"

+ 0 - 3
package/utils/busybox/config/modutils/Config.in

@@ -44,9 +44,6 @@ config BUSYBOX_CONFIG_MODPROBE_SMALL
 	  - rmmod is an alias to modprobe -r
 	  - rmmod is an alias to modprobe -r
 	  - depmod generates modules.dep.bb
 	  - 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
 config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
 	bool "Accept module options on modprobe command line"
 	bool "Accept module options on modprobe command line"
 	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
 	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE

+ 14 - 1
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
 config BUSYBOX_CONFIG_FEATURE_INETD_RPC
 	bool "Support RPC services"
 	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
 	depends on BUSYBOX_CONFIG_INETD
 	select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
 	select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
 	help
 	help
@@ -730,6 +730,13 @@ config BUSYBOX_CONFIG_FEATURE_IP_RULE
 	help
 	help
 	  Add support for rule commands to "ip".
 	  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
 config BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS
 	bool "Support short forms of ip commands"
 	bool "Support short forms of ip commands"
 	default BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
 	default BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
@@ -741,6 +748,7 @@ config BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS
 	  ip route  -> iproute
 	  ip route  -> iproute
 	  ip tunnel -> iptunnel
 	  ip tunnel -> iptunnel
 	  ip rule   -> iprule
 	  ip rule   -> iprule
+	  ip neigh  -> ipneigh
 
 
 	  Say N unless you desparately need the short form of the ip
 	  Say N unless you desparately need the short form of the ip
 	  object commands.
 	  object commands.
@@ -780,6 +788,11 @@ config BUSYBOX_CONFIG_IPRULE
 	default BUSYBOX_DEFAULT_IPRULE
 	default BUSYBOX_DEFAULT_IPRULE
 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_RULE
 	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
 config BUSYBOX_CONFIG_IPCALC
 	bool "ipcalc"
 	bool "ipcalc"
 	default BUSYBOX_DEFAULT_IPCALC
 	default BUSYBOX_DEFAULT_IPCALC

+ 0 - 2
package/utils/busybox/config/printutils/Config.in

@@ -6,13 +6,11 @@
 
 
 menu "Print Utilities"
 menu "Print Utilities"
 
 
-
 config BUSYBOX_CONFIG_LPD
 config BUSYBOX_CONFIG_LPD
 	bool "lpd"
 	bool "lpd"
 	default BUSYBOX_DEFAULT_LPD
 	default BUSYBOX_DEFAULT_LPD
 	help
 	help
 	  lpd is a print spooling daemon.
 	  lpd is a print spooling daemon.
-
 config BUSYBOX_CONFIG_LPR
 config BUSYBOX_CONFIG_LPR
 	bool "lpr"
 	bool "lpr"
 	default BUSYBOX_DEFAULT_LPR
 	default BUSYBOX_DEFAULT_LPR

+ 30 - 35
package/utils/busybox/config/runit/Config.in

@@ -6,14 +6,43 @@
 
 
 menu "Runit Utilities"
 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
 config BUSYBOX_CONFIG_RUNSV
 	bool "runsv"
 	bool "runsv"
 	default BUSYBOX_DEFAULT_RUNSV
 	default BUSYBOX_DEFAULT_RUNSV
 	help
 	help
 	  runsv starts and monitors a service and optionally an appendant log
 	  runsv starts and monitors a service and optionally an appendant log
 	  service.
 	  service.
-
 config BUSYBOX_CONFIG_RUNSVDIR
 config BUSYBOX_CONFIG_RUNSVDIR
 	bool "runsvdir"
 	bool "runsvdir"
 	default BUSYBOX_DEFAULT_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
 	  Enable feature where second parameter of runsvdir holds last error
 	  message (viewable via top/ps). Otherwise (feature is off
 	  message (viewable via top/ps). Otherwise (feature is off
 	  or no parameter), error messages go to stderr only.
 	  or no parameter), error messages go to stderr only.
-
 config BUSYBOX_CONFIG_SV
 config BUSYBOX_CONFIG_SV
 	bool "sv"
 	bool "sv"
 	default BUSYBOX_DEFAULT_SV
 	default BUSYBOX_DEFAULT_SV
@@ -45,7 +73,6 @@ config BUSYBOX_CONFIG_SV_DEFAULT_SERVICE_DIR
 	help
 	help
 	  Default directory for services.
 	  Default directory for services.
 	  Defaults to "/var/service"
 	  Defaults to "/var/service"
-
 config BUSYBOX_CONFIG_SVLOGD
 config BUSYBOX_CONFIG_SVLOGD
 	bool "svlogd"
 	bool "svlogd"
 	default BUSYBOX_DEFAULT_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
 	  filters log messages, and writes the data to one or more automatically
 	  rotated logs.
 	  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
 endmenu

+ 59 - 62
package/utils/busybox/config/sysklogd/Config.in

@@ -6,6 +6,64 @@
 
 
 menu "System Logging Utilities"
 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
 config BUSYBOX_CONFIG_SYSLOGD
 	bool "syslogd"
 	bool "syslogd"
@@ -28,7 +86,7 @@ config BUSYBOX_CONFIG_FEATURE_ROTATE_LOGFILE
 	depends on BUSYBOX_CONFIG_SYSLOGD
 	depends on BUSYBOX_CONFIG_SYSLOGD
 	help
 	help
 	  This enables syslogd to rotate the message files
 	  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
 config BUSYBOX_CONFIG_FEATURE_REMOTE_LOG
 	bool "Remote Log support"
 	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
 	  This option sets the size of the circular buffer
 	  used to record system log messages.
 	  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
 config BUSYBOX_CONFIG_FEATURE_KMSG_SYSLOG
 	bool "Linux kernel printk buffer support"
 	bool "Linux kernel printk buffer support"
 	default BUSYBOX_DEFAULT_FEATURE_KMSG_SYSLOG
 	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+.
 	  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
 endmenu

+ 35 - 10
package/utils/busybox/config/util-linux/Config.in

@@ -6,6 +6,11 @@
 
 
 menu "Linux System Utilities"
 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
 config BUSYBOX_CONFIG_BLOCKDEV
 	bool "blockdev"
 	bool "blockdev"
 	default BUSYBOX_DEFAULT_BLOCKDEV
 	default BUSYBOX_DEFAULT_BLOCKDEV
@@ -174,11 +179,34 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_OTHERTAB
 	default BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
 	default BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB
 	help
 	help
 	  Support mount -T (specifying an alternate fstab)
 	  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
 config BUSYBOX_CONFIG_REV
 	bool "rev"
 	bool "rev"
 	default BUSYBOX_DEFAULT_REV
 	default BUSYBOX_DEFAULT_REV
 	help
 	help
 	  Reverse lines of a file or files.
 	  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
 config BUSYBOX_CONFIG_UEVENT
 	bool "uevent"
 	bool "uevent"
 	default BUSYBOX_DEFAULT_UEVENT
 	default BUSYBOX_DEFAULT_UEVENT
@@ -186,6 +214,13 @@ config BUSYBOX_CONFIG_UEVENT
 	help
 	help
 	  uevent is a netlink listener for kernel uevent notifications
 	  uevent is a netlink listener for kernel uevent notifications
 	  sent via netlink. It is usually used for dynamic device creation.
 	  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
 config BUSYBOX_CONFIG_ACPID
 	bool "acpid"
 	bool "acpid"
@@ -669,16 +704,6 @@ config BUSYBOX_CONFIG_SCRIPTREPLAY
 	  This program replays a typescript, using timing information
 	  This program replays a typescript, using timing information
 	  given by script -t.
 	  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
 config BUSYBOX_CONFIG_SWAPONOFF
 	bool "swaponoff"
 	bool "swaponoff"
 	default BUSYBOX_DEFAULT_SWAPONOFF
 	default BUSYBOX_DEFAULT_SWAPONOFF

+ 8 - 0
package/utils/busybox/config/util-linux/volume_id/Config.in

@@ -12,6 +12,14 @@ menu "Filesystem/Volume identification"
 	depends on BUSYBOX_CONFIG_VOLUMEID
 	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
 config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
 	bool "btrfs filesystem"
 	bool "btrfs filesystem"
 	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS
 	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_BTRFS

+ 1 - 1
package/utils/busybox/patches/001-resource_h_include.patch

@@ -1,6 +1,6 @@
 --- a/include/libbb.h
 --- a/include/libbb.h
 +++ b/include/libbb.h
 +++ b/include/libbb.h
-@@ -40,6 +40,7 @@
+@@ -41,6 +41,7 @@
  #include <poll.h>
  #include <poll.h>
  #include <sys/ioctl.h>
  #include <sys/ioctl.h>
  #include <sys/mman.h>
  #include <sys/mman.h>

+ 0 - 23
package/utils/busybox/patches/010-networking-fix-uninitialized-memory-when-displaying-.patch

@@ -1,23 +0,0 @@
-From: Felix Fietkau <[email protected]>
-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 <[email protected]>
----
-
---- 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;

+ 1 - 1
package/utils/busybox/patches/020-networking-libiproute-fix-displaying-route-table-for.patch

@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/networking/libiproute/iprule.c
 --- a/networking/libiproute/iprule.c
 +++ b/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]));
  		printf("iif %s ", (char*)RTA_DATA(tb[RTA_IIF]));
  	}
  	}
  
  

+ 0 - 75
package/utils/busybox/patches/030-ip-fix-problem-on-mips64-n64-big-endian-musl-systems.patch

@@ -1,75 +0,0 @@
-From: Szabolcs Nagy <[email protected]>
-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 <[email protected]>
-Tested-by: Waldemar Brodkorb <[email protected]>
-Signed-off-by: Denys Vlasenko <[email protected]>
----
-
---- 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));

+ 1 - 1
package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch

@@ -1,6 +1,6 @@
 --- a/util-linux/mount.c
 --- a/util-linux/mount.c
 +++ b/util-linux/mount.c
 +++ b/util-linux/mount.c
-@@ -236,9 +236,6 @@
+@@ -237,9 +237,6 @@
  #if ENABLE_FEATURE_MOUNT_NFS
  #if ENABLE_FEATURE_MOUNT_NFS
  /* This is just a warning of a common mistake.  Possibly this should be a
  /* This is just a warning of a common mistake.  Possibly this should be a
   * uclibc faq entry rather than in busybox... */
   * uclibc faq entry rather than in busybox... */

+ 4 - 4
package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch

@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/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)
  static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
  {
  {
  	struct dhcp_packet packet;
  	struct dhcp_packet packet;
@@ -8,11 +8,11 @@
  
  
  	/* Fill in: op, htype, hlen, cookie, chaddr fields,
  	/* Fill in: op, htype, hlen, cookie, chaddr fields,
  	 * random xid field (we override it below),
  	 * 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);
  	add_client_options(&packet);
  
  
 +	if (msgs++ < 3)
 +	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);
  }
  }

+ 1 - 1
package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch

@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/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 */
  		/* silence "uninitialized!" warning */
  		unsigned timestamp_before_wait = timestamp_before_wait;
  		unsigned timestamp_before_wait = timestamp_before_wait;
  
  

+ 1 - 1
package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch

@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/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;
  		state = RENEW_REQUESTED;
  		break;
  		break;
  	case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
  	case RENEW_REQUESTED: /* impatient are we? fine, square 1 */

+ 0 - 51
package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch

@@ -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
- 

+ 2 - 2
package/utils/busybox/patches/210-add_netmsg_util.patch

@@ -1,6 +1,6 @@
 --- a/include/applets.src.h
 --- a/include/applets.src.h
 +++ b/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_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
  IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
  IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
  IF_NC(APPLET(nc, BB_DIR_USR_BIN, 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))
  IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
 --- a/networking/Config.src
 --- a/networking/Config.src
 +++ b/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
  	help
  	  Support long options for the ipcalc applet.
  	  Support long options for the ipcalc applet.
  
  

+ 8 - 8
package/utils/busybox/patches/220-add_lock_util.patch

@@ -1,16 +1,16 @@
 --- a/include/applets.src.h
 --- a/include/applets.src.h
 +++ b/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_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
  IF_LOADFONT(APPLET(loadfont, 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_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
 +IF_LOCK(APPLET(lock, BB_DIR_BIN, 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
 --- a/miscutils/Config.src
 +++ b/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
  	help
  	  Enables the 'hdparm -d' option to get/set using_dma flag.
  	  Enables the 'hdparm -d' option to get/set using_dma flag.
  
  
@@ -25,9 +25,9 @@
  	default y
  	default y
 --- a/miscutils/Kbuild.src
 --- a/miscutils/Kbuild.src
 +++ b/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_LESS)        += less.o
 +lib-$(CONFIG_LOCK)        += lock.o
 +lib-$(CONFIG_LOCK)        += lock.o
  lib-$(CONFIG_MAKEDEVS)    += makedevs.o
  lib-$(CONFIG_MAKEDEVS)    += makedevs.o

+ 0 - 48
package/utils/busybox/patches/230-ntpd_delayed_resolve.patch

@@ -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) {

+ 1 - 1
package/utils/busybox/patches/240-telnetd_intr.patch

@@ -1,6 +1,6 @@
 --- a/networking/telnetd.c
 --- a/networking/telnetd.c
 +++ b/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 */
  	/* Restore default signal handling ASAP */
  	bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);
  	bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);

+ 6 - 6
package/utils/busybox/patches/250-date-k-flag.patch

@@ -8,10 +8,10 @@
  //usage:     "\n"
  //usage:     "\n"
  //usage:     "\nRecognized TIME formats:"
  //usage:     "\nRecognized TIME formats:"
  //usage:     "\n	hh:mm[:ss]"
  //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 "libbb.h"
+ #include "common_bufsiz.h"
 -#if ENABLE_FEATURE_DATE_NANO
 -#if ENABLE_FEATURE_DATE_NANO
 -# include <sys/syscall.h>
 -# include <sys/syscall.h>
 -#endif
 -#endif
@@ -20,7 +20,7 @@
  
  
  enum {
  enum {
  	OPT_RFC2822   = (1 << 0), /* R */
  	OPT_RFC2822   = (1 << 0), /* R */
-@@ -148,8 +148,9 @@ enum {
+@@ -149,8 +149,9 @@ enum {
  	OPT_UTC       = (1 << 2), /* u */
  	OPT_UTC       = (1 << 2), /* u */
  	OPT_DATE      = (1 << 3), /* d */
  	OPT_DATE      = (1 << 3), /* d */
  	OPT_REFERENCE = (1 << 4), /* r */
  	OPT_REFERENCE = (1 << 4), /* r */
@@ -32,7 +32,7 @@
  };
  };
  
  
  static void maybe_set_utc(int opt)
  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" */
  	/*	"universal\0" No_argument       "u" */
  		"date\0"      Required_argument "d"
  		"date\0"      Required_argument "d"
  		"reference\0" Required_argument "r"
  		"reference\0" Required_argument "r"
@@ -48,7 +48,7 @@
  	struct timespec ts;
  	struct timespec ts;
  	struct tm tm_time;
  	struct tm tm_time;
  	char buf_fmt_dt2str[64];
  	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"
  	opt_complementary = "d--s:s--d"
  		IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
  		IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
  	IF_LONG_OPTS(applet_long_options = date_longopts;)
  	IF_LONG_OPTS(applet_long_options = date_longopts;)
@@ -57,7 +57,7 @@
  			IF_FEATURE_DATE_ISOFMT("I::D:"),
  			IF_FEATURE_DATE_ISOFMT("I::D:"),
  			&date_str, &date_str, &filename
  			&date_str, &date_str, &filename
  			IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
  			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)
  	if (*argv)
  		bb_show_usage();
  		bb_show_usage();
  
  

+ 0 - 11
package/utils/busybox/patches/260-arping_missing_includes.patch

@@ -1,11 +0,0 @@
---- a/networking/arping.c
-+++ b/networking/arping.c
-@@ -24,6 +24,8 @@
- 
- #include <arpa/inet.h>
- #include <net/if.h>
-+#include <net/if_arp.h>
-+#include <netinet/if_ether.h>
- #include <netinet/ether.h>
- #include <netpacket/packet.h>
-