diff options
Diffstat (limited to 'package/busybox')
-rw-r--r-- | package/busybox/Config.in.manual | 213 | ||||
-rw-r--r-- | package/busybox/Makefile | 6 | ||||
-rw-r--r-- | package/busybox/config/Config.in | 4 | ||||
-rw-r--r-- | package/busybox/config/archival/Config.in | 14 | ||||
-rw-r--r-- | package/busybox/config/coreutils/Config.in | 121 | ||||
-rw-r--r-- | package/busybox/config/editors/Config.in | 16 | ||||
-rw-r--r-- | package/busybox/config/findutils/Config.in | 43 | ||||
-rw-r--r-- | package/busybox/config/klibc-utils/Config.in | 2 | ||||
-rw-r--r-- | package/busybox/config/libbb/Config.in | 224 | ||||
-rw-r--r-- | package/busybox/config/mailutils/Config.in | 14 | ||||
-rw-r--r-- | package/busybox/config/miscutils/Config.in | 33 | ||||
-rw-r--r-- | package/busybox/config/networking/Config.in | 49 | ||||
-rw-r--r-- | package/busybox/config/networking/udhcp/Config.in | 15 | ||||
-rw-r--r-- | package/busybox/config/procps/Config.in | 23 | ||||
-rw-r--r-- | package/busybox/config/shell/Config.in | 17 | ||||
-rw-r--r-- | package/busybox/files/ntpd.init | 2 | ||||
-rw-r--r-- | package/busybox/patches/002-hwclock-musl.patch | 31 | ||||
-rw-r--r-- | package/busybox/patches/009-disable-Oz.patch | 20 |
18 files changed, 445 insertions, 402 deletions
diff --git a/package/busybox/Config.in.manual b/package/busybox/Config.in.manual index 80554efd4..48c6212e0 100644 --- a/package/busybox/Config.in.manual +++ b/package/busybox/Config.in.manual @@ -10,219 +10,6 @@ config ADK_PACKAGE_BUSYBOX WWW: http://www.busybox.net -choice -prompt "Choose predefined set of applets" -depends on ADK_PACKAGE_BUSYBOX -default ADK_PACKAGE_BUSYBOX_MINIMAL if !ADK_TARGET_WITH_MMU - -config ADK_PACKAGE_BUSYBOX_DEFAULT - bool "activate standard set of applets" - select BUSYBOX_AWK - select BUSYBOX_BASENAME - select BUSYBOX_CLEAR - select BUSYBOX_CMP - select BUSYBOX_CAT - select BUSYBOX_CAL - select BUSYBOX_CHGRP - select BUSYBOX_CHMOD - select BUSYBOX_CHOWN - select BUSYBOX_CHROOT - select BUSYBOX_CP - select BUSYBOX_CUT - select BUSYBOX_DATE - select BUSYBOX_DD - select BUSYBOX_DF - select BUSYBOX_DIFF - select BUSYBOX_DIRNAME - select BUSYBOX_DU - select BUSYBOX_ECHO - select BUSYBOX_EGREP if !BUSYBOX_DISABLE_GREP - select BUSYBOX_ENV - select BUSYBOX_EXPR - select BUSYBOX_FDISK if !BUSYBOX_DISABLE_FDISK - select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND - select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP - select BUSYBOX_GROUPS - select BUSYBOX_GUNZIP - select BUSYBOX_GZIP - select BUSYBOX_HALT - select BUSYBOX_HEAD - select BUSYBOX_ID - select BUSYBOX_INIT if ADK_RUNTIME_INIT_SYSV - select BUSYBOX_LESS if !BUSYBOX_DISABLE_LESS - select BUSYBOX_LN - select BUSYBOX_LOSETUP - select BUSYBOX_LS - select BUSYBOX_MD5SUM - select BUSYBOX_MKDIR - select BUSYBOX_MKFIFO - select BUSYBOX_MKNOD - select BUSYBOX_MKTEMP - select BUSYBOX_MV - select BUSYBOX_NC - select BUSYBOX_PASSWD - select BUSYBOX_PRINTF - select BUSYBOX_PWD - select BUSYBOX_RDATE if !BUSYBOX_DISABLE_RDATE - select BUSYBOX_READLINK - select BUSYBOX_RESET - select BUSYBOX_RFKILL if !BUSYBOX_DISABLE_RFKILL - select BUSYBOX_RM - select BUSYBOX_RMDIR - select BUSYBOX_RUN_PARTS - select BUSYBOX_SED if !BUSYBOX_DISABLE_SED - select BUSYBOX_SEQ - select BUSYBOX_SLEEP - select BUSYBOX_SORT - select BUSYBOX_FEATURE_SORT_BIG - select BUSYBOX_STAT - select BUSYBOX_STRINGS - select BUSYBOX_SU - select BUSYBOX_SYNC - select BUSYBOX_TAIL - select BUSYBOX_FEATURE_FANCY_TAIL - select BUSYBOX_TAR if !BUSYBOX_DISABLE_TAR - select BUSYBOX_TEE - select BUSYBOX_TEST - select BUSYBOX_TIME - select BUSYBOX_TOUCH - select BUSYBOX_TOP - select BUSYBOX_TR - select BUSYBOX_TRUE - select BUSYBOX_UNAME - select BUSYBOX_VI - select BUSYBOX_WC - select BUSYBOX_WHOAMI - select BUSYBOX_WHO - select BUSYBOX_WHICH - select BUSYBOX_XARGS - -config ADK_PACKAGE_BUSYBOX_MINIMAL - bool "activate minimal set of applets" - select BUSYBOX_AWK - select BUSYBOX_BASENAME - select BUSYBOX_CAT - select BUSYBOX_CHGRP - select BUSYBOX_CHMOD - select BUSYBOX_CHOWN - select BUSYBOX_CHROOT - select BUSYBOX_CMP - select BUSYBOX_CP - select BUSYBOX_CUT - select BUSYBOX_DATE - select BUSYBOX_DD - select BUSYBOX_DF - select BUSYBOX_DIRNAME - select BUSYBOX_DIFF - select BUSYBOX_DU - select BUSYBOX_ECHO - select BUSYBOX_ENV - select BUSYBOX_EXPR - select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND - select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP - select BUSYBOX_HALT - select BUSYBOX_HEAD - select BUSYBOX_ID - select BUSYBOX_INIT - select BUSYBOX_LN - select BUSYBOX_LS - select BUSYBOX_MKDIR - select BUSYBOX_MV - select BUSYBOX_PRINTF - select BUSYBOX_PWD - select BUSYBOX_RM - select BUSYBOX_READLINK - select BUSYBOX_RUN_PARTS - select BUSYBOX_SED if !BUSYBOX_DISABLE_SED - select BUSYBOX_SORT - select BUSYBOX_TAIL - select BUSYBOX_FEATURE_FANCY_TAIL - select BUSYBOX_TEE - select BUSYBOX_TEST - select BUSYBOX_TOUCH - select BUSYBOX_TRUE - select BUSYBOX_UNAME - select BUSYBOX_VI - select BUSYBOX_WHICH - select BUSYBOX_WHOAMI - -config ADK_PACKAGE_BUSYBOX_ALL - bool "activate all applets" - select BUSYBOX_AWK - select BUSYBOX_BASENAME - select BUSYBOX_CAL - select BUSYBOX_CAT - select BUSYBOX_CHGRP - select BUSYBOX_CHMOD - select BUSYBOX_CHOWN - select BUSYBOX_CHROOT - select BUSYBOX_CLEAR - select BUSYBOX_CMP - select BUSYBOX_CP - select BUSYBOX_CUT - select BUSYBOX_DATE - select BUSYBOX_DD - select BUSYBOX_DESKTOP - select BUSYBOX_DF - select BUSYBOX_DIFF if !BUSYBOX_DISABLE_DIFF - select BUSYBOX_DIRNAME - select BUSYBOX_DU - select BUSYBOX_ECHO - select BUSYBOX_EGREP if !BUSYBOX_DISABLE_GREP - select BUSYBOX_ENV - select BUSYBOX_EXPR - select BUSYBOX_FDISK if !BUSYBOX_DISABLE_FDISK - select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND - select BUSYBOX_FEATURE_UTMP - select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP - select BUSYBOX_GROUPS - select BUSYBOX_GUNZIP - select BUSYBOX_GZIP - select BUSYBOX_HALT - select BUSYBOX_HEAD - select BUSYBOX_ID - select BUSYBOX_INIT if ADK_RUNTIME_INIT_SYSV - select BUSYBOX_LESS if !BUSYBOX_DISABLE_LESS - select BUSYBOX_LN - select BUSYBOX_LS - select BUSYBOX_MD5SUM - select BUSYBOX_MKDIR - select BUSYBOX_MKFIFO - select BUSYBOX_MKNOD - select BUSYBOX_MKTEMP - select BUSYBOX_MV - select BUSYBOX_PRINTF - select BUSYBOX_PWD - select BUSYBOX_READLINK - select BUSYBOX_RESET - select BUSYBOX_RUN_PARTS - select BUSYBOX_RM - select BUSYBOX_SED if !BUSYBOX_DISABLE_SED - select BUSYBOX_SLEEP - select BUSYBOX_SORT - select BUSYBOX_STAT - select BUSYBOX_STRINGS - select BUSYBOX_SU - select BUSYBOX_SYNC - select BUSYBOX_TAIL - select BUSYBOX_TAR if !BUSYBOX_DISABLE_TAR - select BUSYBOX_TEE - select BUSYBOX_FEATURE_FANCY_TAIL - select BUSYBOX_TRUE - select BUSYBOX_TEST - select BUSYBOX_TIME - select BUSYBOX_TOUCH - select BUSYBOX_TR - select BUSYBOX_UNAME - select BUSYBOX_VI - select BUSYBOX_WC - select BUSYBOX_WHICH - select BUSYBOX_WHO - select BUSYBOX_WHOAMI - select BUSYBOX_XARGS - -endchoice - config ADK_PACKAGE_BUSYBOX_HIDE bool "hide packages provided by busybox applets" depends on ADK_PACKAGE_BUSYBOX diff --git a/package/busybox/Makefile b/package/busybox/Makefile index 5aad49e2f..78b76ead5 100644 --- a/package/busybox/Makefile +++ b/package/busybox/Makefile @@ -4,9 +4,9 @@ include $(ADK_TOPDIR)/rules.mk PKG_NAME:= busybox -PKG_VERSION:= 1.33.0 +PKG_VERSION:= 1.36.1 PKG_RELEASE:= 1 -PKG_HASH:= d568681c91a85edc6710770cebc1e80e042ad74d305b5c2e6d57a5f3de3b8fbd +PKG_HASH:= b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314 PKG_DESCR:= core utilities for embedded systems PKG_SECTION:= base/apps PKG_URL:= http://www.busybox.net/ @@ -69,7 +69,6 @@ do-build: do-install: PATH='$(HOST_PATH)' $(MAKE) ${BB_MAKE_FLAGS} -C ${WRKBUILD} install $(MAKE_TRACE) $(CP) $(WRKINST)/* $(IDIR_BUSYBOX)/ -ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),) ifeq ($(BUSYBOX_IFUP),y) $(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/init.d ifeq ($(ADK_RUNTIME_WAIT_FOR_ETHERNET),y) @@ -78,7 +77,6 @@ else $(INSTALL_BIN) ./files/network $(IDIR_BUSYBOX)/etc/init.d/network endif endif -endif ifeq ($(ADK_DEBUG),y) ${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \ $(IDIR_BUSYBOX)/bin/busybox diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in index 6f19502f4..d5cbed6a5 100644 --- a/package/busybox/config/Config.in +++ b/package/busybox/config/Config.in @@ -371,7 +371,7 @@ config BUSYBOX_STATIC config BUSYBOX_PIE bool "Build position independent executable" - default n + default y if !ADK_TARGET_WITH_MMU && ADK_TARGET_BINFMT_ELF depends on !BUSYBOX_STATIC help Hardened code option. PIE binaries are loaded at a different @@ -382,7 +382,7 @@ config BUSYBOX_PIE config BUSYBOX_NOMMU bool "Force NOMMU build" - default n + default y if !ADK_TARGET_WITH_MMU help Busybox tries to detect whether architecture it is being built against supports MMU or not. If this detection fails, diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in index f2788041a..fe68eeb18 100644 --- a/package/busybox/config/archival/Config.in +++ b/package/busybox/config/archival/Config.in @@ -204,6 +204,20 @@ config BUSYBOX_FEATURE_CPIO_P depends on BUSYBOX_FEATURE_CPIO_O help Passthrough mode. Rarely used. + +config BUSYBOX_FEATURE_CPIO_IGNORE_DEVNO + bool "Support --ignore-devno like GNU cpio" + default y + depends on BUSYBOX_FEATURE_CPIO_O && BUSYBOX_LONG_OPTS + help + Optionally ignore device numbers when creating archives. + +config BUSYBOX_FEATURE_CPIO_RENUMBER_INODES + bool "Support --renumber-inodes like GNU cpio" + default y + depends on BUSYBOX_FEATURE_CPIO_O && BUSYBOX_LONG_OPTS + help + Optionally renumber inodes when creating archives. config BUSYBOX_DPKG bool "dpkg (43 kb)" default y diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in index 6293694de..00d646599 100644 --- a/package/busybox/config/coreutils/Config.in +++ b/package/busybox/config/coreutils/Config.in @@ -6,6 +6,47 @@ menu "Coreutils" +config BUSYBOX_FEATURE_VERBOSE + bool "Support verbose options (usually -v) for various applets" + default y + 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_FEATURE_TIMEZONE + bool "Allow timezone in dates" + default y + depends on BUSYBOX_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_CP || BUSYBOX_MV + +config BUSYBOX_FEATURE_PRESERVE_HARDLINKS + bool "Preserve hard links" + default y + depends on BUSYBOX_CP || BUSYBOX_MV + help + Allow cp and mv to preserve hard links. + +comment "Common options for df, du, ls" + depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS + +config BUSYBOX_FEATURE_HUMAN_READABLE + bool "Support human readable output (example 13k, 23M, 235G)" + default y + depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS + help + Allow df, du, and ls to have human readable output. + config BUSYBOX_BASENAME bool "basename (438 bytes)" default y @@ -63,8 +104,10 @@ config BUSYBOX_CHROOT config BUSYBOX_CKSUM bool "cksum (4.1 kb)" default y - help - cksum is used to calculate the CRC32 checksum of a file. + +config BUSYBOX_CRC32 + bool "crc32 (4.1 kb)" + default y config BUSYBOX_COMM bool "comm (4.2 kb)" default y @@ -95,6 +138,13 @@ config BUSYBOX_CUT help cut is used to print selected parts of lines from each file to stdout. + +config BUSYBOX_FEATURE_CUT_REGEX + bool "cut -F" + default y + depends on BUSYBOX_CUT + help + Allow regex based delimiters. config BUSYBOX_DATE bool "date (7 kb)" default y @@ -191,6 +241,26 @@ config BUSYBOX_FEATURE_DF_FANCY -a Show all filesystems -i Inodes -B <SIZE> Blocksize + +config BUSYBOX_FEATURE_SKIP_ROOTFS + bool "Skip rootfs in mount table" + default y + depends on BUSYBOX_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_DIRNAME bool "dirname (329 bytes)" default y @@ -583,7 +653,7 @@ config BUSYBOX_SORT sort is used to sort lines of text in specified files. config BUSYBOX_FEATURE_SORT_BIG - bool "Full SuSv3 compliant sort (support -ktcbdfiogM)" + bool "Full SuSv3 compliant sort (support -ktcbdfioghM)" default y depends on BUSYBOX_SORT help @@ -739,16 +809,8 @@ config BUSYBOX_TOUCH touch is used to create or change the access and/or modification timestamp of specified files. -config BUSYBOX_FEATURE_TOUCH_NODEREF - bool "Add support for -h" - default y - depends on BUSYBOX_TOUCH - help - Enable touch to have the -h option. - This requires libc support for lutimes() function. - config BUSYBOX_FEATURE_TOUCH_SUSV3 - bool "Add support for SUSV3 features (-d -t -r)" + bool "Add support for SUSV3 features (-a -d -m -t -r)" default y depends on BUSYBOX_TOUCH help @@ -789,6 +851,11 @@ config BUSYBOX_TRUNCATE help truncate truncates files to a given size. If a file does not exist, it is created unless told otherwise. +config BUSYBOX_TSORT + bool "tsort (0.7 kb)" + default y + help + tsort performs a topological sort. config BUSYBOX_TTY bool "tty (3.6 kb)" default y @@ -895,34 +962,4 @@ config BUSYBOX_YES yes is used to repeatedly output a specific string, or the default string 'y'. -comment "Common options" - -config BUSYBOX_FEATURE_VERBOSE - bool "Support verbose options (usually -v) for various applets" - default y - 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_CP || BUSYBOX_MV - -config BUSYBOX_FEATURE_PRESERVE_HARDLINKS - bool "Preserve hard links" - default y - depends on BUSYBOX_CP || BUSYBOX_MV - help - Allow cp and mv to preserve hard links. - -comment "Common options for df, du, ls" - depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS - -config BUSYBOX_FEATURE_HUMAN_READABLE - bool "Support human readable output (example 13k, 23M, 235G)" - default y - depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS - help - Allow df, du, and ls to have human readable output. - endmenu diff --git a/package/busybox/config/editors/Config.in b/package/busybox/config/editors/Config.in index 3e48e371d..2858f60d1 100644 --- a/package/busybox/config/editors/Config.in +++ b/package/busybox/config/editors/Config.in @@ -110,6 +110,14 @@ config BUSYBOX_FEATURE_VI_COLON Enable a limited set of colon commands. This does not provide an "ex" mode. +config BUSYBOX_FEATURE_VI_COLON_EXPAND + bool "Expand \"%\" and \"#\" in colon commands" + default y + depends on BUSYBOX_FEATURE_VI_COLON + help + Expand the special characters \"%\" (current filename) + and \"#\" (alternate filename) in colon commands. + config BUSYBOX_FEATURE_VI_YANKMARK bool "Enable yank/put commands and mark cmds" default y @@ -217,6 +225,14 @@ config BUSYBOX_FEATURE_VI_UNDO_QUEUE_MAX Unless you want more (or less) frequent "undo points" while typing, you should probably leave this unchanged. +config BUSYBOX_FEATURE_VI_VERBOSE_STATUS + bool "Enable verbose status reporting" + default y + depends on BUSYBOX_VI + help + Enable more verbose reporting of the results of yank, change, + delete, undo and substitution commands. + config BUSYBOX_FEATURE_ALLOW_EXEC bool "Allow vi and awk to execute shell commands" default y diff --git a/package/busybox/config/findutils/Config.in b/package/busybox/config/findutils/Config.in index 8a81483e2..d4aa403a5 100644 --- a/package/busybox/config/findutils/Config.in +++ b/package/busybox/config/findutils/Config.in @@ -23,21 +23,53 @@ config BUSYBOX_FEATURE_FIND_PRINT0 interpreted by other programs. config BUSYBOX_FEATURE_FIND_MTIME - bool "Enable -mtime: modified time matching" + bool "Enable -mtime: modification time matching" default y depends on BUSYBOX_FIND help Allow searching based on the modification time of files, in days. +config BUSYBOX_FEATURE_FIND_ATIME + bool "Enable -atime: access time matching" + default y + depends on BUSYBOX_FEATURE_FIND_MTIME + help + Allow searching based on the access time of + files, in days. + +config BUSYBOX_FEATURE_FIND_CTIME + bool "Enable -ctime: status change timestamp matching" + default y + depends on BUSYBOX_FEATURE_FIND_MTIME + help + Allow searching based on the status change timestamp of + files, in days. + config BUSYBOX_FEATURE_FIND_MMIN - bool "Enable -mmin: modified time matching by minutes" + bool "Enable -mmin: modification time matching by minutes" default y depends on BUSYBOX_FIND help Allow searching based on the modification time of files, in minutes. +config BUSYBOX_FEATURE_FIND_AMIN + bool "Enable -amin: access time matching by minutes" + default y + depends on BUSYBOX_FEATURE_FIND_MMIN + help + Allow searching based on the access time of + files, in minutes. + +config BUSYBOX_FEATURE_FIND_CMIN + bool "Enable -cmin: status change timestamp matching by minutes" + default y + depends on BUSYBOX_FEATURE_FIND_MMIN + help + Allow searching based on the status change timestamp of + files, in minutes. + config BUSYBOX_FEATURE_FIND_PERM bool "Enable -perm: permissions matching" default y @@ -79,6 +111,13 @@ config BUSYBOX_FEATURE_FIND_INUM default y depends on BUSYBOX_FIND +config BUSYBOX_FEATURE_FIND_SAMEFILE + bool "Enable -samefile: reference file matching" + default y + depends on BUSYBOX_FIND + help + Support the 'find -samefile' option for searching by a reference file. + config BUSYBOX_FEATURE_FIND_EXEC bool "Enable -exec: execute commands" default y diff --git a/package/busybox/config/klibc-utils/Config.in b/package/busybox/config/klibc-utils/Config.in index fdaddc397..f2ff057fb 100644 --- a/package/busybox/config/klibc-utils/Config.in +++ b/package/busybox/config/klibc-utils/Config.in @@ -13,7 +13,7 @@ config BUSYBOX_MINIPS Alias to "ps". config BUSYBOX_NUKE bool "nuke (2.9 kb)" - default y + default n # off by default: too "accidentally destructive" help Alias to "rm -rf". config BUSYBOX_RESUME diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in index 1dd61c62e..66c135ec6 100644 --- a/package/busybox/config/libbb/Config.in +++ b/package/busybox/config/libbb/Config.in @@ -98,51 +98,118 @@ config BUSYBOX_MD5_SMALL default 1 # 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_SHA1_SMALL + int "SHA1: Trade bytes for speed (0:fast, 3:slow)" + default 3 # 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_SHA1_HWACCEL + bool "SHA1: Use hardware accelerated instructions if possible" + default y + help + On x86, this adds ~590 bytes of code. Throughput + is about twice as fast as fully-unrolled generic code. + +config BUSYBOX_SHA256_HWACCEL + bool "SHA256: Use hardware accelerated instructions if possible" + default y + help + On x86, this adds ~1k bytes of code. config BUSYBOX_SHA3_SMALL int "SHA3: Trade bytes for speed (0:fast, 1:slow)" default 1 # 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_FEATURE_FAST_TOP - bool "Faster /proc scanning code (+100 bytes)" - default n # all "fast or small" options default to small +config BUSYBOX_FEATURE_NON_POSIX_CP + bool "Non-POSIX, but safer, copying to special nodes" + default y help - This option makes top and ps ~20% faster (or 20% less CPU hungry), - but code size is slightly bigger. + 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_FEATURE_ETC_NETWORKS - bool "Support /etc/networks" +config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE + bool "Give more precise messages when copy fails (cp, mv etc)" default n 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. + Error messages with this feature enabled: -config BUSYBOX_FEATURE_ETC_SERVICES - bool "Consult /etc/services even for well-known ports" - default n + $ 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_FEATURE_USE_SENDFILE + bool "Use sendfile system call" + default y + 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_FEATURE_COPYBUF_KB + int "Copy buffer size, in kilobytes" + range 1 1024 + default 4 + 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_MONOTONIC_SYSCALL + bool "Use clock_gettime(CLOCK_MONOTONIC) syscall" + default y + 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_IOCTL_HEX2STR_ERROR + bool "Use ioctl names rather than hex values in error messages" + default y 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_FEATURE_EDITING bool "Command line editing" @@ -359,95 +426,24 @@ config BUSYBOX_UNICODE_PRESERVE_BROKEN at shell prompt will list file named 0xff (single char name with char value 255), not file named '?'. -config BUSYBOX_FEATURE_NON_POSIX_CP - bool "Non-POSIX, but safer, copying to special nodes" - default y - 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_FEATURE_VERBOSE_CP_MESSAGE - bool "Give more precise messages when copy fails (cp, mv etc)" - default n - 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_FEATURE_USE_SENDFILE - bool "Use sendfile system call" - default y - 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_FEATURE_COPYBUF_KB - int "Copy buffer size, in kilobytes" - range 1 1024 - default 4 - 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_FEATURE_SKIP_ROOTFS - bool "Skip rootfs in mount table" - default y +choice + prompt "Use LOOP_CONFIGURE for losetup and loop mounts" + default BUSYBOX_TRY_LOOP_CONFIGURE help - Ignore rootfs entry in mount table. + 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. - 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. +config BUSYBOX_LOOP_CONFIGURE + bool "use LOOP_CONFIGURE, needs kernel >= 5.8" - 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_NO_LOOP_CONFIGURE + bool "use LOOP_SET_FD + LOOP_SET_STATUS" - Otherwise, choose Y. +config BUSYBOX_TRY_LOOP_CONFIGURE + bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS" -config BUSYBOX_MONOTONIC_SYSCALL - bool "Use clock_gettime(CLOCK_MONOTONIC) syscall" - default y - 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_IOCTL_HEX2STR_ERROR - bool "Use ioctl names rather than hex values in error messages" - default y - 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_FEATURE_HWIB - bool "Support infiniband HW" - default y - help - Support for printing infiniband addresses in network applets. +endchoice diff --git a/package/busybox/config/mailutils/Config.in b/package/busybox/config/mailutils/Config.in index 1b793ef7c..29890dcbd 100644 --- a/package/busybox/config/mailutils/Config.in +++ b/package/busybox/config/mailutils/Config.in @@ -1,6 +1,13 @@ # DO NOT EDIT. This file is generated from Config.src menu "Mail Utilities" +config BUSYBOX_FEATURE_MIME_CHARSET + string "Default charset" + default "us-ascii" + depends on BUSYBOX_MAKEMIME || BUSYBOX_REFORMIME || BUSYBOX_SENDMAIL + help + Default charset of the message. + config BUSYBOX_MAKEMIME bool "makemime (5.4 kb)" default y @@ -41,11 +48,4 @@ config BUSYBOX_SENDMAIL help Barebones sendmail. -config BUSYBOX_FEATURE_MIME_CHARSET - string "Default charset" - default "us-ascii" - depends on BUSYBOX_MAKEMIME || BUSYBOX_REFORMIME || BUSYBOX_SENDMAIL - help - Default charset of the message. - endmenu diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in index 549042515..82aeff339 100644 --- a/package/busybox/config/miscutils/Config.in +++ b/package/busybox/config/miscutils/Config.in @@ -12,6 +12,12 @@ config BUSYBOX_ADJTIMEX help Adjtimex reads and optionally sets adjustment parameters for the Linux clock adjustment algorithm. +config BUSYBOX_ASCII + bool "ascii" + default y + help + Print ascii table. + config BUSYBOX_BBCONFIG bool "bbconfig (9.7 kb)" default n @@ -693,6 +699,13 @@ config BUSYBOX_RX default y help Receive files using the Xmodem protocol. +config BUSYBOX_SEEDRNG + bool "seedrng (1.3 kb)" + default n + 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_SETFATTR bool "setfattr (3.7 kb)" default y @@ -716,6 +729,11 @@ config BUSYBOX_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_TREE + bool "tree (0.6 kb)" + default y + help + List files and directories in a tree structure. config BUSYBOX_TS bool "ts (450 bytes)" default y @@ -783,4 +801,19 @@ config BUSYBOX_WATCHDOG certain amount of time, the watchdog device assumes the system has hung, and will cause the hardware to reboot. +config BUSYBOX_FEATURE_WATCHDOG_OPEN_TWICE + bool "Open watchdog device twice, closing it gracefully in between" + depends on BUSYBOX_WATCHDOG + default n # 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/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in index 4832a82d0..341092334 100644 --- a/package/busybox/config/networking/Config.in +++ b/package/busybox/config/networking/Config.in @@ -47,6 +47,32 @@ config BUSYBOX_VERBOSE_RESOLUTION_ERRORS "can't resolve 'hostname.com'" and want to know more. This may increase size of your executable a bit. +config BUSYBOX_FEATURE_ETC_NETWORKS + bool "Support /etc/networks" + default n + 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_FEATURE_ETC_SERVICES + bool "Consult /etc/services even for well-known ports" + default n + 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_FEATURE_HWIB + bool "Support infiniband HW" + default y + help + Support for printing infiniband addresses in network applets. + config BUSYBOX_FEATURE_TLS_SHA1 bool "In TLS code, support ciphers which use deprecated SHA1" depends on BUSYBOX_TLS @@ -173,6 +199,12 @@ config BUSYBOX_HTTPD help HTTP server. +config BUSYBOX_FEATURE_HTTPD_PORT_DEFAULT + int "Default port" + default 80 + range 1 65535 + depends on BUSYBOX_HTTPD + config BUSYBOX_FEATURE_HTTPD_RANGES bool "Support 'Ranges:' header" default y @@ -939,6 +971,12 @@ config BUSYBOX_FEATURE_TELNETD_STANDALONE help Selecting this will make telnetd able to run standalone. +config BUSYBOX_FEATURE_TELNETD_PORT_DEFAULT + int "Default port" + default 23 + range 1 65535 + depends on BUSYBOX_FEATURE_TELNETD_STANDALONE + config BUSYBOX_FEATURE_TELNETD_INETD_WAIT bool "Support -w SEC option (inetd wait mode)" default y @@ -1086,6 +1124,13 @@ config BUSYBOX_FEATURE_WGET_STATUSBAR default y depends on BUSYBOX_WGET +config BUSYBOX_FEATURE_WGET_FTP + bool "Enable FTP protocol (+1k)" + default y + depends on BUSYBOX_WGET + help + To support FTPS, enable FEATURE_WGET_HTTPS as well. + config BUSYBOX_FEATURE_WGET_AUTHENTICATION bool "Enable HTTP authentication" default y @@ -1114,6 +1159,7 @@ config BUSYBOX_FEATURE_WGET_HTTPS select BUSYBOX_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. @@ -1202,7 +1248,8 @@ source package/busybox/config/networking/udhcp/Config.in config BUSYBOX_IFUPDOWN_UDHCPC_CMD_OPTIONS string "ifup udhcpc command line options" - default "-R -n" + default "-R -n" if BUSYBOX_NOMMU + default "-R -n -b" depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN help Command line options to pass to udhcpc from ifup. diff --git a/package/busybox/config/networking/udhcp/Config.in b/package/busybox/config/networking/udhcp/Config.in index 52f1ef5b2..111e6b5f5 100644 --- a/package/busybox/config/networking/udhcp/Config.in +++ b/package/busybox/config/networking/udhcp/Config.in @@ -93,12 +93,17 @@ config BUSYBOX_FEATURE_UDHCPC_SANITIZEOPT config BUSYBOX_UDHCPC_DEFAULT_SCRIPT string "Absolute path to config script" default "/usr/share/udhcpc/default.script" - depends on BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6 + depends on BUSYBOX_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_UDHCPC6_DEFAULT_SCRIPT + string "Absolute path to config script for IPv6" + default "/usr/share/udhcpc/default6.script" + depends on BUSYBOX_UDHCPC6 + # udhcpc6 config is inserted here: config BUSYBOX_UDHCPC6 bool "udhcpc6 (21 kb)" @@ -142,6 +147,14 @@ config BUSYBOX_FEATURE_UDHCPC6_RFC5970 comment "Common options for DHCP applets" depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6 || BUSYBOX_DHCPRELAY +config BUSYBOX_UDHCPC_DEFAULT_INTERFACE + string "Default interface name" + default "eth0" + depends on BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6 + help + The interface that will be used if no other interface is + specified on the commandline. + config BUSYBOX_FEATURE_UDHCP_PORT bool "Enable '-P port' option for udhcpd and udhcpc" default n diff --git a/package/busybox/config/procps/Config.in b/package/busybox/config/procps/Config.in index 56086da2c..0c1733b9f 100644 --- a/package/busybox/config/procps/Config.in +++ b/package/busybox/config/procps/Config.in @@ -6,6 +6,21 @@ menu "Process Utilities" +config BUSYBOX_FEATURE_FAST_TOP + bool "Faster /proc scanning code (+100 bytes)" + default n # 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_FEATURE_SHOW_THREADS + bool "Support thread display in ps/pstree/top" + default y + depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE + help + Enables the ps -T option, showing of threads in pstree, + and 'h' command in top. + config BUSYBOX_FREE bool "free (3.1 kb)" default y @@ -259,12 +274,4 @@ config BUSYBOX_WATCH watch is used to execute a program periodically, showing output to the screen. -config BUSYBOX_FEATURE_SHOW_THREADS - bool "Support thread display in ps/pstree/top" - default y - depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE - help - Enables the ps -T option, showing of threads in pstree, - and 'h' command in top. - endmenu diff --git a/package/busybox/config/shell/Config.in b/package/busybox/config/shell/Config.in index 0ce917dc3..6ffa3b2b0 100644 --- a/package/busybox/config/shell/Config.in +++ b/package/busybox/config/shell/Config.in @@ -88,7 +88,7 @@ config BUSYBOX_SHELL_ASH config BUSYBOX_ASH bool "ash (78 kb)" - default n + default y depends on !BUSYBOX_NOMMU select BUSYBOX_SHELL_ASH help @@ -201,6 +201,11 @@ config BUSYBOX_ASH_TEST default y depends on BUSYBOX_SHELL_ASH +config BUSYBOX_ASH_SLEEP + bool "sleep builtin" + default y + depends on BUSYBOX_SHELL_ASH + config BUSYBOX_ASH_HELP bool "help builtin" default y @@ -299,11 +304,6 @@ config BUSYBOX_HUSH_BRACE_EXPANSION help Enable {abc,def} extension. -config BUSYBOX_HUSH_LINENO_VAR - bool "$LINENO variable" - default y - depends on BUSYBOX_HUSH_BASH_COMPAT - config BUSYBOX_HUSH_BASH_SOURCE_CURDIR bool "'source' and '.' builtins search current directory after $PATH" default n # do not encourage non-standard behavior @@ -311,6 +311,11 @@ config BUSYBOX_HUSH_BASH_SOURCE_CURDIR help This is not compliant with standards. Avoid if possible. +config BUSYBOX_HUSH_LINENO_VAR + bool "$LINENO variable (bashism)" + default y + depends on BUSYBOX_SHELL_HUSH + config BUSYBOX_HUSH_INTERACTIVE bool "Interactive mode" default y diff --git a/package/busybox/files/ntpd.init b/package/busybox/files/ntpd.init index 15c460dcc..0f578574a 100644 --- a/package/busybox/files/ntpd.init +++ b/package/busybox/files/ntpd.init @@ -1,6 +1,6 @@ #!/bin/sh #PKG busybox -#INIT 60 +#INIT 45 . /etc/rc.conf case $1 in diff --git a/package/busybox/patches/002-hwclock-musl.patch b/package/busybox/patches/002-hwclock-musl.patch new file mode 100644 index 000000000..a5b9ff50d --- /dev/null +++ b/package/busybox/patches/002-hwclock-musl.patch @@ -0,0 +1,31 @@ +diff -Nur busybox-1.36.1.orig/util-linux/hwclock.c busybox-1.36.1/util-linux/hwclock.c +--- busybox-1.36.1.orig/util-linux/hwclock.c 2021-01-01 11:52:27.000000000 +0100 ++++ busybox-1.36.1/util-linux/hwclock.c 2024-04-10 11:18:06.569673535 +0200 +@@ -136,10 +136,24 @@ + * because "it's deprecated by POSIX, therefore it's fine + * if we gratuitously break stuff" :( + */ +-#if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32) +-# define SYS_settimeofday SYS_settimeofday_time32 +-#endif ++# if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32) ++# define SYS_settimeofday SYS_settimeofday_time32 ++# endif ++# if defined(SYS_settimeofday) + int ret = syscall(SYS_settimeofday, NULL, tz); ++# else ++ /* Some new architectures have neither settimeofday nor ++ * settimeofday_time32, and the whole kernel timezone handling appears ++ * to have been dropped due to some oddities in the API. See: ++ * ++ * - glibc's commit c3f9aef063 ("Use clock_settime to implement settimeofday.") ++ * - https://github.com/systemd/systemd/issues/13305 ++ * - https://inbox.sourceware.org/libc-alpha/cb015d0d1d29e4b948c7118c5b12ff2bed83a6ec.1561421042.git.alistair.francis@wdc.com/ ++ * ++ * So instead just silently drop these calls. ++ */ ++ int ret = -ENOSYS; ++# endif + #else + int ret = settimeofday(NULL, tz); + #endif diff --git a/package/busybox/patches/009-disable-Oz.patch b/package/busybox/patches/009-disable-Oz.patch new file mode 100644 index 000000000..11830586f --- /dev/null +++ b/package/busybox/patches/009-disable-Oz.patch @@ -0,0 +1,20 @@ +diff -Nur busybox-1.36.1.orig/Makefile.flags busybox-1.36.1/Makefile.flags +--- busybox-1.36.1.orig/Makefile.flags 2023-01-03 15:14:43.000000000 +0100 ++++ busybox-1.36.1/Makefile.flags 2023-07-30 15:24:31.983113101 +0200 +@@ -87,14 +87,14 @@ + #CFLAGS += $(call cc-option,-Wconversion,) + + ifneq ($(CONFIG_DEBUG),y) +-CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,))) ++CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,)) + else + CFLAGS += $(call cc-option,-g,) + #CFLAGS += "-D_FORTIFY_SOURCE=2" + ifeq ($(CONFIG_DEBUG_PESSIMIZE),y) + CFLAGS += $(call cc-option,-O0,) + else +-CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,))) ++CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,)) + endif + endif + ifeq ($(CONFIG_DEBUG_SANITIZE),y) |