aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils/busybox
diff options
context:
space:
mode:
Diffstat (limited to 'package/utils/busybox')
-rw-r--r--package/utils/busybox/Config-defaults.in184
-rw-r--r--package/utils/busybox/Makefile13
-rw-r--r--package/utils/busybox/config/archival/Config.in14
-rw-r--r--package/utils/busybox/config/coreutils/Config.in121
-rw-r--r--package/utils/busybox/config/editors/Config.in18
-rw-r--r--package/utils/busybox/config/findutils/Config.in43
-rw-r--r--package/utils/busybox/config/klibc-utils/Config.in2
-rw-r--r--package/utils/busybox/config/libbb/Config.in226
-rw-r--r--package/utils/busybox/config/mailutils/Config.in14
-rw-r--r--package/utils/busybox/config/miscutils/Config.in33
-rw-r--r--package/utils/busybox/config/networking/Config.in47
-rw-r--r--package/utils/busybox/config/networking/udhcp/Config.in15
-rw-r--r--package/utils/busybox/config/procps/Config.in23
-rw-r--r--package/utils/busybox/config/shell/Config.in15
-rw-r--r--package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch10
-rw-r--r--package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch6
-rw-r--r--package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch10
-rw-r--r--package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch49
-rw-r--r--package/utils/busybox/patches/220-add_lock_util.patch6
-rw-r--r--package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch2
-rw-r--r--package/utils/busybox/patches/530-nslookup-ensure-unique-transaction-IDs-for-the-DNS-queries.patch42
-rw-r--r--package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch80
-rw-r--r--package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch30
23 files changed, 580 insertions, 423 deletions
diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index d078a399541..515bea3d1d7 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -208,18 +208,36 @@ config BUSYBOX_DEFAULT_PASSWORD_MINLEN
config BUSYBOX_DEFAULT_MD5_SMALL
int
default 1
+config BUSYBOX_DEFAULT_SHA1_SMALL
+ int
+ default 3
+config BUSYBOX_DEFAULT_SHA1_HWACCEL
+ bool
+ default y
+config BUSYBOX_DEFAULT_SHA256_HWACCEL
+ bool
+ default y
config BUSYBOX_DEFAULT_SHA3_SMALL
int
default 1
-config BUSYBOX_DEFAULT_FEATURE_FAST_TOP
+config BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
bool
default y
-config BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
+config BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
bool
default n
-config BUSYBOX_DEFAULT_FEATURE_ETC_SERVICES
+config BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
bool
- default n
+ default y
+config BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
+ int
+ default 4
+config BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
+ bool
+ default y
+config BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
+ bool
+ default y
config BUSYBOX_DEFAULT_FEATURE_EDITING
bool
default y
@@ -289,30 +307,15 @@ config BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
config BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
bool
default n
-config BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
- bool
- default y
-config BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
+config BUSYBOX_DEFAULT_LOOP_CONFIGURE
bool
default n
-config BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
- bool
- default y
-config BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
- int
- default 4
-config BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
+config BUSYBOX_DEFAULT_NO_LOOP_CONFIGURE
bool
default n
-config BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
+config BUSYBOX_DEFAULT_TRY_LOOP_CONFIGURE
bool
default y
-config BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
- bool
- default y
-config BUSYBOX_DEFAULT_FEATURE_HWIB
- bool
- default n
config BUSYBOX_DEFAULT_FEATURE_SEAMLESS_XZ
bool
default n
@@ -381,7 +384,7 @@ config BUSYBOX_DEFAULT_BZIP2_SMALL
default 0
config BUSYBOX_DEFAULT_FEATURE_BZIP2_DECOMPRESS
bool
- default y
+ default n
config BUSYBOX_DEFAULT_CPIO
bool
default n
@@ -391,6 +394,12 @@ config BUSYBOX_DEFAULT_FEATURE_CPIO_O
config BUSYBOX_DEFAULT_FEATURE_CPIO_P
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_CPIO_IGNORE_DEVNO
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_CPIO_RENUMBER_INODES
+ bool
+ default n
config BUSYBOX_DEFAULT_DPKG
bool
default n
@@ -484,6 +493,18 @@ config BUSYBOX_DEFAULT_FEATURE_UNZIP_XZ
config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_VERBOSE
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_TIMEZONE
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
+ bool
+ default y
+config BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE
+ bool
+ default y
config BUSYBOX_DEFAULT_BASENAME
bool
default y
@@ -514,6 +535,9 @@ config BUSYBOX_DEFAULT_CHROOT
config BUSYBOX_DEFAULT_CKSUM
bool
default n
+config BUSYBOX_DEFAULT_CRC32
+ bool
+ default n
config BUSYBOX_DEFAULT_COMM
bool
default n
@@ -529,6 +553,9 @@ config BUSYBOX_DEFAULT_FEATURE_CP_REFLINK
config BUSYBOX_DEFAULT_CUT
bool
default y
+config BUSYBOX_DEFAULT_FEATURE_CUT_REGEX
+ bool
+ default n
config BUSYBOX_DEFAULT_DATE
bool
default y
@@ -562,6 +589,9 @@ config BUSYBOX_DEFAULT_DF
config BUSYBOX_DEFAULT_FEATURE_DF_FANCY
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
+ bool
+ default n
config BUSYBOX_DEFAULT_DIRNAME
bool
default y
@@ -829,9 +859,6 @@ config BUSYBOX_DEFAULT_TIMEOUT
config BUSYBOX_DEFAULT_TOUCH
bool
default y
-config BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
- bool
- default n
config BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
bool
default y
@@ -851,6 +878,9 @@ config BUSYBOX_DEFAULT_TRUNCATE
bool
default y if TARGET_bcm53xx
default n
+config BUSYBOX_DEFAULT_TSORT
+ bool
+ default n
config BUSYBOX_DEFAULT_TTY
bool
default n
@@ -905,15 +935,6 @@ config BUSYBOX_DEFAULT_WHOAMI
config BUSYBOX_DEFAULT_YES
bool
default y
-config BUSYBOX_DEFAULT_FEATURE_VERBOSE
- bool
- default n
-config BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
- bool
- default y
-config BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE
- bool
- default y
config BUSYBOX_DEFAULT_CHVT
bool
default n
@@ -961,7 +982,7 @@ config BUSYBOX_DEFAULT_RESET
default y
config BUSYBOX_DEFAULT_RESIZE
bool
- default n
+ default y
config BUSYBOX_DEFAULT_FEATURE_RESIZE_PRINT
bool
default n
@@ -1058,6 +1079,9 @@ config BUSYBOX_DEFAULT_FEATURE_VI_8BIT
config BUSYBOX_DEFAULT_FEATURE_VI_COLON
bool
default y
+config BUSYBOX_DEFAULT_FEATURE_VI_COLON_EXPAND
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_VI_YANKMARK
bool
default y
@@ -1097,6 +1121,9 @@ config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE
config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE_MAX
int
default 0
+config BUSYBOX_DEFAULT_FEATURE_VI_VERBOSE_STATUS
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
bool
default y
@@ -1109,9 +1136,21 @@ config BUSYBOX_DEFAULT_FEATURE_FIND_PRINT0
config BUSYBOX_DEFAULT_FEATURE_FIND_MTIME
bool
default y
+config BUSYBOX_DEFAULT_FEATURE_FIND_ATIME
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_FIND_CTIME
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_FIND_MMIN
bool
default y
+config BUSYBOX_DEFAULT_FEATURE_FIND_AMIN
+ bool
+ default n
+config BUSYBOX_DEFAULT_FEATURE_FIND_CMIN
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_FIND_PERM
bool
default y
@@ -1133,6 +1172,9 @@ config BUSYBOX_DEFAULT_FEATURE_FIND_NEWER
config BUSYBOX_DEFAULT_FEATURE_FIND_INUM
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_FIND_SAMEFILE
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_FIND_EXEC
bool
default y
@@ -1291,7 +1333,7 @@ config BUSYBOX_DEFAULT_USE_BB_CRYPT
default n
config BUSYBOX_DEFAULT_USE_BB_CRYPT_SHA
bool
- default n
+ default y
config BUSYBOX_DEFAULT_ADD_SHELL
bool
default n
@@ -1324,7 +1366,7 @@ config BUSYBOX_DEFAULT_CHPASSWD
default n
config BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
string
- default "md5"
+ default "sha256"
config BUSYBOX_DEFAULT_CRYPTPW
bool
default n
@@ -1780,13 +1822,13 @@ config BUSYBOX_DEFAULT_SWITCH_ROOT
default y
config BUSYBOX_DEFAULT_TASKSET
bool
- default n
+ default y
config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
bool
- default n
+ default y
config BUSYBOX_DEFAULT_FEATURE_TASKSET_CPULIST
bool
- default n
+ default y
config BUSYBOX_DEFAULT_UEVENT
bool
default n
@@ -1895,6 +1937,9 @@ config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
config BUSYBOX_DEFAULT_ADJTIMEX
bool
default n
+config BUSYBOX_DEFAULT_ASCII
+ bool
+ default n
config BUSYBOX_DEFAULT_BBCONFIG
bool
default n
@@ -2138,6 +2183,9 @@ config BUSYBOX_DEFAULT_RUNLEVEL
config BUSYBOX_DEFAULT_RX
bool
default n
+config BUSYBOX_DEFAULT_SEEDRNG
+ bool
+ default n
config BUSYBOX_DEFAULT_SETFATTR
bool
default n
@@ -2150,6 +2198,9 @@ config BUSYBOX_DEFAULT_STRINGS
config BUSYBOX_DEFAULT_TIME
bool
default y
+config BUSYBOX_DEFAULT_TREE
+ bool
+ default n
config BUSYBOX_DEFAULT_TS
bool
default n
@@ -2183,6 +2234,9 @@ config BUSYBOX_DEFAULT_VOLNAME
config BUSYBOX_DEFAULT_WATCHDOG
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_WATCHDOG_OPEN_TWICE
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_IPV6
bool
default y if IPV6
@@ -2196,6 +2250,15 @@ config BUSYBOX_DEFAULT_FEATURE_PREFER_IPV4_ADDRESS
config BUSYBOX_DEFAULT_VERBOSE_RESOLUTION_ERRORS
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_HWIB
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_TLS_SHA1
bool
default n
@@ -2250,6 +2313,9 @@ config BUSYBOX_DEFAULT_DNSDOMAINNAME
config BUSYBOX_DEFAULT_HTTPD
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_HTTPD_PORT_DEFAULT
+ int
+ default 80
config BUSYBOX_DEFAULT_FEATURE_HTTPD_RANGES
bool
default n
@@ -2529,6 +2595,9 @@ config BUSYBOX_DEFAULT_TELNETD
config BUSYBOX_DEFAULT_FEATURE_TELNETD_STANDALONE
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_TELNETD_PORT_DEFAULT
+ int
+ default 23
config BUSYBOX_DEFAULT_FEATURE_TELNETD_INETD_WAIT
bool
default n
@@ -2589,6 +2658,9 @@ config BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
config BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_WGET_FTP
+ bool
+ default n
config BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
bool
default n
@@ -2637,6 +2709,9 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT
string
default "/usr/share/udhcpc/default.script"
+config BUSYBOX_DEFAULT_UDHCPC6_DEFAULT_SCRIPT
+ string
+ default ""
config BUSYBOX_DEFAULT_UDHCPC6
bool
default n
@@ -2652,6 +2727,9 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC4833
config BUSYBOX_DEFAULT_FEATURE_UDHCPC6_RFC5970
bool
default n
+config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE
+ string
+ default ""
config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
bool
default n
@@ -2679,6 +2757,9 @@ config BUSYBOX_DEFAULT_LPR
config BUSYBOX_DEFAULT_LPQ
bool
default n
+config BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
+ string
+ default ""
config BUSYBOX_DEFAULT_MAKEMIME
bool
default n
@@ -2697,9 +2778,12 @@ config BUSYBOX_DEFAULT_FEATURE_REFORMIME_COMPAT
config BUSYBOX_DEFAULT_SENDMAIL
bool
default n
-config BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
- string
- default ""
+config BUSYBOX_DEFAULT_FEATURE_FAST_TOP
+ bool
+ default y
+config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
+ bool
+ default n
config BUSYBOX_DEFAULT_FREE
bool
default y
@@ -2814,9 +2898,6 @@ config BUSYBOX_DEFAULT_FEATURE_UPTIME_UTMP_SUPPORT
config BUSYBOX_DEFAULT_WATCH
bool
default n
-config BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
- bool
- default n
config BUSYBOX_DEFAULT_CHPST
bool
default n
@@ -2942,7 +3023,7 @@ config BUSYBOX_DEFAULT_ASH_ALIAS
default y
config BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
bool
- default n
+ default y
config BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
bool
default y
@@ -2961,6 +3042,9 @@ config BUSYBOX_DEFAULT_ASH_PRINTF
config BUSYBOX_DEFAULT_ASH_TEST
bool
default y
+config BUSYBOX_DEFAULT_ASH_SLEEP
+ bool
+ default n
config BUSYBOX_DEFAULT_ASH_HELP
bool
default n
@@ -2985,10 +3069,10 @@ config BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
config BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
bool
default n
-config BUSYBOX_DEFAULT_HUSH_LINENO_VAR
+config BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR
bool
default n
-config BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR
+config BUSYBOX_DEFAULT_HUSH_LINENO_VAR
bool
default n
config BUSYBOX_DEFAULT_HUSH_INTERACTIVE
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index 32f0d2c7559..4bddd5201d8 100644
--- a/package/utils/busybox/Makefile
+++ b/package/utils/busybox/Makefile
@@ -5,22 +5,20 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
-PKG_VERSION:=1.33.1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.36.1
+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:=12cec6bd2b16d8a9446dd16130f2b92982f1819f6e1c5f5887b6db03f5660d28
+PKG_HASH:=b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314
PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
PKG_BUILD_PARALLEL:=1
+PKG_BUILD_FLAGS:=lto
PKG_CHECK_FORMAT_SECURITY:=0
-#Busybox use it's own PIE config flag and LDFLAGS are used with ld, not gcc.
-PKG_ASLR_PIE:=0
-
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE archival/libarchive/bz/LICENSE
PKG_CPE_ID:=cpe:/a:busybox:busybox
@@ -106,9 +104,6 @@ ifeq ($(BUILD_VARIANT),selinux)
LDLIBS += selinux sepol
endif
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto=jobserver -fuse-linker-plugin
-
MAKE_VARS :=
MAKE_FLAGS += \
EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
diff --git a/package/utils/busybox/config/archival/Config.in b/package/utils/busybox/config/archival/Config.in
index ea167a46af9..ac2b3d20562 100644
--- a/package/utils/busybox/config/archival/Config.in
+++ b/package/utils/busybox/config/archival/Config.in
@@ -204,6 +204,20 @@ config BUSYBOX_CONFIG_FEATURE_CPIO_P
depends on BUSYBOX_CONFIG_FEATURE_CPIO_O
help
Passthrough mode. Rarely used.
+
+config BUSYBOX_CONFIG_FEATURE_CPIO_IGNORE_DEVNO
+ bool "Support --ignore-devno like GNU cpio"
+ default BUSYBOX_DEFAULT_FEATURE_CPIO_IGNORE_DEVNO
+ depends on BUSYBOX_CONFIG_FEATURE_CPIO_O && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Optionally ignore device numbers when creating archives.
+
+config BUSYBOX_CONFIG_FEATURE_CPIO_RENUMBER_INODES
+ bool "Support --renumber-inodes like GNU cpio"
+ default BUSYBOX_DEFAULT_FEATURE_CPIO_RENUMBER_INODES
+ depends on BUSYBOX_CONFIG_FEATURE_CPIO_O && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Optionally renumber inodes when creating archives.
config BUSYBOX_CONFIG_DPKG
bool "dpkg (43 kb)"
default BUSYBOX_DEFAULT_DPKG
diff --git a/package/utils/busybox/config/coreutils/Config.in b/package/utils/busybox/config/coreutils/Config.in
index e256ca36f5e..983740be6ed 100644
--- a/package/utils/busybox/config/coreutils/Config.in
+++ b/package/utils/busybox/config/coreutils/Config.in
@@ -6,6 +6,47 @@
menu "Coreutils"
+config BUSYBOX_CONFIG_FEATURE_VERBOSE
+ bool "Support verbose options (usually -v) for various applets"
+ default BUSYBOX_DEFAULT_FEATURE_VERBOSE
+ help
+ Enable cp -v, rm -v and similar messages.
+ Also enables long option (--verbose) if it exists.
+ Without this option, -v is accepted but ignored.
+
+comment "Common options for date and touch"
+
+config BUSYBOX_CONFIG_FEATURE_TIMEZONE
+ bool "Allow timezone in dates"
+ default BUSYBOX_DEFAULT_FEATURE_TIMEZONE
+ depends on BUSYBOX_CONFIG_DESKTOP
+ help
+ Permit the use of timezones when parsing user-provided data
+ strings, e.g. '1996-04-09 12:45:00 -0500'.
+
+ This requires support for the '%z' extension to strptime() which
+ may not be available in all implementations.
+
+comment "Common options for cp and mv"
+ depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
+
+config BUSYBOX_CONFIG_FEATURE_PRESERVE_HARDLINKS
+ bool "Preserve hard links"
+ default BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
+ depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
+ help
+ Allow cp and mv to preserve hard links.
+
+comment "Common options for df, du, ls"
+ depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS
+
+config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE
+ bool "Support human readable output (example 13k, 23M, 235G)"
+ default BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE
+ depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS
+ help
+ Allow df, du, and ls to have human readable output.
+
config BUSYBOX_CONFIG_BASENAME
bool "basename (438 bytes)"
default BUSYBOX_DEFAULT_BASENAME
@@ -63,8 +104,10 @@ config BUSYBOX_CONFIG_CHROOT
config BUSYBOX_CONFIG_CKSUM
bool "cksum (4.1 kb)"
default BUSYBOX_DEFAULT_CKSUM
- help
- cksum is used to calculate the CRC32 checksum of a file.
+
+config BUSYBOX_CONFIG_CRC32
+ bool "crc32 (4.1 kb)"
+ default BUSYBOX_DEFAULT_CRC32
config BUSYBOX_CONFIG_COMM
bool "comm (4.2 kb)"
default BUSYBOX_DEFAULT_COMM
@@ -95,6 +138,13 @@ config BUSYBOX_CONFIG_CUT
help
cut is used to print selected parts of lines from
each file to stdout.
+
+config BUSYBOX_CONFIG_FEATURE_CUT_REGEX
+ bool "cut -F"
+ default BUSYBOX_DEFAULT_FEATURE_CUT_REGEX
+ depends on BUSYBOX_CONFIG_CUT
+ help
+ Allow regex based delimiters.
config BUSYBOX_CONFIG_DATE
bool "date (7 kb)"
default BUSYBOX_DEFAULT_DATE
@@ -191,6 +241,26 @@ config BUSYBOX_CONFIG_FEATURE_DF_FANCY
-a Show all filesystems
-i Inodes
-B <SIZE> Blocksize
+
+config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
+ bool "Skip rootfs in mount table"
+ default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
+ depends on BUSYBOX_CONFIG_DF
+ help
+ Ignore rootfs entry in mount table.
+
+ In Linux, kernel has a special filesystem, rootfs, which is initially
+ mounted on /. It contains initramfs data, if kernel is configured
+ to have one. Usually, another file system is mounted over / early
+ in boot process, and therefore most tools which manipulate
+ mount table, such as df, will skip rootfs entry.
+
+ However, some systems do not mount anything on /.
+ If you need to configure busybox for one of these systems,
+ you may find it useful to turn this option off to make df show
+ initramfs statistics.
+
+ Otherwise, choose Y.
config BUSYBOX_CONFIG_DIRNAME
bool "dirname (329 bytes)"
default BUSYBOX_DEFAULT_DIRNAME
@@ -583,7 +653,7 @@ config BUSYBOX_CONFIG_SORT
sort is used to sort lines of text in specified files.
config BUSYBOX_CONFIG_FEATURE_SORT_BIG
- bool "Full SuSv3 compliant sort (support -ktcbdfiogM)"
+ bool "Full SuSv3 compliant sort (support -ktcbdfioghM)"
default BUSYBOX_DEFAULT_FEATURE_SORT_BIG
depends on BUSYBOX_CONFIG_SORT
help
@@ -739,16 +809,8 @@ config BUSYBOX_CONFIG_TOUCH
touch is used to create or change the access and/or
modification timestamp of specified files.
-config BUSYBOX_CONFIG_FEATURE_TOUCH_NODEREF
- bool "Add support for -h"
- default BUSYBOX_DEFAULT_FEATURE_TOUCH_NODEREF
- depends on BUSYBOX_CONFIG_TOUCH
- help
- Enable touch to have the -h option.
- This requires libc support for lutimes() function.
-
config BUSYBOX_CONFIG_FEATURE_TOUCH_SUSV3
- bool "Add support for SUSV3 features (-d -t -r)"
+ bool "Add support for SUSV3 features (-a -d -m -t -r)"
default BUSYBOX_DEFAULT_FEATURE_TOUCH_SUSV3
depends on BUSYBOX_CONFIG_TOUCH
help
@@ -789,6 +851,11 @@ config BUSYBOX_CONFIG_TRUNCATE
help
truncate truncates files to a given size. If a file does
not exist, it is created unless told otherwise.
+config BUSYBOX_CONFIG_TSORT
+ bool "tsort (0.7 kb)"
+ default BUSYBOX_DEFAULT_TSORT
+ help
+ tsort performs a topological sort.
config BUSYBOX_CONFIG_TTY
bool "tty (3.6 kb)"
default BUSYBOX_DEFAULT_TTY
@@ -895,34 +962,4 @@ config BUSYBOX_CONFIG_YES
yes is used to repeatedly output a specific string, or
the default string 'y'.
-comment "Common options"
-
-config BUSYBOX_CONFIG_FEATURE_VERBOSE
- bool "Support verbose options (usually -v) for various applets"
- default BUSYBOX_DEFAULT_FEATURE_VERBOSE
- help
- Enable cp -v, rm -v and similar messages.
- Also enables long option (--verbose) if it exists.
- Without this option, -v is accepted but ignored.
-
-comment "Common options for cp and mv"
- depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
-
-config BUSYBOX_CONFIG_FEATURE_PRESERVE_HARDLINKS
- bool "Preserve hard links"
- default BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
- depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
- help
- Allow cp and mv to preserve hard links.
-
-comment "Common options for df, du, ls"
- depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS
-
-config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE
- bool "Support human readable output (example 13k, 23M, 235G)"
- default BUSYBOX_DEFAULT_FEATURE_HUMAN_READABLE
- depends on BUSYBOX_CONFIG_DF || BUSYBOX_CONFIG_DU || BUSYBOX_CONFIG_LS
- help
- Allow df, du, and ls to have human readable output.
-
endmenu
diff --git a/package/utils/busybox/config/editors/Config.in b/package/utils/busybox/config/editors/Config.in
index 16d08bc0f85..dc80a4ec0df 100644
--- a/package/utils/busybox/config/editors/Config.in
+++ b/package/utils/busybox/config/editors/Config.in
@@ -110,6 +110,14 @@ config BUSYBOX_CONFIG_FEATURE_VI_COLON
Enable a limited set of colon commands. This does not
provide an "ex" mode.
+config BUSYBOX_CONFIG_FEATURE_VI_COLON_EXPAND
+ bool "Expand \"%\" and \"#\" in colon commands"
+ default BUSYBOX_DEFAULT_FEATURE_VI_COLON_EXPAND
+ depends on BUSYBOX_CONFIG_FEATURE_VI_COLON
+ help
+ Expand the special characters \"%\" (current filename)
+ and \"#\" (alternate filename) in colon commands.
+
config BUSYBOX_CONFIG_FEATURE_VI_YANKMARK
bool "Enable yank/put commands and mark cmds"
default BUSYBOX_DEFAULT_FEATURE_VI_YANKMARK
@@ -126,7 +134,7 @@ config BUSYBOX_CONFIG_FEATURE_VI_SEARCH
config BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH
bool "Enable regex in search and replace"
- default BUSYBOX_DEFAULT_FEATURE_VI_REGEX_SEARCH
+ default BUSYBOX_DEFAULT_FEATURE_VI_REGEX_SEARCH # Uses GNU regex, which may be unavailable. FIXME
depends on BUSYBOX_CONFIG_FEATURE_VI_SEARCH
depends on USE_GLIBC
help
@@ -218,6 +226,14 @@ config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX
Unless you want more (or less) frequent "undo points" while typing,
you should probably leave this unchanged.
+config BUSYBOX_CONFIG_FEATURE_VI_VERBOSE_STATUS
+ bool "Enable verbose status reporting"
+ default BUSYBOX_DEFAULT_FEATURE_VI_VERBOSE_STATUS
+ depends on BUSYBOX_CONFIG_VI
+ help
+ Enable more verbose reporting of the results of yank, change,
+ delete, undo and substitution commands.
+
config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
bool "Allow vi and awk to execute shell commands"
default BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
diff --git a/package/utils/busybox/config/findutils/Config.in b/package/utils/busybox/config/findutils/Config.in
index 89901ca59d0..805d44f149e 100644
--- a/package/utils/busybox/config/findutils/Config.in
+++ b/package/utils/busybox/config/findutils/Config.in
@@ -23,21 +23,53 @@ config BUSYBOX_CONFIG_FEATURE_FIND_PRINT0
interpreted by other programs.
config BUSYBOX_CONFIG_FEATURE_FIND_MTIME
- bool "Enable -mtime: modified time matching"
+ bool "Enable -mtime: modification time matching"
default BUSYBOX_DEFAULT_FEATURE_FIND_MTIME
depends on BUSYBOX_CONFIG_FIND
help
Allow searching based on the modification time of
files, in days.
+config BUSYBOX_CONFIG_FEATURE_FIND_ATIME
+ bool "Enable -atime: access time matching"
+ default BUSYBOX_DEFAULT_FEATURE_FIND_ATIME
+ depends on BUSYBOX_CONFIG_FEATURE_FIND_MTIME
+ help
+ Allow searching based on the access time of
+ files, in days.
+
+config BUSYBOX_CONFIG_FEATURE_FIND_CTIME
+ bool "Enable -ctime: status change timestamp matching"
+ default BUSYBOX_DEFAULT_FEATURE_FIND_CTIME
+ depends on BUSYBOX_CONFIG_FEATURE_FIND_MTIME
+ help
+ Allow searching based on the status change timestamp of
+ files, in days.
+
config BUSYBOX_CONFIG_FEATURE_FIND_MMIN
- bool "Enable -mmin: modified time matching by minutes"
+ bool "Enable -mmin: modification time matching by minutes"
default BUSYBOX_DEFAULT_FEATURE_FIND_MMIN
depends on BUSYBOX_CONFIG_FIND
help
Allow searching based on the modification time of
files, in minutes.
+config BUSYBOX_CONFIG_FEATURE_FIND_AMIN
+ bool "Enable -amin: access time matching by minutes"
+ default BUSYBOX_DEFAULT_FEATURE_FIND_AMIN
+ depends on BUSYBOX_CONFIG_FEATURE_FIND_MMIN
+ help
+ Allow searching based on the access time of
+ files, in minutes.
+
+config BUSYBOX_CONFIG_FEATURE_FIND_CMIN
+ bool "Enable -cmin: status change timestamp matching by minutes"
+ default BUSYBOX_DEFAULT_FEATURE_FIND_CMIN
+ depends on BUSYBOX_CONFIG_FEATURE_FIND_MMIN
+ help
+ Allow searching based on the status change timestamp of
+ files, in minutes.
+
config BUSYBOX_CONFIG_FEATURE_FIND_PERM
bool "Enable -perm: permissions matching"
default BUSYBOX_DEFAULT_FEATURE_FIND_PERM
@@ -79,6 +111,13 @@ config BUSYBOX_CONFIG_FEATURE_FIND_INUM
default BUSYBOX_DEFAULT_FEATURE_FIND_INUM
depends on BUSYBOX_CONFIG_FIND
+config BUSYBOX_CONFIG_FEATURE_FIND_SAMEFILE
+ bool "Enable -samefile: reference file matching"
+ default BUSYBOX_DEFAULT_FEATURE_FIND_SAMEFILE
+ depends on BUSYBOX_CONFIG_FIND
+ help
+ Support the 'find -samefile' option for searching by a reference file.
+
config BUSYBOX_CONFIG_FEATURE_FIND_EXEC
bool "Enable -exec: execute commands"
default BUSYBOX_DEFAULT_FEATURE_FIND_EXEC
diff --git a/package/utils/busybox/config/klibc-utils/Config.in b/package/utils/busybox/config/klibc-utils/Config.in
index 408c9f695d4..06b9681bc92 100644
--- a/package/utils/busybox/config/klibc-utils/Config.in
+++ b/package/utils/busybox/config/klibc-utils/Config.in
@@ -13,7 +13,7 @@ config BUSYBOX_CONFIG_MINIPS
Alias to "ps".
config BUSYBOX_CONFIG_NUKE
bool "nuke (2.9 kb)"
- default BUSYBOX_DEFAULT_NUKE
+ default BUSYBOX_DEFAULT_NUKE # off by default: too "accidentally destructive"
help
Alias to "rm -rf".
config BUSYBOX_CONFIG_RESUME
diff --git a/package/utils/busybox/config/libbb/Config.in b/package/utils/busybox/config/libbb/Config.in
index 906649c5c9a..b3a83b9b085 100644
--- a/package/utils/busybox/config/libbb/Config.in
+++ b/package/utils/busybox/config/libbb/Config.in
@@ -98,51 +98,118 @@ config BUSYBOX_CONFIG_MD5_SMALL
default BUSYBOX_DEFAULT_MD5_SMALL # all "fast or small" options default to small
range 0 3
help
- Trade binary size versus speed for the md5sum algorithm.
+ Trade binary size versus speed for the md5 algorithm.
Approximate values running uClibc and hashing
linux-2.4.4.tar.bz2 were:
- value user times (sec) text size (386)
- 0 (fastest) 1.1 6144
- 1 1.4 5392
- 2 3.0 5088
- 3 (smallest) 5.1 4912
+ value user times (sec) text size (386)
+ 0 (fastest) 1.1 6144
+ 1 1.4 5392
+ 2 3.0 5088
+ 3 (smallest) 5.1 4912
+
+config BUSYBOX_CONFIG_SHA1_SMALL
+ int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+ default BUSYBOX_DEFAULT_SHA1_SMALL # all "fast or small" options default to small
+ range 0 3
+ help
+ Trade binary size versus speed for the sha1 algorithm.
+ With FEATURE_COPYBUF_KB=64:
+ throughput MB/s size of sha1_process_block64
+ value 486 x86-64 486 x86-64
+ 0 440 485 3481 3502
+ 1 265 265 641 696
+ 2,3 220 210 342 364
+
+config BUSYBOX_CONFIG_SHA1_HWACCEL
+ bool "SHA1: Use hardware accelerated instructions if possible"
+ default BUSYBOX_DEFAULT_SHA1_HWACCEL
+ help
+ On x86, this adds ~590 bytes of code. Throughput
+ is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_CONFIG_SHA256_HWACCEL
+ bool "SHA256: Use hardware accelerated instructions if possible"
+ default BUSYBOX_DEFAULT_SHA256_HWACCEL
+ help
+ On x86, this adds ~1k bytes of code.
config BUSYBOX_CONFIG_SHA3_SMALL
int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
default BUSYBOX_DEFAULT_SHA3_SMALL # all "fast or small" options default to small
range 0 1
help
- Trade binary size versus speed for the sha3sum algorithm.
+ Trade binary size versus speed for the sha3 algorithm.
SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
64-bit x86: +270 bytes of code, 45% faster
32-bit x86: +450 bytes of code, 75% faster
-config BUSYBOX_CONFIG_FEATURE_FAST_TOP
- bool "Faster /proc scanning code (+100 bytes)"
- default BUSYBOX_DEFAULT_FEATURE_FAST_TOP # all "fast or small" options default to small
+config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
+ bool "Non-POSIX, but safer, copying to special nodes"
+ default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
+ help
+ With this option, "cp file symlink" will delete symlink
+ and create a regular file. This does not conform to POSIX,
+ but prevents a symlink attack.
+ Similarly, "cp file device" will not send file's data
+ to the device. (To do that, use "cat file >device")
+
+config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
+ bool "Give more precise messages when copy fails (cp, mv etc)"
+ default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
+ help
+ Error messages with this feature enabled:
+
+ $ cp file /does_not_exist/file
+ cp: cannot create '/does_not_exist/file': Path does not exist
+ $ cp file /vmlinuz/file
+ cp: cannot stat '/vmlinuz/file': Path has non-directory component
+
+ If this feature is not enabled, they will be, respectively:
+
+ cp: cannot create '/does_not_exist/file': No such file or directory
+ cp: cannot stat '/vmlinuz/file': Not a directory
+
+ This will cost you ~60 bytes.
+
+config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
+ bool "Use sendfile system call"
+ default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
+ help
+ When enabled, busybox will use the kernel sendfile() function
+ instead of read/write loops to copy data between file descriptors
+ (for example, cp command does this a lot).
+ If sendfile() doesn't work, copying code falls back to read/write
+ loop. sendfile() was originally implemented for faster I/O
+ from files to sockets, but since Linux 2.6.33 it was extended
+ to work for many more file types.
+
+config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
+ int "Copy buffer size, in kilobytes"
+ range 1 1024
+ default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
help
- This option makes top and ps ~20% faster (or 20% less CPU hungry),
- but code size is slightly bigger.
+ Size of buffer used by cp, mv, install, wget etc.
+ Buffers which are 4 kb or less will be allocated on stack.
+ Bigger buffers will be allocated with mmap, with fallback to 4 kb
+ stack buffer if mmap fails.
-config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
- bool "Support /etc/networks"
- default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
+config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
+ bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
+ default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
help
- Enable support for network names in /etc/networks. This is
- a rarely used feature which allows you to use names
- instead of IP/mask pairs in route command.
+ Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
+ time intervals (time, ping, traceroute etc need this).
+ Probably requires Linux 2.6+. If not selected, gettimeofday
+ will be used instead (which gives wrong results if date/time
+ is reset).
-config BUSYBOX_CONFIG_FEATURE_ETC_SERVICES
- bool "Consult /etc/services even for well-known ports"
- default BUSYBOX_DEFAULT_FEATURE_ETC_SERVICES
+config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
+ bool "Use ioctl names rather than hex values in error messages"
+ default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
help
- Look up e.g. "telnet" and "http" in /etc/services file
- instead of assuming ports 23 and 80.
- This is almost never necessary (everybody uses standard ports),
- and it makes sense to avoid reading this file.
- If you disable this option, in the cases where port is explicitly
- specified as a service name (e.g. "telnet HOST PORTNAME"),
- it will still be looked up in /etc/services.
+ Use ioctl names rather than hex values in error messages
+ (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
+ saves about 1400 bytes.
config BUSYBOX_CONFIG_FEATURE_EDITING
bool "Command line editing"
@@ -359,95 +426,24 @@ config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
at shell prompt will list file named 0xff (single char name
with char value 255), not file named '?'.
-config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
- bool "Non-POSIX, but safer, copying to special nodes"
- default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
- help
- With this option, "cp file symlink" will delete symlink
- and create a regular file. This does not conform to POSIX,
- but prevents a symlink attack.
- Similarly, "cp file device" will not send file's data
- to the device. (To do that, use "cat file >device")
-
-config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
- bool "Give more precise messages when copy fails (cp, mv etc)"
- default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
- help
- Error messages with this feature enabled:
-
- $ cp file /does_not_exist/file
- cp: cannot create '/does_not_exist/file': Path does not exist
- $ cp file /vmlinuz/file
- cp: cannot stat '/vmlinuz/file': Path has non-directory component
-
- If this feature is not enabled, they will be, respectively:
-
- cp: cannot create '/does_not_exist/file': No such file or directory
- cp: cannot stat '/vmlinuz/file': Not a directory
-
- This will cost you ~60 bytes.
-
-config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
- bool "Use sendfile system call"
- default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
- help
- When enabled, busybox will use the kernel sendfile() function
- instead of read/write loops to copy data between file descriptors
- (for example, cp command does this a lot).
- If sendfile() doesn't work, copying code falls back to read/write
- loop. sendfile() was originally implemented for faster I/O
- from files to sockets, but since Linux 2.6.33 it was extended
- to work for many more file types.
-
-config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
- int "Copy buffer size, in kilobytes"
- range 1 1024
- default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
- help
- Size of buffer used by cp, mv, install, wget etc.
- Buffers which are 4 kb or less will be allocated on stack.
- Bigger buffers will be allocated with mmap, with fallback to 4 kb
- stack buffer if mmap fails.
-
-config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
- bool "Skip rootfs in mount table"
- default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
+choice
+ prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+ default BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
help
- Ignore rootfs entry in mount table.
-
- In Linux, kernel has a special filesystem, rootfs, which is initially
- mounted on /. It contains initramfs data, if kernel is configured
- to have one. Usually, another file system is mounted over / early
- in boot process, and therefore most tools which manipulate
- mount table, such as df, will skip rootfs entry.
+ LOOP_CONFIGURE is added to Linux 5.8
+ https://lwn.net/Articles/820408/
+ This allows userspace to completely setup a loop device with a single
+ ioctl, removing the in-between state where the device can be partially
+ configured - eg the loop device has a backing file associated with it,
+ but is reading from the wrong offset.
- However, some systems do not mount anything on /.
- If you need to configure busybox for one of these systems,
- you may find it useful to turn this option off to make df show
- initramfs statistics.
+config BUSYBOX_CONFIG_LOOP_CONFIGURE
+ bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
- Otherwise, choose Y.
-
-config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
- bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
- default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
- help
- Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
- time intervals (time, ping, traceroute etc need this).
- Probably requires Linux 2.6+. If not selected, gettimeofday
- will be used instead (which gives wrong results if date/time
- is reset).
+config BUSYBOX_CONFIG_NO_LOOP_CONFIGURE
+ bool "use LOOP_SET_FD + LOOP_SET_STATUS"
-config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
- bool "Use ioctl names rather than hex values in error messages"
- default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
- help
- Use ioctl names rather than hex values in error messages
- (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
- saves about 1400 bytes.
+config BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
+ bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
-config BUSYBOX_CONFIG_FEATURE_HWIB
- bool "Support infiniband HW"
- default BUSYBOX_DEFAULT_FEATURE_HWIB
- help
- Support for printing infiniband addresses in network applets.
+endchoice
diff --git a/package/utils/busybox/config/mailutils/Config.in b/package/utils/busybox/config/mailutils/Config.in
index a8632471a86..ea7ae6d6495 100644
--- a/package/utils/busybox/config/mailutils/Config.in
+++ b/package/utils/busybox/config/mailutils/Config.in
@@ -1,6 +1,13 @@
# DO NOT EDIT. This file is generated from Config.src
menu "Mail Utilities"
+config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET
+ string "Default charset"
+ default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
+ depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL
+ help
+ Default charset of the message.
+
config BUSYBOX_CONFIG_MAKEMIME
bool "makemime (5.4 kb)"
default BUSYBOX_DEFAULT_MAKEMIME
@@ -41,11 +48,4 @@ config BUSYBOX_CONFIG_SENDMAIL
help
Barebones sendmail.
-config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET
- string "Default charset"
- default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
- depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL
- help
- Default charset of the message.
-
endmenu
diff --git a/package/utils/busybox/config/miscutils/Config.in b/package/utils/busybox/config/miscutils/Config.in
index f3b29787d1d..e15e318fe07 100644
--- a/package/utils/busybox/config/miscutils/Config.in
+++ b/package/utils/busybox/config/miscutils/Config.in
@@ -12,6 +12,12 @@ config BUSYBOX_CONFIG_ADJTIMEX
help
Adjtimex reads and optionally sets adjustment parameters for
the Linux clock adjustment algorithm.
+config BUSYBOX_CONFIG_ASCII
+ bool "ascii"
+ default BUSYBOX_DEFAULT_ASCII
+ help
+ Print ascii table.
+
config BUSYBOX_CONFIG_BBCONFIG
bool "bbconfig (9.7 kb)"
default BUSYBOX_DEFAULT_BBCONFIG
@@ -698,6 +704,13 @@ config BUSYBOX_CONFIG_RX
default BUSYBOX_DEFAULT_RX
help
Receive files using the Xmodem protocol.
+config BUSYBOX_CONFIG_SEEDRNG
+ bool "seedrng (1.3 kb)"
+ default BUSYBOX_DEFAULT_SEEDRNG
+ help
+ Seed the kernel RNG from seed files, meant to be called
+ once during startup, once during shutdown, and optionally
+ at some periodic interval in between.
config BUSYBOX_CONFIG_SETFATTR
bool "setfattr (3.7 kb)"
default BUSYBOX_DEFAULT_SETFATTR
@@ -721,6 +734,11 @@ config BUSYBOX_CONFIG_TIME
The time command runs the specified program with the given arguments.
When the command finishes, time writes a message to standard output
giving timing statistics about this program run.
+config BUSYBOX_CONFIG_TREE
+ bool "tree (0.6 kb)"
+ default BUSYBOX_DEFAULT_TREE
+ help
+ List files and directories in a tree structure.
config BUSYBOX_CONFIG_TS
bool "ts (450 bytes)"
default BUSYBOX_DEFAULT_TS
@@ -788,4 +806,19 @@ config BUSYBOX_CONFIG_WATCHDOG
certain amount of time, the watchdog device assumes the system has
hung, and will cause the hardware to reboot.
+config BUSYBOX_CONFIG_FEATURE_WATCHDOG_OPEN_TWICE
+ bool "Open watchdog device twice, closing it gracefully in between"
+ depends on BUSYBOX_CONFIG_WATCHDOG
+ default BUSYBOX_DEFAULT_FEATURE_WATCHDOG_OPEN_TWICE # this behavior was essentially a hack for a broken driver
+ help
+ When enabled, the watchdog device is opened and then immediately
+ magic-closed, before being opened a second time. This may be necessary
+ for some watchdog devices, but can cause spurious warnings in the
+ kernel log if the nowayout feature is enabled. If this workaround
+ is really needed for you machine to work properly, consider whether
+ it should be fixed in the kernel driver instead. Even when disabled,
+ the behaviour is easily emulated with a "printf 'V' > /dev/watchdog"
+ immediately before starting the busybox watchdog daemon. Say n unless
+ you know that you absolutely need this.
+
endmenu
diff --git a/package/utils/busybox/config/networking/Config.in b/package/utils/busybox/config/networking/Config.in
index 3e1c4c4c04b..861e4f9bbfa 100644
--- a/package/utils/busybox/config/networking/Config.in
+++ b/package/utils/busybox/config/networking/Config.in
@@ -47,6 +47,32 @@ config BUSYBOX_CONFIG_VERBOSE_RESOLUTION_ERRORS
"can't resolve 'hostname.com'" and want to know more.
This may increase size of your executable a bit.
+config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
+ bool "Support /etc/networks"
+ default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
+ help
+ Enable support for network names in /etc/networks. This is
+ a rarely used feature which allows you to use names
+ instead of IP/mask pairs in route command.
+
+config BUSYBOX_CONFIG_FEATURE_ETC_SERVICES
+ bool "Consult /etc/services even for well-known ports"
+ default BUSYBOX_DEFAULT_FEATURE_ETC_SERVICES
+ help
+ Look up e.g. "telnet" and "http" in /etc/services file
+ instead of assuming ports 23 and 80.
+ This is almost never necessary (everybody uses standard ports),
+ and it makes sense to avoid reading this file.
+ If you disable this option, in the cases where port is explicitly
+ specified as a service name (e.g. "telnet HOST PORTNAME"),
+ it will still be looked up in /etc/services.
+
+config BUSYBOX_CONFIG_FEATURE_HWIB
+ bool "Support infiniband HW"
+ default BUSYBOX_DEFAULT_FEATURE_HWIB
+ help
+ Support for printing infiniband addresses in network applets.
+
config BUSYBOX_CONFIG_FEATURE_TLS_SHA1
bool "In TLS code, support ciphers which use deprecated SHA1"
depends on BUSYBOX_CONFIG_TLS
@@ -173,6 +199,12 @@ config BUSYBOX_CONFIG_HTTPD
help
HTTP server.
+config BUSYBOX_CONFIG_FEATURE_HTTPD_PORT_DEFAULT
+ int "Default port"
+ default BUSYBOX_DEFAULT_FEATURE_HTTPD_PORT_DEFAULT
+ range 1 65535
+ depends on BUSYBOX_CONFIG_HTTPD
+
config BUSYBOX_CONFIG_FEATURE_HTTPD_RANGES
bool "Support 'Ranges:' header"
default BUSYBOX_DEFAULT_FEATURE_HTTPD_RANGES
@@ -774,7 +806,6 @@ config BUSYBOX_CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_NSLOOKUP_LONG_OPTIONS
depends on BUSYBOX_CONFIG_FEATURE_NSLOOKUP_BIG && BUSYBOX_CONFIG_LONG_OPTS
-
config BUSYBOX_CONFIG_NTPD
bool "ntpd (22 kb)"
default BUSYBOX_DEFAULT_NTPD
@@ -945,6 +976,12 @@ config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
help
Selecting this will make telnetd able to run standalone.
+config BUSYBOX_CONFIG_FEATURE_TELNETD_PORT_DEFAULT
+ int "Default port"
+ default BUSYBOX_DEFAULT_FEATURE_TELNETD_PORT_DEFAULT
+ range 1 65535
+ depends on BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
+
config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD_WAIT
bool "Support -w SEC option (inetd wait mode)"
default BUSYBOX_DEFAULT_FEATURE_TELNETD_INETD_WAIT
@@ -1092,6 +1129,13 @@ config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR
default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
depends on BUSYBOX_CONFIG_WGET
+config BUSYBOX_CONFIG_FEATURE_WGET_FTP
+ bool "Enable FTP protocol (+1k)"
+ default BUSYBOX_DEFAULT_FEATURE_WGET_FTP
+ depends on BUSYBOX_CONFIG_WGET
+ help
+ To support FTPS, enable FEATURE_WGET_HTTPS as well.
+
config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
bool "Enable HTTP authentication"
default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
@@ -1120,6 +1164,7 @@ config BUSYBOX_CONFIG_FEATURE_WGET_HTTPS
select BUSYBOX_CONFIG_TLS
help
wget will use internal TLS code to connect to https:// URLs.
+ It also enables FTPS support, but it's not well tested yet.
Note:
On NOMMU machines, ssl_helper applet should be available
in the $PATH for this to work. Make sure to select that applet.
diff --git a/package/utils/busybox/config/networking/udhcp/Config.in b/package/utils/busybox/config/networking/udhcp/Config.in
index 9bede614991..6757f1efc9c 100644
--- a/package/utils/busybox/config/networking/udhcp/Config.in
+++ b/package/utils/busybox/config/networking/udhcp/Config.in
@@ -93,12 +93,17 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC_SANITIZEOPT
config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
string "Absolute path to config script"
default BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT
- depends on BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6
+ depends on BUSYBOX_CONFIG_UDHCPC
help
This script is called after udhcpc receives an answer. See
examples/udhcp for a working example. Normally it is safe
to leave this untouched.
+config BUSYBOX_CONFIG_UDHCPC6_DEFAULT_SCRIPT
+ string "Absolute path to config script for IPv6"
+ default BUSYBOX_DEFAULT_UDHCPC6_DEFAULT_SCRIPT
+ depends on BUSYBOX_CONFIG_UDHCPC6
+
# udhcpc6 config is inserted here:
config BUSYBOX_CONFIG_UDHCPC6
bool "udhcpc6 (21 kb)"
@@ -142,6 +147,14 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC6_RFC5970
comment "Common options for DHCP applets"
depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6 || BUSYBOX_CONFIG_DHCPRELAY
+config BUSYBOX_CONFIG_UDHCPC_DEFAULT_INTERFACE
+ string "Default interface name"
+ default BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE
+ depends on BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6
+ help
+ The interface that will be used if no other interface is
+ specified on the commandline.
+
config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
bool "Enable '-P port' option for udhcpd and udhcpc"
default BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
diff --git a/package/utils/busybox/config/procps/Config.in b/package/utils/busybox/config/procps/Config.in
index e6c32712540..0501daf8fd2 100644
--- a/package/utils/busybox/config/procps/Config.in
+++ b/package/utils/busybox/config/procps/Config.in
@@ -6,6 +6,21 @@
menu "Process Utilities"
+config BUSYBOX_CONFIG_FEATURE_FAST_TOP
+ bool "Faster /proc scanning code (+100 bytes)"
+ default BUSYBOX_DEFAULT_FEATURE_FAST_TOP # all "fast or small" options default to small
+ help
+ This option makes top and ps ~20% faster (or 20% less CPU hungry),
+ but code size is slightly bigger.
+
+config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
+ bool "Support thread display in ps/pstree/top"
+ default BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
+ depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_PSTREE
+ help
+ Enables the ps -T option, showing of threads in pstree,
+ and 'h' command in top.
+
config BUSYBOX_CONFIG_FREE
bool "free (3.1 kb)"
default BUSYBOX_DEFAULT_FREE
@@ -259,12 +274,4 @@ config BUSYBOX_CONFIG_WATCH
watch is used to execute a program periodically, showing
output to the screen.
-config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
- bool "Support thread display in ps/pstree/top"
- default BUSYBOX_DEFAULT_FEATURE_SHOW_THREADS
- depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_PSTREE
- help
- Enables the ps -T option, showing of threads in pstree,
- and 'h' command in top.
-
endmenu
diff --git a/package/utils/busybox/config/shell/Config.in b/package/utils/busybox/config/shell/Config.in
index cb43bcd84c8..a68e9114ef7 100644
--- a/package/utils/busybox/config/shell/Config.in
+++ b/package/utils/busybox/config/shell/Config.in
@@ -201,6 +201,11 @@ config BUSYBOX_CONFIG_ASH_TEST
default BUSYBOX_DEFAULT_ASH_TEST
depends on BUSYBOX_CONFIG_SHELL_ASH
+config BUSYBOX_CONFIG_ASH_SLEEP
+ bool "sleep builtin"
+ default BUSYBOX_DEFAULT_ASH_SLEEP
+ depends on BUSYBOX_CONFIG_SHELL_ASH
+
config BUSYBOX_CONFIG_ASH_HELP
bool "help builtin"
default BUSYBOX_DEFAULT_ASH_HELP
@@ -299,11 +304,6 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
help
Enable {abc,def} extension.
-config BUSYBOX_CONFIG_HUSH_LINENO_VAR
- bool "$LINENO variable"
- default BUSYBOX_DEFAULT_HUSH_LINENO_VAR
- depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
-
config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
bool "'source' and '.' builtins search current directory after $PATH"
default BUSYBOX_DEFAULT_HUSH_BASH_SOURCE_CURDIR # do not encourage non-standard behavior
@@ -311,6 +311,11 @@ config BUSYBOX_CONFIG_HUSH_BASH_SOURCE_CURDIR
help
This is not compliant with standards. Avoid if possible.
+config BUSYBOX_CONFIG_HUSH_LINENO_VAR
+ bool "$LINENO variable (bashism)"
+ default BUSYBOX_DEFAULT_HUSH_LINENO_VAR
+ depends on BUSYBOX_CONFIG_SHELL_HUSH
+
config BUSYBOX_CONFIG_HUSH_INTERACTIVE
bool "Interactive mode"
default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
diff --git a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
index 2e67009224f..c0f234ee421 100644
--- a/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
+++ b/package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
@@ -1,18 +1,18 @@
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -712,6 +712,7 @@ static int bcast_or_ucast(struct dhcp_pa
- static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
+@@ -722,6 +722,7 @@ static int bcast_or_ucast(struct dhcp_pa
+ static NOINLINE int send_discover(uint32_t requested)
{
struct dhcp_packet packet;
+ static int msgs = 0;
/* Fill in: op, htype, hlen, cookie, chaddr fields,
- * random xid field (we override it below),
-@@ -729,6 +730,7 @@ static NOINLINE int send_discover(uint32
+ * xid field, message type option:
+@@ -736,6 +737,7 @@ static NOINLINE int send_discover(uint32
*/
add_client_options(&packet);
+ if (msgs++ < 3)
- bb_info_msg("sending %s", "discover");
+ bb_simple_info_msg("broadcasting discover");
return raw_bcast_from_client_data_ifindex(&packet, INADDR_ANY);
}
diff --git a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
index 875f2ce5fc4..a4bda992c42 100644
--- a/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
+++ b/package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
@@ -1,8 +1,8 @@
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -1415,6 +1415,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
- /* silence "uninitialized!" warning */
- unsigned timestamp_before_wait = timestamp_before_wait;
+@@ -1384,6 +1384,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+ struct pollfd pfds[2];
+ struct dhcp_packet packet;
+ /* When running on a bridge, the ifindex may have changed (e.g. if
+ * member interfaces were added/removed or if the status of the
diff --git a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch b/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
deleted file mode 100644
index 88a98c0a1c8..00000000000
--- a/package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/networking/udhcp/dhcpc.c
-+++ b/networking/udhcp/dhcpc.c
-@@ -1125,7 +1125,6 @@ static void perform_renew(void)
- client_data.state = RENEW_REQUESTED;
- break;
- case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
-- udhcp_run_script(NULL, "deconfig");
- case REQUESTING:
- case RELEASED:
- change_listen_mode(LISTEN_RAW);
diff --git a/package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch b/package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch
deleted file mode 100644
index abe8baf54f3..00000000000
--- a/package/utils/busybox/patches/205-udhcpc_allow_zero_length_options.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 7eed119b84b0f7efb7ef351940dd895dc2379eb3 Mon Sep 17 00:00:00 2001
-From: Russell Senior <russell@personaltelco.net>
-Date: Mon, 15 Mar 2021 23:27:58 -0700
-Subject: [PATCH v2] udhcpc: ignore zero-length DHCP options
-
-Discovered that the DHCP server on a TrendNet router (unknown model)
-provides a zero-length option 12 (Host Name) in the DHCP ACK message. This
-has the effect of causing udhcpc to drop the rest of the options, including
-option 51 (IP Address Lease Time), 3 (Router), and 6 (Domain Name Server),
-most importantly leaving the OpenWrt device with no default gateway.
-
-The TrendNet behavior violates RFC 2132, which in Section 3.14 declares that
-option 12 has a miniumum length of 1 octet. It is perhaps not a cosmic coincidence
-that I found this behavior on Pi Day.
-
-This patch allows zero length options without bailing out, by simply skipping them.
-
-v2 changelog:
-* advance the optionptr by two bytes, not one;
-* add a message to warn about the rfc violation;
-
-Signed-off-by: Russell Senior <russell@personaltelco.net>
----
- networking/udhcp/common.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
-index 4bc719001..a16fd85d0 100644
---- a/networking/udhcp/common.c
-+++ b/networking/udhcp/common.c
-@@ -277,8 +277,13 @@ uint8_t* FAST_FUNC udhcp_scan_options(struct dhcp_packet *packet, struct dhcp_sc
- goto complain; /* complain and return NULL */
- len = 2 + scan_state->optionptr[OPT_LEN];
- scan_state->rem -= len;
-- /* So far no valid option with length 0 known. */
-- if (scan_state->rem < 0 || scan_state->optionptr[OPT_LEN] == 0)
-+ /* skip any options with zero length */
-+ if (scan_state->optionptr[OPT_LEN] == 0) {
-+ scan_state->optionptr += 2;
-+ bb_simple_error_msg("warning: zero length DHCP option violates rfc2132, skipping");
-+ continue;
-+ }
-+ if (scan_state->rem < 0)
- goto complain; /* complain and return NULL */
-
- if (scan_state->optionptr[OPT_CODE] == DHCP_OPTION_OVERLOAD) {
---
-2.30.1
-
diff --git a/package/utils/busybox/patches/220-add_lock_util.patch b/package/utils/busybox/patches/220-add_lock_util.patch
index 4e46b74f0e7..579b705f346 100644
--- a/package/utils/busybox/patches/220-add_lock_util.patch
+++ b/package/utils/busybox/patches/220-add_lock_util.patch
@@ -72,9 +72,9 @@
+
+static int do_lock(void)
+{
-+ int pid;
++ pid_t pid;
+ int flags;
-+ char pidstr[8];
++ char pidstr[12];
+
+ if ((fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0700)) < 0) {
+ if ((fd = open(file, O_RDWR)) < 0) {
@@ -109,7 +109,7 @@
+ if (!waitonly) {
+ lseek(fd, 0, SEEK_SET);
+ ftruncate(fd, 0);
-+ sprintf(pidstr, "%d\n", pid);
++ snprintf(pidstr, sizeof(pidstr), "%d\n", pid);
+ write(fd, pidstr, strlen(pidstr));
+ close(fd);
+ }
diff --git a/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch b/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch
index f7cd2322c90..f4c0a809225 100644
--- a/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch
+++ b/package/utils/busybox/patches/301-ip-link-fix-netlink-msg-size.patch
@@ -1,6 +1,6 @@
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
-@@ -652,7 +652,7 @@ static int do_add_or_delete(char **argv,
+@@ -683,7 +683,7 @@ static int do_add_or_delete(char **argv,
}
xrtnl_open(&rth);
ll_init_map(&rth);
diff --git a/package/utils/busybox/patches/530-nslookup-ensure-unique-transaction-IDs-for-the-DNS-queries.patch b/package/utils/busybox/patches/530-nslookup-ensure-unique-transaction-IDs-for-the-DNS-queries.patch
new file mode 100644
index 00000000000..caa5ee78f35
--- /dev/null
+++ b/package/utils/busybox/patches/530-nslookup-ensure-unique-transaction-IDs-for-the-DNS-queries.patch
@@ -0,0 +1,42 @@
+From: Uwe Kleine-König <uwe@kleine-koenig.org>
+Date: Sat, 8 Oct 2022 19:22:52 +0200
+Subject: [PATCH] nslookup: ensure unique transaction IDs for the DNS queries
+
+The transaction IDs generated by res_mkquery() for both glibc and musl only
+depends on the state of the monotonic clock.
+For some machines (here: a TP-Link RE200 powered by a MediaTek MT7620A)
+the monotonic clock has a coarse resolution (here: 20 µs) and it can happen
+that the requests for A and AAAA share the same transaction ID.
+
+In that case the mapping from received responses to the sent queries
+doesn't work and name resolution fails as follows:
+
+ # /bin/busybox nslookup heise.de
+ Server: 127.0.0.1
+ Address: 127.0.0.1:53
+
+ Non-authoritative answer:
+ Name: heise.de
+ Address: 193.99.144.80
+
+ *** Can't find heise.de: No answer
+
+because the AAAA reply is dropped as a duplicate reply to the A query.
+
+To prevent this make sure the transaction IDs are unique.
+
+Forwarded: http://lists.busybox.net/pipermail/busybox/2022-October/089911.html
+---
+--- a/networking/nslookup.c
++++ b/networking/nslookup.c
+@@ -978,6 +978,10 @@ int nslookup_main(int argc UNUSED_PARAM,
+ }
+ }
+
++ /* Ensure the Transaction IDs are unique */
++ for (rc = 1; rc < G.query_count; rc++)
++ G.query[rc].query[1] = G.query[rc - 1].query[1] + 1;
++
+ for (rc = 0; rc < G.serv_count;) {
+ int c;
+
diff --git a/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch b/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch
deleted file mode 100644
index af473622ed2..00000000000
--- a/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 59f773ee81a8945321f4aa20abc5e9577e6483e4 Mon Sep 17 00:00:00 2001
-From: Paul Spooren <mail@aparcar.org>
-Date: Thu, 13 May 2021 11:25:34 +0200
-Subject: [PATCH] use SOURCE_DATE_EPOCH for timestamp if available
-
-The SOURCE_DATE_EPOCH is an effort of the Reproducible Builds
-organization to make timestamps/build dates in compiled tools
-deterministic over several repetitive builds.
-
-Busybox shows by default the build date timestamp which changes whenever
-compiled. To have a reasonable accurate build date while staying
-reproducible, it's possible to use the *date of last source
-modification* rather than the current time and date.
-
-Further information on SOURCE_DATE_EPOCH are available online [1].
-
-This patch modifies `confdata.c` so that the content of the
-SOURCE_DATE_EPOCH env variable is used as timestamp.
-
-To be independent of different timezones between builds, whenever
-SOURCE_DATE_EPOCH is defined the GMT time is used.
-
-[1]: https://reproducible-builds.org/docs/source-date-epoch/
-
-Signed-off-by: Paul Spooren <mail@aparcar.org>
----
- scripts/kconfig/confdata.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
-index b05b96e45..73c25e3a8 100644
---- a/scripts/kconfig/confdata.c
-+++ b/scripts/kconfig/confdata.c
-@@ -342,6 +342,8 @@ int conf_write(const char *name)
- time_t now;
- int use_timestamp = 1;
- char *env;
-+ char *source_date_epoch;
-+ struct tm *build_time;
-
- dirname[0] = 0;
- if (name && name[0]) {
-@@ -378,7 +380,16 @@ int conf_write(const char *name)
- }
- sym = sym_lookup("KERNELVERSION", 0);
- sym_calc_value(sym);
-- time(&now);
-+
-+ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+ if (source_date_epoch && *source_date_epoch) {
-+ now = strtoull(source_date_epoch, NULL, 10);
-+ build_time = gmtime(&now);
-+ } else {
-+ time(&now);
-+ build_time = localtime(&now);
-+ }
-+
- env = getenv("KCONFIG_NOTIMESTAMP");
- if (env && *env)
- use_timestamp = 0;
-@@ -398,14 +409,14 @@ int conf_write(const char *name)
- if (use_timestamp) {
- size_t ret = \
- strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP "
-- "\"%Y-%m-%d %H:%M:%S %Z\"\n", localtime(&now));
-+ "\"%Y-%m-%d %H:%M:%S %Z\"\n", build_time);
- /* if user has Factory timezone or some other odd install, the
- * %Z above will overflow the string leaving us with undefined
- * results ... so let's try again without the timezone.
- */
- if (ret == 0)
- strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP "
-- "\"%Y-%m-%d %H:%M:%S\"\n", localtime(&now));
-+ "\"%Y-%m-%d %H:%M:%S\"\n", build_time);
- } else { /* bbox */
- strcpy(buf, "#define AUTOCONF_TIMESTAMP \"\"\n");
- }
---
-2.30.2
-
diff --git a/package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch b/package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch
deleted file mode 100644
index ac9afa34ef7..00000000000
--- a/package/utils/busybox/patches/540-nslookup-mention-QUERY_TYPE-SRV.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a0136f24f788e8bfc4ab74a647b27e115a25d9fb Mon Sep 17 00:00:00 2001
-From: Paul Spooren <mail@aparcar.org>
-Date: Wed, 19 May 2021 00:55:21 +0200
-Subject: [PATCH] nslookup: mention QUERY_TYPE SRV
-
-SRV lookups are supported since "6b4960155 nslookup: implement support
-for SRV records" and should therefore be mentioned as a possible
-QUERY_TYPE in the help message.
-
-Signed-off-by: Paul Spooren <mail@aparcar.org>
----
- networking/nslookup.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/networking/nslookup.c b/networking/nslookup.c
-index dda22de0e..2ae8d391c 100644
---- a/networking/nslookup.c
-+++ b/networking/nslookup.c
-@@ -25,7 +25,7 @@
- //usage:#define nslookup_full_usage "\n\n"
- //usage: "Query DNS about HOST"
- //usage: IF_FEATURE_NSLOOKUP_BIG("\n")
--//usage: IF_FEATURE_NSLOOKUP_BIG("\nQUERY_TYPE: soa,ns,a,"IF_FEATURE_IPV6("aaaa,")"cname,mx,txt,ptr,any")
-+//usage: IF_FEATURE_NSLOOKUP_BIG("\nQUERY_TYPE: soa,ns,a,"IF_FEATURE_IPV6("aaaa,")"cname,mx,txt,ptr,srv,any")
- //usage:#define nslookup_example_usage
- //usage: "$ nslookup localhost\n"
- //usage: "Server: default\n"
---
-2.30.2
-