include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
-PKG_VERSION:=1.14.4
-PKG_RELEASE:=2
+PKG_VERSION:=1.15.2
+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:=ad6d0b271e60783a3c767c4ccbc7f98e
+PKG_MD5SUM:=d5653e5b74b17dbb1eeecda8b8f22c0a
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_FEATURE_ASSUME_UNICODE
- bool "Assume that 1:1 char/glyph correspondence is not true"
- default n
- help
- This makes various applets aware that one byte is not
- one character on screen.
-
- Busybox aims to eventually work correctly with Unicode displays.
- Any older encodings are not guaranteed to work.
- Probably by the time when busybox will be fully Unicode-clean,
- other encodings will be mainly of historic interest.
-
choice
prompt "Buffer allocation policy"
default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
Enable this if your system has locale support and you would like
busybox to support locale settings.
-config BUSYBOX_CONFIG_GETOPT_LONG
+config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
+ bool "Support Unicode"
+ default n
+ help
+ This makes various applets aware that one byte is not
+ one character on screen.
+
+ Busybox aims to eventually work correctly with Unicode displays.
+ Any older encodings are not guaranteed to work.
+ Probably by the time when busybox will be fully Unicode-clean,
+ other encodings will be mainly of historic interest.
+
+config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
+ bool "Check $LANG environment variable"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE && !BUSYBOX_CONFIG_LOCALE_SUPPORT
+ help
+ With this option on, Unicode support is activated
+ only if LANG variable has the value of the form "xxxx.utf8"
+
+ Otherwise, Unicode support will be always enabled and active.
+
+config BUSYBOX_CONFIG_LONG_OPTS
bool "Support for --long-options"
default y
help
probably say N here.
config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES
- bool "Support for long filenames (not need for debs)"
+ bool "Support for long filenames (not needed for debs)"
default n
depends on BUSYBOX_CONFIG_AR
help
- By default the ar format can only store the first 15 characters of
- the filename, this option removes that limitation.
+ By default the ar format can only store the first 15 characters
+ of the filename, this option removes that limitation.
It supports the GNU ar long filename method which moves multiple long
filenames into a the data section of a new ar entry.
gzip is used to compress files.
It's probably the most widely used UNIX compression program.
+config BUSYBOX_CONFIG_LZOP
+ bool "lzop"
+ default n
+ help
+ Lzop compression/decompresion.
+
+config BUSYBOX_CONFIG_LZOP_COMPR_HIGH
+ bool "lzop complession levels 7,8,9 (not very useful)"
+ default n
+ depends on BUSYBOX_CONFIG_LZOP
+ help
+ High levels (7,8,9) of lzop compression. These levels
+ are actually slower than gzip at equivalent compression ratios
+ and take up 3.2K of code.
+
config BUSYBOX_CONFIG_RPM2CPIO
bool "rpm2cpio"
default n
tar archives using the `-c' option.
config BUSYBOX_CONFIG_FEATURE_TAR_AUTODETECT
- bool "Autodetect gz/bz2 compressed tarballs"
+ bool "Autodetect compressed tarballs"
default n
depends on BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z || BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ || BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2 || BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
help
- With this option tar can automatically detect gzip/bzip2 compressed
+ With this option tar can automatically detect compressed
tarballs. Currently it works only on files (not pipes etc).
config BUSYBOX_CONFIG_FEATURE_TAR_FROM
config BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_LONG_OPTS
help
Enable use of long options, increases size by about 400 Bytes
default n
depends on BUSYBOX_CONFIG_UNLZMA
help
- This option reduces decompression time by about 33% at the cost of
- a 2K bigger binary.
+ This option reduces decompression time by about 25% at the cost of
+ a 1K bigger binary.
config BUSYBOX_CONFIG_UNZIP
bool "unzip"
config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the setconsole applet.
config BUSYBOX_CONFIG_FEATURE_ENV_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_ENV && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_ENV && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the env applet.
config BUSYBOX_CONFIG_FEATURE_EXPAND_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_EXPAND && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_EXPAND && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the expand applet.
help
Wrap text to fit a specific width.
+config BUSYBOX_CONFIG_FSYNC
+ bool "fsync"
+ default n
+ help
+ fsync is used to flush file-related cached blocks to disk.
+
config BUSYBOX_CONFIG_HEAD
bool "head"
default y
config BUSYBOX_CONFIG_FEATURE_INSTALL_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_INSTALL && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_INSTALL && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the install applet.
config BUSYBOX_CONFIG_FEATURE_LS_COLOR
bool "Allow use of color to identify file types"
default y
- depends on BUSYBOX_CONFIG_LS && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_LS && BUSYBOX_CONFIG_LONG_OPTS
help
This enables the --color option to ls.
config BUSYBOX_CONFIG_FEATURE_MKDIR_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_MKDIR && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_MKDIR && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the mkdir applet.
config BUSYBOX_CONFIG_FEATURE_MV_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_MV && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_MV && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the mv applet.
config BUSYBOX_CONFIG_FEATURE_RMDIR_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_RMDIR && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_RMDIR && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the rmdir applet, including
--ignore-fail-on-non-empty for compatibility with GNU rmdir.
from files.
config BUSYBOX_CONFIG_FEATURE_FANCY_TAIL
- bool "Enable extra tail options (-q, -s, and -v)"
+ bool "Enable extra tail options (-q, -s, -v, and -F)"
default y
depends on BUSYBOX_CONFIG_TAIL
help
config BUSYBOX_CONFIG_FEATURE_TEST_64
bool "Extend test to 64 bit"
default y
- depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST
+ depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
help
Enable 64-bit support in test.
config BUSYBOX_CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_UNEXPAND && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_UNEXPAND && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the unexpand applet.
config BUSYBOX_CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_RUN_PARTS && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_RUN_PARTS && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the run-parts applet.
config BUSYBOX_CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_START_STOP_DAEMON && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_START_STOP_DAEMON && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the start-stop-daemon applet.
find is used to search your system to find specified files.
config BUSYBOX_CONFIG_FEATURE_FIND_PRINT0
- bool "Enable -print0 option"
+ bool "Enable -print0: NUL-terminated output"
default y
depends on BUSYBOX_CONFIG_FIND
help
- Causes output names to be separated by a null character
+ Causes output names to be separated by a NUL character
rather than a newline. This allows names that contain
newlines and other whitespace to be more easily
interpreted by other programs.
config BUSYBOX_CONFIG_FEATURE_FIND_MTIME
- bool "Enable modified time matching (-mtime option)"
+ bool "Enable -mtime: modified time matching"
default n
depends on BUSYBOX_CONFIG_FIND
help
files, in days.
config BUSYBOX_CONFIG_FEATURE_FIND_MMIN
- bool "Enable modified time matching (-mmin option)"
+ bool "Enable -mmin: modified time matching by minutes"
default n
depends on BUSYBOX_CONFIG_FIND
help
files, in minutes.
config BUSYBOX_CONFIG_FEATURE_FIND_PERM
- bool "Enable permissions matching (-perm option)"
+ bool "Enable -perm: permissions matching"
default y
depends on BUSYBOX_CONFIG_FIND
help
Enable searching based on file permissions.
config BUSYBOX_CONFIG_FEATURE_FIND_TYPE
- bool "Enable filetype matching (-type option)"
+ bool "Enable -type: file type matching (file/dir/link/...)"
default y
depends on BUSYBOX_CONFIG_FIND
help
directory, socket, device, etc.).
config BUSYBOX_CONFIG_FEATURE_FIND_XDEV
- bool "Enable 'stay in filesystem' option (-xdev)"
+ bool "Enable -xdev: 'stay in filesystem'"
default y
depends on BUSYBOX_CONFIG_FIND
help
This option allows find to restrict searches to a single filesystem.
config BUSYBOX_CONFIG_FEATURE_FIND_MAXDEPTH
- bool "Enable -maxdepth N option"
+ bool "Enable -maxdepth N"
default y
depends on BUSYBOX_CONFIG_FIND
help
This option enables -maxdepth N option.
config BUSYBOX_CONFIG_FEATURE_FIND_NEWER
- bool "Enable -newer option for comparing file mtimes"
+ bool "Enable -newer: compare file modification times"
default n
depends on BUSYBOX_CONFIG_FIND
help
a modified time that is more recent than the specified FILE.
config BUSYBOX_CONFIG_FEATURE_FIND_INUM
- bool "Enable inode number matching (-inum option)"
+ bool "Enable -inum: inode number matching"
default n
depends on BUSYBOX_CONFIG_FIND
help
Support the 'find -inum' option for searching by inode number.
config BUSYBOX_CONFIG_FEATURE_FIND_EXEC
- bool "Enable -exec option allowing execution of commands"
+ bool "Enable -exec: execute commands"
default y
depends on BUSYBOX_CONFIG_FIND
help
the files matched.
config BUSYBOX_CONFIG_FEATURE_FIND_USER
- bool "Enable username/uid matching (-user option)"
+ bool "Enable -user: username/uid matching"
default y
depends on BUSYBOX_CONFIG_FIND
help
Support the 'find -user' option for searching by username or uid.
config BUSYBOX_CONFIG_FEATURE_FIND_GROUP
- bool "Enable group/gid matching (-group option)"
+ bool "Enable -group: group/gid matching"
default y
depends on BUSYBOX_CONFIG_FIND
help
the non-POSIX notation '-not'.
config BUSYBOX_CONFIG_FEATURE_FIND_DEPTH
- bool "Enable the -depth option"
+ bool "Enable -depth"
default y
depends on BUSYBOX_CONFIG_FIND
help
Enable usage of parens '(' to specify logical order of arguments.
config BUSYBOX_CONFIG_FEATURE_FIND_SIZE
- bool "Enable -size option allowing matching for file size"
+ bool "Enable -size: file size matching"
default y
depends on BUSYBOX_CONFIG_FIND
help
Support the 'find -size' option for searching by file size.
config BUSYBOX_CONFIG_FEATURE_FIND_PRUNE
- bool "Enable -prune option allowing to exclude subdirectories"
+ bool "Enable -prune: exclude subdirectories"
default y
depends on BUSYBOX_CONFIG_FIND
help
exclusion .svn and CVS directories.
config BUSYBOX_CONFIG_FEATURE_FIND_DELETE
- bool "Enable -delete option allowing to delete files"
+ bool "Enable -delete: delete files/dirs"
default n
depends on BUSYBOX_CONFIG_FIND && BUSYBOX_CONFIG_FEATURE_FIND_DEPTH
help
try to protect the user from doing stupid things. Use with care.
config BUSYBOX_CONFIG_FEATURE_FIND_PATH
- bool "Enable -path option allowing to match pathname patterns"
+ bool "Enable -path: match pathname with shell pattern"
default y
depends on BUSYBOX_CONFIG_FIND
help
The -path option matches whole pathname instead of just filename.
config BUSYBOX_CONFIG_FEATURE_FIND_REGEX
- bool "Enable -regex: match pathname to regex"
+ bool "Enable -regex: match pathname with regex"
default y
depends on BUSYBOX_CONFIG_FIND
help
The -regex option matches whole pathname against regular expression.
config BUSYBOX_CONFIG_FEATURE_FIND_CONTEXT
- bool "Enable -context option for matching security context"
+ bool "Enable -context: security context matching"
default n
depends on BUSYBOX_CONFIG_FIND && BUSYBOX_CONFIG_SELINUX
help
grep is used to search files for a specified pattern.
config BUSYBOX_CONFIG_FEATURE_GREP_EGREP_ALIAS
- bool "Support extended regular expressions (egrep & grep -E)"
+ bool "Enable extended regular expressions (egrep & grep -E)"
default y
depends on BUSYBOX_CONFIG_GREP
help
help
fgrep sees the search pattern as a normal string rather than
regular expressions.
- grep -F is always builtin, this just creates the fgrep alias.
+ grep -F always works, this just creates the fgrep alias.
config BUSYBOX_CONFIG_FEATURE_GREP_CONTEXT
bool "Enable before and after context flags (-A, -B and -C)"
bool "xargs"
default y
help
- xargs is used to execute a specified command on
+ xargs is used to execute a specified command for
every item from standard input.
config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION
- bool "Enable prompt and confirmation option -p"
+ bool "Enable -p: prompt and confirmation"
default y
depends on BUSYBOX_CONFIG_XARGS
help
- Support prompt the user about whether to run each command
+ Support -p: prompt the user whether to run each command
line and read a line from the terminal.
config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_QUOTES
- bool "Enable support single and double quotes and backslash"
+ bool "Enable single and double quotes and backslash"
default y
depends on BUSYBOX_CONFIG_XARGS
help
- Default xargs unsupport single and double quotes
- and backslash for can use aruments with spaces.
+ Support quoting in the input.
config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT
- bool "Enable support options -x"
+ bool "Enable -x: exit if -s or -n is exceeded"
default y
depends on BUSYBOX_CONFIG_XARGS
help
- Enable support exit if the size (see the -s or -n option)
+ Support -x: exit if the command size (see the -s or -n option)
is exceeded.
config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
- bool "Enable null terminated option -0"
+ bool "Enable -0: NUL-terminated input"
default y
depends on BUSYBOX_CONFIG_XARGS
help
- Enable input filenames are terminated by a null character
- instead of by whitespace, and the quotes and backslash
+ Support -0: input items are terminated by a NUL character
+ instead of whitespace, and the quotes and backslash
are not special.
endmenu
help
Stop all processes and either halt, reboot, or power off the system.
+config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
+ bool "Call telinit on shutdown and reboot"
+ default n
+ depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT
+ help
+ Call an external program (normally telinit) to facilitate
+ a switch to a proper runlevel.
+
+ This option is only available if you selected halt and friends,
+ but did not select init.
+
+config BUSYBOX_CONFIG_TELINIT_PATH
+ string "Path to telinit executable"
+ default "/sbin/telinit"
+ depends on BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
+ help
+ When busybox halt and friends have to call external telinit
+ to facilitate proper shutdown, this path is to be used when
+ locating telinit executable.
+
config BUSYBOX_CONFIG_MESG
bool "mesg"
default y
Minimum allowable password length.
config BUSYBOX_CONFIG_MD5_SIZE_VS_SPEED
- int "MD5: Trade Bytes for Speed"
+ int "MD5: Trade bytes for speed (0:fast, 3:slow)"
default 2
range 0 3
help
Setting this option allows for prompts to use things like \w and
\$ and escape codes.
+config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
+ bool "Query cursor position from terminal"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_EDITING
+ help
+ Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
+ 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),
+ then do not turn this option on.
+
+config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
+ bool "Non-POSIX, but safer, copying to special nodes"
+ default y
+ help
+ With this option, "cp file symlink" will delete symlink
+ and create a regular file. This does not conform to POSIX,
+ but prevents a symlink attack.
+ Similarly, "cp file device" will not send file's data
+ to the device.
+
config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
bool "Give more precise messages when copy fails (cp, mv etc)"
default n
help
Support for printing infiniband addresses in
network applets.
+
endmenu
help
Utility for creating a new group account.
+config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
+ bool "Enable long options"
+ default n
+ depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Support long options for the addgroup applet.
+
config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP
bool "Support for adding users to groups"
default n
config BUSYBOX_CONFIG_FEATURE_ADDUSER_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_ADDUSER && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_ADDUSER && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the adduser applet.
+config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
+ int "First valid system uid or gid for adduser and addgroup"
+ depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
+ range 0 64900
+ default 100
+ help
+ First valid system uid or gid for adduser and addgroup
+
+config BUSYBOX_CONFIG_LAST_SYSTEM_ID
+ int "Last valid system uid or gid for adduser and addgroup"
+ depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
+ range 0 64900
+ default 999
+ help
+ Last valid system uid or gid for adduser and addgroup
+
config BUSYBOX_CONFIG_DELUSER
bool "deluser"
default n
The bbconfig applet will print the config file with which
busybox was built.
+config BUSYBOX_CONFIG_BEEP
+ bool "beep"
+ default n
+ help
+ The beep applets beeps in a given freq/Hz.
+
+config BUSYBOX_CONFIG_FEATURE_BEEP_FREQ
+ int "default frequency"
+ range 0 2147483647
+ default 4000
+ depends on BUSYBOX_CONFIG_BEEP
+ help
+ Frequency for default beep.
+
+config BUSYBOX_CONFIG_FEATURE_BEEP_LENGTH_MS
+ int "default length"
+ range 0 2147483647
+ default 30
+ depends on BUSYBOX_CONFIG_BEEP
+ help
+ Length in ms for default beep.
+
config BUSYBOX_CONFIG_CHAT
bool "chat"
default n
"NN" (ASCII decimal number) - percentage to show on progress bar
"exit" - well you guessed it
+config BUSYBOX_CONFIG_FLASH_LOCK
+ bool "flash_lock"
+ default n
+ help
+ The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
+ utility locks part or all of the flash device.
+
+config BUSYBOX_CONFIG_FLASH_UNLOCK
+ bool "flash_unlock"
+ default n
+ help
+ The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
+ utility unlocks part or all of the flash device.
+
config BUSYBOX_CONFIG_FLASH_ERASEALL
bool "flash_eraseall"
default n
error, but returns default 80x24.
Usage in shell scripts: width=`ttysize w`.
+config BUSYBOX_CONFIG_VOLNAME
+ bool "volname"
+ default n
+ help
+ Prints a CD-ROM volume name.
+
config BUSYBOX_CONFIG_WATCHDOG
bool "watchdog"
default y
Handle the loading of modules, and their dependencies on a high
level.
- Note that in the state, modprobe does not understand multiple
- module options from the configuration file. See option below.
-
config BUSYBOX_CONFIG_FEATURE_MODPROBE_BLACKLIST
- bool
- prompt "Blacklist support"
+ bool "Blacklist support"
default n
depends on BUSYBOX_CONFIG_MODPROBE
help
Enable IPv6 support in busybox.
This adds IPv6 support in the networking applets.
+config BUSYBOX_CONFIG_FEATURE_UNIX_LOCAL
+ bool "Enable Unix domain socket support (usually not needed)"
+ default n
+ help
+ Enable Unix domain socket support in all busybox networking
+ applets. Address of the form local:/path/to/unix/socket
+ will be recognized.
+
+ This extension is almost never used in real world usage.
+ You most likely want to say N.
+
config BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS
bool "Prefer IPv4 addresses from DNS queries"
default y
config BUSYBOX_CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS
bool "Enable long options in ftpget/ftpput"
default n
- depends on BUSYBOX_CONFIG_GETOPT_LONG && (BUSYBOX_CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT)
+ depends on BUSYBOX_CONFIG_LONG_OPTS && (BUSYBOX_CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT)
help
Support long options for the ftpget/ftpput applet.
When enabled, httpd will use the kernel sendfile() function
instead of read/write loop.
-config BUSYBOX_CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
- bool "Support reloading of global config file on HUP signal"
- default y
- depends on BUSYBOX_CONFIG_HTTPD
- help
- This option enables processing of SIGHUP to reload cached
- configuration settings.
-
config BUSYBOX_CONFIG_FEATURE_HTTPD_SETUID
bool "Enable -u <user> option"
default n
Enables basic per URL authentication from /etc/httpd.conf
using md5 passwords.
-config BUSYBOX_CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES
- bool "Support loading additional MIME types at run-time"
- default y
- depends on BUSYBOX_CONFIG_HTTPD
- help
- This option enables support for additional MIME types at
- run-time to be specified in the configuration file.
-
config BUSYBOX_CONFIG_FEATURE_HTTPD_CGI
bool "Support Common Gateway Interface (CGI)"
default y
Userspace application to bind several interfaces
to a logical interface (use with kernel bonding driver).
+config BUSYBOX_CONFIG_IFPLUGD
+ bool "ifplugd"
+ default n
+ help
+ Network interface plug detection daemon.
+
config BUSYBOX_CONFIG_IFUPDOWN
bool "ifupdown"
default n
config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_IPCALC && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_IPCALC && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the ipcalc applet.
default n
depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help
- Enable debug settings for tftp. This is useful if you're running
- into problems with tftp as the protocol doesn't help you much when
- you run into problems.
+ Make tftp[d] print debugging messages on stderr.
+ This is useful if you are diagnosing a bug in tftp[d].
config BUSYBOX_CONFIG_TRACEROUTE
bool "traceroute"
default y
help
- Utility to trace the route of IP packets
+ Utility to trace the route of IP packets.
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
bool "Enable verbose output"
config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
bool "Enable long options"
default y
- depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the wget applet.
This feature is typically not needed.
config BUSYBOX_CONFIG_UDHCP_DEBUG
- bool "Compile udhcp with noisy debugging messages"
- default n
- depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
+ 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
help
- If selected, udhcpd will output extra debugging output.
+ Verbosity can be increased with multiple -v options.
+ This options controls how high it can be cranked up.
+
+ Bigger values result in bigger code. Levels above 1
+ are very verbose and useful for debugging only.
config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397
bool "Support for RFC3397 domain search (experimental)"
ps gives a snapshot of the current processes.
config BUSYBOX_CONFIG_FEATURE_PS_WIDE
- bool "Enable argument for wide output (-w)"
+ bool "Enable wide output option (-w)"
default n
depends on BUSYBOX_CONFIG_PS
help
Support argument 'w' for wide output.
- If given once, 132 chars are printed and given more than
- one, the length is unlimited.
+ If given once, 132 chars are printed, and if given more
+ than once, the length is unlimited.
config BUSYBOX_CONFIG_FEATURE_PS_TIME
bool "Enable time and elapsed time output"
help
Support -o time and -o etime output specifiers.
+config BUSYBOX_CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS
+ bool "Enable additional ps columns"
+ default n
+ depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP
+ help
+ Support -o rgroup, -o ruser, -o nice output specifiers.
+
config BUSYBOX_CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS
bool "Support Linux prior to 2.4.0 and non-ELF systems"
default n
config BUSYBOX_CONFIG_FEATURE_CHCON_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_CHCON && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_CHCON && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the chcon applet.
config BUSYBOX_CONFIG_FEATURE_RUNCON_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_RUNCON && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_RUNCON && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the runcon applet.
#### select LASH
#### bool "lash"
-config BUSYBOX_CONFIG_FEATURE_SH_IS_MSH
- select BUSYBOX_CONFIG_MSH
- bool "msh"
+####config FEATURE_SH_IS_MSH
+#### select MSH
+#### bool "msh"
config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
bool "none"
shell (by Herbert Xu), which was created by porting the 'ash' shell
(written by Kenneth Almquist) from NetBSD.
-comment "Ash Shell Options"
- depends on BUSYBOX_CONFIG_ASH
-
config BUSYBOX_CONFIG_ASH_BASH_COMPAT
bool "bash-compatible extensions"
default y
It does not handle select, aliases, brace expansion,
tilde expansion, &>file and >&file redirection of stdout+stderr.
+config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
+ bool "bash-compatible extensions"
+ default y
+ depends on BUSYBOX_CONFIG_HUSH
+ help
+ Enable bash-compatible extensions.
+
config BUSYBOX_CONFIG_HUSH_HELP
bool "help builtin"
default n
help
Enable support for shell functions in hush. +800 bytes.
+config BUSYBOX_CONFIG_HUSH_LOCAL
+ bool "Support local builtin"
+ default n
+ depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
+ help
+ Enable support for local variables in functions.
+
+config BUSYBOX_CONFIG_HUSH_EXPORT_N
+ bool "Support export '-n' option"
+ default n
+ depends on BUSYBOX_CONFIG_HUSH
+ help
+ Enable support for export '-n' option in hush. It is a bash extension.
+
config BUSYBOX_CONFIG_LASH
bool "lash (deprecated: aliased to hush)"
default n
config BUSYBOX_CONFIG_MSH
bool "msh (deprecated: please use hush)"
default n
+ select BUSYBOX_CONFIG_HUSH
help
msh is deprecated and will be removed, please migrate to hush.
If there is a feature msh has but hush does not, please let us know.
# It uses only vfork, so it can be used on uClinux systems.
-comment "Bourne Shell Options"
- depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
-
config BUSYBOX_CONFIG_SH_MATH_SUPPORT
bool "POSIX math support"
default y
written by others, this utility may be for you. Most people will
wisely leave this disabled.
+config BUSYBOX_CONFIG_FEATURE_GETOPT_LONG
+ bool "Support option -l"
+ default n if BUSYBOX_CONFIG_LONG_OPTS
+ depends on BUSYBOX_CONFIG_GETOPT
+ help
+ Enable support for long options (option -l).
+
config BUSYBOX_CONFIG_HEXDUMP
bool "hexdump"
default y
config BUSYBOX_CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS
bool "Support long options (--hctosys,...)"
default n
- depends on BUSYBOX_CONFIG_HWCLOCK && BUSYBOX_CONFIG_GETOPT_LONG
+ depends on BUSYBOX_CONFIG_HWCLOCK && BUSYBOX_CONFIG_LONG_OPTS
help
By default, the hwclock utility only uses short options. If you
are overly fond of its long options, such as --hctosys, --utc, etc)
Once you have created swap space using 'mkswap' you need to enable
the swap space using the 'swapon' utility.
-config BUSYBOX_CONFIG_FEATURE_MKSWAP_V0
- bool "Version 0 support"
+config BUSYBOX_CONFIG_FEATURE_MKSWAP_UUID
+ bool "UUID support"
default n
depends on BUSYBOX_CONFIG_MKSWAP
-# depends on MKSWAP && BUSYBOX_CONFIG_DEPRECATED
help
- Enable support for the old v0 style.
- If your kernel is older than 2.1.117, then v0 support is the
- only option.
+ Generate swap spaces with universally unique identifiers.
config BUSYBOX_CONFIG_MORE
bool "more"
help
The script makes typescript of terminal session.
+config BUSYBOX_CONFIG_SCRIPTREPLAY
+ bool "scriptreplay"
+ default n
+ help
+ This program replays a typescript, using timing information
+ given by script -t.
+
config BUSYBOX_CONFIG_SETARCH
bool "setarch"
default n
--- a/applets/Kbuild
+++ b/applets/Kbuild
-@@ -18,13 +18,13 @@ HOSTCFLAGS_usage.o = -I$(srctree)/includ
+@@ -27,13 +27,13 @@ HOSTCFLAGS_usage.o = -I$(srctree_slash)i
applets/applets.o: include/usage_compressed.h include/applet_tables.h
--applets/usage: .config $(srctree)/applets/usage_compressed
-+applets/usage: .config $(srctree)/applets/usage_compressed include/autoconf.h
+-applets/usage: .config $(srctree_slash)applets/usage_compressed
++applets/usage: .config $(srctree_slash)applets/usage_compressed include/autoconf.h
applets/applet_tables: .config
quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
- cmd_gen_usage_compressed = $(srctree)/applets/usage_compressed include/usage_compressed.h applets
+ cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
--include/usage_compressed.h: applets/usage $(srctree)/applets/usage_compressed
-+include/usage_compressed.h: applets/usage $(srctree)/applets/usage_compressed include/autoconf.h
+-include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed
++include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed include/autoconf.h
$(call cmd,gen_usage_compressed)
quiet_cmd_gen_applet_tables = GEN include/applet_tables.h
"setageing\0" "setfd\0" "sethello\0" "setmaxage\0"
"setpathcost\0" "setportprio\0" "setbridgeprio\0"
)
-- USE_FEATURE_BRCTL_SHOW("showmacs\0" "show\0");
-+ USE_FEATURE_BRCTL_SHOW("show\0");
+- IF_FEATURE_BRCTL_SHOW("showmacs\0" "show\0");
++ IF_FEATURE_BRCTL_SHOW("show\0");
enum { ARG_addbr = 0, ARG_delbr, ARG_addif, ARG_delif
- USE_FEATURE_BRCTL_FANCY(,
+ IF_FEATURE_BRCTL_FANCY(,
@@ -112,7 +112,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
ARG_setageing, ARG_setfd, ARG_sethello, ARG_setmaxage,
ARG_setpathcost, ARG_setportprio, ARG_setbridgeprio
)
-- USE_FEATURE_BRCTL_SHOW(, ARG_showmacs, ARG_show)
-+ USE_FEATURE_BRCTL_SHOW(, ARG_show)
+- IF_FEATURE_BRCTL_SHOW(, ARG_showmacs, ARG_show)
++ IF_FEATURE_BRCTL_SHOW(, ARG_show)
};
int fd;
--- a/networking/Config.in
+++ b/networking/Config.in
-@@ -66,12 +66,12 @@ config FEATURE_BRCTL_FANCY
+@@ -77,12 +77,12 @@ config FEATURE_BRCTL_FANCY
This adds about 600 bytes.
config FEATURE_BRCTL_SHOW
--- a/networking/wget.c
+++ b/networking/wget.c
-@@ -485,7 +485,7 @@ int wget_main(int argc UNUSED_PARAM, cha
+@@ -653,7 +653,7 @@ int wget_main(int argc UNUSED_PARAM, cha
// "tries\0" Required_argument "t"
// "timeout\0" Required_argument "T"
/* Ignored (we always use PASV): */
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -363,7 +363,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -380,7 +380,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
switch (state) {
case INIT_SELECTING:
+ if (!discover_retries || packet_num < discover_retries) {
if (packet_num == 0)
xid = random_xid();
-
-@@ -394,7 +394,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+ /* broadcast */
+@@ -409,7 +409,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+ packet_num = 0;
continue;
- case RENEW_REQUESTED:
case REQUESTING:
- if (packet_num < discover_retries) {
+ if (!discover_retries || packet_num < discover_retries) {
- /* send request packet */
- if (state == RENEW_REQUESTED) /* unicast */
- send_renew(xid, server_addr, requested_ip);
+ /* send broadcast select packet */
+ send_select(xid, server_addr, requested_ip);
+ timeout = discover_timeout;
--- a/networking/udhcp/packet.c
+++ b/networking/udhcp/packet.c
-@@ -120,6 +120,10 @@ uint16_t FAST_FUNC udhcp_checksum(void *
+@@ -164,6 +164,11 @@ uint16_t FAST_FUNC udhcp_checksum(void *
return ~sum;
}
-+int udhcp_get_payload_len(struct dhcpMessage *payload)
++int udhcp_get_payload_len(struct dhcp_packet *dhcp_pkt)
+{
-+ return sizeof(struct dhcpMessage) - DHCP_OPTIONS_BUFSIZE + end_option(payload->options) + sizeof(payload->options[0]);
++ return sizeof(struct dhcp_packet) - DHCP_OPTIONS_BUFSIZE + end_option(dhcp_pkt->options) + sizeof(dhcp_pkt->options[0]);
+}
-
++
/* Construct a ip/udp header for a packet, send packet */
- int FAST_FUNC udhcp_send_raw_packet(struct dhcpMessage *payload,
-@@ -132,11 +136,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
+ uint32_t source_ip, int source_port,
+@@ -175,11 +180,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
int fd;
int result = -1;
const char *msg;
-
- enum {
-- IP_UPD_DHCP_SIZE = sizeof(struct udp_dhcp_packet) - CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS,
-- UPD_DHCP_SIZE = IP_UPD_DHCP_SIZE - offsetof(struct udp_dhcp_packet, udp),
+- IP_UPD_DHCP_SIZE = sizeof(struct ip_udp_dhcp_packet) - CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS,
+- UPD_DHCP_SIZE = IP_UPD_DHCP_SIZE - offsetof(struct ip_udp_dhcp_packet, udp),
- };
-+ int p_len = udhcp_get_payload_len(payload);
++ int p_len = udhcp_get_payload_len(dhcp_pkt);
fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
if (fd < 0) {
-@@ -146,7 +146,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -189,7 +190,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
memset(&dest, 0, sizeof(dest));
memset(&packet, 0, sizeof(packet));
-- packet.data = *payload; /* struct copy */
-+ memcpy(&(packet.data), payload, p_len);
+- packet.data = *dhcp_pkt; /* struct copy */
++ memcpy(&(packet.data), dhcp_pkt, p_len);
dest.sll_family = AF_PACKET;
dest.sll_protocol = htons(ETH_P_IP);
-@@ -163,23 +163,18 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -206,24 +207,19 @@ int FAST_FUNC udhcp_send_raw_packet(stru
packet.ip.daddr = dest_ip;
packet.udp.source = htons(source_port);
packet.udp.dest = htons(dest_port);
- * If you need to change this: last byte of the packet is
- * packet.data.options[end_option(packet.data.options)]
- */
+ udhcp_dump_packet(dhcp_pkt);
- result = sendto(fd, &packet, IP_UPD_DHCP_SIZE, 0,
+ result = sendto(fd, &packet, p_len, 0,
(struct sockaddr *) &dest, sizeof(dest));
msg = "sendto";
ret_close:
-@@ -231,8 +226,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -245,10 +241,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+ int result = -1;
+ const char *msg;
+
+- enum {
+- DHCP_SIZE = sizeof(struct dhcp_packet) - CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS,
+- };
+-
+ fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ if (fd < 0) {
+ msg = "socket(%s)";
+@@ -274,9 +266,8 @@ int FAST_FUNC udhcp_send_kernel_packet(s
goto ret_close;
}
- /* Currently we send full-sized DHCP packets (see above) */
-- result = safe_write(fd, payload, DHCP_SIZE);
-+ result = safe_write(fd, payload, udhcp_get_payload_len(payload));
+ udhcp_dump_packet(dhcp_pkt);
+- result = safe_write(fd, dhcp_pkt, DHCP_SIZE);
++ result = safe_write(fd, dhcp_pkt, udhcp_get_payload_len(dhcp_pkt));
msg = "write";
ret_close:
close(fd);
@@ -126,6 +126,7 @@ int FAST_FUNC send_decline(uint32_t xid,
int FAST_FUNC send_discover(uint32_t xid, uint32_t requested)
{
- struct dhcpMessage packet;
+ struct dhcp_packet packet;
+ static int msgs = 0;
init_packet(&packet, DHCPDISCOVER);
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -327,6 +327,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -342,6 +342,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
/* silence "uninitialized!" warning */
unsigned timestamp_before_wait = timestamp_before_wait;
+ * member interfaces were added/removed or if the status of the
+ * bridge changed).
+ * Workaround: refresh it here before processing the next packet */
-+ udhcp_read_interface(client_config.interface, &client_config.ifindex, NULL, client_config.arp);
++ udhcp_read_interface(client_config.interface, &client_config.ifindex, NULL, client_config.client_mac);
+
//bb_error_msg("sockfd:%d, listen_mode:%d", sockfd, listen_mode);
---- a/networking/udhcp/options.c
-+++ b/networking/udhcp/options.c
-@@ -48,6 +48,7 @@ const struct dhcp_option dhcp_options[]
- #if ENABLE_FEATURE_UDHCP_RFC3397
- { OPTION_STR1035 | OPTION_LIST , 0x77 }, /* search */
- #endif
-+ { OPTION_U8 | OPTION_LIST | OPTION_REQ, 0x79 }, /* cidr_static_routes */
- /* MSIE's "Web Proxy Autodiscovery Protocol" support */
- { OPTION_STRING , 0xfc }, /* wpad */
-
-@@ -97,6 +98,7 @@ const char dhcp_option_strings[] ALIGN1
- #if ENABLE_FEATURE_UDHCP_RFC3397
- "search" "\0"
- #endif
-+ "cidrroute" "\0" /* cidr_static_routes */
- /* MSIE's "Web Proxy Autodiscovery Protocol" support */
- "wpad" "\0"
- ;
--- a/shell/ash.c
+++ b/shell/ash.c
-@@ -12273,8 +12273,17 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12360,8 +12360,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) {
-@@ -12286,10 +12295,12 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12373,10 +12382,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
-@@ -271,6 +271,7 @@ USE_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_
- USE_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_NEVER))
- USE_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_NEVER))
- USE_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
-+USE_NETMSG(APPLET(netmsg, _BB_DIR_BIN, _BB_SUID_ALWAYS))
- USE_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_NEVER))
- USE_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_NEVER))
- USE_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
+@@ -278,6 +278,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_NETMSG(APPLET(netmsg, _BB_DIR_BIN, _BB_SUID_REQUIRE))
+ IF_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_DROP))
+ IF_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_DROP))
+ IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP))
--- a/include/usage.h
+++ b/include/usage.h
-@@ -3010,6 +3010,9 @@
+@@ -3101,6 +3101,9 @@
#endif
+#define netmsg_full_usage ""
+
#define netstat_trivial_usage \
- "[-laentuwxr"USE_FEATURE_NETSTAT_WIDE("W")USE_FEATURE_NETSTAT_PRG("p")"]"
+ "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]"
#define netstat_full_usage "\n\n" \
--- a/networking/Config.in
+++ b/networking/Config.in
-@@ -600,6 +600,12 @@ config NC
+@@ -617,6 +617,12 @@ config NC
A simple Unix utility which reads and writes data across network
connections.
default n
--- a/networking/Kbuild
+++ b/networking/Kbuild
-@@ -24,6 +24,7 @@ lib-$(CONFIG_IP) += ip.o
+@@ -25,6 +25,7 @@ lib-$(CONFIG_IP) += ip.o
lib-$(CONFIG_IPCALC) += ipcalc.o
lib-$(CONFIG_NAMEIF) += nameif.o
lib-$(CONFIG_NC) += nc.o
--- a/include/applets.h
+++ b/include/applets.h
-@@ -228,6 +228,7 @@ USE_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN
- USE_LOAD_POLICY(APPLET(load_policy, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
- USE_LOADFONT(APPLET(loadfont, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
- USE_LOADKMAP(APPLET(loadkmap, _BB_DIR_SBIN, _BB_SUID_NEVER))
-+USE_LOCK(APPLET(lock, _BB_DIR_BIN, _BB_SUID_NEVER))
- USE_LOGGER(APPLET(logger, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
- USE_LOGIN(APPLET(login, _BB_DIR_BIN, _BB_SUID_ALWAYS))
- USE_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_NEVER, logname))
+@@ -233,6 +233,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_LOCK(APPLET(lock, _BB_DIR_BIN, _BB_SUID_DROP))
+ IF_LOGGER(APPLET(logger, _BB_DIR_USR_BIN, _BB_SUID_DROP))
+ IF_LOGIN(APPLET(login, _BB_DIR_BIN, _BB_SUID_REQUIRE))
+ IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname))
--- a/include/usage.h
+++ b/include/usage.h
-@@ -2246,6 +2246,9 @@
+@@ -2325,6 +2325,9 @@
#define loadkmap_example_usage \
"$ loadkmap < /etc/i18n/lang-keymap\n"
+#define lock_full_usage ""
+
#define logger_trivial_usage \
- "[OPTION]... [MESSAGE]"
+ "[OPTIONS] [MESSAGE]"
#define logger_full_usage "\n\n" \
--- a/miscutils/Config.in
+++ b/miscutils/Config.in
-@@ -420,6 +420,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
+@@ -456,6 +456,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
-@@ -23,6 +23,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o
+@@ -26,6 +26,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
-@@ -1638,7 +1638,8 @@
- USE_FEATURE_HTTPD_BASIC_AUTH(" [-r realm]") \
- USE_FEATURE_HTTPD_AUTH_MD5(" [-m pass]") \
- " [-h home]" \
-- " [-d/-e string]"
-+ " [-d/-e string]" \
+@@ -1693,6 +1693,7 @@
+ IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \
+ " [-h HOME]\n" \
+ "or httpd -d/-e" IF_FEATURE_HTTPD_AUTH_MD5("/-m") " STRING"
+ " [-R <path> [-H <host>]]"
#define httpd_full_usage "\n\n" \
"Listen for incoming HTTP requests\n" \
"\nOptions:" \
-@@ -1656,6 +1657,8 @@
- "\n -h HOME Home directory (default .)" \
+@@ -1710,6 +1711,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" \
#define hwclock_trivial_usage \
- USE_FEATURE_HWCLOCK_LONG_OPTIONS( \
+ IF_FEATURE_HWCLOCK_LONG_OPTIONS( \
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -248,6 +248,8 @@ struct globals {
+ const char *redirect_host;
Htaccess_IP *ip_a_d; /* config allow/deny lines */
- USE_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;)
+ IF_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;)
@@ -294,6 +296,8 @@ struct globals {
#define index_page (G.index_page )
#define found_mime_type (G.found_mime_type )
+ c_opt_config_file,
d_opt_decode_url,
h_opt_home_httpd,
- USE_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,)
+ IF_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,)
@@ -2315,12 +2328,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. */
- opt = getopt32(argv, "c:d:h:"
+ opt = getopt32(argv, "R:H:c:d:h:"
- USE_FEATURE_HTTPD_ENCODE_URL_STR("e:")
- USE_FEATURE_HTTPD_BASIC_AUTH("r:")
- USE_FEATURE_HTTPD_AUTH_MD5("m:")
- USE_FEATURE_HTTPD_SETUID("u:")
+ IF_FEATURE_HTTPD_ENCODE_URL_STR("e:")
+ IF_FEATURE_HTTPD_BASIC_AUTH("r:")
+ IF_FEATURE_HTTPD_AUTH_MD5("m:")
+ IF_FEATURE_HTTPD_SETUID("u:")
"p:ifv",
+ &redirect_path, &redirect_host,
&opt_c_configFile, &url_for_decode, &home_httpd
- USE_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode)
- USE_FEATURE_HTTPD_BASIC_AUTH(, &g_realm)
+ IF_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode)
+ IF_FEATURE_HTTPD_BASIC_AUTH(, &g_realm)
+ free(s1);
}
- ++dups; /* note: testing for overflow seems excessive. */
+ free((char*)s1);
}
--- a/modutils/Config.in
+++ b/modutils/Config.in
-@@ -211,7 +211,7 @@ config FEATURE_MODUTILS_SYMBOLS
+@@ -210,7 +210,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
-@@ -42,6 +42,10 @@
+@@ -69,6 +69,10 @@
#define MS_DIRSYNC 128 // Directory modifications are synchronous
#endif
#if defined(__dietlibc__)
// 16.12.2006, Sampo Kellomaki (sampo@iki.fi)
-@@ -152,6 +156,7 @@ static const int32_t mount_options[] = {
+@@ -185,6 +189,7 @@ static const int32_t mount_options[] = {
/* "rslave" */ MS_SLAVE|MS_RECURSIVE,
/* "rprivate" */ MS_SLAVE|MS_RECURSIVE,
/* "runbindable" */ MS_UNBINDABLE|MS_RECURSIVE,
)
// Always understood.
-@@ -206,6 +211,7 @@ static const char mount_option_str[] =
+@@ -239,6 +244,7 @@ static const char mount_option_str[] =
"rslave\0"
"rprivate\0"
"runbindable\0"
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -69,7 +69,6 @@ static void perform_renew(void)
+@@ -76,7 +76,6 @@ static void perform_renew(void)
state = RENEW_REQUESTED;
break;
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
-diff --git a/networking/telnetd.c b/networking/telnetd.c
-index 2a0ace5..c281feb 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
-@@ -308,6 +308,7 @@ make_new_session(
+@@ -306,6 +306,7 @@ make_new_session(
/* Restore default signal handling ASAP */
bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);