aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils
diff options
context:
space:
mode:
authorHannu Nyman <hannu.nyman@iki.fi>2021-08-31 18:12:44 +0300
committerHans Dedecker <dedeckeh@gmail.com>2021-09-04 21:05:26 +0200
commitb6cbbbb6ef4deaba00f5c128ea66696fc64c5bf0 (patch)
treededcc4020623e3a354bd85e015c052f2339fb83e /package/utils
parent43f0e386d4e79e9014e926d1d9b5e2ff8f1379cb (diff)
downloadupstream-b6cbbbb6ef4deaba00f5c128ea66696fc64c5bf0.tar.gz
upstream-b6cbbbb6ef4deaba00f5c128ea66696fc64c5bf0.tar.bz2
upstream-b6cbbbb6ef4deaba00f5c128ea66696fc64c5bf0.zip
busybox: update to version 1.34.0
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>
Diffstat (limited to 'package/utils')
-rw-r--r--package/utils/busybox/Config-defaults.in33
-rw-r--r--package/utils/busybox/Makefile4
-rw-r--r--package/utils/busybox/config/coreutils/Config.in23
-rw-r--r--package/utils/busybox/config/editors/Config.in18
-rw-r--r--package/utils/busybox/config/klibc-utils/Config.in2
-rw-r--r--package/utils/busybox/config/miscutils/Config.in21
-rw-r--r--package/utils/busybox/config/networking/Config.in8
-rw-r--r--package/utils/busybox/config/networking/udhcp/Config.in8
-rw-r--r--package/utils/busybox/config/shell/Config.in10
-rw-r--r--package/utils/busybox/patches/001-backport-fix-build-breakage-on-mips.patch37
-rw-r--r--package/utils/busybox/patches/002-backport-ash-process-substitution.patch77
-rw-r--r--package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch10
-rw-r--r--package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch6
-rw-r--r--package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch10
-rw-r--r--package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch49
-rw-r--r--package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch80
-rw-r--r--package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch30
17 files changed, 223 insertions, 203 deletions
diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index d078a39954..4b264a09a2 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -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
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index 76a1de33b7..306da6c36c 100644
--- a/package/utils/busybox/Makefile
+++ b/package/utils/busybox/Makefile
@@ -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
diff --git a/package/utils/busybox/config/coreutils/Config.in b/package/utils/busybox/config/coreutils/Config.in
index e256ca36f5..c84c1d5a94 100644
--- a/package/utils/busybox/config/coreutils/Config.in
+++ b/package/utils/busybox/config/coreutils/Config.in
@@ -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
diff --git a/package/utils/busybox/config/editors/Config.in b/package/utils/busybox/config/editors/Config.in
index 16d08bc0f8..dc80a4ec0d 100644
--- a/package/utils/busybox/config/editors/Config.in
+++ b/package/utils/busybox/config/editors/Config.in
@@ -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
diff --git a/package/utils/busybox/config/klibc-utils/Config.in b/package/utils/busybox/config/klibc-utils/Config.in
index 408c9f695d..06b9681bc9 100644
--- a/package/utils/busybox/config/klibc-utils/Config.in
+++ b/package/utils/busybox/config/klibc-utils/Config.in
@@ -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
diff --git a/package/utils/busybox/config/miscutils/Config.in b/package/utils/busybox/config/miscutils/Config.in
index f3b29787d1..ecb83d9647 100644
--- a/package/utils/busybox/config/miscutils/Config.in
+++ b/package/utils/busybox/config/miscutils/Config.in
@@ -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
diff --git a/package/utils/busybox/config/networking/Config.in b/package/utils/busybox/config/networking/Config.in
index 3e1c4c4c04..79bb6b1f53 100644
--- a/package/utils/busybox/config/networking/Config.in
+++ b/package/utils/busybox/config/networking/Config.in
@@ -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.
diff --git a/package/utils/busybox/config/networking/udhcp/Config.in b/package/utils/busybox/config/networking/udhcp/Config.in
index 9bede61499..ecfa283e23 100644
--- a/package/utils/busybox/config/networking/udhcp/Config.in
+++ b/package/utils/busybox/config/networking/udhcp/Config.in
@@ -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
diff --git a/package/utils/busybox/config/shell/Config.in b/package/utils/busybox/config/shell/Config.in
index cb43bcd84c..2b07812109 100644
--- a/package/utils/busybox/config/shell/Config.in
+++ b/package/utils/busybox/config/shell/Config.in
@@ -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
index 0000000000..354e3e511a
--- /dev/null
+++ b/package/utils/busybox/patches/001-backport-fix-build-breakage-on-mips.patch
@@ -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
index 0000000000..5b348ea26b
--- /dev/null
+++ b/package/utils/busybox/patches/002-backport-ash-process-substitution.patch
@@ -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
diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
index 2e67009224..c0f234ee42 100644
--- a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
+++ b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
@@ -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);
}
diff --git a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
index 875f2ce5fc..a4bda992c4 100644
--- a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
+++ b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
@@ -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
index 88a98c0a1c..0000000000
--- a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
+++ /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
index abe8baf54f..0000000000
--- a/package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch
+++ /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
index af473622ed..0000000000
--- a/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch
+++ /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
index ac9afa34ef..0000000000
--- a/package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch
+++ /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
-