From e35d42e890024b1612780444a785132abbdfd70d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 30 Oct 2015 15:18:17 +0000 Subject: [PATCH] busybox: update to version 1.24.1 Patches applied upstream and dropped: 280-fix_find_regression.patch 300-ip-addr-improvements.patch Fixed upstream: 290-ash-fix-a-regression-in-handling-local-variables.patch (see thread: http://lists.busybox.net/pipermail/busybox/2015-April/082783.html) Signed-off-by: Magnus Kroken SVN-Revision: 47288 --- package/utils/busybox/Makefile | 6 +- .../patches/120-remove_uclibc_rpc_check.patch | 2 +- .../patches/200-udhcpc_reduce_msgs.patch | 4 +- .../patches/201-udhcpc_changed_ifindex.patch | 2 +- .../203-udhcpc_renew_no_deconfig.patch | 2 +- .../patches/204-udhcpc_src_ip_rebind.patch | 10 +-- .../busybox/patches/210-add_netmsg_util.patch | 2 +- .../patches/230-ntpd_delayed_resolve.patch | 6 +- .../270-libbb_make_unicode_printable.patch | 4 +- .../patches/280-fix_find_regression.patch | 31 -------- ...gression-in-handling-local-variables.patch | 75 ------------------- .../patches/300-ip-addr-improvements.patch | 73 ------------------ 12 files changed, 19 insertions(+), 198 deletions(-) delete mode 100644 package/utils/busybox/patches/280-fix_find_regression.patch delete mode 100644 package/utils/busybox/patches/290-ash-fix-a-regression-in-handling-local-variables.patch delete mode 100644 package/utils/busybox/patches/300-ip-addr-improvements.patch diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile index fb247036a3..5ca4363f1d 100644 --- a/package/utils/busybox/Makefile +++ b/package/utils/busybox/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=busybox -PKG_VERSION:=1.23.2 -PKG_RELEASE:=3 +PKG_VERSION:=1.24.1 +PKG_RELEASE:=1 PKG_FLAGS:=essential PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://www.busybox.net/downloads \ http://distfiles.gentoo.org/distfiles/ -PKG_MD5SUM:=7925683d7dd105aabe9b6b618d48cc73 +PKG_MD5SUM:=be98a40cadf84ce2d6b05fa41a275c6a PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam PKG_BUILD_PARALLEL:=1 diff --git a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch b/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch index a18b7dc6dc..5499efded0 100644 --- a/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch +++ b/package/utils/busybox/patches/120-remove_uclibc_rpc_check.patch @@ -1,6 +1,6 @@ --- a/util-linux/mount.c +++ b/util-linux/mount.c -@@ -138,9 +138,6 @@ +@@ -236,9 +236,6 @@ #if ENABLE_FEATURE_MOUNT_NFS /* This is just a warning of a common mistake. Possibly this should be a * uclibc faq entry rather than in busybox... */ diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch index c3de9783b4..1083675671 100644 --- a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch +++ b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch @@ -1,6 +1,6 @@ --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -685,6 +685,7 @@ static int bcast_or_ucast(struct dhcp_pa +@@ -695,6 +695,7 @@ static int bcast_or_ucast(struct dhcp_pa static NOINLINE int send_discover(uint32_t xid, uint32_t requested) { struct dhcp_packet packet; @@ -8,7 +8,7 @@ /* Fill in: op, htype, hlen, cookie, chaddr fields, * random xid field (we override it below), -@@ -702,6 +703,7 @@ static NOINLINE int send_discover(uint32 +@@ -712,6 +713,7 @@ static NOINLINE int send_discover(uint32 */ add_client_options(&packet); diff --git a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch index e7e2fce309..f32cea2830 100644 --- a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch +++ b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch @@ -1,6 +1,6 @@ --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -1410,6 +1410,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c +@@ -1418,6 +1418,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c /* silence "uninitialized!" warning */ unsigned timestamp_before_wait = timestamp_before_wait; diff --git a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch index 471f12f728..f38b128ff8 100644 --- a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch +++ b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch @@ -1,6 +1,6 @@ --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -1093,7 +1093,6 @@ static void perform_renew(void) +@@ -1101,7 +1101,6 @@ static void perform_renew(void) state = RENEW_REQUESTED; break; case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ diff --git a/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch b/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch index b6d8b6f1a9..21fec5167d 100644 --- a/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch +++ b/package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch @@ -1,6 +1,6 @@ --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c -@@ -663,10 +663,10 @@ static void add_client_options(struct dh +@@ -673,10 +673,10 @@ static void add_client_options(struct dh * client reverts to using the IP broadcast address. */ @@ -13,7 +13,7 @@ /*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR, client_config.ifindex); } -@@ -677,7 +677,7 @@ static int bcast_or_ucast(struct dhcp_pa +@@ -687,7 +687,7 @@ static int bcast_or_ucast(struct dhcp_pa return udhcp_send_kernel_packet(packet, ciaddr, CLIENT_PORT, server, SERVER_PORT); @@ -22,7 +22,7 @@ } /* Broadcast a DHCP discover packet to the network, with an optionally requested IP */ -@@ -705,7 +705,7 @@ static NOINLINE int send_discover(uint32 +@@ -715,7 +715,7 @@ static NOINLINE int send_discover(uint32 if (msgs++ < 3) bb_info_msg("Sending discover..."); @@ -31,7 +31,7 @@ } /* Broadcast a DHCP request message */ -@@ -749,7 +749,7 @@ static NOINLINE int send_select(uint32_t +@@ -759,7 +759,7 @@ static NOINLINE int send_select(uint32_t addr.s_addr = requested; bb_info_msg("Sending select for %s...", inet_ntoa(addr)); @@ -40,7 +40,7 @@ } /* Unicast or broadcast a DHCP renew message */ -@@ -817,7 +817,7 @@ static NOINLINE int send_decline(/*uint3 +@@ -827,7 +827,7 @@ static NOINLINE int send_decline(/*uint3 udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server); bb_info_msg("Sending decline..."); diff --git a/package/utils/busybox/patches/210-add_netmsg_util.patch b/package/utils/busybox/patches/210-add_netmsg_util.patch index 4da61447fe..8162e3b615 100644 --- a/package/utils/busybox/patches/210-add_netmsg_util.patch +++ b/package/utils/busybox/patches/210-add_netmsg_util.patch @@ -10,7 +10,7 @@ IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP)) --- a/networking/Config.src +++ b/networking/Config.src -@@ -619,6 +619,12 @@ config FEATURE_IPCALC_LONG_OPTIONS +@@ -626,6 +626,12 @@ config FEATURE_IPCALC_LONG_OPTIONS help Support long options for the ipcalc applet. diff --git a/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch b/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch index 1543e53173..b0af08efb5 100644 --- a/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch +++ b/package/utils/busybox/patches/230-ntpd_delayed_resolve.patch @@ -1,6 +1,6 @@ --- a/networking/ntpd.c +++ b/networking/ntpd.c -@@ -251,6 +251,7 @@ typedef struct { +@@ -265,6 +265,7 @@ typedef struct { typedef struct { len_and_sockaddr *p_lsa; char *p_dotted; @@ -8,7 +8,7 @@ int p_fd; int datapoint_idx; uint32_t lastpkt_refid; -@@ -756,8 +757,9 @@ add_peers(const char *s) +@@ -766,8 +767,9 @@ add_peers(const char *s) peer_t *p; p = xzalloc(sizeof(*p)); @@ -20,7 +20,7 @@ p->p_fd = -1; p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3); p->next_action_time = G.cur_time; /* = set_next(p, 0); */ -@@ -806,6 +808,25 @@ send_query_to_peer(peer_t *p) +@@ -816,6 +818,25 @@ send_query_to_peer(peer_t *p) * * Uncomment this and use strace to see it in action: */ diff --git a/package/utils/busybox/patches/270-libbb_make_unicode_printable.patch b/package/utils/busybox/patches/270-libbb_make_unicode_printable.patch index 3bfd48a23b..0ae8340568 100644 --- a/package/utils/busybox/patches/270-libbb_make_unicode_printable.patch +++ b/package/utils/busybox/patches/270-libbb_make_unicode_printable.patch @@ -1,6 +1,6 @@ --- a/libbb/printable_string.c +++ b/libbb/printable_string.c -@@ -31,8 +31,6 @@ const char* FAST_FUNC printable_string(u +@@ -28,8 +28,6 @@ const char* FAST_FUNC printable_string(u } if (c < ' ') break; @@ -9,7 +9,7 @@ s++; } -@@ -45,7 +43,7 @@ const char* FAST_FUNC printable_string(u +@@ -42,7 +40,7 @@ const char* FAST_FUNC printable_string(u unsigned char c = *d; if (c == '\0') break; diff --git a/package/utils/busybox/patches/280-fix_find_regression.patch b/package/utils/busybox/patches/280-fix_find_regression.patch deleted file mode 100644 index 50217506af..0000000000 --- a/package/utils/busybox/patches/280-fix_find_regression.patch +++ /dev/null @@ -1,31 +0,0 @@ -find: fix regression in status processing for path arguments - -Regression added in commit 14158b4127dba30466c50147b868a6a89702960b -"find: add optional support for '-exec ... {} +'" - -This commit causes find to exit on the first path argument that was not -found, which breaks existing scripts and is incompatible to other -implementations. - -Instead of exiting on the first failure, return EXIT_FAILURE at the end -if any error occurred. - -Signed-off-by: Felix Fietkau - ---- a/findutils/find.c -+++ b/findutils/find.c -@@ -1460,12 +1460,10 @@ int find_main(int argc UNUSED_PARAM, cha - NULL, /* user data */ - 0) /* depth */ - ) { -- status = EXIT_FAILURE; -- goto out; -+ status |= EXIT_FAILURE; - } - } - -- IF_FEATURE_FIND_EXEC_PLUS(status = flush_exec_plus();) --out: -+ IF_FEATURE_FIND_EXEC_PLUS(status |= flush_exec_plus();) - return status; - } diff --git a/package/utils/busybox/patches/290-ash-fix-a-regression-in-handling-local-variables.patch b/package/utils/busybox/patches/290-ash-fix-a-regression-in-handling-local-variables.patch deleted file mode 100644 index 0ac1925f3d..0000000000 --- a/package/utils/busybox/patches/290-ash-fix-a-regression-in-handling-local-variables.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: Felix Fietkau -Date: Fri, 17 Apr 2015 01:54:51 +0200 -Subject: [PATCH] ash: fix a regression in handling local variables - -commit 109ee5d33694a03cda3424b4846584250832ba8e -"ash: make "locak VAR" unset VAR (bash does that)" - -This commit introduced a regression where calling local on an already -local variable unsets it. This does not match bash behavior. - -Update test case to check for this behavior - -Signed-off-by: Felix Fietkau ---- - ---- a/shell/ash.c -+++ b/shell/ash.c -@@ -8961,6 +8961,21 @@ parse_command_args(char **argv, const ch - } - #endif - -+static bool -+findlocal(struct var *vp) -+{ -+ struct localvar *lvp = localvars; -+ -+ while (lvp) { -+ if (lvp->vp == vp) -+ return true; -+ -+ lvp = lvp->next; -+ } -+ -+ return false; -+} -+ - /* - * Make a variable a local variable. When a variable is made local, it's - * value and flags are saved in a localvar structure. The saved values -@@ -9000,7 +9015,7 @@ mklocal(char *name) - vp->flags |= VSTRFIXED|VTEXTFIXED; - if (eq) - setvareq(name, 0); -- else -+ else if (!findlocal(vp)) - /* "local VAR" unsets VAR: */ - setvar(name, NULL, 0); - } ---- a/shell/ash_test/ash-misc/local1.right -+++ b/shell/ash_test/ash-misc/local1.right -@@ -1,4 +1,5 @@ - A1:'A' - A2:'' --A3:'' --A4:'A' -+A3:'B' -+A4:'' -+A5:'A' ---- a/shell/ash_test/ash-misc/local1.tests -+++ b/shell/ash_test/ash-misc/local1.tests -@@ -3,9 +3,12 @@ f() { - local a - # the above line unsets $a - echo "A2:'$a'" -- unset a -+ a=B -+ local a - echo "A3:'$a'" -+ unset a -+ echo "A4:'$a'" - } - echo "A1:'$a'" - f --echo "A4:'$a'" -+echo "A5:'$a'" diff --git a/package/utils/busybox/patches/300-ip-addr-improvements.patch b/package/utils/busybox/patches/300-ip-addr-improvements.patch deleted file mode 100644 index ba1bcd1137..0000000000 --- a/package/utils/busybox/patches/300-ip-addr-improvements.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 6a7cd3d4aba493c0b0d00155b1e09a867db437cf Mon Sep 17 00:00:00 2001 -From: Michael Tokarev -Date: Wed, 20 May 2015 16:27:44 +0300 -Subject: [PATCH] ip addr: support change and replace commands - -Signed-off-by: Michael Tokarev -Signed-off-by: Denys Vlasenko ---- - networking/ip.c | 2 +- - networking/libiproute/ipaddress.c | 20 ++++++++++++-------- - 2 files changed, 13 insertions(+), 9 deletions(-) - ---- a/networking/ip.c -+++ b/networking/ip.c -@@ -33,7 +33,7 @@ - //usage: "{ {add|del} IFADDR dev STRING | {show|flush}\n" - //usage: " [dev STRING] [to PREFIX] }" - //usage:#define ipaddr_full_usage "\n\n" --//usage: "ipaddr {add|delete} IFADDR dev STRING\n" -+//usage: "ipaddr {add|change|replace|delete} IFADDR dev STRING\n" - //usage: "ipaddr {show|flush} [dev STRING] [scope SCOPE-ID]\n" - //usage: " [to PREFIX] [label PATTERN]\n" - //usage: " IFADDR := PREFIX | ADDR peer PREFIX\n" ---- a/networking/libiproute/ipaddress.c -+++ b/networking/libiproute/ipaddress.c -@@ -598,7 +598,7 @@ static int default_scope(inet_prefix *lc - } - - /* Return value becomes exitcode. It's okay to not return at all */ --static int ipaddr_modify(int cmd, char **argv) -+static int ipaddr_modify(int cmd, int flags, char **argv) - { - static const char option[] ALIGN1 = - "peer\0""remote\0""broadcast\0""brd\0" -@@ -622,7 +622,7 @@ static int ipaddr_modify(int cmd, char * - memset(&req, 0, sizeof(req)); - - req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifaddrmsg)); -- req.n.nlmsg_flags = NLM_F_REQUEST; -+ req.n.nlmsg_flags = NLM_F_REQUEST | flags; - req.n.nlmsg_type = cmd; - req.ifa.ifa_family = preferred_family; - -@@ -749,16 +749,24 @@ static int ipaddr_modify(int cmd, char * - int FAST_FUNC do_ipaddr(char **argv) - { - static const char commands[] ALIGN1 = -- "add\0""delete\0""list\0""show\0""lst\0""flush\0"; -+ /* 0 1 2 3 4 5 6 7 8 */ -+ "add\0""change\0""chg\0""replace\0""delete\0""list\0""show\0""lst\0""flush\0"; - int cmd = 2; - if (*argv) { - cmd = index_in_substrings(commands, *argv); - if (cmd < 0) - invarg(*argv, applet_name); - argv++; -- if (cmd <= 1) -- return ipaddr_modify((cmd == 0) ? RTM_NEWADDR : RTM_DELADDR, argv); -+ if (cmd <= 4) { -+ return ipaddr_modify( -+ /*cmd:*/ cmd == 4 ? RTM_DELADDR : RTM_NEWADDR, -+ /*flags:*/ -+ cmd == 0 ? NLM_F_CREATE|NLM_F_EXCL : /* add */ -+ cmd == 1 || cmd == 2 ? NLM_F_REPLACE : /* change */ -+ cmd == 3 ? NLM_F_CREATE|NLM_F_REPLACE : /* replace */ -+ 0 /* delete */ -+ , argv); -+ } - } -- /* 2 == list, 3 == show, 4 == lst */ -- return ipaddr_list_or_flush(argv, cmd == 5); -+ return ipaddr_list_or_flush(argv, cmd == 8); - } -- 2.25.1