Browse Source

busybox: update to latest

Waldemar Brodkorb 5 years ago
parent
commit
e4800c73e6

+ 3 - 3
package/busybox/Makefile

@@ -4,9 +4,9 @@
 include $(ADK_TOPDIR)/rules.mk
 include $(ADK_TOPDIR)/rules.mk
 
 
 PKG_NAME:=		busybox
 PKG_NAME:=		busybox
-PKG_VERSION:=		1.26.2
-PKG_RELEASE:=		2
-PKG_HASH:=		da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16
+PKG_VERSION:=		1.32.0
+PKG_RELEASE:=		1
+PKG_HASH:=		c35d87f1d04b2b153d33c275c2632e40d388a88f19a9e71727e0bbbff51fe689
 PKG_DESCR:=		core utilities for embedded systems
 PKG_DESCR:=		core utilities for embedded systems
 PKG_SECTION:=		base/apps
 PKG_SECTION:=		base/apps
 PKG_URL:=		http://www.busybox.net/
 PKG_URL:=		http://www.busybox.net/

+ 49 - 0
package/busybox/config/Config.in

@@ -30,6 +30,19 @@ config BUSYBOX_EXTRA_COMPAT
 	  some GNU extensions in libc. You probably only need this option
 	  some GNU extensions in libc. You probably only need this option
 	  if you plan to run busybox on desktop.
 	  if you plan to run busybox on desktop.
 
 
+config BUSYBOX_FEDORA_COMPAT
+	bool "Building for Fedora distribution"
+	default n
+	help
+	This option makes some tools behave like they do on Fedora.
+
+	At the time of this writing (2017-08) this only affects uname:
+	normally, uname -p (processor) and uname -i (platform)
+	are shown as "unknown", but with this option uname -p
+	shows the same string as uname -m (machine type),
+	and so does uname -i unless machine type is i486/i586/i686 -
+	then uname -i shows "i386".
+
 config BUSYBOX_INCLUDE_SUSv2
 config BUSYBOX_INCLUDE_SUSv2
 	bool "Enable obsolete features removed before SUSv3"
 	bool "Enable obsolete features removed before SUSv3"
 	default n
 	default n
@@ -47,6 +60,14 @@ config BUSYBOX_USE_PORTABLE_CODE
 	  compiler other than gcc.
 	  compiler other than gcc.
 	  If you do use gcc, this option may needlessly increase code size.
 	  If you do use gcc, this option may needlessly increase code size.
 
 
+config BUSYBOX_STACK_OPTIMIZATION_386
+	bool "Use -mpreferred-stack-boundary=2 on i386 arch"
+	default n
+	help
+	This option makes for smaller code, but some libc versions
+	do not work with it (they use SSE instructions without
+	ensuring stack alignment).
+
 config BUSYBOX_INSTALL_NO_USR
 config BUSYBOX_INSTALL_NO_USR
         bool "Don't use /usr"
         bool "Don't use /usr"
         default n
         default n
@@ -135,6 +156,11 @@ config BUSYBOX_BUSYBOX
 	  If you can live without these features disabling this will save
 	  If you can live without these features disabling this will save
 	  some space.
 	  some space.
 
 
+config BUSYBOX_FEATURE_SHOW_SCRIPT
+	bool "Support --show SCRIPT"
+	default n
+	depends on BUSYBOX_BUSYBOX
+
 config BUSYBOX_FEATURE_INSTALLER
 config BUSYBOX_FEATURE_INSTALLER
 	bool "Support --install [-s] to install applet links at runtime"
 	bool "Support --install [-s] to install applet links at runtime"
 	default n
 	default n
@@ -316,6 +342,15 @@ config BUSYBOX_FEATURE_CLEAN_UP
 	  Don't enable this unless you have a really good reason to clean
 	  Don't enable this unless you have a really good reason to clean
 	  things up manually.
 	  things up manually.
 
 
+config BUSYBOX_FEATURE_SYSLOG_INFO
+	bool "Support LOG_INFO level syslog messages"
+	default y
+	depends on BUSYBOX_FEATURE_SYSLOG
+	help
+	Applets which send their output to syslog use either LOG_INFO or
+	LOG_ERR log levels, but by disabling this option all messages will
+	be logged at the LOG_ERR level, saving just under 200 bytes.
+
 config BUSYBOX_FEATURE_UTMP
 config BUSYBOX_FEATURE_UTMP
 	bool "Support utmp file"
 	bool "Support utmp file"
 	default n
 	default n
@@ -728,6 +763,19 @@ config BUSYBOX_WERROR
 
 
 	  Most people should answer N.
 	  Most people should answer N.
 
 
+config BUSYBOX_WARN_SIMPLE_MSG
+	bool "Warn about single parameter bb_xx_msg calls"
+	default n
+	help
+	This will cause warnings to be shown for any instances of
+	bb_error_msg(), bb_error_msg_and_die(), bb_perror_msg(),
+	bb_perror_msg_and_die(), bb_herror_msg() or bb_herror_msg_and_die()
+	being called with a single parameter. In these cases the equivalent
+	bb_simple_xx_msg function should be used instead.
+	Note that use of STRERROR_FMT may give false positives.
+
+	If you aren't developing busybox, say N here.
+
 choice
 choice
 	prompt "Additional debugging library"
 	prompt "Additional debugging library"
 	default NO_DEBUG_LIB
 	default NO_DEBUG_LIB
@@ -850,6 +898,7 @@ source package/busybox/config/archival/Config.in
 source package/busybox/config/coreutils/Config.in
 source package/busybox/config/coreutils/Config.in
 source package/busybox/config/console-tools/Config.in
 source package/busybox/config/console-tools/Config.in
 source package/busybox/config/debianutils/Config.in
 source package/busybox/config/debianutils/Config.in
+source package/busybox/config/klibc-utils/Config.in
 source package/busybox/config/editors/Config.in
 source package/busybox/config/editors/Config.in
 source package/busybox/config/findutils/Config.in
 source package/busybox/config/findutils/Config.in
 source package/busybox/config/init/Config.in
 source package/busybox/config/init/Config.in

+ 33 - 0
package/busybox/config/archival/Config.in

@@ -457,4 +457,37 @@ config BUSYBOX_UNZIP
 	  current directory. Use the `-d' option to extract to a
 	  current directory. Use the `-d' option to extract to a
 	  directory of your choice.
 	  directory of your choice.
 
 
+config BUSYBOX_FEATURE_UNZIP_CDF
+	bool "Read and use Central Directory data"
+	default y
+	depends on BUSYBOX_UNZIP
+	help
+	If you know that you only need to deal with simple
+	ZIP files without deleted/updated files, SFX archives etc,
+	you can reduce code size by unselecting this option.
+	To support less trivial ZIPs, say Y.
+
+config BUSYBOX_FEATURE_UNZIP_BZIP2
+	bool "Support compression method 12 (bzip2)"
+	default y
+	depends on BUSYBOX_FEATURE_UNZIP_CDF && BUSYBOX_DESKTOP
+
+config BUSYBOX_FEATURE_UNZIP_LZMA
+	bool "Support compression method 14 (lzma)"
+	default y
+	depends on BUSYBOX_FEATURE_UNZIP_CDF && BUSYBOX_DESKTOP
+
+config BUSYBOX_FEATURE_UNZIP_XZ
+	bool "Support compression method 95 (xz)"
+	default y
+	depends on BUSYBOX_FEATURE_UNZIP_CDF && BUSYBOX_DESKTOP
+
+config BUSYBOX_FEATURE_LZMA_FAST
+	bool "Optimize lzma for speed"
+	default n
+	depends on BUSYBOX_UNLZMA || BUSYBOX_LZCAT || BUSYBOX_LZMA || BUSYBOX_FEATURE_SEAMLESS_LZMA
+	help
+	This option reduces decompression time by about 25% at the cost of
+	a 1K bigger binary.
+
 endmenu
 endmenu

+ 69 - 0
package/busybox/config/coreutils/Config.in

@@ -21,6 +21,20 @@ config BUSYBOX_CAT
 	  cat is used to concatenate files and print them to the standard
 	  cat is used to concatenate files and print them to the standard
 	  output. Enable this option if you wish to enable the 'cat' utility.
 	  output. Enable this option if you wish to enable the 'cat' utility.
 
 
+config BUSYBOX_FEATURE_CATN
+	bool "Enable -n and -b options"
+	default n
+	depends on BUSYBOX_CAT
+	help
+	-n numbers all output lines while -b numbers nonempty output lines.
+
+config BUSYBOX_FEATURE_CATV
+	bool "cat -v[etA]"
+	default y
+	depends on BUSYBOX_CAT
+	help
+	Display nonprinting characters as escape sequences
+
 config BUSYBOX_DATE
 config BUSYBOX_DATE
 	bool "date"
 	bool "date"
 	default y
 	default y
@@ -430,6 +444,12 @@ config BUSYBOX_EXPR_MATH_SUPPORT_64
 	  the applet slightly larger, but will allow computation with very
 	  the applet slightly larger, but will allow computation with very
 	  large numbers.
 	  large numbers.
 
 
+config BUSYBOX_FACTOR
+	bool "factor (2.7 kb)"
+	default n
+	help
+	factor factorizes integers
+
 config BUSYBOX_FALSE
 config BUSYBOX_FALSE
 	bool "false"
 	bool "false"
 	default n
 	default n
@@ -480,6 +500,11 @@ config BUSYBOX_FEATURE_INSTALL_LONG_OPTIONS
 ####	default y
 ####	default y
 ####	help
 ####	help
 ####	  length is used to print out the length of a specified string.
 ####	  length is used to print out the length of a specified string.
+config BUSYBOX_LINK
+	bool "link (3.2 kb)"
+	default n
+	help
+	link creates hard links between files.
 
 
 config BUSYBOX_LN
 config BUSYBOX_LN
 	bool "ln"
 	bool "ln"
@@ -520,6 +545,11 @@ config BUSYBOX_FEATURE_LS_RECURSIVE
 	help
 	help
 	  Enable the ls option (-R).
 	  Enable the ls option (-R).
 
 
+config BUSYBOX_FEATURE_LS_WIDTH
+	bool "Enable -w WIDTH and window size autodetection"
+	default y
+	depends on BUSYBOX_LS
+
 config BUSYBOX_FEATURE_LS_SORTFILES
 config BUSYBOX_FEATURE_LS_SORTFILES
 	bool "Sort the file names"
 	bool "Sort the file names"
 	default y
 	default y
@@ -611,18 +641,37 @@ config BUSYBOX_NICE
 	help
 	help
 	  nice runs a program with modified scheduling priority.
 	  nice runs a program with modified scheduling priority.
 
 
+config BUSYBOX_NL
+	bool "nl (4.6 kb)"
+	default n
+	help
+	nl is used to number lines of files.
+
 config BUSYBOX_NOHUP
 config BUSYBOX_NOHUP
 	bool "nohup"
 	bool "nohup"
 	default n
 	default n
 	help
 	help
 	  run a command immune to hangups, with output to a non-tty.
 	  run a command immune to hangups, with output to a non-tty.
 
 
+config BUSYBOX_NPROC
+	bool "nproc (3.7 kb)"
+	default n
+	help
+	Print number of CPUs
+
 config BUSYBOX_OD
 config BUSYBOX_OD
 	bool "od"
 	bool "od"
 	default n
 	default n
 	help
 	help
 	  od is used to dump binary files in octal and other formats.
 	  od is used to dump binary files in octal and other formats.
 
 
+config BUSYBOX_PASTE
+	bool "paste (4.9 kb)"
+	default n
+	help
+	paste is used to paste lines of different files together
+	and write the result to stdout
+
 config BUSYBOX_PRINTENV
 config BUSYBOX_PRINTENV
 	bool "printenv"
 	bool "printenv"
 	default n
 	default n
@@ -689,6 +738,12 @@ config BUSYBOX_SEQ
 	help
 	help
 	  print a sequence of numbers
 	  print a sequence of numbers
 
 
+config BUSYBOX_SHRED
+	bool "shred (4.9 kb)"
+	default n
+	help
+	Overwrite a file to hide its contents, and optionally delete it
+
 config BUSYBOX_SHA1SUM
 config BUSYBOX_SHA1SUM
 	bool "sha1sum"
 	bool "sha1sum"
 	default n
 	default n
@@ -759,6 +814,14 @@ config BUSYBOX_FEATURE_SORT_BIG
 	  The SuSv3 sort standard is available at:
 	  The SuSv3 sort standard is available at:
 	  http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
 	  http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
 
 
+config BUSYBOX_FEATURE_SORT_OPTIMIZE_MEMORY
+	bool "Use less memory (but might be slower)"
+	default n   # defaults to N since we are size-paranoid tribe
+	depends on BUSYBOX_SORT
+	help
+	Attempt to use less memory (by storing only one copy
+	of duplicated lines, and such). Useful if you work on huge files.
+
 config BUSYBOX_SPLIT
 config BUSYBOX_SPLIT
 	bool "split"
 	bool "split"
 	default n
 	default n
@@ -891,6 +954,12 @@ config BUSYBOX_UNAME_OSNAME
 	  Sets the operating system name reported by uname -o.  The
 	  Sets the operating system name reported by uname -o.  The
 	  default is "GNU/Linux".
 	  default is "GNU/Linux".
 
 
+config BUSYBOX_BB_ARCH
+	bool "arch (1.1 kb)"
+	default n
+	help
+	Same as uname -m.
+
 config BUSYBOX_UNEXPAND
 config BUSYBOX_UNEXPAND
 	bool "unexpand"
 	bool "unexpand"
 	default n
 	default n

+ 22 - 0
package/busybox/config/findutils/Config.in

@@ -54,6 +54,11 @@ config BUSYBOX_FEATURE_FIND_TYPE
 	  Enable searching based on file type (file,
 	  Enable searching based on file type (file,
 	  directory, socket, device, etc.).
 	  directory, socket, device, etc.).
 
 
+config BUSYBOX_FEATURE_FIND_EXECUTABLE
+	bool "Enable -executable: file is executable"
+	default y
+	depends on BUSYBOX_FIND
+
 config BUSYBOX_FEATURE_FIND_XDEV
 config BUSYBOX_FEATURE_FIND_XDEV
 	bool "Enable -xdev: 'stay in filesystem'"
 	bool "Enable -xdev: 'stay in filesystem'"
 	default y
 	default y
@@ -161,6 +166,13 @@ config BUSYBOX_FEATURE_FIND_PRUNE
 	  If the file is a directory, dont descend into it. Useful for
 	  If the file is a directory, dont descend into it. Useful for
 	  exclusion .svn and CVS directories.
 	  exclusion .svn and CVS directories.
 
 
+config BUSYBOX_FEATURE_FIND_QUIT
+	bool "Enable -quit: exit"
+	default y
+	depends on BUSYBOX_FIND
+	help
+	If this action is reached, 'find' exits.
+
 config BUSYBOX_FEATURE_FIND_DELETE
 config BUSYBOX_FEATURE_FIND_DELETE
 	bool "Enable -delete: delete files/dirs"
 	bool "Enable -delete: delete files/dirs"
 	default y
 	default y
@@ -274,4 +286,14 @@ config BUSYBOX_FEATURE_XARGS_SUPPORT_REPL_STR
 	help
 	help
 	  Support -I STR and -i[STR] options.
 	  Support -I STR and -i[STR] options.
 
 
+config BUSYBOX_FEATURE_XARGS_SUPPORT_PARALLEL
+	bool "Enable -P N: processes to run in parallel"
+	default y
+	depends on BUSYBOX_XARGS
+
+config BUSYBOX_FEATURE_XARGS_SUPPORT_ARGS_FILE
+	bool "Enable -a FILE: use FILE instead of stdin"
+	default y
+	depends on BUSYBOX_XARGS
+
 endmenu
 endmenu

+ 16 - 0
package/busybox/config/init/Config.in

@@ -63,6 +63,17 @@ config BUSYBOX_REBOOT
 	help
 	help
 	  Stop all processes and reboot the system.
 	  Stop all processes and reboot the system.
 
 
+config BUSYBOX_FEATURE_WAIT_FOR_INIT
+	bool "Before signaling init, make sure it is ready for it"
+	default y
+	depends on BUSYBOX_HALT || BUSYBOX_POWEROFF || BUSYBOX_REBOOT
+	help
+	In rare cases, poweroff may be commanded by firmware to OS
+	even before init process exists. On Linux, this spawns
+	"/sbin/poweroff" very early. This option adds code
+	which checks that init is ready to receive poweroff
+	commands. Code size increase of ~80 bytes.
+
 config BUSYBOX_FEATURE_CALL_TELINIT
 config BUSYBOX_FEATURE_CALL_TELINIT
 	bool "Call telinit on shutdown and reboot"
 	bool "Call telinit on shutdown and reboot"
 	default n
 	default n
@@ -149,6 +160,11 @@ config BUSYBOX_FEATURE_INIT_SYSLOG
 	default y
 	default y
 	depends on BUSYBOX_INIT
 	depends on BUSYBOX_INIT
 
 
+config BUSYBOX_FEATURE_INIT_QUIET
+	bool "Be quiet on boot (no 'init started:' message)"
+	default y
+	depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
+
 config BUSYBOX_FEATURE_EXTRA_QUIET
 config BUSYBOX_FEATURE_EXTRA_QUIET
 	bool "Be _extra_ quiet on boot"
 	bool "Be _extra_ quiet on boot"
 	default y
 	default y

+ 36 - 0
package/busybox/config/libbb/Config.in

@@ -39,6 +39,12 @@ config BUSYBOX_FEATURE_USE_BSS_TAIL
 	        appletlib.c:(.text.main+0xd): undefined reference to '_end'
 	        appletlib.c:(.text.main+0xd): undefined reference to '_end'
 	  disable this option.
 	  disable this option.
 
 
+config BUSYBOX_FLOAT_DURATION
+	bool "Enable fractional duration arguments"
+	default y
+	help
+	Allow sleep N.NNN, top -d N.NNN etc.
+
 config BUSYBOX_FEATURE_RTMINMAX
 config BUSYBOX_FEATURE_RTMINMAX
 	bool "Support RTMIN[+n] and RTMAX[-n] signal names"
 	bool "Support RTMIN[+n] and RTMAX[-n] signal names"
 	default y
 	default y
@@ -46,6 +52,18 @@ config BUSYBOX_FEATURE_RTMINMAX
 	  Support RTMIN[+n] and RTMAX[-n] signal names
 	  Support RTMIN[+n] and RTMAX[-n] signal names
 	  in kill, killall etc. This costs ~250 bytes.
 	  in kill, killall etc. This costs ~250 bytes.
 
 
+config BUSYBOX_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
+	bool "Use the definitions of SIGRTMIN/SIGRTMAX provided by libc"
+	default y
+	depends on BUSYBOX_FEATURE_RTMINMAX
+	help
+	Some C libraries reserve a few real-time signals for internal
+	use, and adjust the values of SIGRTMIN/SIGRTMAX seen by
+	applications accordingly. Saying yes here means that a signal
+	name RTMIN+n will be interpreted according to the libc definition
+	of SIGRTMIN, and not the raw definition provided by the kernel.
+	This behavior matches "kill -l RTMIN+n" from bash.
+
 config BUSYBOX_PASSWORD_MINLEN
 config BUSYBOX_PASSWORD_MINLEN
 	int "Minimum password length"
 	int "Minimum password length"
 	default 6
 	default 6
@@ -92,6 +110,19 @@ config BUSYBOX_FEATURE_ETC_NETWORKS
 	  a rarely used feature which allows you to use names
 	  a rarely used feature which allows you to use names
 	  instead of IP/mask pairs in route command.
 	  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_USE_TERMIOS
 config BUSYBOX_FEATURE_USE_TERMIOS
 	bool "Use termios to manipulate the screen"
 	bool "Use termios to manipulate the screen"
 	default y
 	default y
@@ -180,6 +211,11 @@ config BUSYBOX_FEATURE_EDITING_FANCY_PROMPT
 	  Setting this option allows for prompts to use things like \w and
 	  Setting this option allows for prompts to use things like \w and
 	  \$ and escape codes.
 	  \$ and escape codes.
 
 
+config BUSYBOX_FEATURE_EDITING_WINCH
+	bool "Enable automatic tracking of window size changes"
+	default y
+	depends on BUSYBOX_FEATURE_EDITING
+
 config BUSYBOX_FEATURE_EDITING_ASK_TERMINAL
 config BUSYBOX_FEATURE_EDITING_ASK_TERMINAL
 	bool "Query cursor position from terminal"
 	bool "Query cursor position from terminal"
 	default n
 	default n

+ 5 - 0
package/busybox/config/loginutils/Config.in

@@ -338,6 +338,11 @@ config BUSYBOX_FEATURE_SU_CHECKS_SHELLS
 	depends on BUSYBOX_SU
 	depends on BUSYBOX_SU
 	default y
 	default y
 
 
+config BUSYBOX_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY
+	bool "Allow blank passwords only on TTYs in /etc/securetty"
+	default n
+	depends on BUSYBOX_SU
+
 config BUSYBOX_SULOGIN
 config BUSYBOX_SULOGIN
 	bool "sulogin"
 	bool "sulogin"
 	default n
 	default n

+ 81 - 0
package/busybox/config/miscutils/Config.in

@@ -44,6 +44,13 @@ config BUSYBOX_I2CDETECT
 	help
 	help
 	  Detect I2C chips.
 	  Detect I2C chips.
 
 
+config BUSYBOX_I2CTRANSFER
+	bool "i2ctransfer (4.0 kb)"
+	default n
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	Send user-defined I2C messages in one transfer.
+
 config BUSYBOX_LESS
 config BUSYBOX_LESS
 	bool "less"
 	bool "less"
 	depends on !BUSYBOX_DISABLE_LESS
 	depends on !BUSYBOX_DISABLE_LESS
@@ -129,6 +136,32 @@ config BUSYBOX_FEATURE_LESS_LINENUMS
 	help
 	help
 	  Enables "-N" command.
 	  Enables "-N" command.
 
 
+config BUSYBOX_FEATURE_LESS_RAW
+	bool "Enable -R ('raw control characters')"
+	default y
+	depends on BUSYBOX_FEATURE_LESS_DASHCMD
+	help
+	This is essential for less applet to work with tools that use colors
+	and paging, such as git, systemd tools or nmcli.
+
+config BUSYBOX_FEATURE_LESS_ENV
+	bool "Take options from $LESS environment variable"
+	default y
+	depends on BUSYBOX_FEATURE_LESS_DASHCMD
+	help
+	This is essential for less applet to work with tools that use colors
+	and paging, such as git, systemd tools or nmcli.
+
+config BUSYBOX_LSSCSI
+	bool "lsscsi (2.5 kb)"
+	default n
+	#select PLATFORM_LINUX
+	help
+	lsscsi is a utility for displaying information about SCSI buses in the
+	system and devices connected to them.
+
+	This version uses sysfs (/sys/bus/scsi/devices) only.
+
 config BUSYBOX_NANDWRITE
 config BUSYBOX_NANDWRITE
 	bool "nandwrite"
 	bool "nandwrite"
 	default n
 	default n
@@ -143,6 +176,19 @@ config BUSYBOX_NANDDUMP
 	help
 	help
 	  Dump the content of raw NAND chip
 	  Dump the content of raw NAND chip
 
 
+config BUSYBOX_PARTPROBE
+	bool "partprobe (3.5 kb)"
+	default n
+	select BUSYBOX_PLATFORM_LINUX
+	help
+	Ask kernel to rescan partition table.
+
+config BUSYBOX_SETFATTR
+	bool "setfattr (3.7 kb)"
+	default n
+	help
+	Set/delete extended attributes on files
+
 config BUSYBOX_SETSERIAL
 config BUSYBOX_SETSERIAL
 	bool "setserial"
 	bool "setserial"
 	default n
 	default n
@@ -368,6 +414,31 @@ config BUSYBOX_CRONTAB
 	  Note that Busybox binary must be setuid root for this applet to
 	  Note that Busybox binary must be setuid root for this applet to
 	  work properly.
 	  work properly.
 
 
+config BUSYBOX_BC
+	bool "bc (45 kb)"
+	default n
+	select BUSYBOX_FEATURE_DC_BIG
+	help
+	bc is a command-line, arbitrary-precision calculator with a
+	Turing-complete language. See the GNU bc manual
+	(https://www.gnu.org/software/bc/manual/bc.html) and bc spec
+	(http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html).
+
+	This bc has five differences to the GNU bc:
+	  1) The period (.) is a shortcut for "last", as in the BSD bc.
+	  2) Arrays are copied before being passed as arguments to
+	     functions. This behavior is required by the bc spec.
+	  3) Arrays can be passed to the builtin "length" function to get
+	     the number of elements in the array. This prints "1":
+		a[0] = 0; length(a[])
+	  4) The precedence of the boolean "not" operator (!) is equal to
+	     that of the unary minus (-) negation operator. This still
+	     allows POSIX-compliant scripts to work while somewhat
+	     preserving expected behavior (versus C) and making parsing
+	     easier.
+	  5) "read()" accepts expressions, not only numeric literals.
+
+
 config BUSYBOX_DC
 config BUSYBOX_DC
 	bool "dc"
 	bool "dc"
 	default n
 	default n
@@ -612,6 +683,12 @@ config BUSYBOX_FEATURE_HDPARM_HDIO_GETSET_DMA
 	help
 	help
 	  Enables the 'hdparm -d' option to get/set using_dma flag.
 	  Enables the 'hdparm -d' option to get/set using_dma flag.
 
 
+config BUSYBOX_HEXEDIT
+	bool "hexedit (21 kb)"
+	default n
+	help
+	Edit file in hexadecimal.
+
 config BUSYBOX_MAKEDEVS
 config BUSYBOX_MAKEDEVS
 	bool "makedevs"
 	bool "makedevs"
 	default n
 	default n
@@ -763,6 +840,10 @@ config BUSYBOX_TIME
 	  When the command finishes, time writes a message to standard output
 	  When the command finishes, time writes a message to standard output
 	  giving timing statistics about this program run.
 	  giving timing statistics about this program run.
 
 
+config BUSYBOX_TS
+	bool "ts (450 bytes)"
+	default n
+
 config BUSYBOX_TIMEOUT
 config BUSYBOX_TIMEOUT
 	bool "timeout"
 	bool "timeout"
 	default n
 	default n

+ 15 - 0
package/busybox/config/modutils/Config.in

@@ -136,6 +136,21 @@ config BUSYBOX_DEPMOD
 
 
 comment "Options common to multiple modutils"
 comment "Options common to multiple modutils"
 
 
+config BUSYBOX_FEATURE_CMDLINE_MODULE_OPTIONS
+	bool "Accept module options on modprobe command line"
+	default y
+	depends on BUSYBOX_INSMOD || BUSYBOX_MODPROBE
+	help
+	Allow insmod and modprobe take module options from the applets'
+	command line.
+
+config BUSYBOX_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
+	bool "Skip loading of already loaded modules"
+	default y
+	depends on BUSYBOX_MODPROBE_SMALL && (BUSYBOX_DEPMOD || BUSYBOX_INSMOD || BUSYBOX_MODPROBE)
+	help
+	Check if the module is already loaded.
+
 config BUSYBOX_FEATURE_2_4_MODULES
 config BUSYBOX_FEATURE_2_4_MODULES
 	bool "Support version 2.2/2.4 Linux kernels"
 	bool "Support version 2.2/2.4 Linux kernels"
 	default n
 	default n

+ 48 - 5
package/busybox/config/networking/Config.in

@@ -49,6 +49,12 @@ config BUSYBOX_NC
 	  A simple Unix utility which reads and writes data across network
 	  A simple Unix utility which reads and writes data across network
 	  connections.
 	  connections.
 
 
+config BUSYBOX_NETCAT
+	bool "netcat (11 kb)"
+	default y
+	help
+	Alias to nc.
+
 config BUSYBOX_NC_SERVER
 config BUSYBOX_NC_SERVER
 	bool "Netcat server options (-l)"
 	bool "Netcat server options (-l)"
 	default y
 	default y
@@ -145,6 +151,17 @@ config BUSYBOX_VERBOSE_RESOLUTION_ERRORS
 	  "can't resolve 'hostname.com'" and want to know more.
 	  "can't resolve 'hostname.com'" and want to know more.
 	  This may increase size of your executable a bit.
 	  This may increase size of your executable a bit.
 
 
+config BUSYBOX_FEATURE_TLS_SHA1
+	bool "In TLS code, support ciphers which use deprecated SHA1"
+	depends on BUSYBOX_TLS
+	default n
+	help
+	Selecting this option increases interoperability with very old
+	servers, but slightly increases code size.
+
+	Most TLS servers support SHA256 today (2018), since SHA1 is
+	considered possibly insecure (although not yet definitely broken).
+
 config BUSYBOX_ARP
 config BUSYBOX_ARP
 	bool "arp"
 	bool "arp"
 	default n
 	default n
@@ -745,6 +762,16 @@ config BUSYBOX_NSLOOKUP
 	help
 	help
 	  nslookup is a tool to query Internet name servers.
 	  nslookup is a tool to query Internet name servers.
 
 
+config BUSYBOX_FEATURE_NSLOOKUP_BIG
+	bool "Use internal resolver code instead of libc"
+	depends on BUSYBOX_NSLOOKUP
+	default n
+
+config BUSYBOX_FEATURE_NSLOOKUP_LONG_OPTIONS
+	bool "Enable long options"
+	default n
+	depends on BUSYBOX_FEATURE_NSLOOKUP_BIG && BUSYBOX_LONG_OPTS
+
 config BUSYBOX_NTPD
 config BUSYBOX_NTPD
 	bool "ntpd"
 	bool "ntpd"
 	depends on !BUSYBOX_DISABLE_NTPD
 	depends on !BUSYBOX_DISABLE_NTPD
@@ -791,11 +818,18 @@ config BUSYBOX_SLATTACH
 	  slattach is a small utility to attach network interfaces to serial
 	  slattach is a small utility to attach network interfaces to serial
 	  lines.
 	  lines.
 
 
-#config TC
-#	bool "tc"
-#	default y
-#	help
-#	  show / manipulate traffic control settings
+config BUSYBOX_SSL_CLIENT
+	bool "ssl_client (25 kb)"
+	default n
+	select BUSYBOX_TLS
+	help
+	This tool pipes data to/from a socket, TLS-encrypting it.
+
+config BUSYBOX_TC
+	bool "tc"
+	default n
+	help
+	  show / manipulate traffic control settings
 #
 #
 #config FEATURE_TC_INGRESS
 #config FEATURE_TC_INGRESS
 #	def_bool n
 #	def_bool n
@@ -834,6 +868,11 @@ config BUSYBOX_FEATURE_TELNET_AUTOLOGIN
 	  log into a machine without telling the username (autologin). This
 	  log into a machine without telling the username (autologin). This
 	  option enables `-a' and `-l USER' arguments.
 	  option enables `-a' and `-l USER' arguments.
 
 
+config BUSYBOX_FEATURE_TELNET_WIDTH
+	bool "Enable window size autodetection"
+	default y
+	depends on BUSYBOX_TELNET
+
 config BUSYBOX_TELNETD
 config BUSYBOX_TELNETD
 	bool "telnetd"
 	bool "telnetd"
 	default n
 	default n
@@ -970,6 +1009,10 @@ config BUSYBOX_TFTP_DEBUG
 	  Make tftp[d] print debugging messages on stderr.
 	  Make tftp[d] print debugging messages on stderr.
 	  This is useful if you are diagnosing a bug in tftp[d].
 	  This is useful if you are diagnosing a bug in tftp[d].
 
 
+config BUSYBOX_TLS
+	bool #No description makes it a hidden option
+	default n
+
 config BUSYBOX_TRACEROUTE
 config BUSYBOX_TRACEROUTE
 	bool "traceroute"
 	bool "traceroute"
 	default n
 	default n

+ 8 - 0
package/busybox/config/procps/Config.in

@@ -219,6 +219,14 @@ config BUSYBOX_TOP
 	  The top program provides a dynamic real-time view of a running
 	  The top program provides a dynamic real-time view of a running
 	  system.
 	  system.
 
 
+config BUSYBOX_FEATURE_TOP_INTERACTIVE
+	bool "Accept keyboard commands"
+	default y
+	depends on BUSYBOX_TOP
+	help
+	Without this, top will only refresh display every 5 seconds.
+	No keyboard commands will work, only ^C to terminate.
+
 config BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
 config BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
 	bool "Show CPU per-process usage percentage"
 	bool "Show CPU per-process usage percentage"
 	default y
 	default y

+ 8 - 1
package/busybox/config/runit/Config.in

@@ -41,7 +41,7 @@ config BUSYBOX_SV
 config BUSYBOX_SV_DEFAULT_SERVICE_DIR
 config BUSYBOX_SV_DEFAULT_SERVICE_DIR
 	string "Default directory for services"
 	string "Default directory for services"
 	default "/var/service"
 	default "/var/service"
-	depends on BUSYBOX_SV
+	depends on BUSYBOX_SV || BUSYBOX_SVC || BUSYBOX_SVOK
 	help
 	help
 	  Default directory for services.
 	  Default directory for services.
 	  Defaults to "/var/service"
 	  Defaults to "/var/service"
@@ -53,6 +53,13 @@ config BUSYBOX_SVC
 	  svc controls the state of services monitored by the runsv supervisor.
 	  svc controls the state of services monitored by the runsv supervisor.
 	  It is comaptible with daemontools command with the same name.
 	  It is comaptible with daemontools command with the same name.
 
 
+config BUSYBOX_SVOK
+	bool "svok (1.5 kb)"
+	default n
+	help
+	svok checks whether runsv supervisor is running.
+	It is compatible with daemontools command with the same name.
+
 config BUSYBOX_SVLOGD
 config BUSYBOX_SVLOGD
 	bool "svlogd"
 	bool "svlogd"
 	default n
 	default n

+ 5 - 7
package/busybox/config/shell/Config.in

@@ -180,6 +180,7 @@ config BUSYBOX_HUSH
 	bool "hush"
 	bool "hush"
 	default y if ADK_TARGET_UCLINUX
 	default y if ADK_TARGET_UCLINUX
 	default n
 	default n
+	select BUSYBOX_SHELL_HUSH
 	help
 	help
 	  hush is a small shell (25k). It handles the normal flow control
 	  hush is a small shell (25k). It handles the normal flow control
 	  constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
 	  constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
@@ -191,6 +192,10 @@ config BUSYBOX_HUSH
 	  It does not handle select, aliases, tilde expansion,
 	  It does not handle select, aliases, tilde expansion,
 	  &>file and >&file redirection of stdout+stderr.
 	  &>file and >&file redirection of stdout+stderr.
 
 
+config BUSYBOX_SHELL_HUSH
+	bool "Internal shell for embedded script support"
+	default n
+
 config BUSYBOX_HUSH_BASH_COMPAT
 config BUSYBOX_HUSH_BASH_COMPAT
 	bool "bash-compatible extensions"
 	bool "bash-compatible extensions"
 	default y
 	default y
@@ -305,13 +310,6 @@ config BUSYBOX_HUSH_MODE_X
 	  This instructs hush to print commands before execution.
 	  This instructs hush to print commands before execution.
 	  Adds ~300 bytes.
 	  Adds ~300 bytes.
 
 
-config BUSYBOX_MSH
-	bool "msh (deprecated: aliased to hush)"
-	default n
-	select BUSYBOX_HUSH
-	help
-	  msh is deprecated and will be removed, please migrate to hush.
-
 choice
 choice
 prompt "Choose which shell is aliased to 'sh' name"
 prompt "Choose which shell is aliased to 'sh' name"
 
 

+ 8 - 0
package/busybox/config/sysklogd/Config.in

@@ -59,6 +59,14 @@ config BUSYBOX_FEATURE_SYSLOGD_CFG
 	help
 	help
 	  Supports restricted syslogd config. See docs/syslog.conf.txt
 	  Supports restricted syslogd config. See docs/syslog.conf.txt
 
 
+config BUSYBOX_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS
+	bool "Include milliseconds in timestamps"
+	default n
+	depends on BUSYBOX_SYSLOGD
+	help
+	Includes milliseconds (HH:MM:SS.mmm) in timestamp when
+	timestamps are added.
+
 config BUSYBOX_FEATURE_SYSLOGD_READ_BUFFER_SIZE
 config BUSYBOX_FEATURE_SYSLOGD_READ_BUFFER_SIZE
 	int "Read buffer size in bytes"
 	int "Read buffer size in bytes"
 	default 256
 	default 256

+ 74 - 0
package/busybox/config/util-linux/Config.in

@@ -18,6 +18,12 @@ config BUSYBOX_BLOCKDEV
 	help
 	help
 	  Performs some ioctls with block devices.
 	  Performs some ioctls with block devices.
 
 
+config BUSYBOX_FALLOCATE
+	bool "fallocate (4.1 kb)"
+	default n
+	help
+	Preallocate space for files.
+
 config BUSYBOX_FATATTR
 config BUSYBOX_FATATTR
 	bool "fatattr"
 	bool "fatattr"
 	default n
 	default n
@@ -90,6 +96,17 @@ config BUSYBOX_FEATURE_MDEV_LOAD_FIRMWARE
 	  /lib/firmware/ and if it exists, send it to the kernel for
 	  /lib/firmware/ and if it exists, send it to the kernel for
 	  loading into the hardware.
 	  loading into the hardware.
 
 
+config BUSYBOX_FEATURE_MDEV_DAEMON
+	bool "Support daemon mode"
+	default y
+	depends on BUSYBOX_MDEV
+	help
+	Adds the -d option to run mdev in daemon mode handling hotplug
+	events from the kernel like udev. If the system generates many
+	hotplug events this mode of operation will consume less
+	resources than registering mdev as hotplug helper or using the
+	uevent applet.
+
 config BUSYBOX_MKE2FS
 config BUSYBOX_MKE2FS
 	bool "mke2fs"
 	bool "mke2fs"
 	default n
 	default n
@@ -389,6 +406,14 @@ config BUSYBOX_FSCK_MINIX
 	  check for and attempt to repair any corruption that occurs to a minix
 	  check for and attempt to repair any corruption that occurs to a minix
 	  filesystem.
 	  filesystem.
 
 
+config BUSYBOX_FSFREEZE
+	bool "fsfreeze (3.5 kb)"
+	default n
+	select BUSYBOX_PLATFORM_LINUX
+	select BUSYBOX_LONG_OPTS
+	help
+	Halt new accesses and flush writes on a mounted filesystem.
+
 config BUSYBOX_MKFS_EXT2
 config BUSYBOX_MKFS_EXT2
 	bool "mkfs_ext2"
 	bool "mkfs_ext2"
 	default n
 	default n
@@ -470,6 +495,13 @@ config BUSYBOX_HD
 	help
 	help
 	  hd is an alias to hexdump -C.
 	  hd is an alias to hexdump -C.
 
 
+config BUSYBOX_XXD
+	bool "xxd (8.9 kb)"
+	default n
+	help
+	The xxd utility is used to display binary data in a readable
+	way that is comparable to the output from most hex editors.
+
 config BUSYBOX_HWCLOCK
 config BUSYBOX_HWCLOCK
 	bool "hwclock"
 	bool "hwclock"
 	default y if ADK_TARGET_WITH_RTC
 	default y if ADK_TARGET_WITH_RTC
@@ -755,6 +787,43 @@ config BUSYBOX_LINUX64
 	help
 	help
 	  Alias to "setarch linux64".
 	  Alias to "setarch linux64".
 
 
+config BUSYBOX_SETPRIV
+	bool "setpriv (6.6 kb)"
+	default n
+	select BUSYBOX_PLATFORM_LINUX
+	select BUSYBOX_LONG_OPTS
+	help
+	Run a program with different Linux privilege settings.
+	Requires kernel >= 3.5
+
+config BUSYBOX_FEATURE_SETPRIV_DUMP
+	bool "Support dumping current privilege state"
+	default y
+	depends on BUSYBOX_SETPRIV
+	help
+	Enables the "--dump" switch to print out the current privilege
+	state. This is helpful for diagnosing problems.
+
+config BUSYBOX_FEATURE_SETPRIV_CAPABILITIES
+	bool "Support capabilities"
+	default y
+	depends on BUSYBOX_SETPRIV
+	help
+	Capabilities can be used to grant processes additional rights
+	without the necessity to always execute as the root user.
+	Enabling this option enables "--dump" to show information on
+	capabilities.
+
+config BUSYBOX_FEATURE_SETPRIV_CAPABILITY_NAMES
+	bool "Support capability names"
+	default y
+	depends on BUSYBOX_SETPRIV && BUSYBOX_FEATURE_SETPRIV_CAPABILITIES
+	help
+	Capabilities can be either referenced via a human-readble name,
+	e.g. "net_admin", or using their index, e.g. "cap_12". Enabling
+	this option allows using the human-readable names in addition to
+	the index-based names.
+
 config BUSYBOX_SWAPON
 config BUSYBOX_SWAPON
 	bool "swapon"
 	bool "swapon"
 	default n
 	default n
@@ -952,6 +1021,11 @@ config BUSYBOX_FEATURE_VOLUMEID_HFS
 	help
 	help
 	  TODO
 	  TODO
 
 
+config BUSYBOX_FEATURE_VOLUMEID_MINIX
+	bool "minix filesystem"
+	default y
+	depends on BUSYBOX_VOLUMEID
+
 config BUSYBOX_FEATURE_VOLUMEID_NILFS
 config BUSYBOX_FEATURE_VOLUMEID_NILFS
        bool "nilfs filesystem"
        bool "nilfs filesystem"
        default y
        default y

+ 0 - 90
package/busybox/patches/002-find-empty.patch

@@ -1,90 +0,0 @@
-diff -Nur busybox-1.17.0.orig/findutils/find.c busybox-1.17.0/findutils/find.c
---- busybox-1.17.0.orig/findutils/find.c	2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0/findutils/find.c	2010-07-08 12:33:55.759015289 +0200
-@@ -133,6 +133,14 @@
- //config:	help
- //config:	  Support the 'find -inum' option for searching by inode number.
- //config:
-+//config:config FEATURE_FIND_EMPTY
-+//config:       bool "Enable -empty option matching empty files and directories"
-+//config:       default y
-+//config:       depends on FIND
-+//config:       help
-+//config:         Support the 'find -empty' option for searching empty files 
-+//config:         and directories.
-+//config:
- //config:config FEATURE_FIND_EXEC
- //config:	bool "Enable -exec: execute commands"
- //config:	default y
-@@ -270,6 +278,7 @@
- IF_FEATURE_FIND_CONTEXT(ACTS(context, security_context_t context;))
- IF_FEATURE_FIND_PAREN(  ACTS(paren, action ***subexpr;))
- IF_FEATURE_FIND_PRUNE(  ACTS(prune))
-+IF_FEATURE_FIND_EMPTY(  ACTS(empty))
- IF_FEATURE_FIND_DELETE( ACTS(delete))
- IF_FEATURE_FIND_EXEC(   ACTS(exec,  char **exec_argv; unsigned *subst_count; int exec_argc;))
- IF_FEATURE_FIND_GROUP(  ACTS(group, gid_t gid;))
-@@ -519,6 +528,34 @@
- 	return exec_actions(ap->subexpr, fileName, statbuf);
- }
- #endif
-+#if ENABLE_FEATURE_FIND_EMPTY
-+ACTF(empty)
-+{
-+	DIR *d;
-+	struct dirent *dp;
-+	bool empty = TRUE;
-+
-+	if (S_ISDIR(statbuf->st_mode)) {
-+		d = opendir(fileName);
-+		if (d == NULL)
-+			bb_simple_perror_msg(fileName);
-+		for (dp = readdir(d); dp; dp = readdir(d)) {
-+			if (dp->d_name[0] != '.' ||
-+				(dp->d_name[1] != '\0' &&
-+				(dp->d_name[1] != '.' ||
-+				dp->d_name[2] != '\0'))) {
-+					empty = FALSE;
-+					break;
-+			}
-+		}
-+		closedir(d);
-+		return(empty);
-+	} else if (S_ISREG(statbuf->st_mode))
-+		return (statbuf->st_size == 0);
-+	else
-+		return FALSE;
-+}
-+#endif
- #if ENABLE_FEATURE_FIND_SIZE
- ACTF(size)
- {
-@@ -686,6 +723,7 @@
- 	IF_FEATURE_FIND_PRINT0( PARM_print0    ,)
- 	IF_FEATURE_FIND_DEPTH(  PARM_depth     ,)
- 	IF_FEATURE_FIND_PRUNE(  PARM_prune     ,)
-+	IF_FEATURE_FIND_EMPTY(  PARM_empty     ,)
- 	IF_FEATURE_FIND_DELETE( PARM_delete    ,)
- 	IF_FEATURE_FIND_EXEC(   PARM_exec      ,)
- 	IF_FEATURE_FIND_PAREN(  PARM_char_brace,)
-@@ -720,6 +758,7 @@
- 	IF_FEATURE_FIND_PRINT0( "-print0\0" )
- 	IF_FEATURE_FIND_DEPTH(  "-depth\0"  )
- 	IF_FEATURE_FIND_PRUNE(  "-prune\0"  )
-+	IF_FEATURE_FIND_EMPTY(  "-empty\0"  )
- 	IF_FEATURE_FIND_DELETE( "-delete\0" )
- 	IF_FEATURE_FIND_EXEC(   "-exec\0"   )
- 	IF_FEATURE_FIND_PAREN(  "(\0"       )
-@@ -839,6 +878,12 @@
- 			(void) ALLOC_ACTION(prune);
- 		}
- #endif
-+#if ENABLE_FEATURE_FIND_EMPTY
-+		else if (parm == PARM_empty) {
-+			IF_FEATURE_FIND_NOT( invert_flag = 0; )
-+			(void) ALLOC_ACTION(empty);
-+		}
-+#endif
- #if ENABLE_FEATURE_FIND_DELETE
- 		else if (parm == PARM_delete) {
- 			G.need_print = 0;

+ 0 - 214
package/busybox/patches/006-od-bloat.patch

@@ -1,214 +0,0 @@
-diff -Nur busybox-1.18.1.orig/coreutils/od.c busybox-1.18.1/coreutils/od.c
---- busybox-1.18.1.orig/coreutils/od.c	2010-12-20 01:41:26.000000000 +0100
-+++ busybox-1.18.1/coreutils/od.c	2010-12-25 23:18:48.000000000 +0100
-@@ -13,210 +13,4 @@
- 
- 
- #include "libbb.h"
--#if ENABLE_DESKTOP
--/* This one provides -t (busybox's own build script needs it) */
- #include "od_bloaty.c"
--#else
--
--#include "dump.h"
--
--static void
--odoffset(dumper_t *dumper, int argc, char ***argvp)
--{
--	char *num, *p;
--	int base;
--	char *end;
--
--	/*
--	 * The offset syntax of od(1) was genuinely bizarre.  First, if
--	 * it started with a plus it had to be an offset.  Otherwise, if
--	 * there were at least two arguments, a number or lower-case 'x'
--	 * followed by a number makes it an offset.  By default it was
--	 * octal; if it started with 'x' or '0x' it was hex.  If it ended
--	 * in a '.', it was decimal.  If a 'b' or 'B' was appended, it
--	 * multiplied the number by 512 or 1024 byte units.  There was
--	 * no way to assign a block count to a hex offset.
--	 *
--	 * We assumes it's a file if the offset is bad.
--	 */
--	p = **argvp;
--
--	if (!p) {
--		/* hey someone is probably piping to us ... */
--		return;
--	}
--
--	if ((*p != '+')
--		&& (argc < 2
--			|| (!isdigit(p[0])
--				&& ((p[0] != 'x') || !isxdigit(p[1])))))
--		return;
--
--	base = 0;
--	/*
--	 * skip over leading '+', 'x[0-9a-fA-f]' or '0x', and
--	 * set base.
--	 */
--	if (p[0] == '+')
--		++p;
--	if (p[0] == 'x' && isxdigit(p[1])) {
--		++p;
--		base = 16;
--	} else if (p[0] == '0' && p[1] == 'x') {
--		p += 2;
--		base = 16;
--	}
--
--	/* skip over the number */
--	if (base == 16)
--		for (num = p; isxdigit(*p); ++p)
--			continue;
--	else
--		for (num = p; isdigit(*p); ++p)
--			continue;
--
--	/* check for no number */
--	if (num == p)
--		return;
--
--	/* if terminates with a '.', base is decimal */
--	if (*p == '.') {
--		if (base)
--			return;
--		base = 10;
--	}
--
--	dumper->dump_skip = strtol(num, &end, base ? base : 8);
--
--	/* if end isn't the same as p, we got a non-octal digit */
--	if (end != p)
--		dumper->dump_skip = 0;
--	else {
--		if (*p) {
--			if (*p == 'b') {
--				dumper->dump_skip *= 512;
--				++p;
--			} else if (*p == 'B') {
--				dumper->dump_skip *= 1024;
--				++p;
--			}
--		}
--		if (*p)
--			dumper->dump_skip = 0;
--		else {
--			++*argvp;
--			/*
--			 * If the offset uses a non-octal base, the base of
--			 * the offset is changed as well.  This isn't pretty,
--			 * but it's easy.
--			 */
--#define TYPE_OFFSET 7
--			{
--				char x_or_d;
--				if (base == 16) {
--					x_or_d = 'x';
--					goto DO_X_OR_D;
--				}
--				if (base == 10) {
--					x_or_d = 'd';
-- DO_X_OR_D:
--					dumper->fshead->nextfu->fmt[TYPE_OFFSET]
--						= dumper->fshead->nextfs->nextfu->fmt[TYPE_OFFSET]
--						= x_or_d;
--				}
--			}
--		}
--	}
--}
--
--static const char *const add_strings[] = {
--	"16/1 \"%3_u \" \"\\n\"",              /* a */
--	"8/2 \" %06o \" \"\\n\"",              /* B, o */
--	"16/1 \"%03o \" \"\\n\"",              /* b */
--	"16/1 \"%3_c \" \"\\n\"",              /* c */
--	"8/2 \"  %05u \" \"\\n\"",             /* d */
--	"4/4 \"     %010u \" \"\\n\"",         /* D */
--	"2/8 \"          %21.14e \" \"\\n\"",  /* e (undocumented in od), F */
--	"4/4 \" %14.7e \" \"\\n\"",            /* f */
--	"4/4 \"       %08x \" \"\\n\"",        /* H, X */
--	"8/2 \"   %04x \" \"\\n\"",            /* h, x */
--	"4/4 \"    %11d \" \"\\n\"",           /* I, L, l */
--	"8/2 \" %6d \" \"\\n\"",               /* i */
--	"4/4 \"    %011o \" \"\\n\"",          /* O */
--};
--
--static const char od_opts[] ALIGN1 = "aBbcDdeFfHhIiLlOoXxv";
--
--static const char od_o2si[] ALIGN1 = {
--	0, 1, 2, 3, 5,
--	4, 6, 6, 7, 8,
--	9, 0xa, 0xb, 0xa, 0xa,
--	0xb, 1, 8, 9,
--};
--
--int od_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
--int od_main(int argc, char **argv)
--{
--	int ch;
--	int first = 1;
--	char *p;
--	dumper_t *dumper = alloc_dumper();
--
--	while ((ch = getopt(argc, argv, od_opts)) > 0) {
--		if (ch == 'v') {
--			dumper->dump_vflag = ALL;
--		} else if (((p = strchr(od_opts, ch)) != NULL) && (*p != '\0')) {
--			if (first) {
--				first = 0;
--				bb_dump_add(dumper, "\"%07.7_Ao\n\"");
--				bb_dump_add(dumper, "\"%07.7_ao  \"");
--			} else {
--				bb_dump_add(dumper, "\"         \"");
--			}
--			bb_dump_add(dumper, add_strings[(int)od_o2si[(p - od_opts)]]);
--		} else {  /* P, p, s, w, or other unhandled */
--			bb_show_usage();
--		}
--	}
--	if (!dumper->fshead) {
--		bb_dump_add(dumper, "\"%07.7_Ao\n\"");
--		bb_dump_add(dumper, "\"%07.7_ao  \" 8/2 \"%06o \" \"\\n\"");
--	}
--
--	argc -= optind;
--	argv += optind;
--
--	odoffset(dumper, argc, &argv);
--
--	return bb_dump_dump(dumper, argv);
--}
--#endif /* ENABLE_DESKTOP */
--
--/*-
-- * Copyright (c) 1990 The Regents of the University of California.
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- *    notice, this list of conditions and the following disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- *    notice, this list of conditions and the following disclaimer in the
-- *    documentation and/or other materials provided with the distribution.
-- * 3. Neither the name of the University nor the names of its contributors
-- *    may be used to endorse or promote products derived from this software
-- *    without specific prior written permission.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-- * SUCH DAMAGE.
-- */

+ 0 - 65
package/busybox/patches/009-Replace-obsolete-stime-API-with-clock_settime.patch

@@ -1,65 +0,0 @@
-diff -Nur busybox-1.26.2.orig/coreutils/date.c busybox-1.26.2/coreutils/date.c
---- busybox-1.26.2.orig/coreutils/date.c	2016-12-10 18:46:36.000000000 +0100
-+++ busybox-1.26.2/coreutils/date.c	2020-02-04 09:55:25.126083910 +0100
-@@ -267,6 +267,9 @@
- 		time(&ts.tv_sec);
- #endif
- 	}
-+#if !ENABLE_FEATURE_DATE_NANO
-+	ts.tv_nsec = 0;
-+#endif
- 	localtime_r(&ts.tv_sec, &tm_time);
- 
- 	/* If date string is given, update tm_time, and maybe set date */
-@@ -289,11 +292,12 @@
- 		if (date_str[0] != '@')
- 			tm_time.tm_isdst = -1;
- 		ts.tv_sec = validate_tm_time(date_str, &tm_time);
-+		ts.tv_nsec = 0;
- 
- 		maybe_set_utc(opt);
- 
- 		/* if setting time, set it */
--		if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
-+		if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
- 			bb_perror_msg("can't set date");
- 		}
- 	}
-diff -Nur busybox-1.26.2.orig/libbb/missing_syscalls.c busybox-1.26.2/libbb/missing_syscalls.c
---- busybox-1.26.2.orig/libbb/missing_syscalls.c	2016-09-27 18:53:50.000000000 +0200
-+++ busybox-1.26.2/libbb/missing_syscalls.c	2020-02-04 09:55:58.848244715 +0100
-@@ -16,14 +16,6 @@
- 	return syscall(__NR_getsid, pid);
- }
- 
--int stime(const time_t *t)
--{
--	struct timeval tv;
--	tv.tv_sec = *t;
--	tv.tv_usec = 0;
--	return settimeofday(&tv, NULL);
--}
--
- int sethostname(const char *name, size_t len)
- {
- 	return syscall(__NR_sethostname, name, len);
-diff -Nur busybox-1.26.2.orig/util-linux/rdate.c busybox-1.26.2/util-linux/rdate.c
---- busybox-1.26.2.orig/util-linux/rdate.c	2016-12-10 18:46:36.000000000 +0100
-+++ busybox-1.26.2/util-linux/rdate.c	2020-02-04 09:56:53.927774023 +0100
-@@ -79,9 +79,13 @@
- 		time(&current_time);
- 		if (current_time == remote_time)
- 			bb_error_msg("current time matches remote time");
--		else
--			if (stime(&remote_time) < 0)
--				bb_perror_msg_and_die("can't set time of day");
-+		else {
-+			struct timespec ts;
-+			ts.tv_sec = remote_time;
-+			ts.tv_nsec = 0;
-+			if (clock_settime(CLOCK_REALTIME, &ts) < 0)
-+ 				bb_perror_msg_and_die("can't set time of day");
-+		}
- 	}
- 
- 	if (flags != 1) /* not lone -s */