config BUSYBOX_DEFAULT_USE_PORTABLE_CODE
bool
default n
+config BUSYBOX_DEFAULT_STACK_OPTIMIZATION_386
+ bool
+ default n
config BUSYBOX_DEFAULT_INSTALL_APPLET_SYMLINKS
bool
default y
config BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_ETC_SERVICES
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_EDITING
bool
default y
config BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
bool
default y
+config BUSYBOX_DEFAULT_FEATURE_EDITING_WINCH
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
bool
default n
config BUSYBOX_DEFAULT_BZIP2
bool
default n
+config BUSYBOX_DEFAULT_BZIP2_SMALL
+ int
+ default 0
config BUSYBOX_DEFAULT_FEATURE_BZIP2_DECOMPRESS
bool
default y
config BUSYBOX_DEFAULT_FEATURE_SORT_BIG
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_SORT_OPTIMIZE_MEMORY
+ bool
+ default n
config BUSYBOX_DEFAULT_SPLIT
bool
default n
config BUSYBOX_DEFAULT_REBOOT
bool
default y
+config BUSYBOX_DEFAULT_FEATURE_WAIT_FOR_INIT
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_CALL_TELINIT
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_JFS
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LFS
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXRAID
bool
default n
config BUSYBOX_DEFAULT_FEATURE_LESS_LINENUMS
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_LESS_RAW
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_LESS_ENV
+ bool
+ default n
config BUSYBOX_DEFAULT_LOCK
bool
default y
config BUSYBOX_DEFAULT_NSLOOKUP
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_NSLOOKUP_BIG
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_NSLOOKUP_LONG_OPTIONS
+ bool
+ default n
config BUSYBOX_DEFAULT_NSLOOKUP_OPENWRT
bool
default y
config BUSYBOX_DEFAULT_SSL_CLIENT
bool
default n
+config BUSYBOX_DEFAULT_TC
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_TC_INGRESS
+ bool
+ default n
config BUSYBOX_DEFAULT_TCPSVD
bool
default n
config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC5970
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
bool
default n
config BUSYBOX_DEFAULT_SVC
bool
default n
+config BUSYBOX_DEFAULT_SVOK
+ bool
+ default n
config BUSYBOX_DEFAULT_SVLOGD
bool
default n
config BUSYBOX_DEFAULT_ASH_BASH_COMPAT
bool
default y
+config BUSYBOX_DEFAULT_ASH_BASH_SOURCE_CURDIR
+ bool
+ default n
+config BUSYBOX_DEFAULT_ASH_BASH_NOT_FOUND_HOOK
+ bool
+ default n
config BUSYBOX_DEFAULT_ASH_JOB_CONTROL
bool
default y
config BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
bool
default n
+config BUSYBOX_DEFAULT_HUSH_LINENO_VAR
+ bool
+ default n
+config BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR
+ bool
+ default n
config BUSYBOX_DEFAULT_HUSH_INTERACTIVE
bool
default n
config BUSYBOX_DEFAULT_HUSH_WAIT
bool
default n
+config BUSYBOX_DEFAULT_HUSH_COMMAND
+ bool
+ default n
config BUSYBOX_DEFAULT_HUSH_TRAP
bool
default n
include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
-PKG_VERSION:=1.28.4
-PKG_RELEASE:=3
+PKG_VERSION:=1.29.2
+PKG_RELEASE:=1
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:=e3c14a3699dc7e82fed397392957afc78e37bdf25398ac38ead6e84621b2ae6a
+PKG_HASH:=67d2fa6e147a45875fe972de62d907ef866fe784c495c363bf34756c444a5d61
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
PKG_BUILD_PARALLEL:=1
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
compiler other than gcc.
If you do use gcc, this option may needlessly increase code size.
+config BUSYBOX_CONFIG_STACK_OPTIMIZATION_386
+ bool "Use -mpreferred-stack-boundary=2 on i386 arch"
+ default BUSYBOX_DEFAULT_STACK_OPTIMIZATION_386
+ help
+ This option makes for smaller code, but some libc versions
+ do not work with it (they use SSE instructions without
+ ensuring stack alignment).
+
comment 'Installation Options ("make install" behavior)'
choice
+++ /dev/null
---- a/include/libbb.h
-+++ b/include/libbb.h
-@@ -41,6 +41,7 @@
- #include <poll.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
-+#include <sys/resource.h>
- #include <sys/socket.h>
- #include <sys/stat.h>
- #include <sys/time.h>
+++ /dev/null
---- a/arch/i386/Makefile
-+++ /dev/null
-@@ -1,7 +0,0 @@
--# ==========================================================================
--# Build system
--# ==========================================================================
--
--# -mpreferred-stack-boundary=2 is essential in preventing gcc 4.2.x
--# from aligning stack to 16 bytes. (Which is gcc's way of supporting SSE).
--CFLAGS += $(call cc-option,-march=i386 -mpreferred-stack-boundary=2,)
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
-@@ -27,6 +27,10 @@
- #include <unistd.h>
- #include <locale.h>
+@@ -31,6 +31,10 @@
+ #define SIGWINCH 28
+ #endif
+#ifndef SIGWINCH
+#define SIGWINCH 28
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -711,6 +711,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -705,6 +705,7 @@ static int bcast_or_ucast(struct dhcp_pa
static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
{
struct dhcp_packet packet;
/* Fill in: op, htype, hlen, cookie, chaddr fields,
* random xid field (we override it below),
-@@ -728,6 +729,7 @@ static NOINLINE int send_discover(uint32
+@@ -722,6 +723,7 @@ static NOINLINE int send_discover(uint32
*/
add_client_options(&packet);
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -1417,6 +1417,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1407,6 +1407,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
/* silence "uninitialized!" warning */
unsigned timestamp_before_wait = timestamp_before_wait;
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -1124,7 +1124,6 @@ static void perform_renew(void)
+@@ -1118,7 +1118,6 @@ static void perform_renew(void)
state = RENEW_REQUESTED;
break;
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
-@@ -598,7 +598,7 @@ static int do_add_or_delete(char **argv,
+@@ -652,7 +652,7 @@ static int do_add_or_delete(char **argv,
}
xrtnl_open(&rth);
ll_init_map(&rth);
+++ /dev/null
-From 148788eb0ee96026105755cf3fd1ad3d94f49cd2 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Thu, 21 Jun 2018 17:36:22 +0200
-Subject: [PATCH] udhcpc: remove code which requires server ID to be on local
- network
-
-This reverts "udhcpc: paranoia when using kernel UDP mode
-for sending renew: server ID may be bogus".
-
-Users complain that they do have servers behind routers
-(with DHCP relays).
-
-function old new delta
-send_packet 168 166 -2
-bcast_or_ucast 25 23 -2
-udhcp_send_kernel_packet 301 295 -6
-------------------------------------------------------------------------------
-(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-10) Total: -10 bytes
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- networking/udhcp/common.h | 4 +---
- networking/udhcp/d6_dhcpc.c | 4 +---
- networking/udhcp/dhcpc.c | 10 ++--------
- networking/udhcp/dhcpd.c | 4 +---
- networking/udhcp/packet.c | 7 +++----
- 5 files changed, 8 insertions(+), 21 deletions(-)
-
---- a/networking/udhcp/common.h
-+++ b/networking/udhcp/common.h
-@@ -308,9 +308,7 @@ int udhcp_send_raw_packet(struct dhcp_pa
-
- int udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
- uint32_t source_nip, int source_port,
-- uint32_t dest_nip, int dest_port,
-- int send_flags
--) FAST_FUNC;
-+ uint32_t dest_nip, int dest_port) FAST_FUNC;
-
- void udhcp_sp_setup(void) FAST_FUNC;
- void udhcp_sp_fd_set(struct pollfd *pfds, int extra_fd) FAST_FUNC;
---- a/networking/udhcp/d6_dhcpc.c
-+++ b/networking/udhcp/d6_dhcpc.c
-@@ -702,15 +702,13 @@ static NOINLINE int send_d6_renew(uint32
- opt_ptr = add_d6_client_options(opt_ptr);
-
- bb_error_msg("sending %s", "renew");
-- if (server_ipv6) {
-+ if (server_ipv6)
- return d6_send_kernel_packet(
- &packet, (opt_ptr - (uint8_t*) &packet),
- our_cur_ipv6, CLIENT_PORT6,
- server_ipv6, SERVER_PORT6,
- client_config.ifindex
-- /* TODO? send_flags: MSG_DONTROUTE (see IPv4 code for reason why) */
- );
-- }
- return d6_mcast_from_client_config_ifindex(&packet, opt_ptr);
- }
-
---- a/networking/udhcp/dhcpc.c
-+++ b/networking/udhcp/dhcpc.c
-@@ -693,16 +693,10 @@ static int raw_bcast_from_client_config_
-
- static int bcast_or_ucast(struct dhcp_packet *packet, uint32_t ciaddr, uint32_t server)
- {
-- if (server) {
-- /* Without MSG_DONTROUTE, the packet was seen routed over
-- * _other interface_ if server ID is bogus (example: 1.1.1.1).
-- */
-+ if (server)
- return udhcp_send_kernel_packet(packet,
- ciaddr, CLIENT_PORT,
-- server, SERVER_PORT,
-- /*send_flags: "to hosts only on directly connected networks" */ MSG_DONTROUTE
-- );
-- }
-+ server, SERVER_PORT);
- return raw_bcast_from_client_config_ifindex(packet, ciaddr);
- }
-
---- a/networking/udhcp/dhcpd.c
-+++ b/networking/udhcp/dhcpd.c
-@@ -588,9 +588,7 @@ static void send_packet_to_relay(struct
-
- udhcp_send_kernel_packet(dhcp_pkt,
- server_config.server_nip, SERVER_PORT,
-- dhcp_pkt->gateway_nip, SERVER_PORT,
-- /*send_flags:*/ 0
-- );
-+ dhcp_pkt->gateway_nip, SERVER_PORT);
- }
-
- static void send_packet(struct dhcp_packet *dhcp_pkt, int force_broadcast)
---- a/networking/udhcp/packet.c
-+++ b/networking/udhcp/packet.c
-@@ -189,8 +189,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
- /* Let the kernel do all the work for packet generation */
- int FAST_FUNC udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
- uint32_t source_nip, int source_port,
-- uint32_t dest_nip, int dest_port,
-- int send_flags)
-+ uint32_t dest_nip, int dest_port)
- {
- struct sockaddr_in sa;
- unsigned padding;
-@@ -227,8 +226,8 @@ int FAST_FUNC udhcp_send_kernel_packet(s
- padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(dhcp_pkt->options);
- if (padding > DHCP_SIZE - 300)
- padding = DHCP_SIZE - 300;
-- result = send(fd, dhcp_pkt, DHCP_SIZE - padding, send_flags);
-- msg = "send";
-+ result = safe_write(fd, dhcp_pkt, DHCP_SIZE - padding);
-+ msg = "write";
- ret_close:
- close(fd);
- if (result < 0) {