From d674422a814a4458af35e79587129a161b50a1ff Mon Sep 17 00:00:00 2001 From: Hannu Nyman Date: Tue, 27 Mar 2018 20:06:38 +0300 Subject: [PATCH] busybox: update to 1.28.2 Update busybox to 1.28.2, refresh patches and default config. * modify 230-add_nslookup_lede.patch as opt_complementary was removed Also move nslookup_longopts variable declaration to be inside the same conditional as the function itself. * modify 250-date-k-flag.patch to match upstream (opt_complementary) * remove 600-cve-2017-16544.patch that is upstreamed Notes about config changes: * Some applet-specific LONG_OPTIONS config options were removed * Config help text indentation changed, caused lots of text formatting changes for convert_menuconfig.pl * convert_defaults.pl moved lots of defaults around, summary of actual changes below New applets/features: --------------------- ARCH HEXEDIT MINIPS NETCAT NUKE RESUME RUN_INIT SETFATTR New options: ------------ FEATURE_CATN FEATURE_CROND_SPECIAL_TIMES FEATURE_LIBBUSYBOX_STATIC FEATURE_SETPRIV_CAPABILITIES FEATURE_SETPRIV_CAPABILITY_NAMES FEATURE_SETPRIV_DUMP FEATURE_SH_READ_FRAC FEATURE_SWAPONOFF_LABEL FEATURE_VOLUMEID_MINIX FEATURE_XARGS_SUPPORT_ARGS_FILE FEATURE_XARGS_SUPPORT_PARALLEL HUSH_GETOPTS HUSH_READONLY HUSH_TIMES Removed: -------- FEATURE_HAVE_RPC MSH Signed-off-by: Hannu Nyman --- package/utils/busybox/Config-defaults.in | 324 ++++---- package/utils/busybox/Makefile | 6 +- package/utils/busybox/config/Config.in | 733 +++++++++--------- .../patches/200-udhcpc_reduce_msgs.patch | 4 +- .../patches/201-udhcpc_changed_ifindex.patch | 2 +- .../203-udhcpc_renew_no_deconfig.patch | 2 +- .../patches/230-add_nslookup_lede.patch | 33 +- .../busybox/patches/250-date-k-flag.patch | 31 +- .../510-move-passwd-applet-to-bin.patch | 2 +- .../busybox/patches/600-cve-2017-16544.patch | 35 - 10 files changed, 578 insertions(+), 594 deletions(-) delete mode 100644 package/utils/busybox/patches/600-cve-2017-16544.patch diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in index 4e429f43712c..daba431d2e03 100644 --- a/package/utils/busybox/Config-defaults.in +++ b/package/utils/busybox/Config-defaults.in @@ -13,10 +13,7 @@ config BUSYBOX_DEFAULT_FEDORA_COMPAT config BUSYBOX_DEFAULT_INCLUDE_SUSv2 bool default y -config BUSYBOX_DEFAULT_USE_PORTABLE_CODE - bool - default n -config BUSYBOX_DEFAULT_PLATFORM_LINUX +config BUSYBOX_DEFAULT_LONG_OPTS bool default y config BUSYBOX_DEFAULT_SHOW_USAGE @@ -28,27 +25,15 @@ config BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE config BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE bool default y -config BUSYBOX_DEFAULT_BUSYBOX - bool - default n -config BUSYBOX_DEFAULT_FEATURE_INSTALLER - bool - default n -config BUSYBOX_DEFAULT_INSTALL_NO_USR +config BUSYBOX_DEFAULT_LFS bool - default n + default y config BUSYBOX_DEFAULT_PAM bool default n -config BUSYBOX_DEFAULT_LONG_OPTS - bool - default y config BUSYBOX_DEFAULT_FEATURE_DEVPTS bool default y -config BUSYBOX_DEFAULT_FEATURE_CLEAN_UP - bool - default n config BUSYBOX_DEFAULT_FEATURE_UTMP bool default n @@ -61,6 +46,15 @@ config BUSYBOX_DEFAULT_FEATURE_PIDFILE config BUSYBOX_DEFAULT_PID_FILE_PATH string default "/var/run" +config BUSYBOX_DEFAULT_BUSYBOX + bool + default n +config BUSYBOX_DEFAULT_FEATURE_INSTALLER + bool + default n +config BUSYBOX_DEFAULT_INSTALL_NO_USR + bool + default n config BUSYBOX_DEFAULT_FEATURE_SUID bool default y @@ -70,21 +64,24 @@ config BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG config BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG_QUIET bool default n -config BUSYBOX_DEFAULT_SELINUX - bool - default n config BUSYBOX_DEFAULT_FEATURE_PREFER_APPLETS bool default y config BUSYBOX_DEFAULT_BUSYBOX_EXEC_PATH string default "/proc/self/exe" +config BUSYBOX_DEFAULT_SELINUX + bool + default n +config BUSYBOX_DEFAULT_FEATURE_CLEAN_UP + bool + default n config BUSYBOX_DEFAULT_FEATURE_SYSLOG bool default y -config BUSYBOX_DEFAULT_FEATURE_HAVE_RPC +config BUSYBOX_DEFAULT_PLATFORM_LINUX bool - default n + default y config BUSYBOX_DEFAULT_STATIC bool default n @@ -97,15 +94,15 @@ config BUSYBOX_DEFAULT_NOMMU config BUSYBOX_DEFAULT_BUILD_LIBBUSYBOX bool default n +config BUSYBOX_DEFAULT_FEATURE_LIBBUSYBOX_STATIC + bool + default n config BUSYBOX_DEFAULT_FEATURE_INDIVIDUAL bool default n config BUSYBOX_DEFAULT_FEATURE_SHARED_BUSYBOX bool default n -config BUSYBOX_DEFAULT_LFS - bool - default y config BUSYBOX_DEFAULT_CROSS_COMPILER_PREFIX string default "" @@ -121,6 +118,9 @@ config BUSYBOX_DEFAULT_EXTRA_LDFLAGS config BUSYBOX_DEFAULT_EXTRA_LDLIBS string default "" +config BUSYBOX_DEFAULT_USE_PORTABLE_CODE + bool + default n config BUSYBOX_DEFAULT_INSTALL_APPLET_SYMLINKS bool default y @@ -340,9 +340,6 @@ config BUSYBOX_DEFAULT_LZCAT config BUSYBOX_DEFAULT_LZMA bool default n -config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST - bool - default n config BUSYBOX_DEFAULT_UNXZ bool default n @@ -409,6 +406,9 @@ config BUSYBOX_DEFAULT_RPM2CPIO config BUSYBOX_DEFAULT_TAR bool default y +config BUSYBOX_DEFAULT_FEATURE_TAR_LONG_OPTIONS + bool + default n config BUSYBOX_DEFAULT_FEATURE_TAR_CREATE bool default y @@ -427,9 +427,6 @@ config BUSYBOX_DEFAULT_FEATURE_TAR_OLDSUN_COMPATIBILITY config BUSYBOX_DEFAULT_FEATURE_TAR_GNU_EXTENSIONS bool default y -config BUSYBOX_DEFAULT_FEATURE_TAR_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_FEATURE_TAR_TO_COMMAND bool default n @@ -457,12 +454,18 @@ config BUSYBOX_DEFAULT_FEATURE_UNZIP_LZMA config BUSYBOX_DEFAULT_FEATURE_UNZIP_XZ bool default n +config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST + bool + default n config BUSYBOX_DEFAULT_BASENAME bool default y config BUSYBOX_DEFAULT_CAT bool default y +config BUSYBOX_DEFAULT_FEATURE_CATN + bool + default n config BUSYBOX_DEFAULT_FEATURE_CATV bool default n @@ -553,21 +556,12 @@ config BUSYBOX_DEFAULT_FEATURE_FANCY_ECHO config BUSYBOX_DEFAULT_ENV bool default y -config BUSYBOX_DEFAULT_FEATURE_ENV_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_EXPAND bool default n -config BUSYBOX_DEFAULT_FEATURE_EXPAND_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_UNEXPAND bool default n -config BUSYBOX_DEFAULT_FEATURE_UNEXPAND_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_EXPR bool default y @@ -667,21 +661,18 @@ config BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK config BUSYBOX_DEFAULT_MKDIR bool default y -config BUSYBOX_DEFAULT_FEATURE_MKDIR_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_MKFIFO bool default y config BUSYBOX_DEFAULT_MKNOD bool default y -config BUSYBOX_DEFAULT_MV +config BUSYBOX_DEFAULT_MKTEMP bool default y -config BUSYBOX_DEFAULT_FEATURE_MV_LONG_OPTIONS +config BUSYBOX_DEFAULT_MV bool - default n + default y config BUSYBOX_DEFAULT_NICE bool default y @@ -724,9 +715,6 @@ config BUSYBOX_DEFAULT_RM config BUSYBOX_DEFAULT_RMDIR bool default y -config BUSYBOX_DEFAULT_FEATURE_RMDIR_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_SEQ bool default y @@ -805,6 +793,9 @@ config BUSYBOX_DEFAULT_TEST2 config BUSYBOX_DEFAULT_FEATURE_TEST_64 bool default y +config BUSYBOX_DEFAULT_TIMEOUT + bool + default n config BUSYBOX_DEFAULT_TOUCH bool default y @@ -838,6 +829,9 @@ config BUSYBOX_DEFAULT_UNAME config BUSYBOX_DEFAULT_UNAME_OSNAME string default "GNU/Linux" +config BUSYBOX_DEFAULT_BB_ARCH + bool + default n config BUSYBOX_DEFAULT_UNIQ bool default y @@ -952,9 +946,6 @@ config BUSYBOX_DEFAULT_SETLOGCONS config BUSYBOX_DEFAULT_SHOWKEY bool default n -config BUSYBOX_DEFAULT_MKTEMP - bool - default y config BUSYBOX_DEFAULT_PIPE_PROGRESS bool default n @@ -970,15 +961,27 @@ config BUSYBOX_DEFAULT_FEATURE_RUN_PARTS_FANCY config BUSYBOX_DEFAULT_START_STOP_DAEMON bool default y -config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_FANCY +config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS bool default n -config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS +config BUSYBOX_DEFAULT_FEATURE_START_STOP_DAEMON_FANCY bool default n config BUSYBOX_DEFAULT_WHICH bool default y +config BUSYBOX_DEFAULT_MINIPS + bool + default n +config BUSYBOX_DEFAULT_NUKE + bool + default n +config BUSYBOX_DEFAULT_RESUME + bool + default n +config BUSYBOX_DEFAULT_RUN_INIT + bool + default n config BUSYBOX_DEFAULT_AWK bool default y @@ -1165,6 +1168,12 @@ config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_ZERO_TERM config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_REPL_STR bool default n +config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_PARALLEL + bool + default n +config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_ARGS_FILE + bool + default n config BUSYBOX_DEFAULT_BOOTCHARTD bool default n @@ -1222,12 +1231,6 @@ config BUSYBOX_DEFAULT_INIT_TERMINAL_TYPE config BUSYBOX_DEFAULT_FEATURE_INIT_MODIFY_CMDLINE bool default n -config BUSYBOX_DEFAULT_MESG - bool - default n -config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP - bool - default n config BUSYBOX_DEFAULT_FEATURE_SHADOWPASSWDS bool default y @@ -1252,18 +1255,12 @@ config BUSYBOX_DEFAULT_REMOVE_SHELL config BUSYBOX_DEFAULT_ADDGROUP bool default n -config BUSYBOX_DEFAULT_FEATURE_ADDGROUP_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_FEATURE_ADDUSER_TO_GROUP bool default n config BUSYBOX_DEFAULT_ADDUSER bool default n -config BUSYBOX_DEFAULT_FEATURE_ADDUSER_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_FEATURE_CHECK_NAMES bool default n @@ -1441,12 +1438,21 @@ config BUSYBOX_DEFAULT_BLOCKDEV config BUSYBOX_DEFAULT_CAL bool default n +config BUSYBOX_DEFAULT_CHRT + bool + default n config BUSYBOX_DEFAULT_DMESG bool default y config BUSYBOX_DEFAULT_FEATURE_DMESG_PRETTY bool default y +config BUSYBOX_DEFAULT_EJECT + bool + default n +config BUSYBOX_DEFAULT_FEATURE_EJECT_SCSI + bool + default n config BUSYBOX_DEFAULT_FALLOCATE bool default n @@ -1534,10 +1540,10 @@ config BUSYBOX_DEFAULT_XXD config BUSYBOX_DEFAULT_HWCLOCK bool default y -config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_LONG_OPTIONS +config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_ADJTIME_FHS bool default n -config BUSYBOX_DEFAULT_FEATURE_HWCLOCK_ADJTIME_FHS +config BUSYBOX_DEFAULT_IONICE bool default n config BUSYBOX_DEFAULT_IPCRM @@ -1546,6 +1552,12 @@ config BUSYBOX_DEFAULT_IPCRM config BUSYBOX_DEFAULT_IPCS bool default n +config BUSYBOX_DEFAULT_LAST + bool + default n +config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY + bool + default n config BUSYBOX_DEFAULT_LOSETUP bool default n @@ -1573,6 +1585,12 @@ config BUSYBOX_DEFAULT_FEATURE_MDEV_EXEC config BUSYBOX_DEFAULT_FEATURE_MDEV_LOAD_FIRMWARE bool default n +config BUSYBOX_DEFAULT_MESG + bool + default n +config BUSYBOX_DEFAULT_FEATURE_MESG_ENABLE_ONLY_GROUP + bool + default n config BUSYBOX_DEFAULT_MKE2FS bool default n @@ -1633,10 +1651,10 @@ config BUSYBOX_DEFAULT_FEATURE_MOUNT_FSTAB config BUSYBOX_DEFAULT_FEATURE_MOUNT_OTHERTAB bool default n -config BUSYBOX_DEFAULT_NSENTER +config BUSYBOX_DEFAULT_MOUNTPOINT bool default n -config BUSYBOX_DEFAULT_FEATURE_NSENTER_LONG_OPTS +config BUSYBOX_DEFAULT_NSENTER bool default n config BUSYBOX_DEFAULT_PIVOT_ROOT @@ -1651,6 +1669,9 @@ config BUSYBOX_DEFAULT_RDEV config BUSYBOX_DEFAULT_READPROFILE bool default n +config BUSYBOX_DEFAULT_RENICE + bool + default n config BUSYBOX_DEFAULT_REV bool default n @@ -1675,6 +1696,18 @@ config BUSYBOX_DEFAULT_LINUX64 config BUSYBOX_DEFAULT_SETPRIV bool default n +config BUSYBOX_DEFAULT_FEATURE_SETPRIV_DUMP + bool + default n +config BUSYBOX_DEFAULT_FEATURE_SETPRIV_CAPABILITIES + bool + default n +config BUSYBOX_DEFAULT_FEATURE_SETPRIV_CAPABILITY_NAMES + bool + default n +config BUSYBOX_DEFAULT_SETSID + bool + default n config BUSYBOX_DEFAULT_SWAPON bool default n @@ -1687,9 +1720,18 @@ config BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI config BUSYBOX_DEFAULT_SWAPOFF bool default n +config BUSYBOX_DEFAULT_FEATURE_SWAPONOFF_LABEL + bool + default n config BUSYBOX_DEFAULT_SWITCH_ROOT bool default y +config BUSYBOX_DEFAULT_TASKSET + bool + default n +config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY + bool + default n config BUSYBOX_DEFAULT_UEVENT bool default n @@ -1702,6 +1744,9 @@ config BUSYBOX_DEFAULT_FEATURE_UMOUNT_ALL config BUSYBOX_DEFAULT_UNSHARE bool default n +config BUSYBOX_DEFAULT_WALL + bool + default n config BUSYBOX_DEFAULT_FEATURE_MOUNT_LOOP bool default y @@ -1753,6 +1798,9 @@ config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LINUXSWAP config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_LUKS bool default n +config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_MINIX + bool + default n config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_NILFS bool default n @@ -1825,9 +1873,6 @@ config BUSYBOX_DEFAULT_FEATURE_CHAT_VAR_ABORT_LEN config BUSYBOX_DEFAULT_FEATURE_CHAT_CLR_ABORT bool default n -config BUSYBOX_DEFAULT_CHRT - bool - default n config BUSYBOX_DEFAULT_CONSPY bool default n @@ -1840,6 +1885,9 @@ config BUSYBOX_DEFAULT_FEATURE_CROND_D config BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL bool default n +config BUSYBOX_DEFAULT_FEATURE_CROND_SPECIAL_TIMES + bool + default n config BUSYBOX_DEFAULT_FEATURE_CROND_DIR string default "/etc" @@ -1870,12 +1918,6 @@ config BUSYBOX_DEFAULT_FEATURE_DEVFS config BUSYBOX_DEFAULT_DEVMEM bool default n -config BUSYBOX_DEFAULT_EJECT - bool - default n -config BUSYBOX_DEFAULT_FEATURE_EJECT_SCSI - bool - default n config BUSYBOX_DEFAULT_FBSPLASH bool default n @@ -1912,6 +1954,9 @@ config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_TRISTATE_HWIF config BUSYBOX_DEFAULT_FEATURE_HDPARM_HDIO_GETSET_DMA bool default n +config BUSYBOX_DEFAULT_HEXEDIT + bool + default n config BUSYBOX_DEFAULT_I2CGET bool default n @@ -1927,15 +1972,6 @@ config BUSYBOX_DEFAULT_I2CDETECT config BUSYBOX_DEFAULT_INOTIFYD bool default n -config BUSYBOX_DEFAULT_IONICE - bool - default n -config BUSYBOX_DEFAULT_LAST - bool - default n -config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY - bool - default n config BUSYBOX_DEFAULT_LESS bool default y @@ -1990,9 +2026,6 @@ config BUSYBOX_DEFAULT_MAN config BUSYBOX_DEFAULT_MICROCOM bool default n -config BUSYBOX_DEFAULT_MOUNTPOINT - bool - default n config BUSYBOX_DEFAULT_MT bool default n @@ -2020,27 +2053,18 @@ config BUSYBOX_DEFAULT_RUNLEVEL config BUSYBOX_DEFAULT_RX bool default n -config BUSYBOX_DEFAULT_SETSERIAL +config BUSYBOX_DEFAULT_SETFATTR bool default n -config BUSYBOX_DEFAULT_SETSID +config BUSYBOX_DEFAULT_SETSERIAL bool default n config BUSYBOX_DEFAULT_STRINGS bool default y -config BUSYBOX_DEFAULT_TASKSET - bool - default n -config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY - bool - default n config BUSYBOX_DEFAULT_TIME bool default y -config BUSYBOX_DEFAULT_TIMEOUT - bool - default n config BUSYBOX_DEFAULT_TTYSIZE bool default n @@ -2068,9 +2092,6 @@ config BUSYBOX_DEFAULT_UBIRENAME config BUSYBOX_DEFAULT_VOLNAME bool default n -config BUSYBOX_DEFAULT_WALL - bool - default n config BUSYBOX_DEFAULT_WATCHDOG bool default n @@ -2287,10 +2308,10 @@ config BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS config BUSYBOX_DEFAULT_IPCALC bool default n -config BUSYBOX_DEFAULT_FEATURE_IPCALC_FANCY +config BUSYBOX_DEFAULT_FEATURE_IPCALC_LONG_OPTIONS bool default n -config BUSYBOX_DEFAULT_FEATURE_IPCALC_LONG_OPTIONS +config BUSYBOX_DEFAULT_FEATURE_IPCALC_FANCY bool default n config BUSYBOX_DEFAULT_FAKEIDENTD @@ -2308,6 +2329,9 @@ config BUSYBOX_DEFAULT_NBDCLIENT config BUSYBOX_DEFAULT_NC bool default y +config BUSYBOX_DEFAULT_NETCAT + bool + default n config BUSYBOX_DEFAULT_NC_SERVER bool default n @@ -2398,6 +2422,9 @@ config BUSYBOX_DEFAULT_FEATURE_TELNETD_INETD_WAIT config BUSYBOX_DEFAULT_TFTP bool default n +config BUSYBOX_DEFAULT_FEATURE_TFTP_PROGRESS_BAR + bool + default n config BUSYBOX_DEFAULT_TFTPD bool default n @@ -2410,9 +2437,6 @@ config BUSYBOX_DEFAULT_FEATURE_TFTP_PUT config BUSYBOX_DEFAULT_FEATURE_TFTP_BLOCKSIZE bool default n -config BUSYBOX_DEFAULT_FEATURE_TFTP_PROGRESS_BAR - bool - default n config BUSYBOX_DEFAULT_TFTP_DEBUG bool default n @@ -2443,13 +2467,13 @@ config BUSYBOX_DEFAULT_VCONFIG config BUSYBOX_DEFAULT_WGET bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR +config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION +config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR bool default n -config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS +config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION bool default n config BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT @@ -2467,25 +2491,13 @@ config BUSYBOX_DEFAULT_WHOIS config BUSYBOX_DEFAULT_ZCIP bool default n -config BUSYBOX_DEFAULT_UDHCPC6 - bool - default n -config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC3646 - bool - default n -config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4704 - bool - default n -config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833 - bool - default n config BUSYBOX_DEFAULT_UDHCPD bool default n -config BUSYBOX_DEFAULT_FEATURE_UDHCPD_WRITE_LEASES_EARLY +config BUSYBOX_DEFAULT_FEATURE_UDHCPD_BASE_IP_ON_MAC bool default n -config BUSYBOX_DEFAULT_FEATURE_UDHCPD_BASE_IP_ON_MAC +config BUSYBOX_DEFAULT_FEATURE_UDHCPD_WRITE_LEASES_EARLY bool default n config BUSYBOX_DEFAULT_DHCPD_LEASES_FILE @@ -2506,24 +2518,36 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPC_ARPING config BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT bool default n +config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT + string + default "/usr/share/udhcpc/default.script" +config BUSYBOX_DEFAULT_UDHCPC6 + bool + default n +config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC3646 + bool + default n +config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4704 + bool + default n +config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833 + bool + default n config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT bool default n config BUSYBOX_DEFAULT_UDHCP_DEBUG int default 0 +config BUSYBOX_DEFAULT_UDHCPC_SLACK_FOR_BUGGY_SERVERS + int + default 80 config BUSYBOX_DEFAULT_FEATURE_UDHCP_RFC3397 bool default y config BUSYBOX_DEFAULT_FEATURE_UDHCP_8021Q bool default n -config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT - string - default "/usr/share/udhcpc/default.script" -config BUSYBOX_DEFAULT_UDHCPC_SLACK_FOR_BUGGY_SERVERS - int - default 80 config BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS string default "" @@ -2620,10 +2644,10 @@ config BUSYBOX_DEFAULT_FEATURE_PS_LONG config BUSYBOX_DEFAULT_FEATURE_PS_TIME bool default n -config BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS +config BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS bool default n -config BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS +config BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS bool default n config BUSYBOX_DEFAULT_PSTREE @@ -2632,9 +2656,6 @@ config BUSYBOX_DEFAULT_PSTREE config BUSYBOX_DEFAULT_PWDX bool default n -config BUSYBOX_DEFAULT_RENICE - bool - default n config BUSYBOX_DEFAULT_SMEMCAP bool default n @@ -2716,9 +2737,6 @@ config BUSYBOX_DEFAULT_SVLOGD config BUSYBOX_DEFAULT_CHCON bool default n -config BUSYBOX_DEFAULT_FEATURE_CHCON_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_GETENFORCE bool default n @@ -2734,9 +2752,6 @@ config BUSYBOX_DEFAULT_MATCHPATHCON config BUSYBOX_DEFAULT_RUNCON bool default n -config BUSYBOX_DEFAULT_FEATURE_RUNCON_LONG_OPTIONS - bool - default n config BUSYBOX_DEFAULT_SELINUXENABLED bool default n @@ -2836,9 +2851,6 @@ config BUSYBOX_DEFAULT_HUSH_BASH_COMPAT config BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION bool default n -config BUSYBOX_DEFAULT_HUSH_HELP - bool - default n config BUSYBOX_DEFAULT_HUSH_INTERACTIVE bool default n @@ -2881,12 +2893,18 @@ config BUSYBOX_DEFAULT_HUSH_PRINTF config BUSYBOX_DEFAULT_HUSH_TEST bool default n +config BUSYBOX_DEFAULT_HUSH_HELP + bool + default n config BUSYBOX_DEFAULT_HUSH_EXPORT bool default n config BUSYBOX_DEFAULT_HUSH_EXPORT_N bool default n +config BUSYBOX_DEFAULT_HUSH_READONLY + bool + default n config BUSYBOX_DEFAULT_HUSH_KILL bool default n @@ -2899,6 +2917,9 @@ config BUSYBOX_DEFAULT_HUSH_TRAP config BUSYBOX_DEFAULT_HUSH_TYPE bool default n +config BUSYBOX_DEFAULT_HUSH_TIMES + bool + default n config BUSYBOX_DEFAULT_HUSH_READ bool default n @@ -2914,10 +2935,10 @@ config BUSYBOX_DEFAULT_HUSH_ULIMIT config BUSYBOX_DEFAULT_HUSH_UMASK bool default n -config BUSYBOX_DEFAULT_HUSH_MEMLEAK +config BUSYBOX_DEFAULT_HUSH_GETOPTS bool default n -config BUSYBOX_DEFAULT_MSH +config BUSYBOX_DEFAULT_HUSH_MEMLEAK bool default n config BUSYBOX_DEFAULT_FEATURE_SH_MATH @@ -2935,6 +2956,9 @@ config BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE config BUSYBOX_DEFAULT_FEATURE_SH_NOFORK bool default y +config BUSYBOX_DEFAULT_FEATURE_SH_READ_FRAC + bool + default n config BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE bool default n diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile index 623fbd5896f9..6af85aefc4ce 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.27.2 -PKG_RELEASE:=3 +PKG_VERSION:=1.28.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:=9d4be516b61e6480f156b11eb42577a13529f75d3383850bb75c50c285de63df +PKG_HASH:=b64a94a60877c96838ee60e75765576ecc8756bf3636485117637604acb84b0d PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam PKG_BUILD_PARALLEL:=1 diff --git a/package/utils/busybox/config/Config.in b/package/utils/busybox/config/Config.in index c66aa08e7395..68f140a9c7a0 100644 --- a/package/utils/busybox/config/Config.in +++ b/package/utils/busybox/config/Config.in @@ -11,26 +11,30 @@ config BUSYBOX_CONFIG_HAVE_DOT_CONFIG menu "Busybox Settings" config BUSYBOX_CONFIG_DESKTOP - bool "Enable options for full-blown desktop systems" + bool "Enable compatibility for full-blown desktop systems" default BUSYBOX_DEFAULT_DESKTOP help - Enable options and features which are not essential. - Select this if you plan to use busybox on full-blown desktop machine - with common Linux distro, which needs higher level of command-line - compatibility. + Enable applet options and features which are not essential. + Many applet options have dedicated config options to (de)select them + under that applet; this options enables those options which have no + individual config item for them. - If you are preparing your build to be used on an embedded box - where you have tighter control over the entire set of userspace - tools, you can unselect this option for smaller code size. + Select this if you plan to use busybox on full-blown desktop machine + with common Linux distro, which needs higher level of command-line + compatibility. + + If you are preparing your build to be used on an embedded box + where you have tighter control over the entire set of userspace + tools, you can unselect this option for smaller code size. config BUSYBOX_CONFIG_EXTRA_COMPAT bool "Provide compatible behavior for rare corner cases (bigger code)" default BUSYBOX_DEFAULT_EXTRA_COMPAT help - This option makes grep, sed etc handle rare corner cases - (embedded NUL bytes and such). This makes code bigger and uses - some GNU extensions in libc. You probably only need this option - if you plan to run busybox on desktop. + This option makes grep, sed etc handle rare corner cases + (embedded NUL bytes and such). This makes code bigger and uses + some GNU extensions in libc. You probably only need this option + if you plan to run busybox on desktop. config BUSYBOX_CONFIG_FEDORA_COMPAT bool "Building for Fedora distribution" @@ -49,279 +53,285 @@ config BUSYBOX_CONFIG_INCLUDE_SUSv2 bool "Enable obsolete features removed before SUSv3" default BUSYBOX_DEFAULT_INCLUDE_SUSv2 help - This option will enable backwards compatibility with SuSv2, - specifically, old-style numeric options ('command -1 ') - will be supported in head, tail, and fold. (Note: should - affect renice too.) + This option will enable backwards compatibility with SuSv2, + specifically, old-style numeric options ('command -1 ') + will be supported in head, tail, and fold. (Note: should + affect renice too.) -config BUSYBOX_CONFIG_USE_PORTABLE_CODE - bool "Avoid using GCC-specific code constructs" - default BUSYBOX_DEFAULT_USE_PORTABLE_CODE +config BUSYBOX_CONFIG_LONG_OPTS + bool "Support --long-options" + default BUSYBOX_DEFAULT_LONG_OPTS help - Use this option if you are trying to compile busybox with - compiler other than gcc. - If you do use gcc, this option may needlessly increase code size. + Enable this if you want busybox applets to use the gnu --long-option + style, in addition to single character -a -b -c style options. config BUSYBOX_CONFIG_SHOW_USAGE bool "Show applet usage messages" default BUSYBOX_DEFAULT_SHOW_USAGE help - Enabling this option, BusyBox applets will show terse help messages - when invoked with wrong arguments. - If you do not want to show any (helpful) usage message when - issuing wrong command syntax, you can say 'N' here, - saving approximately 7k. + Enabling this option, applets will show terse help messages + when invoked with wrong arguments. + If you do not want to show any (helpful) usage message when + issuing wrong command syntax, you can say 'N' here, + saving approximately 7k. config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE bool "Show verbose applet usage messages" default BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE depends on BUSYBOX_CONFIG_SHOW_USAGE help - All BusyBox applets will show verbose help messages when - busybox is invoked with --help. This will add a lot of text to the - busybox binary. In the default configuration, this will add about - 13k, but it can add much more depending on your configuration. + All applets will show verbose help messages when invoked with --help. + This will add a lot of text to the binary. config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE bool "Store applet usage messages in compressed form" default BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE depends on BUSYBOX_CONFIG_SHOW_USAGE help - Store usage messages in .bz compressed form, uncompress them - on-the-fly when --help is called. + Store usage messages in .bz2 compressed form, uncompress them + on-the-fly when "APPLET --help" is run. - If you have a really tiny busybox with few applets enabled (and - bunzip2 isn't one of them), the overhead of the decompressor might - be noticeable. Also, if you run executables directly from ROM - and have very little memory, this might not be a win. Otherwise, - you probably want this. + If you have a really tiny busybox with few applets enabled (and + bunzip2 isn't one of them), the overhead of the decompressor might + be noticeable. Also, if you run executables directly from ROM + and have very little memory, this might not be a win. Otherwise, + you probably want this. -config BUSYBOX_CONFIG_BUSYBOX - bool "Include busybox applet" - default BUSYBOX_DEFAULT_BUSYBOX - help - The busybox applet provides general help regarding busybox and - allows the included applets to be listed. It's also required - if applet links are to be installed at runtime. - - If you can live without these features disabling this will save - some space. - -config BUSYBOX_CONFIG_FEATURE_INSTALLER - bool "Support --install [-s] to install applet links at runtime" - default BUSYBOX_DEFAULT_FEATURE_INSTALLER - depends on BUSYBOX_CONFIG_BUSYBOX - help - Enable 'busybox --install [-s]' support. This will allow you to use - busybox at runtime to create hard links or symlinks for all the - applets that are compiled into busybox. - -config BUSYBOX_CONFIG_INSTALL_NO_USR - bool "Don't use /usr" - default BUSYBOX_DEFAULT_INSTALL_NO_USR +config BUSYBOX_CONFIG_LFS + bool + default BUSYBOX_DEFAULT_LFS help - Disable use of /usr. busybox --install and "make install" - will install applets only to /bin and /sbin, - never to /usr/bin or /usr/sbin. + If you need to work with large files, enable this option. + This will have no effect if your kernel or your C + library lacks large file support for large files. Some of the + programs that can benefit from large file support include dd, gzip, + cp, mount, tar. config BUSYBOX_CONFIG_PAM bool "Support PAM (Pluggable Authentication Modules)" default BUSYBOX_DEFAULT_PAM help - Use PAM in some busybox applets (currently login and httpd) instead - of direct access to password database. - -config BUSYBOX_CONFIG_LONG_OPTS - bool "Support --long-options" - default BUSYBOX_DEFAULT_LONG_OPTS - help - Enable this if you want busybox applets to use the gnu --long-option - style, in addition to single character -a -b -c style options. + Use PAM in some applets (currently login and httpd) instead + of direct access to password database. config BUSYBOX_CONFIG_FEATURE_DEVPTS bool "Use the devpts filesystem for Unix98 PTYs" default BUSYBOX_DEFAULT_FEATURE_DEVPTS help - Enable if you want BusyBox to use Unix98 PTY support. If enabled, - busybox will use /dev/ptmx for the master side of the pseudoterminal - and /dev/pts/ for the slave side. Otherwise, BSD style - /dev/ttyp will be used. To use this option, you should have - devpts mounted. - -config BUSYBOX_CONFIG_FEATURE_CLEAN_UP - bool "Clean up all memory before exiting (usually not needed)" - default BUSYBOX_DEFAULT_FEATURE_CLEAN_UP - help - As a size optimization, busybox normally exits without explicitly - freeing dynamically allocated memory or closing files. This saves - space since the OS will clean up for us, but it can confuse debuggers - like valgrind, which report tons of memory and resource leaks. - - Don't enable this unless you have a really good reason to clean - things up manually. + Enable if you want to use Unix98 PTY support. If enabled, + busybox will use /dev/ptmx for the master side of the pseudoterminal + and /dev/pts/ for the slave side. Otherwise, BSD style + /dev/ttyp will be used. To use this option, you should have + devpts mounted. config BUSYBOX_CONFIG_FEATURE_UTMP bool "Support utmp file" default BUSYBOX_DEFAULT_FEATURE_UTMP help - The file /var/run/utmp is used to track who is currently logged in. - With this option on, certain applets (getty, login, telnetd etc) - will create and delete entries there. - "who" applet requires this option. + The file /var/run/utmp is used to track who is currently logged in. + With this option on, certain applets (getty, login, telnetd etc) + will create and delete entries there. + "who" applet requires this option. config BUSYBOX_CONFIG_FEATURE_WTMP bool "Support wtmp file" default BUSYBOX_DEFAULT_FEATURE_WTMP depends on BUSYBOX_CONFIG_FEATURE_UTMP help - The file /var/run/wtmp is used to track when users have logged into - and logged out of the system. - With this option on, certain applets (getty, login, telnetd etc) - will append new entries there. - "last" applet requires this option. + The file /var/run/wtmp is used to track when users have logged into + and logged out of the system. + With this option on, certain applets (getty, login, telnetd etc) + will append new entries there. + "last" applet requires this option. config BUSYBOX_CONFIG_FEATURE_PIDFILE bool "Support writing pidfiles" default BUSYBOX_DEFAULT_FEATURE_PIDFILE help - This option makes some applets (e.g. crond, syslogd, inetd) write - a pidfile at the configured PID_FILE_PATH. It has no effect - on applets which require pidfiles to run. + This option makes some applets (e.g. crond, syslogd, inetd) write + a pidfile at the configured PID_FILE_PATH. It has no effect + on applets which require pidfiles to run. config BUSYBOX_CONFIG_PID_FILE_PATH - string "Path to directory for pidfile" + string "Directory for pidfiles" default BUSYBOX_DEFAULT_PID_FILE_PATH depends on BUSYBOX_CONFIG_FEATURE_PIDFILE help - This is the default path where pidfiles are created. Applets which - allow you to set the pidfile path on the command line will override - this value. The option has no effect on applets that require you to - specify a pidfile path. + This is the default path where pidfiles are created. Applets which + allow you to set the pidfile path on the command line will override + this value. The option has no effect on applets that require you to + specify a pidfile path. -config BUSYBOX_CONFIG_FEATURE_SUID - bool "Support SUID/SGID handling" - default BUSYBOX_DEFAULT_FEATURE_SUID +config BUSYBOX_CONFIG_BUSYBOX + bool "Include busybox applet" + default BUSYBOX_DEFAULT_BUSYBOX help - With this option you can install the busybox binary belonging - to root with the suid bit set, enabling some applets to perform - root-level operations even when run by ordinary users - (for example, mounting of user mounts in fstab needs this). - - Busybox will automatically drop privileges for applets - that don't need root access. - - If you are really paranoid and don't want to do this, build two - busybox binaries with different applets in them (and the appropriate - symlinks pointing to each binary), and only set the suid bit on the - one that needs it. - - The applets which require root rights (need suid bit or - to be run by root) and will refuse to execute otherwise: - crontab, login, passwd, su, vlock, wall. + The busybox applet provides general help message and allows + the included applets to be listed. It also provides + optional --install command to create applet links. If you unselect + this option, running busybox without any arguments will give + just a cryptic error message: - The applets which will use root rights if they have them - (via suid bit, or because run by root), but would try to work - without root right nevertheless: - findfs, ping[6], traceroute[6], mount. + $ busybox + busybox: applet not found - Note that if you DONT select this option, but DO make busybox - suid root, ALL applets will run under root, which is a huge - security hole (think "cp /some/file /etc/passwd"). + Running "busybox APPLET [ARGS...]" will still work, of course. -config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG - bool "Runtime SUID/SGID configuration via /etc/busybox.conf" - default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG - depends on BUSYBOX_CONFIG_FEATURE_SUID +config BUSYBOX_CONFIG_FEATURE_INSTALLER + bool "Support --install [-s] to install applet links at runtime" + default BUSYBOX_DEFAULT_FEATURE_INSTALLER + depends on BUSYBOX_CONFIG_BUSYBOX help - Allow the SUID / SGID state of an applet to be determined at runtime - by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) - The format of this file is as follows: + Enable 'busybox --install [-s]' support. This will allow you to use + busybox at runtime to create hard links or symlinks for all the + applets that are compiled into busybox. - APPLET = [Ssx-][Ssx-][x-] [USER.GROUP] +config BUSYBOX_CONFIG_INSTALL_NO_USR + bool "Don't use /usr" + default BUSYBOX_DEFAULT_INSTALL_NO_USR + help + Disable use of /usr. "busybox --install" and "make install" + will install applets only to /bin and /sbin, + never to /usr/bin or /usr/sbin. - s: USER or GROUP is allowed to execute APPLET. - APPLET will run under USER or GROUP - (reagardless of who's running it). - S: USER or GROUP is NOT allowed to execute APPLET. - APPLET will run under USER or GROUP. - This option is not very sensical. - x: USER/GROUP/others are allowed to execute APPLET. - No UID/GID change will be done when it is run. - -: USER/GROUP/others are not allowed to execute APPLET. +config BUSYBOX_CONFIG_FEATURE_SUID + bool "Drop SUID state for most applets" + default BUSYBOX_DEFAULT_FEATURE_SUID + help + With this option you can install the busybox binary belonging + to root with the suid bit set, enabling some applets to perform + root-level operations even when run by ordinary users + (for example, mounting of user mounts in fstab needs this). - An example might help: + With this option enabled, busybox drops privileges for applets + that don't need root access, before entering their main() function. - [SUID] - su = ssx root.0 # applet su can be run by anyone and runs with - # euid=0/egid=0 - su = ssx # exactly the same + If you are really paranoid and don't want even initial busybox code + to run under root for every applet, build two busybox binaries with + different applets in them (and the appropriate symlinks pointing + to each binary), and only set the suid bit on the one that needs it. - mount = sx- root.disk # applet mount can be run by root and members - # of group disk (but not anyone else) - # and runs with euid=0 (egid is not changed) + Some applets which require root rights (need suid bit on the binary + or to be run by root) and will refuse to execute otherwise: + crontab, login, passwd, su, vlock, wall. - cp = --- # disable applet cp for everyone + The applets which will use root rights if they have them + (via suid bit, or because run by root), but would try to work + without root right nevertheless: + findfs, ping[6], traceroute[6], mount. - The file has to be owned by user root, group root and has to be - writeable only by root: - (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) - The busybox executable has to be owned by user root, group - root and has to be setuid root for this to work: - (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) + Note that if you DO NOT select this option, but DO make busybox + suid root, ALL applets will run under root, which is a huge + security hole (think "cp /some/file /etc/passwd"). - Robert 'sandman' Griebl has more information here: - . +config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG + bool "Enable SUID configuration via /etc/busybox.conf" + default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG + depends on BUSYBOX_CONFIG_FEATURE_SUID + help + Allow the SUID/SGID state of an applet to be determined at runtime + by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) + The format of this file is as follows: + + APPLET = [Ssx-][Ssx-][x-] [USER.GROUP] + + s: USER or GROUP is allowed to execute APPLET. + APPLET will run under USER or GROUP + (regardless of who's running it). + S: USER or GROUP is NOT allowed to execute APPLET. + APPLET will run under USER or GROUP. + This option is not very sensical. + x: USER/GROUP/others are allowed to execute APPLET. + No UID/GID change will be done when it is run. + -: USER/GROUP/others are not allowed to execute APPLET. + + An example might help: + + |[SUID] + |su = ssx root.0 # applet su can be run by anyone and runs with + | # euid=0,egid=0 + |su = ssx # exactly the same + | + |mount = sx- root.disk # applet mount can be run by root and members + | # of group disk (but not anyone else) + | # and runs with euid=0 (egid is not changed) + | + |cp = --- # disable applet cp for everyone + + The file has to be owned by user root, group root and has to be + writeable only by root: + (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) + The busybox executable has to be owned by user root, group + root and has to be setuid root for this to work: + (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) + + Robert 'sandman' Griebl has more information here: + . config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET bool "Suppress warning message if /etc/busybox.conf is not readable" default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG_QUIET depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG help - /etc/busybox.conf should be readable by the user needing the SUID, - check this option to avoid users to be notified about missing - permissions. + /etc/busybox.conf should be readable by the user needing the SUID, + check this option to avoid users to be notified about missing + permissions. + +config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS + bool "exec prefers applets" + default BUSYBOX_DEFAULT_FEATURE_PREFER_APPLETS + help + This is an experimental option which directs applets about to + call 'exec' to try and find an applicable busybox applet before + searching the PATH. This is typically done by exec'ing + /proc/self/exe. + + This may affect shell, find -exec, xargs and similar applets. + They will use applets even if /bin/APPLET -> busybox link + is missing (or is not a link to busybox). However, this causes + problems in chroot jails without mounted /proc and with ps/top + (command name can be shown as 'exe' for applets started this way). + +config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH + string "Path to busybox executable" + default BUSYBOX_DEFAULT_BUSYBOX_EXEC_PATH + help + When applets need to run other applets, busybox + sometimes needs to exec() itself. When the /proc filesystem is + mounted, /proc/self/exe always points to the currently running + executable. If you haven't got /proc, set this to wherever you + want to run busybox from. config BUSYBOX_CONFIG_SELINUX bool "Support NSA Security Enhanced Linux" default BUSYBOX_DEFAULT_SELINUX select BUSYBOX_CONFIG_PLATFORM_LINUX help - Enable support for SELinux in applets ls, ps, and id. Also provide - the option of compiling in SELinux applets. + Enable support for SELinux in applets ls, ps, and id. Also provide + the option of compiling in SELinux applets. + + If you do not have a complete SELinux userland installed, this stuff + will not compile. Specifially, libselinux 1.28 or better is + directly required by busybox. If the installation is located in a + non-standard directory, provide it by invoking make as follows: - If you do not have a complete SELinux userland installed, this stuff - will not compile. Specifially, libselinux 1.28 or better is - directly required by busybox. If the installation is located in a - non-standard directory, provide it by invoking make as follows: CFLAGS=-I \ LDFLAGS=-L \ make - Most people will leave this set to 'N'. + Most people will leave this set to 'N'. -config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS - bool "exec prefers applets" - default BUSYBOX_DEFAULT_FEATURE_PREFER_APPLETS +config BUSYBOX_CONFIG_FEATURE_CLEAN_UP + bool "Clean up all memory before exiting (usually not needed)" + default BUSYBOX_DEFAULT_FEATURE_CLEAN_UP help - This is an experimental option which directs applets about to - call 'exec' to try and find an applicable busybox applet before - searching the PATH. This is typically done by exec'ing - /proc/self/exe. - This may affect shell, find -exec, xargs and similar applets. - They will use applets even if /bin/ -> busybox link - is missing (or is not a link to busybox). However, this causes - problems in chroot jails without mounted /proc and with ps/top - (command name can be shown as 'exe' for applets started this way). + As a size optimization, busybox normally exits without explicitly + freeing dynamically allocated memory or closing files. This saves + space since the OS will clean up for us, but it can confuse debuggers + like valgrind, which report tons of memory and resource leaks. -config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH - string "Path to BusyBox executable" - default BUSYBOX_DEFAULT_BUSYBOX_EXEC_PATH - help - When Busybox applets need to run other busybox applets, BusyBox - sometimes needs to exec() itself. When the /proc filesystem is - mounted, /proc/self/exe always points to the currently running - executable. If you haven't got /proc, set this to wherever you - want to run BusyBox from. + Don't enable this unless you have a really good reason to clean + things up manually. # These are auto-selected by other options @@ -329,64 +339,53 @@ config BUSYBOX_CONFIG_FEATURE_SYSLOG bool #No description makes it a hidden option default BUSYBOX_DEFAULT_FEATURE_SYSLOG #help - # This option is auto-selected when you select any applet which may - # send its output to syslog. You do not need to select it manually. - -config BUSYBOX_CONFIG_FEATURE_HAVE_RPC - bool #No description makes it a hidden option - default BUSYBOX_DEFAULT_FEATURE_HAVE_RPC - #help - # This is automatically selected if any of enabled applets need it. - # You do not need to select it manually. + #This option is auto-selected when you select any applet which may + #send its output to syslog. You do not need to select it manually. config BUSYBOX_CONFIG_PLATFORM_LINUX bool #No description makes it a hidden option default BUSYBOX_DEFAULT_PLATFORM_LINUX #help - # For the most part, busybox requires only POSIX compatibility - # from the target system, but some applets and features use - # Linux-specific interfaces. + #For the most part, busybox requires only POSIX compatibility + #from the target system, but some applets and features use + #Linux-specific interfaces. # - # This is automatically selected if any applet or feature requires - # Linux-specific interfaces. You do not need to select it manually. + #This is automatically selected if any applet or feature requires + #Linux-specific interfaces. You do not need to select it manually. comment 'Build Options' config BUSYBOX_CONFIG_STATIC - bool "Build BusyBox as a static binary (no shared libs)" + bool "Build static binary (no shared libs)" default BUSYBOX_DEFAULT_STATIC help - If you want to build a static BusyBox binary, which does not - use or require any shared libraries, then enable this option. - This can cause BusyBox to be considerably larger, so you should - leave this option false unless you have a good reason (i.e. - your target platform does not support shared libraries, or - you are building an initrd which doesn't need anything but - BusyBox, etc). - - Most people will leave this set to 'N'. + If you want to build a static binary, which does not use + or require any shared libraries, enable this option. + Static binaries are larger, but do not require functioning + dynamic libraries to be present, which is important if used + as a system rescue tool. config BUSYBOX_CONFIG_PIE - bool "Build BusyBox as a position independent executable" + bool "Build position independent executable" default BUSYBOX_DEFAULT_PIE depends on !BUSYBOX_CONFIG_STATIC help - Hardened code option. PIE binaries are loaded at a different - address at each invocation. This has some overhead, - particularly on x86-32 which is short on registers. + Hardened code option. PIE binaries are loaded at a different + address at each invocation. This has some overhead, + particularly on x86-32 which is short on registers. - Most people will leave this set to 'N'. + Most people will leave this set to 'N'. config BUSYBOX_CONFIG_NOMMU bool "Force NOMMU build" default BUSYBOX_DEFAULT_NOMMU help - Busybox tries to detect whether architecture it is being - built against supports MMU or not. If this detection fails, - or if you want to build NOMMU version of busybox for testing, - you may force NOMMU build here. + Busybox tries to detect whether architecture it is being + built against supports MMU or not. If this detection fails, + or if you want to build NOMMU version of busybox for testing, + you may force NOMMU build here. - Most people will leave this set to 'N'. + Most people will leave this set to 'N'. # PIE can be made to work with BUILD_LIBBUSYBOX, but currently # build system does not support that @@ -395,135 +394,128 @@ config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX default BUSYBOX_DEFAULT_BUILD_LIBBUSYBOX depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS && !BUSYBOX_CONFIG_PIE && !BUSYBOX_CONFIG_STATIC help - Build a shared library libbusybox.so.N.N.N which contains all - busybox code. + Build a shared library libbusybox.so.N.N.N which contains all + busybox code. - This feature allows every applet to be built as a tiny - separate executable. Enabling it for "one big busybox binary" - approach serves no purpose and increases code size. - You should almost certainly say "no" to this. + This feature allows every applet to be built as a really tiny + separate executable linked against the library: + |$ size 0_lib/l* + | text data bss dec hex filename + | 939 212 28 1179 49b 0_lib/last + | 939 212 28 1179 49b 0_lib/less + | 919138 8328 1556 929022 e2cfe 0_lib/libbusybox.so.1.N.M -### config FEATURE_FULL_LIBBUSYBOX -### bool "Feature-complete libbusybox" -### default n if !FEATURE_SHARED_BUSYBOX -### depends on BUILD_LIBBUSYBOX -### help -### Build a libbusybox with the complete feature-set, disregarding -### the actually selected config. -### -### Normally, libbusybox will only contain the features which are -### used by busybox itself. If you plan to write a separate -### standalone application which uses libbusybox say 'Y'. -### -### Note: libbusybox is GPL, not LGPL, and exports no stable API that -### might act as a copyright barrier. We can and will modify the -### exported function set between releases (even minor version number -### changes), and happily break out-of-tree features. -### -### Say 'N' if in doubt. + This is useful on NOMMU systems which are not capable + of sharing executables, but are capable of sharing code + in dynamic libraries. + +config BUSYBOX_CONFIG_FEATURE_LIBBUSYBOX_STATIC + bool "Pull in all external references into libbusybox" + default BUSYBOX_DEFAULT_FEATURE_LIBBUSYBOX_STATIC + depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX + help + Make libbusybox library independent, not using or requiring + any other shared libraries. config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL bool "Produce a binary for each applet, linked against libbusybox" default BUSYBOX_DEFAULT_FEATURE_INDIVIDUAL depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX help - If your CPU architecture doesn't allow for sharing text/rodata - sections of running binaries, but allows for runtime dynamic - libraries, this option will allow you to reduce memory footprint - when you have many different applets running at once. + If your CPU architecture doesn't allow for sharing text/rodata + sections of running binaries, but allows for runtime dynamic + libraries, this option will allow you to reduce memory footprint + when you have many different applets running at once. - If your CPU architecture allows for sharing text/rodata, - having single binary is more optimal. + If your CPU architecture allows for sharing text/rodata, + having single binary is more optimal. - Each applet will be a tiny program, dynamically linked - against libbusybox.so.N.N.N. + Each applet will be a tiny program, dynamically linked + against libbusybox.so.N.N.N. - You need to have a working dynamic linker. + You need to have a working dynamic linker. config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX bool "Produce additional busybox binary linked against libbusybox" default BUSYBOX_DEFAULT_FEATURE_SHARED_BUSYBOX depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX help - Build busybox, dynamically linked against libbusybox.so.N.N.N. + Build busybox, dynamically linked against libbusybox.so.N.N.N. - You need to have a working dynamic linker. + You need to have a working dynamic linker. ### config BUILD_AT_ONCE ### bool "Compile all sources at once" ### default n ### help -### Normally each source-file is compiled with one invocation of -### the compiler. -### If you set this option, all sources are compiled at once. -### This gives the compiler more opportunities to optimize which can -### result in smaller and/or faster binaries. +### Normally each source-file is compiled with one invocation of +### the compiler. +### If you set this option, all sources are compiled at once. +### This gives the compiler more opportunities to optimize which can +### result in smaller and/or faster binaries. ### -### Setting this option will consume alot of memory, e.g. if you -### enable all applets with all features, gcc uses more than 300MB -### RAM during compilation of busybox. +### Setting this option will consume alot of memory, e.g. if you +### enable all applets with all features, gcc uses more than 300MB +### RAM during compilation of busybox. ### -### This option is most likely only beneficial for newer compilers -### such as gcc-4.1 and above. +### This option is most likely only beneficial for newer compilers +### such as gcc-4.1 and above. ### -### Say 'N' unless you know what you are doing. - -config BUSYBOX_CONFIG_LFS - bool - default BUSYBOX_DEFAULT_LFS - help - If you want to build BusyBox with large file support, then enable - this option. This will have no effect if your kernel or your C - library lacks large file support for large files. Some of the - programs that can benefit from large file support include dd, gzip, - cp, mount, tar, and many others. If you want to access files larger - than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'. +### Say 'N' unless you know what you are doing. config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX - string "Cross Compiler prefix" + string "Cross compiler prefix" default BUSYBOX_DEFAULT_CROSS_COMPILER_PREFIX help - If you want to build BusyBox with a cross compiler, then you - will need to set this to the cross-compiler prefix, for example, - "i386-uclibc-". + If you want to build busybox with a cross compiler, then you + will need to set this to the cross-compiler prefix, for example, + "i386-uclibc-". - Note that CROSS_COMPILE environment variable or - "make CROSS_COMPILE=xxx ..." will override this selection. + Note that CROSS_COMPILE environment variable or + "make CROSS_COMPILE=xxx ..." will override this selection. - Native builds leave this empty. + Native builds leave this empty. config BUSYBOX_CONFIG_SYSROOT string "Path to sysroot" default BUSYBOX_DEFAULT_SYSROOT help - If you want to build BusyBox with a cross compiler, then you - might also need to specify where /usr/include and /usr/lib - will be found. + If you want to build busybox with a cross compiler, then you + might also need to specify where /usr/include and /usr/lib + will be found. - For example, BusyBox can be built against an installed - Android NDK, platform version 9, for ARM ABI with + For example, busybox can be built against an installed + Android NDK, platform version 9, for ARM ABI with - CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm + CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm - Native builds leave this empty. + Native builds leave this empty. config BUSYBOX_CONFIG_EXTRA_CFLAGS string "Additional CFLAGS" default BUSYBOX_DEFAULT_EXTRA_CFLAGS help - Additional CFLAGS to pass to the compiler verbatim. + Additional CFLAGS to pass to the compiler verbatim. config BUSYBOX_CONFIG_EXTRA_LDFLAGS string "Additional LDFLAGS" default BUSYBOX_DEFAULT_EXTRA_LDFLAGS help - Additional LDFLAGS to pass to the linker verbatim. + Additional LDFLAGS to pass to the linker verbatim. config BUSYBOX_CONFIG_EXTRA_LDLIBS string "Additional LDLIBS" default BUSYBOX_DEFAULT_EXTRA_LDLIBS help - Additional LDLIBS to pass to the linker with -l. + Additional LDLIBS to pass to the linker with -l. + +config BUSYBOX_CONFIG_USE_PORTABLE_CODE + bool "Avoid using GCC-specific code constructs" + default BUSYBOX_DEFAULT_USE_PORTABLE_CODE + help + Use this option if you are trying to compile busybox with + compiler other than gcc. + If you do use gcc, this option may needlessly increase code size. comment 'Installation Options ("make install" behavior)' @@ -531,32 +523,32 @@ choice prompt "What kind of applet links to install" default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS help - Choose what kind of links to applets are created by "make install". + Choose what kind of links to applets are created by "make install". config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS bool "as soft-links" help - Install applets as soft-links to the busybox binary. This needs some - free inodes on the filesystem, but might help with filesystem - generators that can't cope with hard-links. + Install applets as soft-links to the busybox binary. This needs some + free inodes on the filesystem, but might help with filesystem + generators that can't cope with hard-links. config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS bool "as hard-links" help - Install applets as hard-links to the busybox binary. This might - count on a filesystem with few inodes. + Install applets as hard-links to the busybox binary. This might + count on a filesystem with few inodes. config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS bool "as script wrappers" help - Install applets as script wrappers that call the busybox binary. + Install applets as script wrappers that call the busybox binary. config BUSYBOX_CONFIG_INSTALL_APPLET_DONT bool "not installed" help - Do not install applet links. Useful when you plan to use - busybox --install for installing links, or plan to use - a standalone shell and thus don't need applet links. + Do not install applet links. Useful when you plan to use + busybox --install for installing links, or plan to use + a standalone shell and thus don't need applet links. endchoice @@ -565,113 +557,116 @@ choice default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS help - Choose how you install /bin/sh applet link. + Choose how you install /bin/sh applet link. config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK bool "as soft-link" help - Install /bin/sh applet as soft-link to the busybox binary. + Install /bin/sh applet as soft-link to the busybox binary. config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK bool "as hard-link" help - Install /bin/sh applet as hard-link to the busybox binary. + Install /bin/sh applet as hard-link to the busybox binary. config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER bool "as script wrapper" help - Install /bin/sh applet as script wrapper that calls - the busybox binary. + Install /bin/sh applet as script wrapper that calls + the busybox binary. endchoice config BUSYBOX_CONFIG_PREFIX - string "BusyBox installation prefix" + string "Destination path for 'make install'" default BUSYBOX_DEFAULT_PREFIX help - Define your directory to install BusyBox files/subdirs in. + Where "make install" should install busybox binary and links. comment 'Debugging Options' config BUSYBOX_CONFIG_DEBUG - bool "Build BusyBox with extra Debugging symbols" + bool "Build with debug information" default BUSYBOX_DEFAULT_DEBUG help - Say Y here if you wish to examine BusyBox internals while applets are - running. This increases the size of the binary considerably, and - should only be used when doing development. If you are doing - development and want to debug BusyBox, answer Y. + Say Y here to compile with debug information. + This increases the size of the binary considerably, and + should only be used when doing development. + + This adds -g option to gcc command line. - Most people should answer N. + Most people should answer N. config BUSYBOX_CONFIG_DEBUG_PESSIMIZE bool "Disable compiler optimizations" default BUSYBOX_DEFAULT_DEBUG_PESSIMIZE depends on BUSYBOX_CONFIG_DEBUG help - The compiler's optimization of source code can eliminate and reorder - code, resulting in an executable that's hard to understand when - stepping through it with a debugger. This switches it off, resulting - in a much bigger executable that more closely matches the source - code. + The compiler's optimization of source code can eliminate and reorder + code, resulting in an executable that's hard to understand when + stepping through it with a debugger. This switches it off, resulting + in a much bigger executable that more closely matches the source + code. + + This replaces -Os/-O2 with -O0 in gcc command line. config BUSYBOX_CONFIG_DEBUG_SANITIZE bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)" default BUSYBOX_DEFAULT_DEBUG_SANITIZE help - Say Y here if you want to enable runtime sanitizers. These help - catch bad memory accesses (e.g. buffer overflows), but will make - the executable larger and slow down runtime a bit. + Say Y here if you want to enable runtime sanitizers. These help + catch bad memory accesses (e.g. buffer overflows), but will make + the executable larger and slow down runtime a bit. - This adds -fsanitize=foo options to gcc command line. + This adds -fsanitize=foo options to gcc command line. - If you aren't developing/testing busybox, say N here. + If you aren't developing/testing busybox, say N here. config BUSYBOX_CONFIG_UNIT_TEST bool "Build unit tests" default BUSYBOX_DEFAULT_UNIT_TEST help - Say Y here if you want to build unit tests (both the framework and - test cases) as a Busybox applet. This results in bigger code, so you - probably don't want this option in production builds. + Say Y here if you want to build unit tests (both the framework and + test cases) as an applet. This results in bigger code, so you + probably don't want this option in production builds. config BUSYBOX_CONFIG_WERROR bool "Abort compilation on any warning" default BUSYBOX_DEFAULT_WERROR help - This adds -Werror to gcc command line. + This adds -Werror to gcc command line. - Most people should answer N. + Most people should answer N. choice prompt "Additional debugging library" default BUSYBOX_CONFIG_NO_DEBUG_LIB help - Using an additional debugging library will make BusyBox become - considerable larger and will cause it to run more slowly. You - should always leave this option disabled for production use. - - dmalloc support: - ---------------- - This enables compiling with dmalloc ( http://dmalloc.com/ ) - which is an excellent public domain mem leak and malloc problem - detector. To enable dmalloc, before running busybox you will - want to properly set your environment, for example: - export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile - The 'debug=' value is generated using the following command - dmalloc -p log-stats -p log-non-free -p log-bad-space \ - -p log-elapsed-time -p check-fence -p check-heap \ - -p check-lists -p check-blank -p check-funcs -p realloc-copy \ - -p allow-free-null - - Electric-fence support: - ----------------------- - This enables compiling with Electric-fence support. Electric - fence is another very useful malloc debugging library which uses - your computer's virtual memory hardware to detect illegal memory - accesses. This support will make BusyBox be considerable larger - and run slower, so you should leave this option disabled unless - you are hunting a hard to find memory problem. + Using an additional debugging library will make busybox become + considerably larger and will cause it to run more slowly. You + should always leave this option disabled for production use. + + dmalloc support: + ---------------- + This enables compiling with dmalloc ( http://dmalloc.com/ ) + which is an excellent public domain mem leak and malloc problem + detector. To enable dmalloc, before running busybox you will + want to properly set your environment, for example: + export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile + The 'debug=' value is generated using the following command + dmalloc -p log-stats -p log-non-free -p log-bad-space \ + -p log-elapsed-time -p check-fence -p check-heap \ + -p check-lists -p check-blank -p check-funcs -p realloc-copy \ + -p allow-free-null + + Electric-fence support: + ----------------------- + This enables compiling with Electric-fence support. Electric + fence is another very useful malloc debugging library which uses + your computer's virtual memory hardware to detect illegal memory + accesses. This support will make busybox be considerably larger + and run slower, so you should leave this option disabled unless + you are hunting a hard to find memory problem. config BUSYBOX_CONFIG_NO_DEBUG_LIB diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch index 5f64c19d05a5..a47c4fcc106d 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 -@@ -706,6 +706,7 @@ static int bcast_or_ucast(struct dhcp_pa +@@ -711,6 +711,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), -@@ -723,6 +724,7 @@ static NOINLINE int send_discover(uint32 +@@ -728,6 +729,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 727f69409c9b..51b15a73cc31 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 -@@ -1442,6 +1442,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c +@@ -1417,6 +1417,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 7b77d2970b9d..f8e66403898a 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 -@@ -1112,7 +1112,6 @@ static void perform_renew(void) +@@ -1124,7 +1124,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/230-add_nslookup_lede.patch b/package/utils/busybox/patches/230-add_nslookup_lede.patch index 14c0e87b3381..f0ac4b51c15a 100644 --- a/package/utils/busybox/patches/230-add_nslookup_lede.patch +++ b/package/utils/busybox/patches/230-add_nslookup_lede.patch @@ -34,7 +34,7 @@ Signed-off-by: Jo-Philipp Wich # However, on *other platforms* it fails when some of those flags --- /dev/null +++ b/networking/nslookup_lede.c -@@ -0,0 +1,915 @@ +@@ -0,0 +1,914 @@ +/* + * nslookup_lede - musl compatible replacement for busybox nslookup + * @@ -752,18 +752,6 @@ Signed-off-by: Jo-Philipp Wich + return buf; +} + -+ -+#if ENABLE_FEATURE_NSLOOKUP_OPENWRT_LONG_OPTIONS -+static const char nslookup_longopts[] ALIGN1 = -+ "type\0" Required_argument "q" -+ "querytype\0" Required_argument "q" -+ "port\0" Required_argument "p" -+ "retry\0" Required_argument "r" -+ "timeout\0" Required_argument "t" -+ "stats\0" Required_argument "s" -+ ; -+#endif -+ +int nslookup_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int nslookup_main(int argc, char **argv) +{ @@ -779,13 +767,24 @@ Signed-off-by: Jo-Philipp Wich + HEADER *header; + +#if ENABLE_FEATURE_NSLOOKUP_OPENWRT_LONG_OPTIONS -+ applet_long_options = nslookup_longopts; -+#endif ++ static const char nslookup_longopts[] ALIGN1 = ++ "type\0" Required_argument "q" ++ "querytype\0" Required_argument "q" ++ "port\0" Required_argument "p" ++ "retry\0" Required_argument "r" ++ "timeout\0" Required_argument "t" ++ "stats\0" No_argument "s" ++ ; + -+ opt_complementary = "q::"; -+ opts = getopt32(argv, "+q:*p:+r:+t:+s", ++ opts = getopt32long(argv, "^" "+q:*p:+r:+t:+s" "\0" "q::", ++ nslookup_longopts, ++ &type_strings, &default_port, ++ &default_retry, &default_timeout); ++#else ++ opts = getopt32(argv, "^" "+q:*p:+r:+t:+s" "\0" "q::", + &type_strings, &default_port, + &default_retry, &default_timeout); ++#endif + + while (type_strings) { + ptr = llist_pop(&type_strings); diff --git a/package/utils/busybox/patches/250-date-k-flag.patch b/package/utils/busybox/patches/250-date-k-flag.patch index 476440f62a89..3a85312e2f19 100644 --- a/package/utils/busybox/patches/250-date-k-flag.patch +++ b/package/utils/busybox/patches/250-date-k-flag.patch @@ -1,6 +1,6 @@ --- a/coreutils/date.c +++ b/coreutils/date.c -@@ -122,6 +122,7 @@ +@@ -123,6 +123,7 @@ //usage: IF_FEATURE_DATE_ISOFMT( //usage: "\n -D FMT Use FMT for -d TIME conversion" //usage: ) @@ -8,7 +8,7 @@ //usage: "\n" //usage: "\nRecognized TIME formats:" //usage: "\n hh:mm[:ss]" -@@ -138,9 +139,8 @@ +@@ -139,9 +140,8 @@ #include "libbb.h" #include "common_bufsiz.h" @@ -20,7 +20,7 @@ enum { OPT_RFC2822 = (1 << 0), /* R */ -@@ -148,8 +148,9 @@ enum { +@@ -149,8 +149,9 @@ enum { OPT_UTC = (1 << 2), /* u */ OPT_DATE = (1 << 3), /* d */ OPT_REFERENCE = (1 << 4), /* r */ @@ -31,8 +31,8 @@ + OPT_HINT = (1 << 7) * ENABLE_FEATURE_DATE_ISOFMT, /* D */ }; - static void maybe_set_utc(int opt) -@@ -167,12 +168,15 @@ static const char date_longopts[] ALIGN1 + #if ENABLE_LONG_OPTS +@@ -162,6 +163,7 @@ static const char date_longopts[] ALIGN1 /* "universal\0" No_argument "u" */ "date\0" Required_argument "d" "reference\0" Required_argument "r" @@ -40,6 +40,7 @@ ; #endif +@@ -181,6 +183,8 @@ static void maybe_set_utc(int opt) int date_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int date_main(int argc UNUSED_PARAM, char **argv) { @@ -48,16 +49,16 @@ struct timespec ts; struct tm tm_time; char buf_fmt_dt2str[64]; -@@ -187,7 +191,7 @@ int date_main(int argc UNUSED_PARAM, cha - opt_complementary = "d--s:s--d" - IF_FEATURE_DATE_ISOFMT(":R--I:I--R"); - IF_LONG_OPTS(applet_long_options = date_longopts;) -- opt = getopt32(argv, "Rs:ud:r:" -+ opt = getopt32(argv, "Rs:ud:r:k" - IF_FEATURE_DATE_ISOFMT("I::D:"), - &date_str, &date_str, &filename - IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt)); -@@ -244,6 +248,31 @@ int date_main(int argc UNUSED_PARAM, cha +@@ -193,7 +197,7 @@ int date_main(int argc UNUSED_PARAM, cha + char *isofmt_arg = NULL; + + opt = getopt32long(argv, "^" +- "Rs:ud:r:" ++ "Rs:ud:r:k" + IF_FEATURE_DATE_ISOFMT("I::D:") + "\0" + "d--s:s--d" +@@ -256,6 +260,31 @@ int date_main(int argc UNUSED_PARAM, cha if (*argv) bb_show_usage(); diff --git a/package/utils/busybox/patches/510-move-passwd-applet-to-bin.patch b/package/utils/busybox/patches/510-move-passwd-applet-to-bin.patch index b19d1c9a391a..7dc2cd3ff458 100644 --- a/package/utils/busybox/patches/510-move-passwd-applet-to-bin.patch +++ b/package/utils/busybox/patches/510-move-passwd-applet-to-bin.patch @@ -1,7 +1,7 @@ --- a/loginutils/passwd.c +++ b/loginutils/passwd.c @@ -23,7 +23,7 @@ - //config: With this option passwd will refuse new passwords which are "weak". + //config: With this option passwd will refuse new passwords which are "weak". //applet:/* Needs to be run by root or be suid root - needs to change /etc/{passwd,shadow}: */ -//applet:IF_PASSWD(APPLET(passwd, BB_DIR_USR_BIN, BB_SUID_REQUIRE)) diff --git a/package/utils/busybox/patches/600-cve-2017-16544.patch b/package/utils/busybox/patches/600-cve-2017-16544.patch deleted file mode 100644 index 3b142bdd6414..000000000000 --- a/package/utils/busybox/patches/600-cve-2017-16544.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c3797d40a1c57352192c6106cc0f435e7d9c11e8 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Tue, 7 Nov 2017 18:09:29 +0100 -Subject: lineedit: do not tab-complete any strings which have control - characters - -function old new delta -add_match 41 68 +27 - -Signed-off-by: Denys Vlasenko ---- - libbb/lineedit.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - ---- a/libbb/lineedit.c -+++ b/libbb/lineedit.c -@@ -633,6 +633,18 @@ static void free_tab_completion_data(voi - - static void add_match(char *matched) - { -+ unsigned char *p = (unsigned char*)matched; -+ while (*p) { -+ /* ESC attack fix: drop any string with control chars */ -+ if (*p < ' ' -+ || (!ENABLE_UNICODE_SUPPORT && *p >= 0x7f) -+ || (ENABLE_UNICODE_SUPPORT && *p == 0x7f) -+ ) { -+ free(matched); -+ return; -+ } -+ p++; -+ } - matches = xrealloc_vector(matches, 4, num_matches); - matches[num_matches] = matched; - num_matches++; -- 2.30.2