summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/busybox/Makefile6
-rw-r--r--package/busybox/config/Config.in49
-rw-r--r--package/busybox/config/archival/Config.in33
-rw-r--r--package/busybox/config/coreutils/Config.in69
-rw-r--r--package/busybox/config/findutils/Config.in22
-rw-r--r--package/busybox/config/init/Config.in16
-rw-r--r--package/busybox/config/libbb/Config.in36
-rw-r--r--package/busybox/config/loginutils/Config.in5
-rw-r--r--package/busybox/config/miscutils/Config.in81
-rw-r--r--package/busybox/config/modutils/Config.in15
-rw-r--r--package/busybox/config/networking/Config.in53
-rw-r--r--package/busybox/config/procps/Config.in8
-rw-r--r--package/busybox/config/runit/Config.in9
-rw-r--r--package/busybox/config/shell/Config.in12
-rw-r--r--package/busybox/config/sysklogd/Config.in8
-rw-r--r--package/busybox/config/util-linux/Config.in74
-rw-r--r--package/busybox/patches/002-find-empty.patch90
-rw-r--r--package/busybox/patches/006-od-bloat.patch214
-rw-r--r--package/busybox/patches/009-Replace-obsolete-stime-API-with-clock_settime.patch65
19 files changed, 480 insertions, 385 deletions
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index f9a94828c..12ce1707c 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
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_SECTION:= base/apps
PKG_URL:= http://www.busybox.net/
diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in
index 868f0b9ff..69029adae 100644
--- a/package/busybox/config/Config.in
+++ b/package/busybox/config/Config.in
@@ -30,6 +30,19 @@ config BUSYBOX_EXTRA_COMPAT
some GNU extensions in libc. You probably only need this option
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
bool "Enable obsolete features removed before SUSv3"
default n
@@ -47,6 +60,14 @@ config BUSYBOX_USE_PORTABLE_CODE
compiler other than gcc.
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
bool "Don't use /usr"
default n
@@ -135,6 +156,11 @@ config BUSYBOX_BUSYBOX
If you can live without these features disabling this will save
some space.
+config BUSYBOX_FEATURE_SHOW_SCRIPT
+ bool "Support --show SCRIPT"
+ default n
+ depends on BUSYBOX_BUSYBOX
+
config BUSYBOX_FEATURE_INSTALLER
bool "Support --install [-s] to install applet links at runtime"
default n
@@ -316,6 +342,15 @@ config BUSYBOX_FEATURE_CLEAN_UP
Don't enable this unless you have a really good reason to clean
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
bool "Support utmp file"
default n
@@ -728,6 +763,19 @@ config BUSYBOX_WERROR
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
prompt "Additional debugging library"
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/console-tools/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/findutils/Config.in
source package/busybox/config/init/Config.in
diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in
index 8532767c2..b3f453ae2 100644
--- a/package/busybox/config/archival/Config.in
+++ b/package/busybox/config/archival/Config.in
@@ -457,4 +457,37 @@ config BUSYBOX_UNZIP
current directory. Use the `-d' option to extract to a
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
diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in
index bb0d2a121..60bc5b0e7 100644
--- a/package/busybox/config/coreutils/Config.in
+++ b/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
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
bool "date"
default y
@@ -430,6 +444,12 @@ config BUSYBOX_EXPR_MATH_SUPPORT_64
the applet slightly larger, but will allow computation with very
large numbers.
+config BUSYBOX_FACTOR
+ bool "factor (2.7 kb)"
+ default n
+ help
+ factor factorizes integers
+
config BUSYBOX_FALSE
bool "false"
default n
@@ -480,6 +500,11 @@ config BUSYBOX_FEATURE_INSTALL_LONG_OPTIONS
#### default y
#### help
#### 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
bool "ln"
@@ -520,6 +545,11 @@ config BUSYBOX_FEATURE_LS_RECURSIVE
help
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
bool "Sort the file names"
default y
@@ -611,18 +641,37 @@ config BUSYBOX_NICE
help
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
bool "nohup"
default n
help
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
bool "od"
default n
help
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
bool "printenv"
default n
@@ -689,6 +738,12 @@ config BUSYBOX_SEQ
help
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
bool "sha1sum"
default n
@@ -759,6 +814,14 @@ config BUSYBOX_FEATURE_SORT_BIG
The SuSv3 sort standard is available at:
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
bool "split"
default n
@@ -891,6 +954,12 @@ config BUSYBOX_UNAME_OSNAME
Sets the operating system name reported by uname -o. The
default is "GNU/Linux".
+config BUSYBOX_BB_ARCH
+ bool "arch (1.1 kb)"
+ default n
+ help
+ Same as uname -m.
+
config BUSYBOX_UNEXPAND
bool "unexpand"
default n
diff --git a/package/busybox/config/findutils/Config.in b/package/busybox/config/findutils/Config.in
index a9bb761b2..09c30f6d5 100644
--- a/package/busybox/config/findutils/Config.in
+++ b/package/busybox/config/findutils/Config.in
@@ -54,6 +54,11 @@ config BUSYBOX_FEATURE_FIND_TYPE
Enable searching based on file type (file,
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
bool "Enable -xdev: 'stay in filesystem'"
default y
@@ -161,6 +166,13 @@ config BUSYBOX_FEATURE_FIND_PRUNE
If the file is a directory, dont descend into it. Useful for
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
bool "Enable -delete: delete files/dirs"
default y
@@ -274,4 +286,14 @@ config BUSYBOX_FEATURE_XARGS_SUPPORT_REPL_STR
help
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
diff --git a/package/busybox/config/init/Config.in b/package/busybox/config/init/Config.in
index 9e17c790c..33ddd603b 100644
--- a/package/busybox/config/init/Config.in
+++ b/package/busybox/config/init/Config.in
@@ -63,6 +63,17 @@ config BUSYBOX_REBOOT
help
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
bool "Call telinit on shutdown and reboot"
default n
@@ -149,6 +160,11 @@ config BUSYBOX_FEATURE_INIT_SYSLOG
default y
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
bool "Be _extra_ quiet on boot"
default y
diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in
index 6aff24699..afbc81213 100644
--- a/package/busybox/config/libbb/Config.in
+++ b/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'
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
bool "Support RTMIN[+n] and RTMAX[-n] signal names"
default y
@@ -46,6 +52,18 @@ config BUSYBOX_FEATURE_RTMINMAX
Support RTMIN[+n] and RTMAX[-n] signal names
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
int "Minimum password length"
default 6
@@ -92,6 +110,19 @@ config BUSYBOX_FEATURE_ETC_NETWORKS
a rarely used feature which allows you to use names
instead of IP/mask pairs in route command.
+config BUSYBOX_FEATURE_ETC_SERVICES
+ bool "Consult /etc/services even for well-known ports"
+ default n
+ help
+ Look up e.g. "telnet" and "http" in /etc/services file
+ instead of assuming ports 23 and 80.
+ This is almost never necessary (everybody uses standard ports),
+ and it makes sense to avoid reading this file.
+ If you disable this option, in the cases where port is explicitly
+ specified as a service name (e.g. "telnet HOST PORTNAME"),
+ it will still be looked up in /etc/services.
+
+
config BUSYBOX_FEATURE_USE_TERMIOS
bool "Use termios to manipulate the screen"
default y
@@ -180,6 +211,11 @@ config BUSYBOX_FEATURE_EDITING_FANCY_PROMPT
Setting this option allows for prompts to use things like \w and
\$ 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
bool "Query cursor position from terminal"
default n
diff --git a/package/busybox/config/loginutils/Config.in b/package/busybox/config/loginutils/Config.in
index 3e435a25c..03aba2b07 100644
--- a/package/busybox/config/loginutils/Config.in
+++ b/package/busybox/config/loginutils/Config.in
@@ -338,6 +338,11 @@ config BUSYBOX_FEATURE_SU_CHECKS_SHELLS
depends on BUSYBOX_SU
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
bool "sulogin"
default n
diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in
index 107a96664..cafe66989 100644
--- a/package/busybox/config/miscutils/Config.in
+++ b/package/busybox/config/miscutils/Config.in
@@ -44,6 +44,13 @@ config BUSYBOX_I2CDETECT
help
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
bool "less"
depends on !BUSYBOX_DISABLE_LESS
@@ -129,6 +136,32 @@ config BUSYBOX_FEATURE_LESS_LINENUMS
help
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
bool "nandwrite"
default n
@@ -143,6 +176,19 @@ config BUSYBOX_NANDDUMP
help
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
bool "setserial"
default n
@@ -368,6 +414,31 @@ config BUSYBOX_CRONTAB
Note that Busybox binary must be setuid root for this applet to
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
bool "dc"
default n
@@ -612,6 +683,12 @@ config BUSYBOX_FEATURE_HDPARM_HDIO_GETSET_DMA
help
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
bool "makedevs"
default n
@@ -763,6 +840,10 @@ config BUSYBOX_TIME
When the command finishes, time writes a message to standard output
giving timing statistics about this program run.
+config BUSYBOX_TS
+ bool "ts (450 bytes)"
+ default n
+
config BUSYBOX_TIMEOUT
bool "timeout"
default n
diff --git a/package/busybox/config/modutils/Config.in b/package/busybox/config/modutils/Config.in
index 27709277d..22d554eca 100644
--- a/package/busybox/config/modutils/Config.in
+++ b/package/busybox/config/modutils/Config.in
@@ -136,6 +136,21 @@ config BUSYBOX_DEPMOD
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
bool "Support version 2.2/2.4 Linux kernels"
default n
diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in
index 8592e66ef..be486d361 100644
--- a/package/busybox/config/networking/Config.in
+++ b/package/busybox/config/networking/Config.in
@@ -49,6 +49,12 @@ config BUSYBOX_NC
A simple Unix utility which reads and writes data across network
connections.
+config BUSYBOX_NETCAT
+ bool "netcat (11 kb)"
+ default y
+ help
+ Alias to nc.
+
config BUSYBOX_NC_SERVER
bool "Netcat server options (-l)"
default y
@@ -145,6 +151,17 @@ config BUSYBOX_VERBOSE_RESOLUTION_ERRORS
"can't resolve 'hostname.com'" and want to know more.
This may increase size of your executable a bit.
+config BUSYBOX_FEATURE_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
bool "arp"
default n
@@ -745,6 +762,16 @@ config BUSYBOX_NSLOOKUP
help
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
bool "ntpd"
depends on !BUSYBOX_DISABLE_NTPD
@@ -791,11 +818,18 @@ config BUSYBOX_SLATTACH
slattach is a small utility to attach network interfaces to serial
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
# def_bool n
@@ -834,6 +868,11 @@ config BUSYBOX_FEATURE_TELNET_AUTOLOGIN
log into a machine without telling the username (autologin). This
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
bool "telnetd"
default n
@@ -970,6 +1009,10 @@ config BUSYBOX_TFTP_DEBUG
Make tftp[d] print debugging messages on stderr.
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
bool "traceroute"
default n
diff --git a/package/busybox/config/procps/Config.in b/package/busybox/config/procps/Config.in
index 6da62d0ce..052b77e41 100644
--- a/package/busybox/config/procps/Config.in
+++ b/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
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
bool "Show CPU per-process usage percentage"
default y
diff --git a/package/busybox/config/runit/Config.in b/package/busybox/config/runit/Config.in
index 87b9b6b1d..2df1c2d90 100644
--- a/package/busybox/config/runit/Config.in
+++ b/package/busybox/config/runit/Config.in
@@ -41,7 +41,7 @@ config BUSYBOX_SV
config BUSYBOX_SV_DEFAULT_SERVICE_DIR
string "Default directory for services"
default "/var/service"
- depends on BUSYBOX_SV
+ depends on BUSYBOX_SV || BUSYBOX_SVC || BUSYBOX_SVOK
help
Default directory for services.
Defaults to "/var/service"
@@ -53,6 +53,13 @@ config BUSYBOX_SVC
svc controls the state of services monitored by the runsv supervisor.
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
bool "svlogd"
default n
diff --git a/package/busybox/config/shell/Config.in b/package/busybox/config/shell/Config.in
index efc17ff49..05d1aaccd 100644
--- a/package/busybox/config/shell/Config.in
+++ b/package/busybox/config/shell/Config.in
@@ -180,6 +180,7 @@ config BUSYBOX_HUSH
bool "hush"
default y if ADK_TARGET_UCLINUX
default n
+ select BUSYBOX_SHELL_HUSH
help
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,
@@ -191,6 +192,10 @@ config BUSYBOX_HUSH
It does not handle select, aliases, tilde expansion,
&>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
bool "bash-compatible extensions"
default y
@@ -305,13 +310,6 @@ config BUSYBOX_HUSH_MODE_X
This instructs hush to print commands before execution.
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
prompt "Choose which shell is aliased to 'sh' name"
diff --git a/package/busybox/config/sysklogd/Config.in b/package/busybox/config/sysklogd/Config.in
index 6df10efde..aaa6509e1 100644
--- a/package/busybox/config/sysklogd/Config.in
+++ b/package/busybox/config/sysklogd/Config.in
@@ -59,6 +59,14 @@ config BUSYBOX_FEATURE_SYSLOGD_CFG
help
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
int "Read buffer size in bytes"
default 256
diff --git a/package/busybox/config/util-linux/Config.in b/package/busybox/config/util-linux/Config.in
index 83830728b..106ebd934 100644
--- a/package/busybox/config/util-linux/Config.in
+++ b/package/busybox/config/util-linux/Config.in
@@ -18,6 +18,12 @@ config BUSYBOX_BLOCKDEV
help
Performs some ioctls with block devices.
+config BUSYBOX_FALLOCATE
+ bool "fallocate (4.1 kb)"
+ default n
+ help
+ Preallocate space for files.
+
config BUSYBOX_FATATTR
bool "fatattr"
default n
@@ -90,6 +96,17 @@ config BUSYBOX_FEATURE_MDEV_LOAD_FIRMWARE
/lib/firmware/ and if it exists, send it to the kernel for
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
bool "mke2fs"
default n
@@ -389,6 +406,14 @@ config BUSYBOX_FSCK_MINIX
check for and attempt to repair any corruption that occurs to a minix
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
bool "mkfs_ext2"
default n
@@ -470,6 +495,13 @@ config BUSYBOX_HD
help
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
bool "hwclock"
default y if ADK_TARGET_WITH_RTC
@@ -755,6 +787,43 @@ config BUSYBOX_LINUX64
help
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
bool "swapon"
default n
@@ -952,6 +1021,11 @@ config BUSYBOX_FEATURE_VOLUMEID_HFS
help
TODO
+config BUSYBOX_FEATURE_VOLUMEID_MINIX
+ bool "minix filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+
config BUSYBOX_FEATURE_VOLUMEID_NILFS
bool "nilfs filesystem"
default y
diff --git a/package/busybox/patches/002-find-empty.patch b/package/busybox/patches/002-find-empty.patch
deleted file mode 100644
index f8c1f98cf..000000000
--- a/package/busybox/patches/002-find-empty.patch
+++ /dev/null
@@ -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;
diff --git a/package/busybox/patches/006-od-bloat.patch b/package/busybox/patches/006-od-bloat.patch
deleted file mode 100644
index ff501acdb..000000000
--- a/package/busybox/patches/006-od-bloat.patch
+++ /dev/null
@@ -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.
-- */
diff --git a/package/busybox/patches/009-Replace-obsolete-stime-API-with-clock_settime.patch b/package/busybox/patches/009-Replace-obsolete-stime-API-with-clock_settime.patch
deleted file mode 100644
index 14795da41..000000000
--- a/package/busybox/patches/009-Replace-obsolete-stime-API-with-clock_settime.patch
+++ /dev/null
@@ -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 */