busybox: update to 1.35.0 (#8389)

* Revert "busybox: update to 1.33.2 bugfix release (#8386)"

This reverts commit a6f79ace50.

* busybox: fix compilation with GCC 10

When compiling busybox with GCC 10 and CONFIG_PKG_ASLR_PIE_ALL=y, there
are hundreds of errors like:

relocation R_MIPS16_26 against `xzalloc' cannot be used when making a
shared object; recompile with -fPIC

Simply solve this by no longer disabling PKG_ASLR_PIE, so that $(FPIC)
is properly added to the CFLAGS and LDFLAGS.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>

* busybox: update to version 1.34.0

Update busybox to version 1.34.0

* Remove upstreamed patches (205, 530, 540)

* Remove one old patch that does not apply any more. (203)
  That was originally introduced in 2008 with 563d23459,
  but does not apply after busybox restructuring with
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=e6007c4911c3ea26925f9473b9f156a692585f30
  and
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=1c7253726fcbab09917f143f0b703efbd2df55c3

* Refresh config and patches.

* Backport upstream fixes for
   - MIPS compilation breakage and
   - process substitution regression

Config refresh:

Refresh commands, run after busybox is first built once:

cd utils/busybox/
cd config/
../convert_menuconfig.pl ../../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0
cd ..
./convert_defaults.pl < ../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0/.config > Config-defaults.in

Manual edits needed afterward:

* Config-defaults.in:  OpenWrt config symbol IPV6 logic applied to
  BUSYBOX_DEFAULT_FEATURE_IPV6
* Config-defaults.in:  OpenWrt configTARGET_bcm53xx logic applied to
  BUSYBOX_DEFAULT_TRUNCATE (commit 547f1ec)
* Config-defaults.in:  OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)
  BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE (just "")
* config/editors/Config.in: Add USE_GLIBC dependency to
  BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commit f141090)
* config/shell/Config.in : change at "Options common to all shells"  the symbol
  SHELL_ASH  -->  BUSYBOX_CONFIG_SHELL_ASH
   (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html
     Apparently our script does not see the hidden option while
     prepending config options with "BUSYBOX_CONFIG_" which leads to a
     missed dependency when the options are later evaluated.)
* Edit Config.in files by adding quotes to sourced items in
  config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit 1da014f)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

* busybox: update to 1.34.1

Update busybox to version 1.34.1, which is a minor
maintenance release. It contains just the two post-1.34.0
upstream patches that we earlier backported plus a few fixes
to awk.

* Remove the two backported upstream patches that are
  now unnecessary.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

* busybox: fix compatibility with BUSYBOX_CONFIG_INSTALL_NO_USR

Signed-off-by: aakkll <94471752+aakkll@users.noreply.github.com>

* busybox: update to 1.35.0

Update busybox to 1.35.0

* refresh patches

Config refresh:

Refresh commands, run after busybox is first built once:

cd package/utils/busybox/config/
../convert_menuconfig.pl ../../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.35.0
cd ..
./convert_defaults.pl ../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.35.0/.config > Config-defaults.in

Manual edits needed after config refresh:

* Config-defaults.in: OpenWrt config symbol IPV6 logic applied to
  BUSYBOX_DEFAULT_FEATURE_IPV6

* Config-defaults.in: OpenWrt configTARGET_bcm53xx logic applied to
  BUSYBOX_DEFAULT_TRUNCATE (commit 547f1ec)

* Config-defaults.in: OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)

* config/editors/Config.in: Add USE_GLIBC dependency to
  BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commit f141090)

* config/shell/Config.in : change at "Options common to all shells" the symbol
  SHELL_ASH --> BUSYBOX_CONFIG_SHELL_ASH
  (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html
  Apparently our script does not see the hidden option while
  prepending config options with "BUSYBOX_CONFIG_" which leads to a
  missed dependency when the options are later evaluated.)

* Edit Config.in files by adding quotes to sourced items in
  config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit 1da014f)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

Co-authored-by: Stijn Tintel <stijn@linux-ipv6.be>
Co-authored-by: Hannu Nyman <hannu.nyman@iki.fi>
Co-authored-by: Marius Dinu <m95d+git@psihoexpert.ro>
This commit is contained in:
aakkll 2022-01-14 12:15:24 +08:00 committed by GitHub
parent fc6eba0ef3
commit 47266d39f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 423 additions and 414 deletions

View File

@ -211,15 +211,24 @@ config BUSYBOX_DEFAULT_MD5_SMALL
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 +298,6 @@ 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
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
bool
default n
config BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
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 +366,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 +376,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 +475,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 +517,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 +535,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 +571,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 +841,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
@ -905,15 +914,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
@ -1058,6 +1058,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 +1100,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 +1115,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 +1151,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
@ -1895,6 +1916,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
@ -2183,6 +2207,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 +2223,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 +2286,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 +2568,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 +2631,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
@ -2652,6 +2697,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 +2727,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 +2748,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 +2868,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
@ -2985,10 +3036,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

View File

@ -5,22 +5,19 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
PKG_VERSION:=1.33.2
PKG_VERSION:=1.35.0
PKG_RELEASE:=$(AUTORELEASE)
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:=6843ba7977081e735fa0fdb05893e3c002c8c5ad7c9c80da206e603cc0ac47e7
PKG_HASH:=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
PKG_BUILD_PARALLEL:=1
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

View File

@ -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

View File

@ -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
@ -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
@ -895,34 +957,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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -117,32 +117,73 @@ config BUSYBOX_CONFIG_SHA3_SMALL
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
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_CONFIG_FEATURE_ETC_NETWORKS
bool "Support /etc/networks"
default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
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
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_CONFIG_FEATURE_ETC_SERVICES
bool "Consult /etc/services even for well-known ports"
default BUSYBOX_DEFAULT_FEATURE_ETC_SERVICES
$ 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
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.
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_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_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_FEATURE_EDITING
bool "Command line editing"
@ -358,96 +399,3 @@ config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
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
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_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_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_FEATURE_HWIB
bool "Support infiniband HW"
default BUSYBOX_DEFAULT_FEATURE_HWIB
help
Support for printing infiniband addresses in network applets.

View File

@ -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

View File

@ -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
@ -788,4 +794,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

View File

@ -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.

View File

@ -142,6 +142,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

View File

@ -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

View File

@ -299,11 +299,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 +306,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

View File

@ -4,7 +4,7 @@
START=50
USE_PROCD=1
PROG=/usr/sbin/crond
PROG=crond
validate_cron_section() {
uci_validate_section system system "${1}" \

View File

@ -4,7 +4,7 @@
START=98
USE_PROCD=1
PROG=/usr/sbin/ntpd
PROG=ntpd
HOTPLUG_SCRIPT=/usr/sbin/ntpd-hotplug
get_dhcp_ntp_servers() {

View File

@ -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);
}

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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