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 y
+       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_CRC32
+       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_FEATURE_CUT_REGEX
+       bool
+       default n
 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_FEATURE_TOUCH_NODEREF
-       bool
-       default n
 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_EXPAND
+       bool
+       default n
 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_VERBOSE_STATUS
+       bool
+       default n
 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_ASCII
+       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_FEATURE_WATCHDOG_OPEN_TWICE
+       bool
+       default n
 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_FTP
+       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_UDHCPC_DEFAULT_INTERFACE
+       string
+       default ""
 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_LINENO_VAR
+config BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR
        bool
        default n
-config BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR
+config BUSYBOX_DEFAULT_HUSH_LINENO_VAR
        bool
        default n
 config BUSYBOX_DEFAULT_HUSH_INTERACTIVE
index 76a1de33b7272dffb82915020ecc05afe466350b..306da6c36c9c5e9946ea14b8ceb25936bcae90b9 100644 (file)
@@ -5,14 +5,14 @@
 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_HASH:=12cec6bd2b16d8a9446dd16130f2b92982f1819f6e1c5f5887b6db03f5660d28
+PKG_HASH:=ec8d1615edb045b83b81966604759c4d4ac921434ab4011da604f629c06074ce
 
 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
-       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
@@ -95,6 +97,13 @@ config BUSYBOX_CONFIG_CUT
        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
@@ -739,16 +748,8 @@ config BUSYBOX_CONFIG_TOUCH
        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
-       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
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.
 
+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
@@ -126,7 +134,7 @@ config BUSYBOX_CONFIG_FEATURE_VI_SEARCH
 
 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
@@ -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.
 
+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
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)"
-       default BUSYBOX_DEFAULT_NUKE
+       default BUSYBOX_DEFAULT_NUKE  # off by default: too "accidentally destructive"
        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.
+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
@@ -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.
 
+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
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
 
+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
@@ -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.
+       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.
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
 
+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
index cb43bcd84c89c08443e74d1608ed8999c8a5affe..2b07812109c44324723ce5f20a3cb6871bc63833 100644 (file)
@@ -299,11 +299,6 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
        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
@@ -311,6 +306,11 @@ config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
        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
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
-@@ -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,
-        * 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)
-       bb_info_msg("sending %s", "discover");
+       bb_simple_info_msg("broadcasting discover");
        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
-@@ -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
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
-