From b6cbbbb6ef4deaba00f5c128ea66696fc64c5bf0 Mon Sep 17 00:00:00 2001 From: Hannu Nyman Date: Tue, 31 Aug 2021 18:12:44 +0300 Subject: [PATCH] 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 --- package/utils/busybox/Config-defaults.in | 33 ++++++-- package/utils/busybox/Makefile | 4 +- .../utils/busybox/config/coreutils/Config.in | 23 +++--- .../utils/busybox/config/editors/Config.in | 18 ++++- .../busybox/config/klibc-utils/Config.in | 2 +- .../utils/busybox/config/miscutils/Config.in | 21 +++++ .../utils/busybox/config/networking/Config.in | 8 ++ .../busybox/config/networking/udhcp/Config.in | 8 ++ package/utils/busybox/config/shell/Config.in | 10 +-- ...-backport-fix-build-breakage-on-mips.patch | 37 +++++++++ ...02-backport-ash-process-substitution.patch | 77 ++++++++++++++++++ .../patches/200-udhcpc_reduce_msgs.patch | 10 +-- .../patches/201-udhcpc_changed_ifindex.patch | 6 +- .../203-udhcpc_renew_no_deconfig.patch | 10 --- ...205-udhcpc_allow_zero_length_options.patch | 49 ------------ ...ATE_EPOCH-for-timestamp-if-available.patch | 80 ------------------- .../540-nslookup-mention-QUERY_TYPE-SRV.patch | 30 ------- 17 files changed, 223 insertions(+), 203 deletions(-) create mode 100644 package/utils/busybox/patches/001-backport-fix-build-breakage-on-mips.patch create mode 100644 package/utils/busybox/patches/002-backport-ash-process-substitution.patch delete mode 100644 package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch delete mode 100644 package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch delete mode 100644 package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch delete mode 100644 package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in index d078a399541..4b264a09a23 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 76a1de33b72..306da6c36c9 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 e256ca36f5e..c84c1d5a94a 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 16d08bc0f85..dc80a4ec0df 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 408c9f695d4..06b9681bc92 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 f3b29787d1d..ecb83d9647a 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 3e1c4c4c04b..79bb6b1f532 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 9bede614991..ecfa283e23a 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 cb43bcd84c8..2b07812109c 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 00000000000..354e3e511a1 --- /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 +Date: Fri, 20 Aug 2021 13:33:50 +0200 +Subject: udhcp: fix build breakage on MIPS + +Signed-off-by: Denys Vlasenko +--- + 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 00000000000..5b348ea26b4 --- /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 +--- + 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 2e67009224f..c0f234ee421 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 875f2ce5fc4..a4bda992c42 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 88a98c0a1c8..00000000000 --- 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 abe8baf54f3..00000000000 --- 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 -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 ---- - 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 af473622ed2..00000000000 --- 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 -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 ---- - 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 ac9afa34ef7..00000000000 --- 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 -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 ---- - 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 -