busybox: update to version 1.34.0
authorHannu Nyman <hannu.nyman@iki.fi>
Tue, 31 Aug 2021 15:12:44 +0000 (18:12 +0300)
committerHans Dedecker <dedeckeh@gmail.com>
Sat, 4 Sep 2021 19:05:26 +0000 (21:05 +0200)
Update busybox to version 1.34.0

* Remove upstreamed patches (205, 530, 540)

* Remove one old patch that does not apply any more. (203)
  That was originally introduced in 2008 with 563d23459,
  but does not apply after busybox restructuring with
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=e6007c4911c3ea26925f9473b9f156a692585f30
  and
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=1c7253726fcbab09917f143f0b703efbd2df55c3

* Refresh config and patches.

* Backport upstream fixes for
   - MIPS compilation breakage and
   - process substitution regression

Config refresh:

Refresh commands, run after busybox is first built once:

cd utils/busybox/
cd config/
../convert_menuconfig.pl ../../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0
cd ..
./convert_defaults.pl < ../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0/.config > Config-defaults.in

Manual edits needed afterward:

* Config-defaults.in:  OpenWrt config symbol IPV6 logic applied to
  BUSYBOX_DEFAULT_FEATURE_IPV6
* Config-defaults.in:  OpenWrt configTARGET_bcm53xx logic applied to
  BUSYBOX_DEFAULT_TRUNCATE (commit 547f1ec)
* Config-defaults.in:  OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)
  BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE (just "")
* config/editors/Config.in: Add USE_GLIBC dependency to
  BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commit f141090)
* config/shell/Config.in : change at "Options common to all shells"  the symbol
  SHELL_ASH  -->  BUSYBOX_CONFIG_SHELL_ASH
   (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html
     Apparently our script does not see the hidden option while
     prepending config options with "BUSYBOX_CONFIG_" which leads to a
     missed dependency when the options are later evaluated.)
* Edit Config.in files by adding quotes to sourced items in
  config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit 1da014f)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
17 files changed:
package/utils/busybox/Config-defaults.in
package/utils/busybox/Makefile
package/utils/busybox/config/coreutils/Config.in
package/utils/busybox/config/editors/Config.in
package/utils/busybox/config/klibc-utils/Config.in
package/utils/busybox/config/miscutils/Config.in
package/utils/busybox/config/networking/Config.in
package/utils/busybox/config/networking/udhcp/Config.in
package/utils/busybox/config/shell/Config.in
package/utils/busybox/patches/001-backport-fix-build-breakage-on-mips.patch [new file with mode: 0644]
package/utils/busybox/patches/002-backport-ash-process-substitution.patch [new file with mode: 0644]
package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch [deleted file]
package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch [deleted file]
package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch [deleted file]
package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch [deleted file]

index d078a3995417b96a3136bcea621f4f50e3e600ba..4b264a09a2329a4f085ac4c458c2a0d00c29d818 100644 (file)
@@ -381,7 +381,7 @@ config BUSYBOX_DEFAULT_BZIP2_SMALL
        default 0
 config BUSYBOX_DEFAULT_FEATURE_BZIP2_DECOMPRESS
        bool
        default 0
 config BUSYBOX_DEFAULT_FEATURE_BZIP2_DECOMPRESS
        bool
-       default y
+       default n
 config BUSYBOX_DEFAULT_CPIO
        bool
        default n
 config BUSYBOX_DEFAULT_CPIO
        bool
        default n
@@ -514,6 +514,9 @@ config BUSYBOX_DEFAULT_CHROOT
 config BUSYBOX_DEFAULT_CKSUM
        bool
        default n
 config BUSYBOX_DEFAULT_CKSUM
        bool
        default n
+config BUSYBOX_DEFAULT_CRC32
+       bool
+       default n
 config BUSYBOX_DEFAULT_COMM
        bool
        default n
 config BUSYBOX_DEFAULT_COMM
        bool
        default n
@@ -529,6 +532,9 @@ config BUSYBOX_DEFAULT_FEATURE_CP_REFLINK
 config BUSYBOX_DEFAULT_CUT
        bool
        default y
 config BUSYBOX_DEFAULT_CUT
        bool
        default y
+config BUSYBOX_DEFAULT_FEATURE_CUT_REGEX
+       bool
+       default n
 config BUSYBOX_DEFAULT_DATE
        bool
        default y
 config BUSYBOX_DEFAULT_DATE
        bool
        default y
@@ -829,9 +835,6 @@ config BUSYBOX_DEFAULT_TIMEOUT
 config BUSYBOX_DEFAULT_TOUCH
        bool
        default y
 config BUSYBOX_DEFAULT_TOUCH
        bool
        default y
-config BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
-       bool
-       default n
 config BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
        bool
        default y
@@ -1058,6 +1061,9 @@ config BUSYBOX_DEFAULT_FEATURE_VI_8BIT
 config BUSYBOX_DEFAULT_FEATURE_VI_COLON
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_VI_COLON
        bool
        default y
+config BUSYBOX_DEFAULT_FEATURE_VI_COLON_EXPAND
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_VI_YANKMARK
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_VI_YANKMARK
        bool
        default y
@@ -1097,6 +1103,9 @@ config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE
 config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE_MAX
        int
        default 0
 config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE_MAX
        int
        default 0
+config BUSYBOX_DEFAULT_FEATURE_VI_VERBOSE_STATUS
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
        bool
        default y
@@ -1895,6 +1904,9 @@ config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
 config BUSYBOX_DEFAULT_ADJTIMEX
        bool
        default n
 config BUSYBOX_DEFAULT_ADJTIMEX
        bool
        default n
+config BUSYBOX_DEFAULT_ASCII
+       bool
+       default n
 config BUSYBOX_DEFAULT_BBCONFIG
        bool
        default n
 config BUSYBOX_DEFAULT_BBCONFIG
        bool
        default n
@@ -2183,6 +2195,9 @@ config BUSYBOX_DEFAULT_VOLNAME
 config BUSYBOX_DEFAULT_WATCHDOG
        bool
        default n
 config BUSYBOX_DEFAULT_WATCHDOG
        bool
        default n
+config BUSYBOX_DEFAULT_FEATURE_WATCHDOG_OPEN_TWICE
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_IPV6
        bool
        default y if IPV6
 config BUSYBOX_DEFAULT_FEATURE_IPV6
        bool
        default y if IPV6
@@ -2589,6 +2604,9 @@ config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
 config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
        bool
        default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_FTP
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
        bool
        default n
@@ -2652,6 +2670,9 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833
 config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC5970
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC5970
        bool
        default n
+config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE
+       string
+       default ""
 config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
        bool
        default n
@@ -2985,10 +3006,10 @@ config BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
 config BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
        bool
        default n
 config BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
        bool
        default n
-config BUSYBOX_DEFAULT_HUSH_LINENO_VAR
+config BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR
        bool
        default n
        bool
        default n
-config BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR
+config BUSYBOX_DEFAULT_HUSH_LINENO_VAR
        bool
        default n
 config BUSYBOX_DEFAULT_HUSH_INTERACTIVE
        bool
        default n
 config BUSYBOX_DEFAULT_HUSH_INTERACTIVE
index 76a1de33b7272dffb82915020ecc05afe466350b..306da6c36c9c5e9946ea14b8ceb25936bcae90b9 100644 (file)
@@ -5,14 +5,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
-PKG_VERSION:=1.33.1
+PKG_VERSION:=1.34.0
 PKG_RELEASE:=$(AUTORELEASE)
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.busybox.net/downloads \
                http://sources.buildroot.net
 PKG_RELEASE:=$(AUTORELEASE)
 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:=12cec6bd2b16d8a9446dd16130f2b92982f1819f6e1c5f5887b6db03f5660d28
+PKG_HASH:=ec8d1615edb045b83b81966604759c4d4ac921434ab4011da604f629c06074ce
 
 PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
 
 PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
index e256ca36f5e4fdab659d10e003164ab6e6501a36..c84c1d5a94ac47aff2be42520adc02e1ca3bd2c9 100644 (file)
@@ -63,8 +63,10 @@ config BUSYBOX_CONFIG_CHROOT
 config BUSYBOX_CONFIG_CKSUM
        bool "cksum (4.1 kb)"
        default BUSYBOX_DEFAULT_CKSUM
 config BUSYBOX_CONFIG_CKSUM
        bool "cksum (4.1 kb)"
        default BUSYBOX_DEFAULT_CKSUM
-       help
-       cksum is used to calculate the CRC32 checksum of a file.
+
+config BUSYBOX_CONFIG_CRC32
+       bool "crc32 (4.1 kb)"
+       default BUSYBOX_DEFAULT_CRC32
 config BUSYBOX_CONFIG_COMM
        bool "comm (4.2 kb)"
        default BUSYBOX_DEFAULT_COMM
 config BUSYBOX_CONFIG_COMM
        bool "comm (4.2 kb)"
        default BUSYBOX_DEFAULT_COMM
@@ -95,6 +97,13 @@ config BUSYBOX_CONFIG_CUT
        help
        cut is used to print selected parts of lines from
        each file to stdout.
        help
        cut is used to print selected parts of lines from
        each file to stdout.
+
+config BUSYBOX_CONFIG_FEATURE_CUT_REGEX
+       bool "cut -F"
+       default BUSYBOX_DEFAULT_FEATURE_CUT_REGEX
+       depends on BUSYBOX_CONFIG_CUT
+       help
+       Allow regex based delimiters.
 config BUSYBOX_CONFIG_DATE
        bool "date (7 kb)"
        default BUSYBOX_DEFAULT_DATE
 config BUSYBOX_CONFIG_DATE
        bool "date (7 kb)"
        default BUSYBOX_DEFAULT_DATE
@@ -739,16 +748,8 @@ config BUSYBOX_CONFIG_TOUCH
        touch is used to create or change the access and/or
        modification timestamp of specified files.
 
        touch is used to create or change the access and/or
        modification timestamp of specified files.
 
-config BUSYBOX_CONFIG_FEATURE_TOUCH_NODEREF
-       bool "Add support for -h"
-       default BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
-       depends on BUSYBOX_CONFIG_TOUCH
-       help
-       Enable touch to have the -h option.
-       This requires libc support for lutimes() function.
-
 config BUSYBOX_CONFIG_FEATURE_TOUCH_SUSV3
 config BUSYBOX_CONFIG_FEATURE_TOUCH_SUSV3
-       bool "Add support for SUSV3 features (-d -t -r)"
+       bool "Add support for SUSV3 features (-a -d -m -t -r)"
        default BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
        depends on BUSYBOX_CONFIG_TOUCH
        help
        default BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
        depends on BUSYBOX_CONFIG_TOUCH
        help
index 16d08bc0f852054755490b970b8a9d0d7590315e..dc80a4ec0df6f604ab1888f358bcb65fe4604896 100644 (file)
@@ -110,6 +110,14 @@ config BUSYBOX_CONFIG_FEATURE_VI_COLON
        Enable a limited set of colon commands. This does not
        provide an "ex" mode.
 
        Enable a limited set of colon commands. This does not
        provide an "ex" mode.
 
+config BUSYBOX_CONFIG_FEATURE_VI_COLON_EXPAND
+       bool "Expand \"%\" and \"#\" in colon commands"
+       default BUSYBOX_DEFAULT_FEATURE_VI_COLON_EXPAND
+       depends on BUSYBOX_CONFIG_FEATURE_VI_COLON
+       help
+       Expand the special characters \"%\" (current filename)
+       and \"#\" (alternate filename) in colon commands.
+
 config BUSYBOX_CONFIG_FEATURE_VI_YANKMARK
        bool "Enable yank/put commands and mark cmds"
        default BUSYBOX_DEFAULT_FEATURE_VI_YANKMARK
 config BUSYBOX_CONFIG_FEATURE_VI_YANKMARK
        bool "Enable yank/put commands and mark cmds"
        default BUSYBOX_DEFAULT_FEATURE_VI_YANKMARK
@@ -126,7 +134,7 @@ config BUSYBOX_CONFIG_FEATURE_VI_SEARCH
 
 config BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH
        bool "Enable regex in search and replace"
 
 config BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH
        bool "Enable regex in search and replace"
-       default BUSYBOX_DEFAULT_FEATURE_VI_REGEX_SEARCH
+       default BUSYBOX_DEFAULT_FEATURE_VI_REGEX_SEARCH   # Uses GNU regex, which may be unavailable. FIXME
        depends on BUSYBOX_CONFIG_FEATURE_VI_SEARCH
        depends on USE_GLIBC
        help
        depends on BUSYBOX_CONFIG_FEATURE_VI_SEARCH
        depends on USE_GLIBC
        help
@@ -218,6 +226,14 @@ config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX
        Unless you want more (or less) frequent "undo points" while typing,
        you should probably leave this unchanged.
 
        Unless you want more (or less) frequent "undo points" while typing,
        you should probably leave this unchanged.
 
+config BUSYBOX_CONFIG_FEATURE_VI_VERBOSE_STATUS
+       bool "Enable verbose status reporting"
+       default BUSYBOX_DEFAULT_FEATURE_VI_VERBOSE_STATUS
+       depends on BUSYBOX_CONFIG_VI
+       help
+       Enable more verbose reporting of the results of yank, change,
+       delete, undo and substitution commands.
+
 config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
        bool "Allow vi and awk to execute shell commands"
        default BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
 config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
        bool "Allow vi and awk to execute shell commands"
        default BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
index 408c9f695d40697cf9101bc84c01a409c9f9d8e0..06b9681bc9283369bdedfe450c2c35eee5b81459 100644 (file)
@@ -13,7 +13,7 @@ config BUSYBOX_CONFIG_MINIPS
        Alias to "ps".
 config BUSYBOX_CONFIG_NUKE
        bool "nuke (2.9 kb)"
        Alias to "ps".
 config BUSYBOX_CONFIG_NUKE
        bool "nuke (2.9 kb)"
-       default BUSYBOX_DEFAULT_NUKE
+       default BUSYBOX_DEFAULT_NUKE  # off by default: too "accidentally destructive"
        help
        Alias to "rm -rf".
 config BUSYBOX_CONFIG_RESUME
        help
        Alias to "rm -rf".
 config BUSYBOX_CONFIG_RESUME
index f3b29787d1d00531bc5661c8ec45a78a2e54041a..ecb83d9647aed852d0abbcaa6f325e55d2ff17b9 100644 (file)
@@ -12,6 +12,12 @@ config BUSYBOX_CONFIG_ADJTIMEX
        help
        Adjtimex reads and optionally sets adjustment parameters for
        the Linux clock adjustment algorithm.
        help
        Adjtimex reads and optionally sets adjustment parameters for
        the Linux clock adjustment algorithm.
+config BUSYBOX_CONFIG_ASCII
+       bool "ascii"
+       default BUSYBOX_DEFAULT_ASCII
+       help
+       Print ascii table.
+
 config BUSYBOX_CONFIG_BBCONFIG
        bool "bbconfig (9.7 kb)"
        default BUSYBOX_DEFAULT_BBCONFIG
 config BUSYBOX_CONFIG_BBCONFIG
        bool "bbconfig (9.7 kb)"
        default BUSYBOX_DEFAULT_BBCONFIG
@@ -788,4 +794,19 @@ config BUSYBOX_CONFIG_WATCHDOG
        certain amount of time, the watchdog device assumes the system has
        hung, and will cause the hardware to reboot.
 
        certain amount of time, the watchdog device assumes the system has
        hung, and will cause the hardware to reboot.
 
+config BUSYBOX_CONFIG_FEATURE_WATCHDOG_OPEN_TWICE
+       bool "Open watchdog device twice, closing it gracefully in between"
+       depends on BUSYBOX_CONFIG_WATCHDOG
+       default BUSYBOX_DEFAULT_FEATURE_WATCHDOG_OPEN_TWICE   # this behavior was essentially a hack for a broken driver
+       help
+       When enabled, the watchdog device is opened and then immediately
+       magic-closed, before being opened a second time. This may be necessary
+       for some watchdog devices, but can cause spurious warnings in the
+       kernel log if the nowayout feature is enabled. If this workaround
+       is really needed for you machine to work properly, consider whether
+       it should be fixed in the kernel driver instead. Even when disabled,
+       the behaviour is easily emulated with a "printf 'V' > /dev/watchdog"
+       immediately before starting the busybox watchdog daemon. Say n unless
+       you know that you absolutely need this.
+
 endmenu
 endmenu
index 3e1c4c4c04b8c71b5a909fd5d3a5fb535fac99c7..79bb6b1f53238182e083732291dfd9e08559585e 100644 (file)
@@ -1092,6 +1092,13 @@ config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR
        default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
        depends on BUSYBOX_CONFIG_WGET
 
        default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
        depends on BUSYBOX_CONFIG_WGET
 
+config BUSYBOX_CONFIG_FEATURE_WGET_FTP
+       bool "Enable FTP protocol (+1k)"
+       default BUSYBOX_DEFAULT_FEATURE_WGET_FTP
+       depends on BUSYBOX_CONFIG_WGET
+       help
+       To support FTPS, enable FEATURE_WGET_HTTPS as well.
+
 config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
        bool "Enable HTTP authentication"
        default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
 config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
        bool "Enable HTTP authentication"
        default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
@@ -1120,6 +1127,7 @@ config BUSYBOX_CONFIG_FEATURE_WGET_HTTPS
        select BUSYBOX_CONFIG_TLS
        help
        wget will use internal TLS code to connect to https:// URLs.
        select BUSYBOX_CONFIG_TLS
        help
        wget will use internal TLS code to connect to https:// URLs.
+       It also enables FTPS support, but it's not well tested yet.
        Note:
        On NOMMU machines, ssl_helper applet should be available
        in the $PATH for this to work. Make sure to select that applet.
        Note:
        On NOMMU machines, ssl_helper applet should be available
        in the $PATH for this to work. Make sure to select that applet.
index 9bede614991ed2ffbae0ba34d368b9d1ed4d0516..ecfa283e23ae34b35571e22d6970432cb4baea57 100644 (file)
@@ -142,6 +142,14 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC5970
 comment "Common options for DHCP applets"
         depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6 || BUSYBOX_CONFIG_DHCPRELAY
 
 comment "Common options for DHCP applets"
         depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6 || BUSYBOX_CONFIG_DHCPRELAY
 
+config BUSYBOX_CONFIG_UDHCPC_DEFAULT_INTERFACE
+       string "Default interface name"
+       default BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE
+       depends on BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6
+       help
+       The interface that will be used if no other interface is
+       specified on the commandline.
+
 config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
        bool "Enable '-P port' option for udhcpd and udhcpc"
        default BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
 config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
        bool "Enable '-P port' option for udhcpd and udhcpc"
        default BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
index cb43bcd84c89c08443e74d1608ed8999c8a5affe..2b07812109c44324723ce5f20a3cb6871bc63833 100644 (file)
@@ -299,11 +299,6 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
        help
        Enable {abc,def} extension.
 
        help
        Enable {abc,def} extension.
 
-config BUSYBOX_CONFIG_HUSH_LINENO_VAR
-       bool "$LINENO variable"
-       default BUSYBOX_DEFAULT_HUSH_LINENO_VAR
-       depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
-
 config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
        bool "'source' and '.' builtins search current directory after $PATH"
        default BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR   # do not encourage non-standard behavior
 config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
        bool "'source' and '.' builtins search current directory after $PATH"
        default BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR   # do not encourage non-standard behavior
@@ -311,6 +306,11 @@ config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
        help
        This is not compliant with standards. Avoid if possible.
 
        help
        This is not compliant with standards. Avoid if possible.
 
+config BUSYBOX_CONFIG_HUSH_LINENO_VAR
+       bool "$LINENO variable (bashism)"
+       default BUSYBOX_DEFAULT_HUSH_LINENO_VAR
+       depends on BUSYBOX_CONFIG_SHELL_HUSH
+
 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
        bool "Interactive mode"
        default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
 config BUSYBOX_CONFIG_HUSH_INTERACTIVE
        bool "Interactive mode"
        default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
diff --git a/package/utils/busybox/patches/001-backport-fix-build-breakage-on-mips.patch b/package/utils/busybox/patches/001-backport-fix-build-breakage-on-mips.patch
new file mode 100644 (file)
index 0000000..354e3e5
--- /dev/null
@@ -0,0 +1,37 @@
+From 00adcdb64a5487f0ea6b400d912dcf7c58637696 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Fri, 20 Aug 2021 13:33:50 +0200
+Subject: udhcp: fix build breakage on MIPS
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ networking/udhcp/common.h | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h
+index 8c678dd32..ca778dab8 100644
+--- a/networking/udhcp/common.h
++++ b/networking/udhcp/common.h
+@@ -304,18 +304,6 @@ void udhcp_dump_packet(struct dhcp_packet *packet) FAST_FUNC;
+ # define log3s(msg) ((void)0)
+ #endif
+-#if defined(__mips__)
+-/*
+- * The 'simple' message functions have a negative impact on the size of the
+- * DHCP code when compiled for MIPS, so don't use them in this case.
+- */
+-#define bb_simple_info_msg bb_info_msg
+-#define bb_simple_error_msg bb_error_msg
+-#define bb_simple_perror_msg_and_die bb_perror_msg_and_die
+-#undef log1s
+-#define log1s log1
+-#endif
+-
+ /*** Other shared functions ***/
+ /* 2nd param is "uint32_t*" */
+-- 
+cgit v1.2.3
+
+
diff --git a/package/utils/busybox/patches/002-backport-ash-process-substitution.patch b/package/utils/busybox/patches/002-backport-ash-process-substitution.patch
new file mode 100644 (file)
index 0000000..5b348ea
--- /dev/null
@@ -0,0 +1,77 @@
+Stacy Harper reports that this script:
+
+   test() { . /tmp/bb_test; }
+   echo "export TEST=foo" >/tmp/bb_test
+   test 2>/dev/null
+   echo "$TEST"
+
+correctly prints 'foo' in BusyBox 1.33 but hangs in 1.34.
+
+Bisection suggested the problem was caused by commit a1b0d3856 (ash: add
+process substitution in bash-compatibility mode).  Removing the call to
+unwindredir() in cmdloop() introduced in that commit makes the script
+work again.
+
+Additionally, these examples of process substitution:
+
+   while true; do cat <(echo hi); done
+   f() { while true; do cat <(echo hi); done }
+   f
+
+result in running out of file descriptors.  This is a regression from
+v5 of the process substitution patch caused by changes to evalcommand()
+not being transferred to v6.
+
+function                                             old     new   delta
+static.pushredir                                       -      99     +99
+evalcommand                                         1729    1750     +21
+exitreset                                             69      86     +17
+cmdloop                                              372     365      -7
+unwindredir                                           28       -     -28
+pushredir                                            112       -    -112
+------------------------------------------------------------------------------
+(add/remove: 1/2 grow/shrink: 2/1 up/down: 137/-147)          Total: -10 bytes
+
+Signed-off-by: Ron Yorston <rmy at pobox.com>
+---
+ shell/ash.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/shell/ash.c b/shell/ash.c
+index b5947147a..53c140930 100644
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -10278,6 +10278,9 @@ evalcommand(union node *cmd, int flags)
+       /* First expand the arguments. */
+       TRACE(("evalcommand(0x%lx, %d) called\n", (long)cmd, flags));
++#if BASH_PROCESS_SUBST
++      redir_stop = redirlist;
++#endif
+       file_stop = g_parsefile;
+       back_exitstatus = 0;
+@@ -10356,7 +10359,11 @@ evalcommand(union node *cmd, int flags)
+               lastarg = nargv[-1];
+       expredir(cmd->ncmd.redirect);
++#if !BASH_PROCESS_SUBST
+       redir_stop = pushredir(cmd->ncmd.redirect);
++#else
++      pushredir(cmd->ncmd.redirect);
++#endif
+       preverrout_fd = 2;
+       if (BASH_XTRACEFD && xflag) {
+               /* NB: bash closes fd == $BASH_XTRACEFD when it is changed.
+@@ -13476,9 +13483,6 @@ cmdloop(int top)
+ #if JOBS
+               if (doing_jobctl)
+                       showjobs(SHOW_CHANGED|SHOW_STDERR);
+-#endif
+-#if BASH_PROCESS_SUBST
+-              unwindredir(NULL);
+ #endif
+               inter = 0;
+               if (iflag && top) {
+-- 
+2.31.1
index 2e67009224f7e3fd2ef26e67a98fb4ca05099768..c0f234ee421ecb07dbff1ac163f7b926926b0318 100644 (file)
@@ -1,18 +1,18 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -712,6 +712,7 @@ static int bcast_or_ucast(struct dhcp_pa
- static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
+@@ -722,6 +722,7 @@ static int bcast_or_ucast(struct dhcp_pa
+ static NOINLINE int send_discover(uint32_t requested)
  {
        struct dhcp_packet packet;
 +      static int msgs = 0;
  
        /* Fill in: op, htype, hlen, cookie, chaddr fields,
  {
        struct dhcp_packet packet;
 +      static int msgs = 0;
  
        /* Fill in: op, htype, hlen, cookie, chaddr fields,
-        * random xid field (we override it below),
-@@ -729,6 +730,7 @@ static NOINLINE int send_discover(uint32
+        * xid field, message type option:
+@@ -736,6 +737,7 @@ static NOINLINE int send_discover(uint32
         */
        add_client_options(&packet);
  
 +      if (msgs++ < 3)
         */
        add_client_options(&packet);
  
 +      if (msgs++ < 3)
-       bb_info_msg("sending %s", "discover");
+       bb_simple_info_msg("broadcasting discover");
        return raw_bcast_from_client_data_ifindex(&packet, INADDR_ANY);
  }
        return raw_bcast_from_client_data_ifindex(&packet, INADDR_ANY);
  }
index 875f2ce5fc401ae81843b6a144766399abb37f2f..a4bda992c42b221e038ec3943efab3588e872a48 100644 (file)
@@ -1,8 +1,8 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -1415,6 +1415,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
-               /* silence "uninitialized!" warning */
-               unsigned timestamp_before_wait = timestamp_before_wait;
+@@ -1384,6 +1384,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+               struct pollfd pfds[2];
+               struct dhcp_packet packet;
  
 +              /* When running on a bridge, the ifindex may have changed (e.g. if
 +               * member interfaces were added/removed or if the status of the
  
 +              /* When running on a bridge, the ifindex may have changed (e.g. if
 +               * member interfaces were added/removed or if the status of the
diff --git a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
deleted file mode 100644 (file)
index 88a98c0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/networking/udhcp/dhcpc.c
-+++ b/networking/udhcp/dhcpc.c
-@@ -1125,7 +1125,6 @@ static void perform_renew(void)
-               client_data.state = RENEW_REQUESTED;
-               break;
-       case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
--              udhcp_run_script(NULL, "deconfig");
-       case REQUESTING:
-       case RELEASED:
-               change_listen_mode(LISTEN_RAW);
diff --git a/package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch b/package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch
deleted file mode 100644 (file)
index abe8baf..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From 7eed119b84b0f7efb7ef351940dd895dc2379eb3 Mon Sep 17 00:00:00 2001
-From: Russell Senior <russell@personaltelco.net>
-Date: Mon, 15 Mar 2021 23:27:58 -0700
-Subject: [PATCH v2] udhcpc: ignore zero-length DHCP options
-
-Discovered that the DHCP server on a TrendNet router (unknown model)
-provides a zero-length option 12 (Host Name) in the DHCP ACK message. This
-has the effect of causing udhcpc to drop the rest of the options, including
-option 51 (IP Address Lease Time), 3 (Router), and 6 (Domain Name Server),
-most importantly leaving the OpenWrt device with no default gateway.
-
-The TrendNet behavior violates RFC 2132, which in Section 3.14 declares that
-option 12 has a miniumum length of 1 octet. It is perhaps not a cosmic coincidence
-that I found this behavior on Pi Day.
-
-This patch allows zero length options without bailing out, by simply skipping them.
-
-v2 changelog:
-* advance the optionptr by two bytes, not one;
-* add a message to warn about the rfc violation;
-
-Signed-off-by: Russell Senior <russell@personaltelco.net>
----
- networking/udhcp/common.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
-index 4bc719001..a16fd85d0 100644
---- a/networking/udhcp/common.c
-+++ b/networking/udhcp/common.c
-@@ -277,8 +277,13 @@ uint8_t* FAST_FUNC udhcp_scan_options(struct dhcp_packet *packet, struct dhcp_sc
-                       goto complain; /* complain and return NULL */
-               len = 2 + scan_state->optionptr[OPT_LEN];
-               scan_state->rem -= len;
--              /* So far no valid option with length 0 known. */
--              if (scan_state->rem < 0 || scan_state->optionptr[OPT_LEN] == 0)
-+              /* skip any options with zero length */
-+              if (scan_state->optionptr[OPT_LEN] == 0) {
-+                      scan_state->optionptr += 2;
-+                      bb_simple_error_msg("warning: zero length DHCP option violates rfc2132, skipping");
-+                      continue;
-+              }
-+              if (scan_state->rem < 0)
-                       goto complain; /* complain and return NULL */
-               if (scan_state->optionptr[OPT_CODE] == DHCP_OPTION_OVERLOAD) {
--- 
-2.30.1
-
diff --git a/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch b/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch
deleted file mode 100644 (file)
index af47362..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From 59f773ee81a8945321f4aa20abc5e9577e6483e4 Mon Sep 17 00:00:00 2001
-From: Paul Spooren <mail@aparcar.org>
-Date: Thu, 13 May 2021 11:25:34 +0200
-Subject: [PATCH] use SOURCE_DATE_EPOCH for timestamp if available
-
-The SOURCE_DATE_EPOCH is an effort of the Reproducible Builds
-organization to make timestamps/build dates in compiled tools
-deterministic over several repetitive builds.
-
-Busybox shows by default the build date timestamp which changes whenever
-compiled. To have a reasonable accurate build date while staying
-reproducible, it's possible to use the *date of last source
-modification* rather than the current time and date.
-
-Further information on SOURCE_DATE_EPOCH are available online [1].
-
-This patch modifies `confdata.c` so that the content of the
-SOURCE_DATE_EPOCH env variable is used as timestamp.
-
-To be independent of different timezones between builds, whenever
-SOURCE_DATE_EPOCH is defined the GMT time is used.
-
-[1]: https://reproducible-builds.org/docs/source-date-epoch/
-
-Signed-off-by: Paul Spooren <mail@aparcar.org>
----
- scripts/kconfig/confdata.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
-index b05b96e45..73c25e3a8 100644
---- a/scripts/kconfig/confdata.c
-+++ b/scripts/kconfig/confdata.c
-@@ -342,6 +342,8 @@ int conf_write(const char *name)
-       time_t now;
-       int use_timestamp = 1;
-       char *env;
-+      char *source_date_epoch;
-+      struct tm *build_time;
-       dirname[0] = 0;
-       if (name && name[0]) {
-@@ -378,7 +380,16 @@ int conf_write(const char *name)
-       }
-       sym = sym_lookup("KERNELVERSION", 0);
-       sym_calc_value(sym);
--      time(&now);
-+
-+      source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+      if (source_date_epoch && *source_date_epoch) {
-+              now = strtoull(source_date_epoch, NULL, 10);
-+              build_time = gmtime(&now);
-+      } else {
-+              time(&now);
-+              build_time = localtime(&now);
-+      }
-+
-       env = getenv("KCONFIG_NOTIMESTAMP");
-       if (env && *env)
-               use_timestamp = 0;
-@@ -398,14 +409,14 @@ int conf_write(const char *name)
-               if (use_timestamp) {
-                       size_t ret = \
-                               strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP "
--                                      "\"%Y-%m-%d %H:%M:%S %Z\"\n", localtime(&now));
-+                                      "\"%Y-%m-%d %H:%M:%S %Z\"\n", build_time);
-                       /* if user has Factory timezone or some other odd install, the
-                        * %Z above will overflow the string leaving us with undefined
-                        * results ... so let's try again without the timezone.
-                        */
-                       if (ret == 0)
-                               strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP "
--                                      "\"%Y-%m-%d %H:%M:%S\"\n", localtime(&now));
-+                                      "\"%Y-%m-%d %H:%M:%S\"\n", build_time);
-               } else { /* bbox */
-                       strcpy(buf, "#define AUTOCONF_TIMESTAMP \"\"\n");
-               }
--- 
-2.30.2
-
diff --git a/package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch b/package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch
deleted file mode 100644 (file)
index ac9afa3..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From a0136f24f788e8bfc4ab74a647b27e115a25d9fb Mon Sep 17 00:00:00 2001
-From: Paul Spooren <mail@aparcar.org>
-Date: Wed, 19 May 2021 00:55:21 +0200
-Subject: [PATCH] nslookup: mention QUERY_TYPE SRV
-
-SRV lookups are supported since "6b4960155 nslookup: implement support
-for SRV records" and should therefore be mentioned as a possible
-QUERY_TYPE in the help message.
-
-Signed-off-by: Paul Spooren <mail@aparcar.org>
----
- networking/nslookup.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/networking/nslookup.c b/networking/nslookup.c
-index dda22de0e..2ae8d391c 100644
---- a/networking/nslookup.c
-+++ b/networking/nslookup.c
-@@ -25,7 +25,7 @@
- //usage:#define nslookup_full_usage "\n\n"
- //usage:       "Query DNS about HOST"
- //usage:       IF_FEATURE_NSLOOKUP_BIG("\n")
--//usage:       IF_FEATURE_NSLOOKUP_BIG("\nQUERY_TYPE: soa,ns,a,"IF_FEATURE_IPV6("aaaa,")"cname,mx,txt,ptr,any")
-+//usage:       IF_FEATURE_NSLOOKUP_BIG("\nQUERY_TYPE: soa,ns,a,"IF_FEATURE_IPV6("aaaa,")"cname,mx,txt,ptr,srv,any")
- //usage:#define nslookup_example_usage
- //usage:       "$ nslookup localhost\n"
- //usage:       "Server:     default\n"
--- 
-2.30.2
-