diff --git a/README.md b/README.md
index 7573a90f3d..75298ceda3 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
# Project ImmortalWrt
-ImmortalWrt is a fork of [OpenWrt](https://openwrt.org), with more packages ported, more device supported, better performance, and special optimizations for mainland China users.
+ImmortalWrt is a fork of [OpenWrt](https://openwrt.org), with more packages ported, more devices supported, better performance, and special optimizations for mainland China users.
Compared the official one, we allow to use hacks or non-upstreamable patches / modifications to achieve our purpose. Source from anywhere.
Default login address: http://192.168.1.1 or http://immortalwrt.lan, username: __root__, password: __password__.
@@ -24,17 +24,17 @@ To build your own firmware you need a GNU/Linux, BSD or MacOSX system (case sens
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
- bzip2 ccache cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext git git-core gperf haveged \
- help2man intltool lib32gcc1 libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev \
- libmpfr-dev libncurses5-dev libncurses5-dev libreadline-dev libssl-dev libtool libz-dev lrzsz mkisofs msmtp \
- nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip python3-ply python-docutils \
- qemu-utils re2c rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto \
- xxd zlib1g-dev
+ bzip2 ccache cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib g++-multilib \
+ git git-core gperf haveged help2man intltool lib32gcc1 libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev \
+ libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncurses5-dev libreadline-dev libssl-dev libtool libz-dev \
+ lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip python3-ply \
+ python-docutils qemu-utils re2c rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim \
+ wget xmlto xxd zlib1g-dev
```
- Method 2:
```bash
- curl -s https://build-scripts.project-openwrt.eu.org/init_build_environment.sh | sudo bash
+ curl -s https://build-scripts.immortalwrt.eu.org/init_build_environment.sh | sudo bash
```
- You can also download and use prebuilt container directly:
diff --git a/include/target.mk b/include/target.mk
index 4354f6bff8..857844fb74 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -73,9 +73,7 @@ DEFAULT_PACKAGES.tweak:=\
luci-app-vlmcsd \
luci-app-wol \
luci-compat \
- luci-lib-base \
luci-lib-fs \
- luci-lib-ipkg \
luci-proto-relay \
wget-ssl
diff --git a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch
index da961a183b..c3892e5a0e 100644
--- a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch
+++ b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch
@@ -26,13 +26,14 @@
q_atm.so: q_atm.c
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm
-@@ -205,4 +206,15 @@ static-syms.h: $(wildcard *.c)
+@@ -205,4 +206,16 @@ static-syms.h: $(wildcard *.c)
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
done > $@
+else
+
+tc: dynsyms.list
++m_xt.so: dynsyms.list
+dynsyms.list: $(wildcard *.c)
+ files="$(filter-out $(patsubst %.so,%.c,$(TCSO)), $^)" ; \
+ echo "{" > $@ ; \
diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index 91d1c418ef..540c09ba76 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 d36bde3cbc..936aea5b71 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
+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 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
+---
+ 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
-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 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
-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 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
-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
-
diff --git a/tools/bison/Makefile b/tools/bison/Makefile
index 8f3043fcb8..f46894c71b 100644
--- a/tools/bison/Makefile
+++ b/tools/bison/Makefile
@@ -7,11 +7,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bison
-PKG_VERSION:=3.7.4
+PKG_VERSION:=3.7.6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=a3b5813f48a11e540ef26f46e4d288c0c25c7907d9879ae50e430ec49f63c010
+PKG_HASH:=67d68ce1e22192050525643fc0a7a22297576682bef6a5c51446903f5aeef3cf
HOST_BUILD_PARALLEL:=1
diff --git a/tools/cmake/Makefile b/tools/cmake/Makefile
index fc7926fda5..49dc61ee34 100644
--- a/tools/cmake/Makefile
+++ b/tools/cmake/Makefile
@@ -7,14 +7,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=cmake
-PKG_VERSION:=3.20.3
+PKG_VERSION:=3.21.2
PKG_RELEASE:=1
PKG_CPE_ID:=cpe:/a:kitware:cmake
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/Kitware/CMake/releases/download/v$(PKG_VERSION)/ \
https://cmake.org/files/v3.19/
-PKG_HASH:=4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8
+PKG_HASH:=94275e0b61c84bb42710f5320a23c6dcb2c6ee032ae7d2a616f53f68b3d21659
HOST_BUILD_PARALLEL:=1
HOST_CONFIGURE_PARALLEL:=1
diff --git a/tools/cmake/patches/120-curl-fix-libressl-linking.patch b/tools/cmake/patches/120-curl-fix-libressl-linking.patch
index 1095a4f8ac..97ef5ceb00 100644
--- a/tools/cmake/patches/120-curl-fix-libressl-linking.patch
+++ b/tools/cmake/patches/120-curl-fix-libressl-linking.patch
@@ -20,7 +20,7 @@ Signed-off-by: Jo-Philipp Wich
---
--- a/Utilities/cmcurl/CMakeLists.txt
+++ b/Utilities/cmcurl/CMakeLists.txt
-@@ -508,6 +508,14 @@ if(CMAKE_USE_OPENSSL)
+@@ -528,6 +528,14 @@ if(CMAKE_USE_OPENSSL)
endif()
set(SSL_ENABLED ON)
set(USE_OPENSSL ON)
diff --git a/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch b/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch
index 512765c5af..3822cba166 100644
--- a/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch
+++ b/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch
@@ -1,6 +1,6 @@
--- a/bootstrap
+++ b/bootstrap
-@@ -1397,7 +1397,10 @@ int main(){ printf("1%c", (char)0x0a); r
+@@ -1420,7 +1420,10 @@ int main(){ printf("1%c", (char)0x0a); r
' > "test.c"
cmake_original_make_flags="${cmake_make_flags}"
if test "x${cmake_parallel_make}" != "x"; then
diff --git a/tools/dosfstools/Makefile b/tools/dosfstools/Makefile
index e34ceaf32b..d52c46b302 100644
--- a/tools/dosfstools/Makefile
+++ b/tools/dosfstools/Makefile
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dosfstools
PKG_CPE_ID:=cpe:/a:dosfstools_project:dosfstools
-PKG_VERSION:=4.1
+PKG_VERSION:=4.2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/dosfstools/dosfstools/releases/download/v$(PKG_VERSION)/ \
http://fossies.org/linux/misc
-PKG_HASH:=e6b2aca70ccc3fe3687365009dd94a2e18e82b688ed4e260e04b7412471cc173
+PKG_HASH:=ba7c716ff9b8208a3bba5094a77584a7dc814141de09ab4ce1ae9b84bbcd7844
HOST_FIXUP:=autoreconf
diff --git a/tools/dosfstools/patches/0002-Switch-to-AC_CHECK_LIB-for-iconv-library-linking.patch b/tools/dosfstools/patches/0002-Switch-to-AC_CHECK_LIB-for-iconv-library-linking.patch
deleted file mode 100644
index ea93320821..0000000000
--- a/tools/dosfstools/patches/0002-Switch-to-AC_CHECK_LIB-for-iconv-library-linking.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 1c6c135ee15e449c1bf2e76d5307f83a3a1d7425 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?=
-Date: Tue, 11 Oct 2016 12:07:48 +0200
-Subject: [PATCH] Switch to AC_CHECK_LIB for iconv library linking.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-AC_SEARCH_LIB doesn't work properly for openwrt/lede when building dosfstools
-as a package.
-
-Signed-off-by: Álvaro Fernández Rojas
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -59,7 +59,7 @@ if test "x$with_udev" != "xno"; then
- [true])
- fi
-
--AC_SEARCH_LIBS(iconv_open, iconv)
-+AC_CHECK_LIB(iconv, iconv_open)
-
- # xxd (distributed with vim) is used in the testsuite
- AC_CHECK_PROG([XXD_FOUND], [xxd], [yes])
diff --git a/tools/findutils/Makefile b/tools/findutils/Makefile
index 606df4fa2f..37cd897355 100644
--- a/tools/findutils/Makefile
+++ b/tools/findutils/Makefile
@@ -8,16 +8,20 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=findutils
PKG_CPE_ID:=cpe:/a:gnu:findutils
-PKG_VERSION:=4.7.0
+PKG_VERSION:=4.8.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=c5fefbdf9858f7e4feb86f036e1247a54c79fc2d8e4b7064d5aaa1f47dfa789a
+PKG_HASH:=57127b7e97d91282c6ace556378d5455a9509898297e46e10443016ea1387164
HOST_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/host-build.mk
+ifeq ($(HOST_OS),Darwin)
+ HOST_CFLAGS +=-D__nonnull\\(params\\)=
+endif
+
HOST_CONFIGURE_ARGS += \
--enable-threads=pth \
--disable-rpath \
diff --git a/tools/libressl/Makefile b/tools/libressl/Makefile
index e25b5661ee..29fae1dfb6 100644
--- a/tools/libressl/Makefile
+++ b/tools/libressl/Makefile
@@ -8,8 +8,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libressl
-PKG_VERSION:=3.3.3
-PKG_HASH:=a471565b36ccd1a70d0bd7d37c6e95c43a26a62829b487d9d2cdebfe58be3066
+PKG_VERSION:=3.3.4
+PKG_HASH:=bcce767a3fed252bfd1210f8a7e3505a2b54d3008f66e43d9b95e3f30c072931
PKG_RELEASE:=1
PKG_CPE_ID:=cpe:/a:openbsd:libressl
diff --git a/tools/libtool/Makefile b/tools/libtool/Makefile
index dd4a7f6380..2bc9db7d0d 100644
--- a/tools/libtool/Makefile
+++ b/tools/libtool/Makefile
@@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libtool
PKG_CPE_ID:=cpe:/a:gnu:libtool
-PKG_VERSION:=2.4
+PKG_VERSION:=2.4.2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=afcce660d3dc54c63a0a5ba3cf05272239dc3c54bbeba20f6bad250f9dc007ae
+PKG_HASH:=1d7b6862c1ed162e327f083a6f78f40eae29218f0db8c38393d61dab764c4407
HOST_BUILD_PARALLEL:=1
diff --git a/tools/libtool/patches/000-relocatable.patch b/tools/libtool/patches/000-relocatable.patch
index 55265fe533..6d1651be31 100644
--- a/tools/libtool/patches/000-relocatable.patch
+++ b/tools/libtool/patches/000-relocatable.patch
@@ -29,7 +29,7 @@
--- a/libtoolize.in
+++ b/libtoolize.in
-@@ -326,15 +326,22 @@ as_unset=as_fn_unset
+@@ -334,15 +334,22 @@ as_unset=as_fn_unset
: ${CP="cp -f"}
test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
@@ -56,7 +56,7 @@
: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
: ${Xsed="$SED -e 1s/^X//"}
-@@ -2476,10 +2483,17 @@ func_check_macros ()
+@@ -2487,10 +2494,17 @@ func_check_macros ()
# Locations for important files:
prefix=@prefix@
@@ -80,7 +80,7 @@
configure_ac=configure.in
--- a/libtoolize.m4sh
+++ b/libtoolize.m4sh
-@@ -1450,10 +1450,17 @@ func_check_macros ()
+@@ -1453,10 +1453,17 @@ func_check_macros ()
# Locations for important files:
prefix=@prefix@
@@ -104,7 +104,7 @@
configure_ac=configure.in
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
-@@ -875,9 +875,8 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+@@ -907,9 +907,8 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
# ----------------
m4_defun([_LT_TAG_COMPILER],
[AC_REQUIRE([AC_PROG_CC])dnl
@@ -115,7 +115,7 @@
_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-@@ -7509,9 +7508,9 @@ m4_defun([_LT_DECL_EGREP],
+@@ -7660,9 +7659,9 @@ m4_defun([_LT_DECL_EGREP],
[AC_REQUIRE([AC_PROG_EGREP])dnl
AC_REQUIRE([AC_PROG_FGREP])dnl
test -z "$GREP" && GREP=grep
@@ -128,7 +128,7 @@
dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
AC_SUBST([GREP])
])
-@@ -7544,9 +7543,8 @@ AC_SUBST([DLLTOOL])
+@@ -7695,9 +7694,8 @@ AC_SUBST([DLLTOOL])
# as few characters as possible. Prefer GNU sed if found.
m4_defun([_LT_DECL_SED],
[AC_PROG_SED
diff --git a/tools/libtool/patches/001-fix-func_append.patch b/tools/libtool/patches/001-fix-func_append.patch
deleted file mode 100644
index 4c3c07b776..0000000000
--- a/tools/libtool/patches/001-fix-func_append.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/libltdl/config/ltmain.m4sh
-+++ b/libltdl/config/ltmain.m4sh
-@@ -7261,7 +7261,7 @@ EOF
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
-- *) func_apped perm_rpath " $libdir" ;;
-+ *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
---- a/libltdl/config/ltmain.sh
-+++ b/libltdl/config/ltmain.sh
-@@ -8050,7 +8050,7 @@ EOF
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
-- *) func_apped perm_rpath " $libdir" ;;
-+ *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
diff --git a/tools/libtool/patches/100-libdir-fixes.patch b/tools/libtool/patches/100-libdir-fixes.patch
index d4e6f785cc..3df2b14b60 100644
--- a/tools/libtool/patches/100-libdir-fixes.patch
+++ b/tools/libtool/patches/100-libdir-fixes.patch
@@ -1,6 +1,6 @@
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
-@@ -5715,8 +5715,14 @@ func_mode_link ()
+@@ -5731,8 +5731,14 @@ func_mode_link ()
absdir="$abs_ladir"
libdir="$abs_ladir"
else
@@ -17,7 +17,7 @@
fi
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
else
-@@ -6114,8 +6120,6 @@ func_mode_link ()
+@@ -6130,8 +6136,6 @@ func_mode_link ()
add="$libdir/$linklib"
fi
else
@@ -26,7 +26,7 @@
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
-@@ -6270,7 +6274,17 @@ func_mode_link ()
+@@ -6286,7 +6290,17 @@ func_mode_link ()
fi
;;
*)
@@ -47,7 +47,7 @@
else
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
-@@ -6504,8 +6504,14 @@ func_mode_link ()
+@@ -6518,8 +6518,14 @@ func_mode_link ()
absdir="$abs_ladir"
libdir="$abs_ladir"
else
@@ -64,7 +64,7 @@
fi
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
else
-@@ -6903,8 +6909,6 @@ func_mode_link ()
+@@ -6917,8 +6923,6 @@ func_mode_link ()
add="$libdir/$linklib"
fi
else
@@ -73,7 +73,7 @@
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
-@@ -7059,7 +7063,17 @@ func_mode_link ()
+@@ -7073,7 +7077,17 @@ func_mode_link ()
fi
;;
*)
diff --git a/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch b/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch
index c78058934a..bbfd125003 100644
--- a/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch
+++ b/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch
@@ -1,6 +1,6 @@
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
-@@ -6104,7 +6104,6 @@ func_mode_link ()
+@@ -6120,7 +6120,6 @@ func_mode_link ()
test "$hardcode_direct_absolute" = no; then
add="$libdir/$linklib"
elif test "$hardcode_minus_L" = yes; then
@@ -10,7 +10,7 @@
case :$finalize_shlibpath: in
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
-@@ -6893,7 +6893,6 @@ func_mode_link ()
+@@ -6907,7 +6907,6 @@ func_mode_link ()
test "$hardcode_direct_absolute" = no; then
add="$libdir/$linklib"
elif test "$hardcode_minus_L" = yes; then
diff --git a/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch b/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch
index 1c3df4c004..8840ee0569 100644
--- a/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch
+++ b/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch
@@ -12,7 +12,7 @@
'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
-@@ -2972,6 +2972,9 @@ func_mode_install ()
+@@ -2973,6 +2973,9 @@ func_mode_install ()
relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
fi
diff --git a/tools/libtool/patches/150-trailingslash.patch b/tools/libtool/patches/150-trailingslash.patch
index a01f9be77b..423911cf4b 100644
--- a/tools/libtool/patches/150-trailingslash.patch
+++ b/tools/libtool/patches/150-trailingslash.patch
@@ -11,7 +11,7 @@ Nitin A Kamble
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
-@@ -2164,8 +2164,15 @@ func_mode_install ()
+@@ -2167,8 +2167,15 @@ func_mode_install ()
func_append dir "$objdir"
if test -n "$relink_command"; then
@@ -30,7 +30,7 @@ Nitin A Kamble
# location b/c this prevents finding dependent libraries that
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
-@@ -2953,8 +2953,15 @@ func_mode_install ()
+@@ -2954,8 +2954,15 @@ func_mode_install ()
func_append dir "$objdir"
if test -n "$relink_command"; then
diff --git a/tools/libtool/patches/160-passthrough-ssp.patch b/tools/libtool/patches/160-passthrough-ssp.patch
index 9fad9aa9df..da44c614e3 100644
--- a/tools/libtool/patches/160-passthrough-ssp.patch
+++ b/tools/libtool/patches/160-passthrough-ssp.patch
@@ -1,7 +1,7 @@
diff -ur libtool-2.4.orig/libltdl/config/ltmain.m4sh libtool-2.4/libltdl/config/ltmain.m4sh
--- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2015-06-18 10:46:15.499996979 +0200
+++ libtool-2.4/libltdl/config/ltmain.m4sh 2015-06-18 10:48:24.686882213 +0200
-@@ -5061,7 +5061,7 @@
+@@ -5076,7 +5076,7 @@
# -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
diff --git a/tools/libtool/patches/200-openwrt-branding.patch b/tools/libtool/patches/200-openwrt-branding.patch
index dd3e3d6b78..3fc0afb866 100644
--- a/tools/libtool/patches/200-openwrt-branding.patch
+++ b/tools/libtool/patches/200-openwrt-branding.patch
@@ -28,7 +28,7 @@
:
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
-@@ -443,7 +443,7 @@ opt_warning=:
+@@ -439,7 +439,7 @@ opt_warning=:
# name if it has been set yet.
func_echo ()
{
@@ -37,7 +37,7 @@
}
# func_verbose arg...
-@@ -469,14 +469,14 @@ func_echo_all ()
+@@ -465,14 +465,14 @@ func_echo_all ()
# Echo program name prefixed message to standard error.
func_error ()
{
@@ -56,7 +56,7 @@
:
--- a/libtoolize.in
+++ b/libtoolize.in
-@@ -640,7 +640,7 @@ opt_warning=:
+@@ -648,7 +648,7 @@ opt_warning=:
# name if it has been set yet.
func_echo ()
{
@@ -65,7 +65,7 @@
}
# func_verbose arg...
-@@ -666,14 +666,14 @@ func_echo_all ()
+@@ -674,14 +674,14 @@ func_echo_all ()
# Echo program name prefixed message to standard error.
func_error ()
{
@@ -84,7 +84,7 @@
:
--- a/tests/defs.in
+++ b/tests/defs.in
-@@ -588,7 +588,7 @@ opt_warning=:
+@@ -596,7 +596,7 @@ opt_warning=:
# name if it has been set yet.
func_echo ()
{
@@ -93,7 +93,7 @@
}
# func_verbose arg...
-@@ -614,14 +614,14 @@ func_echo_all ()
+@@ -622,14 +622,14 @@ func_echo_all ()
# Echo program name prefixed message to standard error.
func_error ()
{
diff --git a/tools/tar/Makefile b/tools/tar/Makefile
index d69ee40f01..f1dfc11f93 100644
--- a/tools/tar/Makefile
+++ b/tools/tar/Makefile
@@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=tar
PKG_CPE_ID:=cpe:/a:gnu:tar
-PKG_VERSION:=1.32
+PKG_VERSION:=1.34
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/tar
-PKG_HASH:=d0d3ae07f103323be809bc3eac0dcc386d52c5262499fe05511ac4788af1fdd8
+PKG_HASH:=63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28
HOST_BUILD_PARALLEL:=1
diff --git a/tools/tar/patches/110-symlink-force-permissions.patch b/tools/tar/patches/110-symlink-force-permissions.patch
index e9a32f7d13..4a80de6ef0 100644
--- a/tools/tar/patches/110-symlink-force-permissions.patch
+++ b/tools/tar/patches/110-symlink-force-permissions.patch
@@ -1,6 +1,6 @@
--- a/src/create.c
+++ b/src/create.c
-@@ -1852,6 +1852,7 @@ dump_file0 (struct tar_stat_info *st, ch
+@@ -1844,6 +1844,7 @@ dump_file0 (struct tar_stat_info *st, ch
#ifdef HAVE_READLINK
else if (S_ISLNK (st->stat.st_mode))
{
diff --git a/tools/zstd/Makefile b/tools/zstd/Makefile
index 9138ae98f2..b93a5d2b52 100644
--- a/tools/zstd/Makefile
+++ b/tools/zstd/Makefile
@@ -1,11 +1,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=zstd
-PKG_VERSION:=1.4.8
+PKG_VERSION:=1.5.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/facebook/zstd/releases/download/v$(PKG_VERSION)
-PKG_HASH:=32478297ca1500211008d596276f5367c54198495cf677e9439f4791a4c69f24
+PKG_HASH:=5194fbfa781fcf45b98c5e849651aa7b3b0a008c6b72d4a0db760f3002291e94
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE