[LEDE-DEV] [PATCH v2] busybox: update to 1.27.1

Magnus Kroken mkroken at gmail.com
Sun Jul 30 08:46:20 PDT 2017


Refresh patches, delete patches backported from upstream.

Delete 120-remove_uclibc_rpc_check.patch, as upstream now only prints
a warning instead of erroring out.

Signed-off-by: Magnus Kroken <mkroken at gmail.com>
---
v2: Delete 120-remove_uclibc_rpc_check.patch as well, 
as suggested by Baptiste Jonglez. Also rework changes in
Config-defaults.in, so lines that are simply reordered
are not touched, to make the patch more readable.

Note: Some lines in Config-defaults.in are still just moved
around without real changes, but there is less of that now 
than before. These are intertwined with actual changes, 
and I was unable to separate them and make the patch still 
apply cleanly.

 package/utils/busybox/Config-defaults.in           | 208 +++++++++++++++++----
 package/utils/busybox/Makefile                     |   6 +-
 package/utils/busybox/config/Config.in             |  32 ++--
 .../patches/120-remove_uclibc_rpc_check.patch      |  12 --
 .../busybox/patches/200-udhcpc_reduce_msgs.patch   |   4 +-
 .../patches/201-udhcpc_changed_ifindex.patch       |   2 +-
 .../patches/203-udhcpc_renew_no_deconfig.patch     |   2 +-
 .../patches/301-ip-link-fix-netlink-msg-size.patch |   2 +-
 .../302-ip-rule-add-suppress-prefixlength.patch    | 145 --------------
 ...t-touch-file-with-x-when-modified_count-0.patch | 100 ----------
 ...uching-a-new-file-with-ZZ-when-no-editing.patch |  53 ------
 11 files changed, 192 insertions(+), 374 deletions(-)
 delete mode 100644 package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch
 delete mode 100644 package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch
 delete mode 100644 package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch
 delete mode 100644 package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch

diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index 9438cb26e7..4f39a5ea7e 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -196,9 +196,6 @@ config BUSYBOX_DEFAULT_FEATURE_FAST_TOP
 config BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_USE_TERMIOS
-	bool
-	default n
 config BUSYBOX_DEFAULT_FEATURE_EDITING
 	bool
 	default y
@@ -355,6 +352,9 @@ config BUSYBOX_DEFAULT_XZ
 config BUSYBOX_DEFAULT_BZIP2
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_BZIP2_DECOMPRESS
+	bool
+	default y
 config BUSYBOX_DEFAULT_CPIO
 	bool
 	default n
@@ -382,6 +382,9 @@ config BUSYBOX_DEFAULT_GZIP_FAST
 config BUSYBOX_DEFAULT_FEATURE_GZIP_LEVELS
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_GZIP_DECOMPRESS
+	bool
+	default y
 config BUSYBOX_DEFAULT_LZOP
 	bool
 	default n
@@ -439,16 +442,25 @@ config BUSYBOX_DEFAULT_FEATURE_TAR_SELINUX
 config BUSYBOX_DEFAULT_UNZIP
 	bool
 	default n
-config BUSYBOX_DEFAULT_BASENAME
+config BUSYBOX_DEFAULT_FEATURE_UNZIP_CDF
 	bool
-	default y
-config BUSYBOX_DEFAULT_CAL
+	default n
+config BUSYBOX_DEFAULT_FEATURE_UNZIP_BZIP2
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_UNZIP_LZMA
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_UNZIP_XZ
+	bool
+	default n
+config BUSYBOX_DEFAULT_BASENAME
+	bool
+	default y
 config BUSYBOX_DEFAULT_CAT
 	bool
 	default y
-config BUSYBOX_DEFAULT_CATV
+config BUSYBOX_DEFAULT_FEATURE_CATV
 	bool
 	default n
 config BUSYBOX_DEFAULT_CHGRP
@@ -559,6 +571,9 @@ config BUSYBOX_DEFAULT_EXPR
 config BUSYBOX_DEFAULT_EXPR_MATH_SUPPORT_64
 	bool
 	default y
+config BUSYBOX_DEFAULT_FACTOR
+	bool
+	default n
 config BUSYBOX_DEFAULT_FALSE
 	bool
 	default y
@@ -589,6 +604,9 @@ config BUSYBOX_DEFAULT_INSTALL
 config BUSYBOX_DEFAULT_FEATURE_INSTALL_LONG_OPTIONS
 	bool
 	default n
+config BUSYBOX_DEFAULT_LINK
+	bool
+	default n
 config BUSYBOX_DEFAULT_LN
 	bool
 	default y
@@ -607,6 +625,9 @@ config BUSYBOX_DEFAULT_FEATURE_LS_FOLLOWLINKS
 config BUSYBOX_DEFAULT_FEATURE_LS_RECURSIVE
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_LS_WIDTH
+	bool
+	default y
 config BUSYBOX_DEFAULT_FEATURE_LS_SORTFILES
 	bool
 	default y
@@ -661,12 +682,21 @@ config BUSYBOX_DEFAULT_FEATURE_MV_LONG_OPTIONS
 config BUSYBOX_DEFAULT_NICE
 	bool
 	default y
+config BUSYBOX_DEFAULT_NL
+	bool
+	default n
 config BUSYBOX_DEFAULT_NOHUP
 	bool
 	default n
+config BUSYBOX_DEFAULT_NPROC
+	bool
+	default n
 config BUSYBOX_DEFAULT_OD
 	bool
 	default n
+config BUSYBOX_DEFAULT_PASTE
+	bool
+	default n
 config BUSYBOX_DEFAULT_PRINTENV
 	bool
 	default n
@@ -697,6 +727,9 @@ config BUSYBOX_DEFAULT_FEATURE_RMDIR_LONG_OPTIONS
 config BUSYBOX_DEFAULT_SEQ
 	bool
 	default y
+config BUSYBOX_DEFAULT_SHRED
+	bool
+	default n
 config BUSYBOX_DEFAULT_SHUF
 	bool
 	default n
@@ -829,6 +862,9 @@ config BUSYBOX_DEFAULT_FEATURE_WC_LARGE
 config BUSYBOX_DEFAULT_WHO
 	bool
 	default n
+config BUSYBOX_DEFAULT_W
+	bool
+	default n
 config BUSYBOX_DEFAULT_USERS
 	bool
 	default n
@@ -844,9 +880,6 @@ config BUSYBOX_DEFAULT_FEATURE_VERBOSE
 config BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
 	bool
 	default y
-config BUSYBOX_DEFAULT_FEATURE_AUTOWIDTH
-	bool
-	default y
 config BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE
 	bool
 	default y
@@ -1174,7 +1207,7 @@ config BUSYBOX_DEFAULT_FEATURE_INIT_SCTTY
 config BUSYBOX_DEFAULT_FEATURE_INIT_SYSLOG
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_EXTRA_QUIET
+config BUSYBOX_DEFAULT_FEATURE_INIT_QUIET
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
@@ -1294,6 +1327,9 @@ config BUSYBOX_DEFAULT_FEATURE_SU_SYSLOG
 config BUSYBOX_DEFAULT_FEATURE_SU_CHECKS_SHELLS
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY
+	bool
+	default n
 config BUSYBOX_DEFAULT_SULOGIN
 	bool
 	default n
@@ -1330,12 +1366,6 @@ config BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
 config BUSYBOX_DEFAULT_MODINFO
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
-	bool
-	default n
-config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
-	bool
-	default n
 config BUSYBOX_DEFAULT_MODPROBE
 	bool
 	default n
@@ -1345,10 +1375,13 @@ config BUSYBOX_DEFAULT_FEATURE_MODPROBE_BLACKLIST
 config BUSYBOX_DEFAULT_RMMOD
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_2_4_MODULES
+config BUSYBOX_DEFAULT_FEATURE_CMDLINE_MODULE_OPTIONS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_INSMOD_TRY_MMAP
+config BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
+	bool
+	default n
+config BUSYBOX_DEFAULT_FEATURE_2_4_MODULES
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_INSMOD_VERSION_CHECKING
@@ -1369,6 +1402,9 @@ config BUSYBOX_DEFAULT_FEATURE_INSMOD_LOAD_MAP_FULL
 config BUSYBOX_DEFAULT_FEATURE_CHECK_TAINTED_MODULE
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_INSMOD_TRY_MMAP
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_MODUTILS_ALIAS
 	bool
 	default n
@@ -1399,12 +1435,18 @@ config BUSYBOX_DEFAULT_FEATURE_BLKID_TYPE
 config BUSYBOX_DEFAULT_BLOCKDEV
 	bool
 	default n
+config BUSYBOX_DEFAULT_CAL
+	bool
+	default n
 config BUSYBOX_DEFAULT_DMESG
 	bool
 	default y
 config BUSYBOX_DEFAULT_FEATURE_DMESG_PRETTY
 	bool
 	default y
+config BUSYBOX_DEFAULT_FALLOCATE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FATATTR
 	bool
 	default n
@@ -1462,6 +1504,9 @@ config BUSYBOX_DEFAULT_FREERAMDISK
 config BUSYBOX_DEFAULT_FSCK_MINIX
 	bool
 	default n
+config BUSYBOX_DEFAULT_FSFREEZE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FSTRIM
 	bool
 	default n
@@ -1480,6 +1525,9 @@ config BUSYBOX_DEFAULT_FEATURE_HEXDUMP_REVERSE
 config BUSYBOX_DEFAULT_HD
 	bool
 	default n
+config BUSYBOX_DEFAULT_XXD
+	bool
+	default n
 config BUSYBOX_DEFAULT_HWCLOCK
 	bool
 	default y
@@ -1621,6 +1669,9 @@ config BUSYBOX_DEFAULT_LINUX32
 config BUSYBOX_DEFAULT_LINUX64
 	bool
 	default n
+config BUSYBOX_DEFAULT_SETPRIV
+	bool
+	default n
 config BUSYBOX_DEFAULT_SWAPON
 	bool
 	default n
@@ -1918,6 +1969,9 @@ config BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS
 config BUSYBOX_DEFAULT_LOCK
 	bool
 	default y
+config BUSYBOX_DEFAULT_LSSCSI
+	bool
+	default n
 config BUSYBOX_DEFAULT_MAKEDEVS
 	bool
 	default n
@@ -1945,6 +1999,9 @@ config BUSYBOX_DEFAULT_NANDWRITE
 config BUSYBOX_DEFAULT_NANDDUMP
 	bool
 	default n
+config BUSYBOX_DEFAULT_PARTPROBE
+	bool
+	default n
 config BUSYBOX_DEFAULT_RAIDAUTORUN
 	bool
 	default n
@@ -2275,6 +2332,9 @@ config BUSYBOX_DEFAULT_NSLOOKUP
 config BUSYBOX_DEFAULT_NSLOOKUP_LEDE
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_NSLOOKUP_LEDE_LONG_OPTIONS
+	bool
+	default n
 config BUSYBOX_DEFAULT_NTPD
 	bool
 	default y
@@ -2302,6 +2362,9 @@ config BUSYBOX_DEFAULT_ROUTE
 config BUSYBOX_DEFAULT_SLATTACH
 	bool
 	default n
+config BUSYBOX_DEFAULT_SSL_CLIENT
+	bool
+	default n
 config BUSYBOX_DEFAULT_TCPSVD
 	bool
 	default n
@@ -2317,6 +2380,9 @@ config BUSYBOX_DEFAULT_FEATURE_TELNET_TTYPE
 config BUSYBOX_DEFAULT_FEATURE_TELNET_AUTOLOGIN
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_TELNET_WIDTH
+	bool
+	default n
 config BUSYBOX_DEFAULT_TELNETD
 	bool
 	default n
@@ -2347,6 +2413,9 @@ config BUSYBOX_DEFAULT_FEATURE_TFTP_PROGRESS_BAR
 config BUSYBOX_DEFAULT_TFTP_DEBUG
 	bool
 	default n
+config BUSYBOX_DEFAULT_TLS
+	bool
+	default n
 config BUSYBOX_DEFAULT_TRACEROUTE
 	bool
 	default y
@@ -2383,10 +2452,10 @@ config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
 config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
+config BUSYBOX_DEFAULT_FEATURE_WGET_HTTPS
 	bool
 	default n
-config BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER
+config BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
 	bool
 	default n
 config BUSYBOX_DEFAULT_WHOIS
@@ -2398,13 +2467,16 @@ config BUSYBOX_DEFAULT_ZCIP
 config BUSYBOX_DEFAULT_UDHCPC6
 	bool
 	default n
-config BUSYBOX_DEFAULT_UDHCPD
+config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC3646
 	bool
 	default n
-config BUSYBOX_DEFAULT_DHCPRELAY
+config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4704
 	bool
 	default n
-config BUSYBOX_DEFAULT_DUMPLEASES
+config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833
+	bool
+	default n
+config BUSYBOX_DEFAULT_UDHCPD
 	bool
 	default n
 config BUSYBOX_DEFAULT_FEATURE_UDHCPD_WRITE_LEASES_EARLY
@@ -2416,6 +2488,12 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPD_BASE_IP_ON_MAC
 config BUSYBOX_DEFAULT_DHCPD_LEASES_FILE
 	string
 	default ""
+config BUSYBOX_DEFAULT_DUMPLEASES
+	bool
+	default n
+config BUSYBOX_DEFAULT_DHCPRELAY
+	bool
+	default n
 config BUSYBOX_DEFAULT_UDHCPC
 	bool
 	default y
@@ -2524,6 +2602,9 @@ config BUSYBOX_DEFAULT_PMAP
 config BUSYBOX_DEFAULT_POWERTOP
 	bool
 	default n
+config BUSYBOX_DEFAULT_FEATURE_POWERTOP_INTERACTIVE
+	bool
+	default n
 config BUSYBOX_DEFAULT_PS
 	bool
 	default y
@@ -2560,6 +2641,9 @@ config BUSYBOX_DEFAULT_BB_SYSCTL
 config BUSYBOX_DEFAULT_TOP
 	bool
 	default y
+config BUSYBOX_DEFAULT_FEATURE_TOP_INTERACTIVE
+	bool
+	default n
 config BUSYBOX_DEFAULT_FEATURE_TOP_CPU_USAGE_PERCENTAGE
 	bool
 	default y
@@ -2698,45 +2782,45 @@ config BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
 config BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB
 	bool
 	default y
-config BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
-	bool
-	default n
-config BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
-	bool
-	default y
 config BUSYBOX_DEFAULT_ASH_BASH_COMPAT
 	bool
 	default y
-config BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
-	bool
-	default n
 config BUSYBOX_DEFAULT_ASH_JOB_CONTROL
 	bool
 	default y
 config BUSYBOX_DEFAULT_ASH_ALIAS
 	bool
 	default y
-config BUSYBOX_DEFAULT_ASH_GETOPTS
+config BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
+	bool
+	default n
+config BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
 	bool
 	default y
-config BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
+config BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
+	bool
+	default n
+config BUSYBOX_DEFAULT_ASH_MAIL
+	bool
+	default n
+config BUSYBOX_DEFAULT_ASH_ECHO
 	bool
 	default y
-config BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
+config BUSYBOX_DEFAULT_ASH_PRINTF
 	bool
 	default y
-config BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
+config BUSYBOX_DEFAULT_ASH_TEST
 	bool
 	default y
 config BUSYBOX_DEFAULT_ASH_HELP
 	bool
 	default n
-config BUSYBOX_DEFAULT_ASH_CMDCMD
+config BUSYBOX_DEFAULT_ASH_GETOPTS
 	bool
 	default y
-config BUSYBOX_DEFAULT_ASH_MAIL
+config BUSYBOX_DEFAULT_ASH_CMDCMD
 	bool
-	default n
+	default y
 config BUSYBOX_DEFAULT_CTTYHACK
 	bool
 	default n
@@ -2782,10 +2866,52 @@ config BUSYBOX_DEFAULT_HUSH_LOCAL
 config BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
 	bool
 	default n
+config BUSYBOX_DEFAULT_HUSH_MODE_X
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_ECHO
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_PRINTF
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_TEST
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_EXPORT
+	bool
+	default n
 config BUSYBOX_DEFAULT_HUSH_EXPORT_N
 	bool
 	default n
-config BUSYBOX_DEFAULT_HUSH_MODE_X
+config BUSYBOX_DEFAULT_HUSH_KILL
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_WAIT
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_TRAP
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_TYPE
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_READ
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_SET
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_UNSET
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_ULIMIT
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_UMASK
+	bool
+	default n
+config BUSYBOX_DEFAULT_HUSH_MEMLEAK
 	bool
 	default n
 config BUSYBOX_DEFAULT_MSH
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index ebc824e435..653d09ca47 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.26.2
-PKG_RELEASE:=7
+PKG_VERSION:=1.27.1
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.busybox.net/downloads \
 		http://sources.buildroot.net
-PKG_HASH:=da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16
+PKG_HASH:=c890ac53fb218eb4c6ad9ed3207a896783b142e6d306f292b8d9bec82af5f936
 
 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 3ee3aa2f47..ebcf526428 100644
--- a/package/utils/busybox/config/Config.in
+++ b/package/utils/busybox/config/Config.in
@@ -49,17 +49,6 @@ config BUSYBOX_CONFIG_USE_PORTABLE_CODE
 	  compiler other than gcc.
 	  If you do use gcc, this option may needlessly increase code size.
 
-config BUSYBOX_CONFIG_PLATFORM_LINUX
-	bool "Enable Linux-specific applets and features"
-	default BUSYBOX_DEFAULT_PLATFORM_LINUX
-	help
-	  For the most part, busybox requires only POSIX compatibility
-	  from the target system, but some applets and features use
-	  Linux-specific interfaces.
-
-	  Answering 'N' here will disable such applets and hide the
-	  corresponding configuration options.
-
 config BUSYBOX_CONFIG_SHOW_USAGE
 	bool "Show applet usage messages"
 	default BUSYBOX_DEFAULT_SHOW_USAGE
@@ -123,14 +112,14 @@ config BUSYBOX_CONFIG_INSTALL_NO_USR
 	  never to /usr/bin or /usr/sbin.
 
 config BUSYBOX_CONFIG_PAM
-	bool "Support for PAM (Pluggable Authentication Modules)"
+	bool "Support 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_LONG_OPTS
-	bool "Support for --long-options"
+	bool "Support --long-options"
 	default BUSYBOX_DEFAULT_LONG_OPTS
 	help
 	  Enable this if you want busybox applets to use the gnu --long-option
@@ -197,7 +186,7 @@ config BUSYBOX_CONFIG_PID_FILE_PATH
 	  specify a pidfile path.
 
 config BUSYBOX_CONFIG_FEATURE_SUID
-	bool "Support for SUID/SGID handling"
+	bool "Support SUID/SGID handling"
 	default BUSYBOX_DEFAULT_FEATURE_SUID
 	help
 	  With this option you can install the busybox binary belonging
@@ -337,6 +326,17 @@ config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
 	#  This is automatically selected if any of enabled applets need it.
 	#  You do not need to select it manually.
 
+config BUSYBOX_CONFIG_PLATFORM_LINUX
+	bool #No description makes it a hidden option
+	default BUSYBOX_DEFAULT_PLATFORM_LINUX
+	#help
+	#  For the most part, busybox requires only POSIX compatibility
+	#  from the target system, but some applets and features use
+	#  Linux-specific interfaces.
+	#
+	#  This is automatically selected if any applet or feature requires
+	#  Linux-specific interfaces. You do not need to select it manually.
+
 comment 'Build Options'
 
 config BUSYBOX_CONFIG_STATIC
@@ -610,6 +610,8 @@ config BUSYBOX_CONFIG_DEBUG_SANITIZE
 	  catch bad memory accesses (e.g. buffer overflows), but will make
 	  the executable larger and slow down runtime a bit.
 
+	  This adds -fsanitize=foo options to gcc command line.
+
 	  If you aren't developing/testing busybox, say N here.
 
 config BUSYBOX_CONFIG_UNIT_TEST
@@ -624,7 +626,7 @@ config BUSYBOX_CONFIG_WERROR
 	bool "Abort compilation on any warning"
 	default BUSYBOX_DEFAULT_WERROR
 	help
-	  Selecting this will add -Werror to gcc command line.
+	  This adds -Werror to gcc command line.
 
 	  Most people should answer N.
 
diff --git a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch b/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch
deleted file mode 100644
index 682a68eebd..0000000000
--- a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/util-linux/mount.c
-+++ b/util-linux/mount.c
-@@ -245,9 +245,6 @@
- #if ENABLE_FEATURE_MOUNT_NFS
- /* This is just a warning of a common mistake.  Possibly this should be a
-  * uclibc faq entry rather than in busybox... */
--# if defined(__UCLIBC__) && ! defined(__UCLIBC_HAS_RPC__)
--#  error "You need to build uClibc with UCLIBC_HAS_RPC for NFS support"
--# endif
- # include <rpc/rpc.h>
- # include <rpc/pmap_prot.h>
- # include <rpc/pmap_clnt.h>
diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
index 8ef8f2211b..5f64c19d05 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
-@@ -704,6 +704,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -706,6 +706,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),
-@@ -721,6 +722,7 @@ static NOINLINE int send_discover(uint32
+@@ -723,6 +724,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 f5e3a075ae..727f69409c 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
-@@ -1439,6 +1439,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1442,6 +1442,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 3df8d930b1..7b77d2970b 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
-@@ -1110,7 +1110,6 @@ static void perform_renew(void)
+@@ -1112,7 +1112,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/301-ip-link-fix-netlink-msg-size.patch b/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch
index 360324bf7c..ca76c44cc8 100644
--- a/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch
+++ b/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch
@@ -1,6 +1,6 @@
 --- a/networking/libiproute/iplink.c
 +++ b/networking/libiproute/iplink.c
-@@ -470,7 +470,7 @@ static int do_add_or_delete(char **argv,
+@@ -598,7 +598,7 @@ static int do_add_or_delete(char **argv,
  	}
  	xrtnl_open(&rth);
  	ll_init_map(&rth);
diff --git a/package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch b/package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch
deleted file mode 100644
index 7b4797505e..0000000000
--- a/package/utils/busybox/patches/302-ip-rule-add-suppress-prefixlength.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From dbac30c3784c267bbe44a2a3ebed4e827c8fe82a Mon Sep 17 00:00:00 2001
-From: Stefan Tomanek <stefan.tomanek at wertarbyte.de>
-Date: Tue, 13 Jun 2017 19:06:09 +0200
-Subject: [PATCH] ip rule: add suppress_{prefixlength,ifgroup} options
-
-(cherry-picked from 192dce4b84fb32346ebc5194de7daa5da3b8d1b4)
-
-function                                             old     new   delta
-iprule_modify                                        816     887     +71
-print_rule                                           610     680     +70
-------------------------------------------------------------------------------
-(add/remove: 0/0 grow/shrink: 2/0 up/down: 141/0)             Total: 141 bytes
-
-Signed-off-by: Stefan Tomanek <stefan.tomanek at wertarbyte.de>
-Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
----
- networking/libiproute/iprule.c | 73 ++++++++++++++++++++++++++----------------
- 1 file changed, 46 insertions(+), 27 deletions(-)
-
---- a/networking/libiproute/iprule.c
-+++ b/networking/libiproute/iprule.c
-@@ -17,25 +17,32 @@
- #include <netinet/ip.h>
- #include <arpa/inet.h>
- 
-+/* from <linux/fib_rules.h>: */
-+#define FRA_SUPPRESS_IFGROUP   13
-+#define FRA_SUPPRESS_PREFIXLEN 14
-+
- #include "ip_common.h"  /* #include "libbb.h" is inside */
- #include "rt_names.h"
- #include "utils.h"
- 
--/*
--static void usage(void) __attribute__((noreturn));
--
--static void usage(void)
--{
--	fprintf(stderr, "Usage: ip rule [ list | add | del ] SELECTOR ACTION\n");
--	fprintf(stderr, "SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK ]\n");
--	fprintf(stderr, "            [ dev STRING ] [ pref NUMBER ]\n");
--	fprintf(stderr, "ACTION := [ table TABLE_ID ] [ nat ADDRESS ]\n");
--	fprintf(stderr, "          [ prohibit | reject | unreachable ]\n");
--	fprintf(stderr, "          [ realms [SRCREALM/]DSTREALM ]\n");
--	fprintf(stderr, "TABLE_ID := [ local | main | default | NUMBER ]\n");
--	exit(-1);
--}
--*/
-+/* If you add stuff here, update iprule_full_usage */
-+static const char keywords[] ALIGN1 =
-+	"from\0""to\0""preference\0""order\0""priority\0"
-+	"tos\0""fwmark\0""realms\0""table\0""lookup\0"
-+	"suppress_prefixlength\0""suppress_ifgroup\0"
-+	"dev\0""iif\0""nat\0""map-to\0""type\0""help\0"
-+	;
-+#define keyword_preference            (keywords           + sizeof("from") + sizeof("to"))
-+#define keyword_fwmark                (keyword_preference + sizeof("preference") + sizeof("order") + sizeof("priority") + sizeof("tos"))
-+#define keyword_realms                (keyword_fwmark     + sizeof("fwmark"))
-+#define keyword_suppress_prefixlength (keyword_realms     + sizeof("realms") + sizeof("table") + sizeof("lookup"))
-+#define keyword_suppress_ifgroup      (keyword_suppress_prefixlength + sizeof("suppress_prefixlength"))
-+enum {
-+	ARG_from = 1, ARG_to, ARG_preference, ARG_order, ARG_priority,
-+	ARG_tos, ARG_fwmark, ARG_realms, ARG_table, ARG_lookup,
-+	ARG_suppress_prefixlength, ARG_suppress_ifgroup,
-+	ARG_dev, ARG_iif, ARG_nat, ARG_map_to, ARG_type, ARG_help,
-+};
- 
- static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM,
- 					struct nlmsghdr *n, void *arg UNUSED_PARAM)
-@@ -119,6 +126,17 @@ static int FAST_FUNC print_rule(const st
- 	else if (r->rtm_table)
- 		printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table));
- 
-+	if (tb[FRA_SUPPRESS_PREFIXLEN]) {
-+		int pl = *(uint32_t*)RTA_DATA(tb[FRA_SUPPRESS_PREFIXLEN]);
-+		if (pl != -1)
-+			printf("%s %d ", keyword_suppress_prefixlength, pl);
-+	}
-+	if (tb[FRA_SUPPRESS_IFGROUP]) {
-+		int grp = *(uint32_t*)RTA_DATA(tb[FRA_SUPPRESS_IFGROUP]);
-+		if (grp != -1)
-+			printf("%s %d ", keyword_suppress_ifgroup, grp);
-+	}
-+
- 	if (tb[RTA_FLOW]) {
- 		uint32_t to = *(uint32_t*)RTA_DATA(tb[RTA_FLOW]);
- 		uint32_t from = to>>16;
-@@ -174,15 +192,6 @@ static int iprule_list(char **argv)
- /* Return value becomes exitcode. It's okay to not return at all */
- static int iprule_modify(int cmd, char **argv)
- {
--	static const char keywords[] ALIGN1 =
--		"from\0""to\0""preference\0""order\0""priority\0"
--		"tos\0""fwmark\0""realms\0""table\0""lookup\0""dev\0"
--		"iif\0""nat\0""map-to\0""type\0""help\0";
--	enum {
--		ARG_from = 1, ARG_to, ARG_preference, ARG_order, ARG_priority,
--		ARG_tos, ARG_fwmark, ARG_realms, ARG_table, ARG_lookup, ARG_dev,
--		ARG_iif, ARG_nat, ARG_map_to, ARG_type, ARG_help
--	};
- 	bool table_ok = 0;
- 	struct rtnl_handle rth;
- 	struct {
-@@ -232,7 +241,7 @@ static int iprule_modify(int cmd, char *
- 		) {
- 			uint32_t pref;
- 			NEXT_ARG();
--			pref = get_u32(*argv, "preference");
-+			pref = get_u32(*argv, keyword_preference);
- 			addattr32(&req.n, sizeof(req), RTA_PRIORITY, pref);
- 		} else if (key == ARG_tos) {
- 			uint32_t tos;
-@@ -243,13 +252,13 @@ static int iprule_modify(int cmd, char *
- 		} else if (key == ARG_fwmark) {
- 			uint32_t fwmark;
- 			NEXT_ARG();
--			fwmark = get_u32(*argv, "fwmark");
-+			fwmark = get_u32(*argv, keyword_fwmark);
- 			addattr32(&req.n, sizeof(req), RTA_PROTOINFO, fwmark);
- 		} else if (key == ARG_realms) {
- 			uint32_t realm;
- 			NEXT_ARG();
- 			if (get_rt_realms(&realm, *argv))
--				invarg_1_to_2(*argv, "realms");
-+				invarg_1_to_2(*argv, keyword_realms);
- 			addattr32(&req.n, sizeof(req), RTA_FLOW, realm);
- 		} else if (key == ARG_table ||
- 			   key == ARG_lookup
-@@ -265,6 +274,16 @@ static int iprule_modify(int cmd, char *
- 				addattr32(&req.n, sizeof(req), RTA_TABLE, tid);
- 			}
- 			table_ok = 1;
-+		} else if (key == ARG_suppress_prefixlength) {
-+			int prefix_length;
-+			NEXT_ARG();
-+			prefix_length = get_u32(*argv, keyword_suppress_prefixlength);
-+			addattr32(&req.n, sizeof(req), FRA_SUPPRESS_PREFIXLEN, prefix_length);
-+		} else if (key == ARG_suppress_ifgroup) {
-+			int grp;
-+			NEXT_ARG();
-+			grp = get_u32(*argv, keyword_suppress_ifgroup);
-+			addattr32(&req.n, sizeof(req), FRA_SUPPRESS_IFGROUP, grp);
- 		} else if (key == ARG_dev ||
- 			   key == ARG_iif
- 		) {
diff --git a/package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch b/package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch
deleted file mode 100644
index e83999d303..0000000000
--- a/package/utils/busybox/patches/401-vi-don-t-touch-file-with-x-when-modified_count-0.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From e88608eae24ae5934034e1ecb6c494fefbf1b9ae Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux at googlemail.com>
-Date: Mon, 13 Mar 2017 20:50:42 +0100
-Subject: [PATCH 1/2] vi: don't touch file with :x when modified_count == 0
-
-Along with it, there are other changes
-
- - Check for uppercase X is removed as the expression will be always false and
-   :X itself is another totally different command in standard vim
- - The status line will show number of written lines instead of lines requested
-   by the colon command.  This is also how the standard vim is doing, though
-   the difference is that '!' has to be explicitly specified in vim to allow
-   partial writes
-
-Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
-Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
----
- editors/vi.c | 43 ++++++++++++++++++++++++++-----------------
- 1 file changed, 26 insertions(+), 17 deletions(-)
-
---- a/editors/vi.c
-+++ b/editors/vi.c
-@@ -1038,7 +1038,9 @@ static void colon(char *buf)
- 	 || strncmp(p, "wn", cnt) == 0
- 	 || (p[0] == 'x' && !p[1])
- 	) {
--		cnt = file_write(current_filename, text, end - 1);
-+		if (modified_count != 0 || p[0] != 'x') {
-+			cnt = file_write(current_filename, text, end - 1);
-+		}
- 		if (cnt < 0) {
- 			if (cnt == -1)
- 				status_line_bold("Write error: %s", strerror(errno));
-@@ -1049,8 +1051,9 @@ static void colon(char *buf)
- 				current_filename,
- 				count_lines(text, end - 1), cnt
- 			);
--			if (p[0] == 'x' || p[1] == 'q' || p[1] == 'n'
--			 || p[0] == 'X' || p[1] == 'Q' || p[1] == 'N'
-+			if (p[0] == 'x'
-+			 || p[1] == 'q' || p[1] == 'n'
-+			 || p[1] == 'Q' || p[1] == 'N'
- 			) {
- 				editing = 0;
- 			}
-@@ -1480,16 +1483,19 @@ static void colon(char *buf)
- 			goto ret;
- 		}
- #endif
--		// how many lines in text[]?
--		li = count_lines(q, r);
--		size = r - q + 1;
- 		//if (useforce) {
- 			// if "fn" is not write-able, chmod u+w
- 			// sprintf(syscmd, "chmod u+w %s", fn);
- 			// system(syscmd);
- 			// forced = TRUE;
- 		//}
--		l = file_write(fn, q, r);
-+		if (modified_count != 0 || cmd[0] != 'x') {
-+			size = r - q + 1;
-+			l = file_write(fn, q, r);
-+		} else {
-+			size = 0;
-+			l = 0;
-+		}
- 		//if (useforce && forced) {
- 			// chmod u-w
- 			// sprintf(syscmd, "chmod u-w %s", fn);
-@@ -1500,17 +1506,20 @@ static void colon(char *buf)
- 			if (l == -1)
- 				status_line_bold_errno(fn);
- 		} else {
-+			// how many lines written
-+			li = count_lines(q, q + l - 1);
- 			status_line("'%s' %dL, %dC", fn, li, l);
--			if (q == text && r == end - 1 && l == size) {
--				modified_count = 0;
--				last_modified_count = -1;
--			}
--			if ((cmd[0] == 'x' || cmd[1] == 'q' || cmd[1] == 'n'
--			    || cmd[0] == 'X' || cmd[1] == 'Q' || cmd[1] == 'N'
--			    )
--			 && l == size
--			) {
--				editing = 0;
-+			if (l == size) {
-+				if (q == text && q + l == end) {
-+					modified_count = 0;
-+					last_modified_count = -1;
-+				}
-+				if (cmd[0] == 'x'
-+				 || cmd[1] == 'q' || cmd[1] == 'n'
-+				 || cmd[1] == 'Q' || cmd[1] == 'N'
-+				) {
-+					editing = 0;
-+				}
- 			}
- 		}
- #if ENABLE_FEATURE_VI_YANKMARK
diff --git a/package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch b/package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch
deleted file mode 100644
index b56cf735c2..0000000000
--- a/package/utils/busybox/patches/402-vi-avoid-touching-a-new-file-with-ZZ-when-no-editing.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8f3bf4f0d3605b50a8e4c48c89aeabc455f04884 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech at gmail.com>
-Date: Fri, 24 Mar 2017 21:13:10 +0100
-Subject: [PATCH 2/2] vi: avoid touching a new file with ZZ when no editing has
- been done
-
-This is the behaviour observed with standard vim and busybox vi of at
-least 1.22.1.  It was changed with commit "32afd3a vi: some
-simplifications" which happened before 1.23.0.
-
-Mistyping filename on command line happens fairly often and it's better
-we restore the old behaviour to avoid a few unnecessary flash writes and
-sometimes efforts of debugging bugs caused by those unneeded stray
-files.
-
-Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
-Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
----
- editors/vi.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
---- a/editors/vi.c
-+++ b/editors/vi.c
-@@ -719,14 +719,6 @@ static int init_text_buffer(char *fn)
- {
- 	int rc;
- 
--	flush_undo_data();
--	modified_count = 0;
--	last_modified_count = -1;
--#if ENABLE_FEATURE_VI_YANKMARK
--	/* init the marks */
--	memset(mark, 0, sizeof(mark));
--#endif
--
- 	/* allocate/reallocate text buffer */
- 	free(text);
- 	text_size = 10240;
-@@ -741,6 +733,14 @@ static int init_text_buffer(char *fn)
- 		// file doesnt exist. Start empty buf with dummy line
- 		char_insert(text, '\n', NO_UNDO);
- 	}
-+
-+	flush_undo_data();
-+	modified_count = 0;
-+	last_modified_count = -1;
-+#if ENABLE_FEATURE_VI_YANKMARK
-+	/* init the marks */
-+	memset(mark, 0, sizeof(mark));
-+#endif
- 	return rc;
- }
- 
-- 
2.11.0




More information about the Lede-dev mailing list