include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
-PKG_VERSION:=1.15.3
+PKG_VERSION:=1.16.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/
-PKG_MD5SUM:=6059ac9456de6fb18dc8ee4cd0ec9240
+PKG_MD5SUM:=319486ec65078d07fde26eb620fecde7
include $(INCLUDE_DIR)/package.mk
some GNU extensions in libc. You probably only need this option
if you plan to run busybox on desktop.
+config BUSYBOX_CONFIG_INCLUDE_SUSv2
+ bool "Enable obsolete features removed before SUSv3"
+ default y
+ help
+ This option will enable backwards compatibility with SuSv2,
+ specifically, old-style numeric options ('command -1 <file>')
+ will be supported in head, tail, and fold. (Note: should
+ affect renice too.)
+
+config BUSYBOX_CONFIG_USE_PORTABLE_CODE
+ bool "Avoid using GCC-specific code constructs"
+ default n
+ help
+ Use this option if you are trying to compile busybox with
+ compiler other than gcc.
+ If you do use gcc, this option may needlessly increase code size.
+
choice
prompt "Buffer allocation policy"
default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
endchoice
-config BUSYBOX_CONFIG_INCLUDE_SUSv2
- bool "Enable obsolete features removed before SUSv3?"
- default y
- help
- This option will enable backwards compatibility with SuSv2,
- specifically, old-style numeric options ('command -1 <file>')
- will be supported in head, tail, and fold. (Note: should
- affect renice too.)
-
### config PARSE
-### bool "Uniform config file parser debugging applet: parse"
+### bool "Uniform config file parser debugging applet: parse"
endmenu
gzip is used to compress files.
It's probably the most widely used UNIX compression program.
+config BUSYBOX_CONFIG_FEATURE_GZIP_LONG_OPTIONS
+ bool "Enable long options"
+ default n
+ depends on BUSYBOX_CONFIG_GZIP && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Enable use of long options, increases size by about 106 Bytes
+
config BUSYBOX_CONFIG_LZOP
bool "lzop"
default n
listings (-t) and preserving permissions when unpacking (-p).
+200 bytes.
+config BUSYBOX_CONFIG_FEATURE_TAR_NOPRESERVE_TIME
+ bool "Enable -m (do not preserve time) option"
+ default n
+ depends on BUSYBOX_CONFIG_TAR
+ help
+ With this option busybox supports GNU tar -m
+ (do not preserve time) option.
+
endif #tar
config BUSYBOX_CONFIG_UNCOMPRESS
chown is used to change the user and/or group ownership
of files.
+config BUSYBOX_CONFIG_FEATURE_CHOWN_LONG_OPTIONS
+ bool "Enable long options"
+ default n
+ depends on BUSYBOX_CONFIG_CHOWN && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Enable use of long options
+
config BUSYBOX_CONFIG_CHROOT
bool "chroot"
default y
help
cp is used to copy files and directories.
+config BUSYBOX_CONFIG_FEATURE_CP_LONG_OPTIONS
+ bool "Enable long options for cp"
+ default n
+ depends on BUSYBOX_CONFIG_CP && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Enable long options for cp.
+ Also add support for --parents option.
+
config BUSYBOX_CONFIG_CUT
bool "cut"
default y
Enable option (-I) to output an ISO-8601 compliant
date/time string.
+config BUSYBOX_CONFIG_FEATURE_DATE_COMPAT
+ bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
+ default n
+ depends on BUSYBOX_CONFIG_DATE
+ help
+ System time can be set by 'date -s DATE' and simply 'date DATE',
+ but formats of DATE string are different. 'date DATE' accepts
+ a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
+ unnatural placement of year between minutes and seconds.
+ date -s (and other commands like touch -d) use more sensible
+ formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
+
+ With this option off, 'date DATE' is 'date -s DATE' support
+ the same format. With it on, 'date DATE' additionally supports
+ MMDDhhmm[[YY]YY][.ss] format.
+
config BUSYBOX_CONFIG_DD
bool "dd"
default y
default y
depends on BUSYBOX_CONFIG_DD
help
- sending a SIGUSR1 signal to a running `dd' process makes it
+ Sending a SIGUSR1 signal to a running `dd' process makes it
print to standard error the number of records read and written
so far, then to resume copying.
$ dd if=/dev/zero of=/dev/null&
$ pid=$! kill -USR1 $pid; sleep 1; kill $pid
- 10899206+0 records in 10899206+0 records out
+ 10899206+0 records in
+ 10899206+0 records out
+
+config BUSYBOX_CONFIG_FEATURE_DD_THIRD_STATUS_LINE
+ bool "Enable the third status line upon signal"
+ default n
+ depends on BUSYBOX_CONFIG_DD && BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
+ help
+ Displays a coreutils-like third status line with transferred bytes,
+ elapsed time and speed.
config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS
bool "Enable ibs, obs and conv options"
help
Allow df, du, and ls to have human readable output.
-comment "Common options for md5sum, sha1sum"
- depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM
+comment "Common options for md5sum, sha1sum, sha256sum, sha512sum"
+ depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM
config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
bool "Enable -c, -s and -w options"
default y
- depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM
+ depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM
help
Enabling the -c options allows files to be checked
against pre-calculated hash values.
differences between them in a form that can be given to
the patch command.
-config BUSYBOX_CONFIG_FEATURE_DIFF_BINARY
- bool "Enable checks for binary files"
+config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS
+ bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_DIFF
+ depends on BUSYBOX_CONFIG_DIFF && BUSYBOX_CONFIG_LONG_OPTS
help
- This option enables support for checking for binary files
- before a comparison is carried out.
+ Enable use of long options.
config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
bool "Enable directory support"
This option enables support for directory and subdirectory
comparison.
-config BUSYBOX_CONFIG_FEATURE_DIFF_MINIMAL
- bool "Enable -d option to find smaller sets of changes"
- default n
- depends on BUSYBOX_CONFIG_DIFF
- help
- Enabling this option allows the use of -d to make diff
- try hard to find the smallest possible set of changes.
-
config BUSYBOX_CONFIG_ED
bool "ed"
default n
help
Support the 'find -context' option for matching security context.
+config BUSYBOX_CONFIG_FEATURE_FIND_LINKS
+ bool "Enable -links: link count matching"
+ default n
+ depends on BUSYBOX_CONFIG_FIND
+ help
+ Support the 'find -links' option for matching number of links.
+
config BUSYBOX_CONFIG_GREP
bool "grep"
default y
current cursor position. This information is used to make line
editing more robust in some cases.
If you are not sure whether your terminals respond to this code
- correctly, or want to save on code size (about 300 bytes),
+ correctly, or want to save on code size (about 400 bytes),
then do not turn this option on.
config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
$ 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 remove '/does_not_exist/file': No such file or directory
+ cp: cannot create '/does_not_exist/file': No such file or directory
cp: cannot stat '/vmlinuz/file': Not a directory
- respectively.
This will cost you ~60 bytes.
config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
-d sets loglevel to 0 (most verbose) and directs all output to stderr.
config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
- bool "Using /usr/sbin/sendmail?"
+ bool "Report command output via email (using sendmail)"
default n
depends on BUSYBOX_CONFIG_CROND
help
- Support calling /usr/sbin/sendmail for send cmd outputs.
+ Command output will be sent to corresponding user via email.
config BUSYBOX_CONFIG_FEATURE_CROND_DIR
string "crond spool directory"
"NN" (ASCII decimal number) - percentage to show on progress bar
"exit" - well you guessed it
+config BUSYBOX_CONFIG_FLASHCP
+ bool "flashcp"
+ default n
+ help
+ The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
+ This utility is used to copy images into a MTD device.
+
config BUSYBOX_CONFIG_FLASH_LOCK
bool "flash_lock"
default n
help
Prints a CD-ROM volume name.
+config BUSYBOX_CONFIG_WALL
+ bool "wall"
+ default n
+ help
+ Write a message to all users that are logged in.
+
config BUSYBOX_CONFIG_WATCHDOG
bool "watchdog"
default y
This increases size considerably. Say N unless you plan
to run ancient kernels.
+config BUSYBOX_CONFIG_FEATURE_INSMOD_TRY_MMAP
+ bool "Try to load module from a mmap'ed area"
+ default n
+ depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE_SMALL
+ help
+ This option causes module loading code to try to mmap
+ module first. If it does not work (for example,
+ it does not work for compressed modules), module will be read
+ (and unpacked if needed) into a memory block allocated by malloc.
+
+ The only case when mmap works but malloc does not is when
+ you are trying to load a big module on a very memory-constrained
+ machine. Malloc will momentarily need 2x as much memory as mmap.
+
+ Choosing N saves about 250 bytes of code (on 32-bit x86).
+
config BUSYBOX_CONFIG_FEATURE_INSMOD_VERSION_CHECKING
bool "Enable module version checking"
default n
help
Enable all kinds of FTP upload commands (-w option)
+config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
+ bool "Enable workaround for RFC-violating clients"
+ default n
+ depends on BUSYBOX_CONFIG_FTPD
+ help
+ Some ftp-clients (among them KDE's Konqueror) issue illegal
+ "LIST -la" requests. This option works around those problems.
+ It might prevent you from listing files starting with "-" and
+ it increases the code size by ~40 bytes.
+ Most other ftp servers seem to behave similar to this.
+
config BUSYBOX_CONFIG_FTPGET
bool "ftpget"
default n
help
nslookup is a tool to query Internet name servers.
+config BUSYBOX_CONFIG_NTPD
+ bool "ntpd"
+ default n
+ help
+ The NTP client/server daemon.
+
+config BUSYBOX_CONFIG_FEATURE_NTPD_SERVER
+ bool "Make ntpd usable as a NTP server"
+ default n
+ depends on BUSYBOX_CONFIG_NTPD
+ help
+ Make ntpd usable as a NTP server. If you disable this option
+ ntpd will be usable only as a NTP client.
+
config BUSYBOX_CONFIG_PING
bool "ping"
default y
help
Selecting this will make telnetd able to run standalone.
+config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD_WAIT
+ bool "Support -w SEC option (inetd wait mode)"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
+ help
+ This option allows you to run telnetd in "inet wait" mode.
+ Example inetd.conf line (note "wait", not usual "nowait"):
+
+ telnet stream tcp wait root /bin/telnetd telnetd -w10
+
+ In this example, inetd passes _listening_ socket_ as fd 0
+ to telnetd when connection appears.
+ telnetd will wait for connections until all existing
+ connections are closed, and no new connections
+ appear during 10 seconds. Then it exits, and inetd continues
+ to listen for new connections.
+
+ This option is rarely used. "tcp nowait" is much more usual
+ way of running tcp services, including telnetd.
+ You most probably want to say N here.
+
config BUSYBOX_CONFIG_TFTP
bool "tftp"
default n
Also enable download support in tftpd, if tftpd is selected.
config BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE
- bool "Enable \"blksize\" protocol option"
+ bool "Enable 'blksize' and 'tsize' protocol options"
default n
depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help
Allow tftp to specify block size, and tftpd to understand
- "blksize" option.
+ "blksize" and "tsize" options.
+
+config BUSYBOX_CONFIG_FEATURE_TFTP_PROGRESS_BAR
+ bool "Enable tftp progress meter"
+ default n
+ depends on BUSYBOX_CONFIG_TFTP && BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE
+ help
+ Show progress bar.
config BUSYBOX_CONFIG_TFTP_DEBUG
bool "Enable debug"
help
Utility to trace the route of IP packets.
+config BUSYBOX_CONFIG_TRACEROUTE6
+ bool "traceroute6"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_TRACEROUTE
+ help
+ Utility to trace the route of IPv6 packets.
+
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
bool "Enable verbose output"
default y
config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
string "ifup udhcpc command line options"
default "-R -n"
- depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_APP_UDHCPC
+ depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC
help
Command line options to pass to udhcpc from ifup.
Intended to alter options not available in /etc/network/interfaces.
# see scripts/kbuild/config-language.txt.
#
-config BUSYBOX_CONFIG_APP_UDHCPD
+config BUSYBOX_CONFIG_UDHCPD
bool "udhcp server (udhcpd)"
default n
help
udhcpd is a DHCP server geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
-config BUSYBOX_CONFIG_APP_DHCPRELAY
+config BUSYBOX_CONFIG_DHCPRELAY
bool "dhcprelay"
default n
- depends on BUSYBOX_CONFIG_APP_UDHCPD
+ depends on BUSYBOX_CONFIG_UDHCPD
help
dhcprelay listens for dhcp requests on one or more interfaces
and forwards these requests to a different interface or dhcp
server.
-config BUSYBOX_CONFIG_APP_DUMPLEASES
+config BUSYBOX_CONFIG_DUMPLEASES
bool "Lease display utility (dumpleases)"
default n
- depends on BUSYBOX_CONFIG_APP_UDHCPD
+ depends on BUSYBOX_CONFIG_UDHCPD
help
dumpleases displays the leases written out by the udhcpd server.
Lease times are stored in the file by time remaining in lease, or
config BUSYBOX_CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY
bool "Rewrite the lease file at every new acknowledge"
default n
- depends on BUSYBOX_CONFIG_APP_UDHCPD
+ depends on BUSYBOX_CONFIG_UDHCPD
help
If selected, udhcpd will write a new file with leases every
time a new lease has been accepted, thus eliminating the need
config BUSYBOX_CONFIG_DHCPD_LEASES_FILE
string "Absolute path to lease file"
default "/var/run/udhcpd.leases"
- depends on BUSYBOX_CONFIG_APP_UDHCPD
+ depends on BUSYBOX_CONFIG_UDHCPD
help
udhcpd stores addresses in a lease file. This is the absolute path
of the file. Normally it is safe to leave it untouched.
-config BUSYBOX_CONFIG_APP_UDHCPC
+config BUSYBOX_CONFIG_UDHCPC
bool "udhcp client (udhcpc)"
default y
help
config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING
bool "Verify that the offered address is free, using ARP ping"
default n
- depends on BUSYBOX_CONFIG_APP_UDHCPC
+ depends on BUSYBOX_CONFIG_UDHCPC
help
If selected, udhcpc will send ARP probes and make sure
the offered address is really not in use by anyone. The client
config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
bool "Enable '-P port' option for udhcpd and udhcpc"
default n
- depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
+ depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
help
At the cost of ~300 bytes, enables -P port option.
This feature is typically not needed.
int "Maximum verbosity level for udhcp applets (0..9)"
default 0
range 0 9
- depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC || BUSYBOX_CONFIG_APP_DHCPRELAY
+ depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_DHCPRELAY
help
Verbosity can be increased with multiple -v options.
This options controls how high it can be cranked up.
config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397
bool "Support for RFC3397 domain search (experimental)"
default y
- depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
+ depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
help
If selected, both client and server will support passing of domain
search lists via option 119, specified in RFC3397.
config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
string "Absolute path to config script"
default "/usr/share/udhcpc/default.script"
- depends on BUSYBOX_CONFIG_APP_UDHCPC
+ depends on BUSYBOX_CONFIG_UDHCPC
help
This script is called after udhcpc receives an answer. See
examples/udhcp for a working example. Normally it is safe
int "DHCP options slack buffer size"
default 80
range 0 924
- depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
+ depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
help
Some buggy DHCP servers send DHCP offer packets with option
field larger than we expect (which might also be considered a
help
Enable 's' in top (gives lots of memory info).
+config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
+ bool "Support for showing threads in ps/top"
+ default n
+ depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP
+ help
+ Enables ps -T option and 'h' command in top
+
config BUSYBOX_CONFIG_UPTIME
bool "uptime"
default y
watch is used to execute a program periodically, showing
output to the screen.
-
endmenu
config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
select BUSYBOX_CONFIG_ASH
bool "ash"
+ depends on !BUSYBOX_CONFIG_NOMMU
config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
select BUSYBOX_CONFIG_HUSH
config BUSYBOX_CONFIG_ASH
bool "ash"
default y
+ depends on !BUSYBOX_CONFIG_NOMMU
help
Tha 'ash' shell adds about 60k in the default configuration and is
the most complete and most pedantically correct shell included with
help
Enable job control in the ash shell.
-config BUSYBOX_CONFIG_ASH_READ_NCHARS
- bool "'read -n N' and 'read -s' support"
- default n
- depends on BUSYBOX_CONFIG_ASH
- help
- 'read -n N' will return a value after N characters have been read.
- 'read -s' will read without echoing the user's input.
-
-config BUSYBOX_CONFIG_ASH_READ_TIMEOUT
- bool "'read -t S' support"
- default y
- depends on BUSYBOX_CONFIG_ASH
- help
- 'read -t S' will return a value after S seconds have passed.
- This implementation will allow fractional seconds, expressed
- as a decimal fraction, e.g. 'read -t 2.5 foo'.
-
config BUSYBOX_CONFIG_ASH_ALIAS
bool "alias support"
default y
help
Enable interactive mode (prompt and command editing).
Without this, hush simply reads and executes commands
- from stdin just like a shell script from the file.
+ from stdin just like a shell script from a file.
No prompt, no PS1/PS2 magic shell variables.
config BUSYBOX_CONFIG_HUSH_JOB
help
Enable support for export '-n' option in hush. It is a bash extension.
+config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
+ bool "Pseudorandom generator and $RANDOM variable"
+ default n
+ depends on BUSYBOX_CONFIG_HUSH
+ help
+ Enable pseudorandom generator and dynamic variable "$RANDOM".
+ Each read of "$RANDOM" will generate a new pseudorandom value.
+
config BUSYBOX_CONFIG_LASH
bool "lash (deprecated: aliased to hush)"
default n
check for and attempt to repair any corruption that occurs to a minix
filesystem.
+config BUSYBOX_CONFIG_MKFS_EXT2
+ bool "mkfs_ext2"
+ default n
+ help
+ Utility to create EXT2 filesystems.
+
config BUSYBOX_CONFIG_MKFS_MINIX
bool "mkfs_minix"
default n
this. If you enabled 'mkfs_minix' then you almost certainly want to
be using the version 2 filesystem support.
+config BUSYBOX_CONFIG_MKFS_REISER
+ bool "mkfs_reiser"
+ default n
+ help
+ Utility to create ReiserFS filesystems.
+
config BUSYBOX_CONFIG_MKFS_VFAT
bool "mkfs_vfat"
default n
file or block device, and to query the status of a loop device. This
version does not currently support enabling data encryption.
+config BUSYBOX_CONFIG_LSPCI
+ bool "lspci"
+ default n
+ help
+ lspci is a utility for displaying information about PCI buses in the
+ system and devices connected to them.
+
+ This version uses sysfs (/sys/bus/pci/devices) only.
+
+config BUSYBOX_CONFIG_LSUSB
+ bool "lsusb"
+ default n
+ help
+ lsusb is a utility for displaying information about USB buses in the
+ system and devices connected to them.
+
+ This version uses sysfs (/sys/bus/usb/devices) only.
+
config BUSYBOX_CONFIG_MDEV
bool "mdev"
default n
help
TODO
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
+ bool "btrfs filesystem"
+ default n
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
bool "Reiser filesystem"
default n
help
This allows for specifying a device by label or uuid, rather than by
name. This feature utilizes the same functionality as blkid/findfs.
+ This also enables label or uuid support for swapon.
config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS
bool "Support mounting NFS file systems"
--- a/applets/Kbuild
+++ b/applets/Kbuild
-@@ -27,13 +27,13 @@ HOSTCFLAGS_usage.o = -I$(srctree_slash)i
-
+@@ -28,13 +28,13 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla
applets/applets.o: include/usage_compressed.h include/applet_tables.h
--applets/usage: .config $(srctree_slash)applets/usage_compressed
-+applets/usage: .config $(srctree_slash)applets/usage_compressed include/autoconf.h
- applets/applet_tables: .config
+ applets/applet_tables: .config $(srctree_slash)include/applets.h
+-applets/usage: .config $(srctree_slash)include/applets.h
++applets/usage: .config $(srctree_slash)include/applets.h include/autoconf.h
+ applets/usage_pod: .config include/applet_tables.h $(srctree_slash)include/applets.h
quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
--- a/init/init.c
+++ b/init/init.c
-@@ -451,8 +451,11 @@ static void run_actions(int action_type)
+@@ -456,8 +456,11 @@ static void run_actions(int action_type)
/* Only run stuff with pid == 0. If pid != 0,
* it is already running
*/
--- a/networking/wget.c
+++ b/networking/wget.c
-@@ -653,7 +653,7 @@ int wget_main(int argc UNUSED_PARAM, cha
+@@ -543,7 +543,7 @@ int wget_main(int argc UNUSED_PARAM, cha
// "tries\0" Required_argument "t"
// "timeout\0" Required_argument "T"
/* Ignored (we always use PASV): */
+ "passive-ftp\0" No_argument "\xfd"
"header\0" Required_argument "\xfe"
"post-data\0" Required_argument "\xfd"
- ;
+ /* Ignored (we don't do ssl) */
--- a/shell/ash.c
+++ b/shell/ash.c
-@@ -12351,8 +12351,17 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12340,8 +12340,17 @@ exportcmd(int argc UNUSED_PARAM, char **
const char *p;
char **aptr;
int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
aptr = argptr;
name = *aptr;
if (name) {
-@@ -12364,10 +12373,12 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12353,10 +12362,12 @@ exportcmd(int argc UNUSED_PARAM, char **
vp = *findvar(hashvar(name), name);
if (vp) {
vp->flags |= flag;
--- a/include/applets.h
+++ b/include/applets.h
-@@ -278,6 +278,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D
+@@ -282,6 +282,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D
IF_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_DROP))
IF_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_DROP))
IF_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_DROP))
IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP))
--- a/include/usage.h
+++ b/include/usage.h
-@@ -3101,6 +3101,9 @@
+@@ -3166,6 +3166,9 @@
#endif
#define netstat_full_usage "\n\n" \
--- a/networking/Config.in
+++ b/networking/Config.in
-@@ -617,6 +617,12 @@ config NC
+@@ -628,6 +628,12 @@ config NC
A simple Unix utility which reads and writes data across network
connections.
+lib-$(CONFIG_NETMSG) += netmsg.o
lib-$(CONFIG_NETSTAT) += netstat.o
lib-$(CONFIG_NSLOOKUP) += nslookup.o
- lib-$(CONFIG_PING) += ping.o
+ lib-$(CONFIG_NTPD) += ntpd.o
--- /dev/null
+++ b/networking/netmsg.c
@@ -0,0 +1,63 @@
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -1699,21 +1699,32 @@ static int check_user_passwd(const char
+@@ -1716,21 +1716,32 @@ static int check_user_passwd(const char
if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
char *md5_passwd;
--- a/include/applets.h
+++ b/include/applets.h
-@@ -233,6 +233,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN,
+@@ -234,6 +234,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN,
IF_LOAD_POLICY(APPLET(load_policy, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
IF_LOADFONT(APPLET(loadfont, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
IF_LOADKMAP(APPLET(loadkmap, _BB_DIR_SBIN, _BB_SUID_DROP))
IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname))
--- a/include/usage.h
+++ b/include/usage.h
-@@ -2325,6 +2325,9 @@
+@@ -2357,6 +2357,9 @@
#define loadkmap_example_usage \
"$ loadkmap < /etc/i18n/lang-keymap\n"
#define logger_full_usage "\n\n" \
--- a/miscutils/Config.in
+++ b/miscutils/Config.in
-@@ -456,6 +456,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
+@@ -463,6 +463,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
help
Enables the 'hdparm -d' option to get/set using_dma flag.
default n
--- a/miscutils/Kbuild
+++ b/miscutils/Kbuild
-@@ -26,6 +26,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o
+@@ -27,6 +27,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o
lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
lib-$(CONFIG_LESS) += less.o
--- a/include/usage.h
+++ b/include/usage.h
-@@ -1693,6 +1693,7 @@
+@@ -1727,6 +1727,7 @@
IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \
" [-h HOME]\n" \
"or httpd -d/-e" IF_FEATURE_HTTPD_AUTH_MD5("/-m") " STRING"
#define httpd_full_usage "\n\n" \
"Listen for incoming HTTP requests\n" \
"\nOptions:" \
-@@ -1710,6 +1711,8 @@
+@@ -1744,6 +1745,8 @@
"\n -m STRING MD5 crypt STRING") \
"\n -e STRING HTML encode STRING" \
"\n -d STRING URL decode STRING" \
-+ "\n -R PATH Redirect target path" \
-+ "\n -H HOST Redirect target host" \
++ "\n -R PATH Redirect target path" \
++ "\n -H HOST Redirect target host" \
#define hwclock_trivial_usage \
IF_FEATURE_HWCLOCK_LONG_OPTIONS( \
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -248,6 +248,8 @@ struct globals {
+@@ -250,6 +250,8 @@ struct globals {
const char *found_mime_type;
const char *found_moved_temporarily;
Htaccess_IP *ip_a_d; /* config allow/deny lines */
IF_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;)
-@@ -294,6 +296,8 @@ struct globals {
+@@ -296,6 +298,8 @@ struct globals {
#define index_page (G.index_page )
#define found_mime_type (G.found_mime_type )
#define found_moved_temporarily (G.found_moved_temporarily)
#define last_mod (G.last_mod )
#define ip_a_d (G.ip_a_d )
#define g_realm (G.g_realm )
-@@ -993,8 +997,11 @@ static void send_headers(int responseNum
+@@ -997,8 +1001,11 @@ static void send_headers(int responseNum
}
#endif
if (responseNum == HTTP_MOVED_TEMPORARILY) {
(g_query ? "?" : ""),
(g_query ? g_query : ""));
}
-@@ -1924,8 +1931,12 @@ static void handle_incoming_and_exit(con
+@@ -1941,8 +1948,12 @@ static void handle_incoming_and_exit(con
} while (*++tptr);
*++urlp = '\0'; /* terminate after last character */
/* If URL is a directory, add '/' */
- if (urlp[-1] != '/') {
+ if (!redirect_path && (urlp[-1] != '/')) {
- if (is_directory(urlcopy + 1, 1, &sb)) {
+ if (is_directory(urlcopy + 1, 1, NULL)) {
found_moved_temporarily = urlcopy;
}
-@@ -2266,7 +2277,9 @@ static void sighup_handler(int sig UNUSE
+@@ -2283,7 +2294,9 @@ static void sighup_handler(int sig UNUSE
}
enum {
d_opt_decode_url,
h_opt_home_httpd,
IF_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,)
-@@ -2315,12 +2328,13 @@ int httpd_main(int argc UNUSED_PARAM, ch
+@@ -2332,12 +2345,13 @@ int httpd_main(int argc UNUSED_PARAM, ch
/* We do not "absolutize" path given by -h (home) opt.
* If user gives relative path in -h,
* $SCRIPT_FILENAME will not be set. */
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -1250,10 +1250,10 @@ static NOINLINE void cgi_io_loop_and_exi
+@@ -1254,10 +1254,10 @@ static NOINLINE void cgi_io_loop_and_exi
if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1)
break;
}
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -1810,6 +1810,7 @@ static void handle_incoming_and_exit(con
+@@ -1827,6 +1827,7 @@ static void handle_incoming_and_exit(con
char *header_ptr = header_ptr;
Htaccess_Proxy *proxy_entry;
#endif
}
--- a/modutils/Config.in
+++ b/modutils/Config.in
-@@ -210,7 +210,7 @@ config FEATURE_MODUTILS_SYMBOLS
+@@ -226,7 +226,7 @@ config FEATURE_MODUTILS_SYMBOLS
config DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
-@@ -69,6 +69,10 @@
- #define MS_DIRSYNC 128 // Directory modifications are synchronous
+@@ -77,6 +77,10 @@
+ # include <rpc/pmap_clnt.h>
#endif
+#ifndef MS_UNION
#if defined(__dietlibc__)
// 16.12.2006, Sampo Kellomaki (sampo@iki.fi)
-@@ -185,6 +189,7 @@ static const int32_t mount_options[] = {
+@@ -194,6 +198,7 @@ static const int32_t mount_options[] = {
/* "rslave" */ MS_SLAVE|MS_RECURSIVE,
/* "rprivate" */ MS_SLAVE|MS_RECURSIVE,
/* "runbindable" */ MS_UNBINDABLE|MS_RECURSIVE,
)
// Always understood.
-@@ -239,6 +244,7 @@ static const char mount_option_str[] =
+@@ -249,6 +254,7 @@ static const char mount_option_str[] =
"rslave\0"
"rprivate\0"
"runbindable\0"
} func;
/* I/O stream */
-@@ -1420,7 +1425,8 @@ static void parse_program(char *p)
+@@ -1424,7 +1429,8 @@ static void parse_program(char *p)
next_token(TC_FUNCTION);
g_pos++;
f = newfunc(t_string);
f->nargs = 0;
while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) {
v = findvar(ahash, t_string);
-@@ -1429,7 +1435,7 @@ static void parse_program(char *p)
+@@ -1433,7 +1439,7 @@ static void parse_program(char *p)
if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM)
break;
}
chain_group();
clear_array(ahash);
-@@ -2410,7 +2416,8 @@ static var *evaluate(node *op, var *res)
+@@ -2446,7 +2452,8 @@ static var *evaluate(node *op, var *res)
break;
case XC( OC_FUNC ):
+ !op->r.f->x.body.first)
syntax_error(EMSG_UNDEF_FUNC);
- X.v = R.v = nvalloc(op->r.f->nargs+1);
-@@ -2427,7 +2434,10 @@ static var *evaluate(node *op, var *res)
+ X.v = R.v = nvalloc(op->r.f->nargs + 1);
+@@ -2463,7 +2470,10 @@ static var *evaluate(node *op, var *res)
fnargs = X.v;
L.s = g_progname;
g_progname = L.s;
nvfree(fnargs);
-@@ -2790,6 +2800,143 @@ static rstream *next_input_file(void)
+@@ -2829,6 +2839,143 @@ static rstream *next_input_file(void)
#undef files_happen
}
int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int awk_main(int argc, char **argv)
{
-@@ -2855,6 +3002,9 @@ int awk_main(int argc, char **argv)
+@@ -2894,6 +3041,9 @@ int awk_main(int argc, char **argv)
*s1 = '=';
}
}
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
-@@ -306,6 +306,7 @@ make_new_session(
+@@ -308,6 +308,7 @@ make_new_session(
/* Restore default signal handling ASAP */
bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);