mirror of https://github.com/hak5/openwrt.git
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 <mkroken@gmail.com> SVN-Revision: 47288lede-17.01
parent
ce09894398
commit
e35d42e890
|
@ -8,14 +8,14 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=busybox
|
PKG_NAME:=busybox
|
||||||
PKG_VERSION:=1.23.2
|
PKG_VERSION:=1.24.1
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
PKG_FLAGS:=essential
|
PKG_FLAGS:=essential
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
|
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
|
||||||
http://distfiles.gentoo.org/distfiles/
|
http://distfiles.gentoo.org/distfiles/
|
||||||
PKG_MD5SUM:=7925683d7dd105aabe9b6b618d48cc73
|
PKG_MD5SUM:=be98a40cadf84ce2d6b05fa41a275c6a
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
|
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/util-linux/mount.c
|
--- a/util-linux/mount.c
|
||||||
+++ b/util-linux/mount.c
|
+++ b/util-linux/mount.c
|
||||||
@@ -138,9 +138,6 @@
|
@@ -236,9 +236,6 @@
|
||||||
#if ENABLE_FEATURE_MOUNT_NFS
|
#if ENABLE_FEATURE_MOUNT_NFS
|
||||||
/* This is just a warning of a common mistake. Possibly this should be a
|
/* This is just a warning of a common mistake. Possibly this should be a
|
||||||
* uclibc faq entry rather than in busybox... */
|
* uclibc faq entry rather than in busybox... */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/networking/udhcp/dhcpc.c
|
--- a/networking/udhcp/dhcpc.c
|
||||||
+++ b/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)
|
static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
|
||||||
{
|
{
|
||||||
struct dhcp_packet packet;
|
struct dhcp_packet packet;
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
/* Fill in: op, htype, hlen, cookie, chaddr fields,
|
/* Fill in: op, htype, hlen, cookie, chaddr fields,
|
||||||
* random xid field (we override it below),
|
* 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);
|
add_client_options(&packet);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/networking/udhcp/dhcpc.c
|
--- a/networking/udhcp/dhcpc.c
|
||||||
+++ b/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 */
|
/* silence "uninitialized!" warning */
|
||||||
unsigned timestamp_before_wait = timestamp_before_wait;
|
unsigned timestamp_before_wait = timestamp_before_wait;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/networking/udhcp/dhcpc.c
|
--- a/networking/udhcp/dhcpc.c
|
||||||
+++ b/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;
|
state = RENEW_REQUESTED;
|
||||||
break;
|
break;
|
||||||
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
|
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/networking/udhcp/dhcpc.c
|
--- a/networking/udhcp/dhcpc.c
|
||||||
+++ b/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.
|
* client reverts to using the IP broadcast address.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
/*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR,
|
/*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR,
|
||||||
client_config.ifindex);
|
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,
|
return udhcp_send_kernel_packet(packet,
|
||||||
ciaddr, CLIENT_PORT,
|
ciaddr, CLIENT_PORT,
|
||||||
server, SERVER_PORT);
|
server, SERVER_PORT);
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
|
/* 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)
|
if (msgs++ < 3)
|
||||||
bb_info_msg("Sending discover...");
|
bb_info_msg("Sending discover...");
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Broadcast a DHCP request message */
|
/* 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;
|
addr.s_addr = requested;
|
||||||
bb_info_msg("Sending select for %s...", inet_ntoa(addr));
|
bb_info_msg("Sending select for %s...", inet_ntoa(addr));
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unicast or broadcast a DHCP renew message */
|
/* 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);
|
udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server);
|
||||||
|
|
||||||
bb_info_msg("Sending decline...");
|
bb_info_msg("Sending decline...");
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
|
IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
|
||||||
--- a/networking/Config.src
|
--- a/networking/Config.src
|
||||||
+++ b/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
|
help
|
||||||
Support long options for the ipcalc applet.
|
Support long options for the ipcalc applet.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/networking/ntpd.c
|
--- a/networking/ntpd.c
|
||||||
+++ b/networking/ntpd.c
|
+++ b/networking/ntpd.c
|
||||||
@@ -251,6 +251,7 @@ typedef struct {
|
@@ -265,6 +265,7 @@ typedef struct {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
len_and_sockaddr *p_lsa;
|
len_and_sockaddr *p_lsa;
|
||||||
char *p_dotted;
|
char *p_dotted;
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
int p_fd;
|
int p_fd;
|
||||||
int datapoint_idx;
|
int datapoint_idx;
|
||||||
uint32_t lastpkt_refid;
|
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;
|
peer_t *p;
|
||||||
|
|
||||||
p = xzalloc(sizeof(*p));
|
p = xzalloc(sizeof(*p));
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
p->p_fd = -1;
|
p->p_fd = -1;
|
||||||
p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3);
|
p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3);
|
||||||
p->next_action_time = G.cur_time; /* = set_next(p, 0); */
|
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:
|
* Uncomment this and use strace to see it in action:
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/libbb/printable_string.c
|
--- a/libbb/printable_string.c
|
||||||
+++ b/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 < ' ')
|
if (c < ' ')
|
||||||
break;
|
break;
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
s++;
|
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;
|
unsigned char c = *d;
|
||||||
if (c == '\0')
|
if (c == '\0')
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -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 <nbd@openwrt.org>
|
|
||||||
|
|
||||||
--- 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;
|
|
||||||
}
|
|
|
@ -1,75 +0,0 @@
|
||||||
From: Felix Fietkau <nbd@openwrt.org>
|
|
||||||
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 <nbd@openwrt.org>
|
|
||||||
---
|
|
||||||
|
|
||||||
--- 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'"
|
|
|
@ -1,73 +0,0 @@
|
||||||
From 6a7cd3d4aba493c0b0d00155b1e09a867db437cf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Tokarev <mjt@tls.msk.ru>
|
|
||||||
Date: Wed, 20 May 2015 16:27:44 +0300
|
|
||||||
Subject: [PATCH] ip addr: support change and replace commands
|
|
||||||
|
|
||||||
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
|
|
||||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
||||||
---
|
|
||||||
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);
|
|
||||||
}
|
|
Loading…
Reference in New Issue