config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
bool "Show verbose applet usage messages"
default y
- select BUSYBOX_CONFIG_SHOW_USAGE
+ depends on BUSYBOX_CONFIG_SHOW_USAGE
help
All BusyBox applets will show more verbose help messages when
busybox is invoked with --help. This will add a lot of text to the
Enable this if your system has locale support and you would like
busybox to support locale settings.
-config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
+config BUSYBOX_CONFIG_UNICODE_SUPPORT
bool "Support Unicode"
default n
help
Probably by the time when busybox will be fully Unicode-clean,
other encodings will be mainly of historic interest.
+config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
+ bool "Use libc routines for Unicode (else uses internal ones)"
+ default n
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
+ help
+ With this option on, Unicode support is implemented using libc
+ routines. Otherwise, internal implementation is used.
+
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
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
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_SUBST_WCHAR
+ int "Character code to substitute unprintable characters with"
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+ default 63
+ help
+ Typical values are 63 for '?' (works with any output device),
+ 30 for ASCII substitute control code,
+ 65533 (0xfffd) for Unicode replacement character.
+
+config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
+ int "Range of supported Unicode characters"
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+ default 767
+ help
+ Any character with Unicode value bigger than this is assumed
+ to be non-printable on output device. Many applets replace
+ such chars with substitution character.
+
+ The idea is that many valid printable Unicode chars are
+ nevertheless are not displayed correctly. Think about
+ combining charachers, double-wide hieroglyphs, obscure
+ characters in dozens of ancient scripts...
+ Many terminals, terminal emulators, xterms etc will fail
+ to handle them correctly. Choose the smallest value
+ which suits your needs.
+
+ Typical values are:
+ 126 - ASCII only
+ 767 (0x2ff) - there are no combining chars in [0..767] range
+ (the range includes Latin 1, Latin Ext. A and B),
+ code is ~700 bytes smaller for this case.
+ 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+ code is ~300 bytes smaller for this case.
+ 12799 (0x31ff) - nearly all non-ideographic characters are
+ available in [0..12799] range, including
+ East Asian scripts like katakana, hiragana, hangul,
+ bopomofo...
+ 0 - off, any valid printable Unicode character will be printed.
+
+config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
+ bool "Allow zero-width Unicode characters on output"
+ default n
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+ help
+ With this option off, any Unicode char with width of 0
+ is substituted on output.
+
+config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
+ bool "Allow wide Unicode characters on output"
+ default n
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+ help
+ With this option off, any Unicode char with width > 1
+ is substituted on output.
+
+config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
+ bool "Bidirectional character-aware line input"
+ default n
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
+ help
+ With this option on, right-to-left Unicode characters
+ are treated differently on input (e.g. cursor movement).
+
+config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
+ bool "In bidi input, support non-ASCII neutral chars too"
+ default n
+ depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
+ help
+ In most cases it's enough to treat only ASCII non-letters
+ (i.e. punctuation, numbers and space) as characters
+ with neutral directionality.
+ With this option on, more extensive (and bigger) table
+ of neutral chars will be used.
+
+config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
+ bool "Make it possible to enter sequences of chars which are not Unicode"
+ default n
+ depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+ help
+ With this option on, invalid UTF-8 bytes are not substituted
+ with the selected substitution character.
+ For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+ at shell prompt will list file named 0xff (single char name
+ with char value 255), not file named '?'.
+
config BUSYBOX_CONFIG_LONG_OPTS
bool "Support for --long-options"
default y
Don't enable this unless you have a really good reason to clean
things up manually.
+config BUSYBOX_CONFIG_FEATURE_UTMP
+ bool "Support utmp file"
+ default n
+ help
+ The file /var/run/utmp is used to track who is currently logged in.
+ With this option on, certain applets (getty, login, telnetd etc)
+ will create and delete entries there.
+ "who" applet requires this option.
+
+config BUSYBOX_CONFIG_FEATURE_WTMP
+ bool "Support wtmp file"
+ default n
+ select BUSYBOX_CONFIG_FEATURE_UTMP
+ help
+ The file /var/run/wtmp is used to track when users have logged into
+ and logged out of the system.
+ With this option on, certain applets (getty, login, telnetd etc)
+ will append new entries there.
+ "last" applet requires this option.
+
config BUSYBOX_CONFIG_FEATURE_PIDFILE
bool "Support writing pidfiles"
default y
menu "Archival Utilities"
+config BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ
+ bool "Make tar, rpm, modprobe etc understand .xz data"
+ default n
+ help
+ Make tar, rpm, modprobe etc understand .xz data.
+
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
bool "Make tar, rpm, modprobe etc understand .lzma data"
default n
It supports the GNU ar long filename method which moves multiple long
filenames into a the data section of a new ar entry.
+config BUSYBOX_CONFIG_FEATURE_AR_CREATE
+ bool "Support archive creation"
+ default n
+ depends on BUSYBOX_CONFIG_AR
+ help
+ This enables archive creation (-c and -r) with busybox ar.
+
config BUSYBOX_CONFIG_BUNZIP2
bool "bunzip2"
default y
create compressed archives. It's probably the most widely used
UNIX archive program.
-if BUSYBOX_CONFIG_TAR
-
config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
bool "Enable archive creation"
default y
config BUSYBOX_CONFIG_FEATURE_TAR_AUTODETECT
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
+ depends on BUSYBOX_CONFIG_TAR && (BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z || BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ || BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2 || BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA || BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ)
help
With this option tar can automatically detect compressed
tarballs. Currently it works only on files (not pipes etc).
config BUSYBOX_CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY
bool "Support for old tar header format"
default n
- depends on BUSYBOX_CONFIG_TAR
+ depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
help
This option is required to unpack archives created in
the old GNU format; help to kill this old format by
config BUSYBOX_CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
default n
- depends on BUSYBOX_CONFIG_TAR
+ depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
help
This option is required to unpack archives created by some old
version of Sun's tar (it was calculating checksum using signed
config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS
bool "Support for GNU tar extensions (long filenames)"
default y
- depends on BUSYBOX_CONFIG_TAR
+ depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
help
With this option busybox supports GNU long filenames and
linknames.
help
Enable use of long options, increases size by about 400 Bytes
+config BUSYBOX_CONFIG_FEATURE_TAR_TO_COMMAND
+ bool "Support for writing to an external program"
+ default n
+ depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS
+ help
+ If you enable this option you'll be able to instruct tar to send
+ the contents of each extracted file to the standard input of an
+ external program.
+
config BUSYBOX_CONFIG_FEATURE_TAR_UNAME_GNAME
bool "Enable use of user and group names"
default n
With this option busybox supports GNU tar -m
(do not preserve time) option.
-endif #tar
+config BUSYBOX_CONFIG_FEATURE_TAR_SELINUX
+ bool "Support for extracting SELinux labels"
+ default n
+ depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_SELINUX
+ help
+ With this option busybox supports restoring SELinux labels
+ when extracting files from tar archives.
config BUSYBOX_CONFIG_UNCOMPRESS
bool "uncompress"
This option reduces decompression time by about 25% at the cost of
a 1K bigger binary.
+config BUSYBOX_CONFIG_LZMA
+ bool "Provide lzma alias which supports only unpacking"
+ default n
+ depends on BUSYBOX_CONFIG_UNLZMA
+ help
+ Enable this option if you want commands like "lzma -d" to work.
+ IOW: you'll get lzma applet, but it will always require -d option.
+
+config BUSYBOX_CONFIG_UNXZ
+ bool "unxz"
+ default n
+ help
+ unxz is a unlzma successor.
+
+config BUSYBOX_CONFIG_XZ
+ bool "Provide xz alias which supports only unpacking"
+ default n
+ depends on BUSYBOX_CONFIG_UNXZ
+ help
+ Enable this option if you want commands like "xz -d" to work.
+ IOW: you'll get xz applet, but it will always require -d option.
+
config BUSYBOX_CONFIG_UNZIP
bool "unzip"
default n
This program is used to change to another terminal.
Example: chvt 4 (change to terminal /dev/tty4)
+config BUSYBOX_CONFIG_FGCONSOLE
+ bool "fgconsole"
+ default n
+ help
+ This program prints active (foreground) console number.
+
config BUSYBOX_CONFIG_CLEAR
bool "clear"
default y
help
Shows keys pressed.
+comment "Common options for loadfont and setfont"
+ depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+
+config BUSYBOX_CONFIG_FEATURE_LOADFONT_PSF2
+ bool "Support for PSF2 console fonts"
+ default n
+ depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+ help
+ Support PSF2 console fonts.
+
+config BUSYBOX_CONFIG_FEATURE_LOADFONT_RAW
+ bool "Support for old (raw) console fonts"
+ default n
+ depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+ help
+ Support old (raw) console fonts.
+
endmenu
basename is used to strip the directory and suffix from filenames,
leaving just the filename itself. Enable this option if you wish
to enable the 'basename' utility.
-
-config BUSYBOX_CONFIG_CAL
- bool "cal"
- default n
- help
- cal is used to display a monthly calender.
-
config BUSYBOX_CONFIG_CAT
bool "cat"
default y
help
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_CONFIG_DATE
+ bool "date"
+ default y
+ help
+ date is used to set the system date or display the
+ current time in the given format.
+
+config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT
+ bool "Enable ISO date format output (-I)"
+ default y
+ depends on BUSYBOX_CONFIG_DATE
+ help
+ Enable option (-I) to output an ISO-8601 compliant
+ date/time string.
+
+config BUSYBOX_CONFIG_FEATURE_DATE_NANO
+ bool "Support %[num]N nanosecond format specifier"
+ default n
+ depends on BUSYBOX_CONFIG_DATE
+ help
+ Support %[num]N format specifier. Adds ~250 bytes of code.
+
+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_TEST
+ bool "test"
+ default y
+ help
+ test is used to check file types and compare values,
+ returning an appropriate exit code. The bash shell
+ has test built in, ash can build it in optionally.
+
+config BUSYBOX_CONFIG_FEATURE_TEST_64
+ bool "Extend test to 64 bit"
+ default y
+ depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
+ help
+ Enable 64-bit support in test.
+
+config BUSYBOX_CONFIG_TR
+ bool "tr"
+ default y
+ help
+ tr is used to squeeze, and/or delete characters from standard
+ input, writing to standard output.
+
+config BUSYBOX_CONFIG_FEATURE_TR_CLASSES
+ bool "Enable character classes (such as [:upper:])"
+ default n
+ depends on BUSYBOX_CONFIG_TR
+ help
+ Enable character classes, enabling commands such as:
+ tr [:upper:] [:lower:] to convert input into lowercase.
+
+config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
+ bool "Enable equivalence classes"
+ default n
+ depends on BUSYBOX_CONFIG_TR
+ help
+ Enable equivalence classes, which essentially add the enclosed
+ character to the current set. For instance, tr [=a=] xyz would
+ replace all instances of 'a' with 'xyz'. This option is mainly
+ useful for cases when no other way of expressing a character
+ is possible.
+
+config BUSYBOX_CONFIG_CAL
+ bool "cal"
+ default n
+ help
+ cal is used to display a monthly calender.
config BUSYBOX_CONFIG_CATV
bool "catv"
cut is used to print selected parts of lines from
each file to stdout.
-config BUSYBOX_CONFIG_DATE
- bool "date"
- default y
- help
- date is used to set the system date or display the
- current time in the given format.
-
-config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT
- bool "Enable ISO date format output (-I)"
- default y
- depends on BUSYBOX_CONFIG_DATE
- help
- 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
help
This option enables -a, -i and -B.
+ -a Show all filesystems
+ -i Inodes
+ -B <SIZE> Blocksize
+
config BUSYBOX_CONFIG_DIRNAME
bool "dirname"
default y
The options (-q, -s, and -v) are provided by GNU tail, but
are not specific in the SUSv3 standard.
+ -q Never output headers giving file names
+ -s SEC Wait SEC seconds between reads with -f
+ -v Always output headers giving file names
+
config BUSYBOX_CONFIG_TEE
bool "tee"
default y
help
Enable this option for a faster tee, at expense of size.
-config BUSYBOX_CONFIG_TEST
- bool "test"
- default y
- help
- test is used to check file types and compare values,
- returning an appropriate exit code. The bash shell
- has test built in, ash can build it in optionally.
-
-config BUSYBOX_CONFIG_FEATURE_TEST_64
- bool "Extend test to 64 bit"
- default y
- depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
- help
- Enable 64-bit support in test.
-
config BUSYBOX_CONFIG_TOUCH
bool "touch"
default y
touch is used to create or change the access and/or
modification timestamp of specified files.
-config BUSYBOX_CONFIG_TR
- bool "tr"
- default y
- help
- tr is used to squeeze, and/or delete characters from standard
- input, writing to standard output.
-
-config BUSYBOX_CONFIG_FEATURE_TR_CLASSES
- bool "Enable character classes (such as [:upper:])"
- default n
- depends on BUSYBOX_CONFIG_TR
- help
- Enable character classes, enabling commands such as:
- tr [:upper:] [:lower:] to convert input into lowercase.
-
-config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
- bool "Enable equivalence classes"
- default n
- depends on BUSYBOX_CONFIG_TR
- help
- Enable equivalence classes, which essentially add the enclosed
- character to the current set. For instance, tr [=a=] xyz would
- replace all instances of 'a' with 'xyz'. This option is mainly
- useful for cases when no other way of expressing a character
- is possible.
-
config BUSYBOX_CONFIG_TRUE
bool "true"
default y
config BUSYBOX_CONFIG_WHO
bool "who"
default n
- select BUSYBOX_CONFIG_FEATURE_UTMP
+ depends on BUSYBOX_CONFIG_FEATURE_UTMP
help
who is used to show who is logged on.
print out their pathnames.
endmenu
-
### config E2FSCK
### bool "e2fsck"
-### default n
+### default y
### help
### e2fsck is used to check Linux second extended file systems (ext2fs).
### e2fsck also supports ext2 filesystems countaining a journal (ext3).
### config MKE2FS
### bool "mke2fs"
-### default n
+### default y
### help
### mke2fs is used to create an ext2/ext3 filesystem. The normal compat
### symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
-### config TUNE2FS
-### bool "tune2fs"
-### default n
-### help
-### tune2fs allows the system administrator to adjust various tunable
-### filesystem parameters on Linux ext2/ext3 filesystems.
+config BUSYBOX_CONFIG_TUNE2FS
+ bool "tune2fs"
+ default n
+ help
+ tune2fs allows the system administrator to adjust various tunable
+ filesystem parameters on Linux ext2/ext3 filesystems.
### config E2LABEL
### bool "e2label"
-### default n
+### default y
### depends on TUNE2FS
### help
### e2label will display or change the filesystem label on the ext2
### NB: this one is now provided by util-linux/volume_id/*
### config FINDFS
### bool "findfs"
-### default n
+### default y
### depends on TUNE2FS
### help
### findfs will search the disks in the system looking for a filesystem
help
Make busybox vi behave nicely with terminals that get resized.
+config BUSYBOX_CONFIG_FEATURE_VI_ASK_TERMINAL
+ bool "Use 'tell me cursor position' ESC sequence to measure window"
+ default y
+ depends on BUSYBOX_CONFIG_VI
+ help
+ If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+ this option makes vi perform a last-ditch effort to find it:
+ vi positions cursor to 999,999 and asks terminal to report real
+ cursor position using "ESC [ 6 n" escape sequence, then reads stdin.
+
+ This is not clean but helps a lot on serial lines and such.
+
config BUSYBOX_CONFIG_FEATURE_VI_OPTIMIZE_CURSOR
bool "Optimize cursor movement"
default y
menu "Init Utilities"
+config BUSYBOX_CONFIG_BOOTCHARTD
+ bool "bootchartd"
+ default n
+ help
+ bootchartd is commonly used to profile the boot process
+ for the purpose of speeding it up. In this case, it is started
+ by the kernel as the init process. This is configured by adding
+ the init=/sbin/bootchartd option to the kernel command line.
+
+ It can also be used to monitor the resource usage of a specific
+ application or the running system in general. In this case,
+ bootchartd is started interactively by running bootchartd start
+ and stopped using bootchartd stop.
+
+config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER
+ bool "Compatible, bloated header"
+ default n
+ depends on BUSYBOX_CONFIG_BOOTCHARTD
+ help
+ Create extended header file compatible with "big" bootchartd.
+ "Big" bootchartd is a shell script and it dumps some
+ "convenient" info int the header, such as:
+ title = Boot chart for `hostname` (`date`)
+ system.uname = `uname -srvm`
+ system.release = `cat /etc/DISTRO-release`
+ system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount)
+ system.kernel.options = `cat /proc/cmdline`
+ This data is not mandatory for bootchart graph generation,
+ and is considered bloat. Nevertheless, this option
+ makes bootchartd applet to dump a subset of it.
+
+config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE
+ bool "Support bootchartd.conf"
+ default n
+ depends on BUSYBOX_CONFIG_BOOTCHARTD
+ help
+ Enable reading and parsing of $PWD/bootchartd.conf
+ and /etc/bootchartd.conf files.
+
config BUSYBOX_CONFIG_INIT
bool "init"
default y
depends on BUSYBOX_CONFIG_FEATURE_USE_INITTAB
help
When respawn entries are removed from inittab and a SIGHUP is
- sent to init, this feature will kill the processes that have
- been removed.
+ sent to init, this option will make init kill the processes
+ that have been removed.
config BUSYBOX_CONFIG_FEATURE_KILL_DELAY
int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED
help
getty lets you log in on a tty, it is normally invoked by init.
-config BUSYBOX_CONFIG_FEATURE_UTMP
- bool "Support utmp file"
- depends on BUSYBOX_CONFIG_GETTY || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU || BUSYBOX_CONFIG_WHO
- default n
- help
- The file /var/run/utmp is used to track who is currently logged in.
-
-config BUSYBOX_CONFIG_FEATURE_WTMP
- bool "Support wtmp file"
- depends on BUSYBOX_CONFIG_GETTY || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU || BUSYBOX_CONFIG_LAST
- default n
- select BUSYBOX_CONFIG_FEATURE_UTMP
- help
- The file /var/run/wtmp is used to track when user's have logged into
- and logged out of the system.
-
config BUSYBOX_CONFIG_LOGIN
bool "login"
default n
menu "Miscellaneous Utilities"
+config BUSYBOX_CONFIG_CONSPY
+ bool "conspy"
+ default n
+ help
+ A text-mode VNC like program for Linux virtual terminals.
+ example: conspy NUM shared access to console num
+ or conspy -nd NUM screenshot of console num
+ or conspy -cs NUM poor man's GNU screen like
+
+config BUSYBOX_CONFIG_UBIATTACH
+ bool "ubiattach"
+ default n
+ help
+ Attach MTD device to an UBI device.
+
+config BUSYBOX_CONFIG_UBIDETACH
+ bool "ubidetach"
+ default n
+ help
+ Detach MTD device from an UBI device.
+
config BUSYBOX_CONFIG_ADJTIMEX
bool "adjtimex"
default n
config BUSYBOX_CONFIG_LAST
bool "last"
default n
- select BUSYBOX_CONFIG_FEATURE_WTMP
+ depends on BUSYBOX_CONFIG_FEATURE_WTMP
help
'last' displays a list of the last users that logged into the system.
choice
prompt "Choose last implementation"
depends on BUSYBOX_CONFIG_LAST
- default BUSYBOX_CONFIG_FEATURE_LAST_SMALL
+ default BUSYBOX_CONFIG_FEATURE_LAST_FANCY
config BUSYBOX_CONFIG_FEATURE_LAST_SMALL
bool "small"
As readahead(2) blocks until each file has been read, it is best to
run this applet as a background job.
+config BUSYBOX_CONFIG_RFKILL
+ bool "rfkill"
+ default n
+ help
+ Enable/disable wireless devices.
+
+ rfkill list : list all wireless devices
+ rfkill list bluetooth : list all bluetooth devices
+ rfkill list 1 : list device corresponding to the given index
+ rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
+
config BUSYBOX_CONFIG_RUNLEVEL
bool "runlevel"
default n
menu "Linux Module Utilities"
+config BUSYBOX_CONFIG_MODINFO
+ bool "modinfo"
+ default n
+ help
+ Show information about a Linux Kernel module
+
config BUSYBOX_CONFIG_MODPROBE_SMALL
bool "Simplified modutils"
default n
config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"
- depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL
+ depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_MODINFO
help
Directory that contains kernel modules.
Defaults to "/lib/modules"
config BUSYBOX_CONFIG_DEFAULT_DEPMOD_FILE
string "Default name of modules.dep"
default "modules.dep"
- depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL
+ depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_MODINFO
help
Filename that contains kernel modules dependencies.
Defaults to "modules.dep"
menu "Networking Utilities"
+config BUSYBOX_CONFIG_NC
+ bool "nc"
+ default y
+ help
+ A simple Unix utility which reads and writes data across network
+ connections.
+
+config BUSYBOX_CONFIG_NC_SERVER
+ bool "Netcat server options (-l)"
+ default n
+ depends on BUSYBOX_CONFIG_NC
+ help
+ Allow netcat to act as a server.
+
+config BUSYBOX_CONFIG_NC_EXTRA
+ bool "Netcat extensions (-eiw and filename)"
+ default n
+ depends on BUSYBOX_CONFIG_NC
+ help
+ Add -e (support for executing the rest of the command line after
+ making or receiving a successful connection), -i (delay interval for
+ lines sent), -w (timeout for initial connection).
+
+config BUSYBOX_CONFIG_NC_110_COMPAT
+ bool "Netcat 1.10 compatibility (+2.5k)"
+ default n
+ depends on BUSYBOX_CONFIG_NC
+ help
+ This option makes nc closely follow original nc-1.10.
+ The code is about 2.5k bigger. It enables
+ -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
+ busybox-specific extensions: -f FILE and -ll.
+
config BUSYBOX_CONFIG_FEATURE_IPV6
bool "Enable IPv6 support"
default y
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.
+ Some ftp clients (among them KDE's Konqueror) issue illegal
+ "LIST -l" requests. This option works around such 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.
### UNUSED
###config FEATURE_IFUPDOWN_IPX
### bool "Support for IPX"
-### default n
+### default y
### depends on IFUPDOWN
### help
### If this option is selected you can use busybox to work with IPX
new_interface_name mac=00:80:C8:38:91:B5
new_interface_name 00:80:C8:38:91:B5
-config BUSYBOX_CONFIG_NC
- bool "nc"
- default y
- help
- A simple Unix utility which reads and writes data across network
- connections.
-
config BUSYBOX_CONFIG_NETMSG
bool "netmsg"
default y
help
simple program for sending udp broadcast messages
-config BUSYBOX_CONFIG_NC_SERVER
- bool "Netcat server options (-l)"
- default n
- depends on BUSYBOX_CONFIG_NC
- help
- Allow netcat to act as a server.
-
-config BUSYBOX_CONFIG_NC_EXTRA
- bool "Netcat extensions (-eiw and filename)"
- default n
- depends on BUSYBOX_CONFIG_NC
- help
- Add -e (support for executing the rest of the command line after
- making or receiving a successful connection), -i (delay interval for
- lines sent), -w (timeout for initial connection).
-
config BUSYBOX_CONFIG_NETSTAT
bool "netstat"
default y
#config TC
# bool "tc"
-# default n
+# default y
# help
# show / manipulate traffic control settings
#
# def_bool n
# depends on TC
+config BUSYBOX_CONFIG_TCPSVD
+ bool "tcpsvd"
+ default n
+ help
+ tcpsvd listens on a TCP port and runs a program for each new
+ connection.
+
config BUSYBOX_CONFIG_TELNET
bool "telnet"
default y
In other words: it should be run from inetd in nowait mode,
or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
+comment "Common options for tftp/tftpd"
+ depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
+
config BUSYBOX_CONFIG_FEATURE_TFTP_GET
- bool "Enable \"get\" command"
+ bool "Enable 'tftp get' and/or tftpd upload code"
default n
depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help
a client to retrieve a file from a TFTP server.
Also enable upload support in tftpd, if tftpd is selected.
+ Note: this option does _not_ make tftpd capable of download
+ (the usual operation people need from it)!
+
config BUSYBOX_CONFIG_FEATURE_TFTP_PUT
- bool "Enable \"put\" command"
+ bool "Enable 'tftp put' and/or tftpd download code"
default n
depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help
help
Add option -I to use ICMP ECHO instead of UDP datagrams.
+config BUSYBOX_CONFIG_TUNCTL
+ bool "tunctl"
+ default n
+ help
+ tunctl creates or deletes tun devices.
+
+config BUSYBOX_CONFIG_FEATURE_TUNCTL_UG
+ bool "Support owner:group assignment"
+ default n
+ depends on BUSYBOX_CONFIG_TUNCTL
+ help
+ Allow to specify owner and group of newly created interface.
+ 340 bytes of pure bloat. Say no here.
+
source package/busybox/config/networking/udhcp/Config.in
config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
Intended to alter options not available in /etc/network/interfaces.
(IE: --syslog --background etc...)
+config BUSYBOX_CONFIG_UDPSVD
+ bool "udpsvd"
+ default n
+ help
+ udpsvd listens on an UDP port and runs a program for each new
+ connection.
+
config BUSYBOX_CONFIG_VCONFIG
bool "vconfig"
default y
See http://www.zeroconf.org for further details, and "zcip.script"
in the busybox examples.
-config BUSYBOX_CONFIG_TCPSVD
- bool "tcpsvd"
- default n
- help
- tcpsvd listens on a TCP port and runs a program for each new
- connection.
-
-config BUSYBOX_CONFIG_TUNCTL
- bool "tunctl"
- default n
- help
- tunctl creates or deletes tun devices.
-
-config BUSYBOX_CONFIG_FEATURE_TUNCTL_UG
- bool "Support owner:group assignment"
- default n
- depends on BUSYBOX_CONFIG_TUNCTL
- help
- Allow to specify owner and group of newly created interface.
- 340 bytes of pure bloat. Say no here.
-
-config BUSYBOX_CONFIG_UDPSVD
- bool "udpsvd"
- default n
- help
- udpsvd listens on an UDP port and runs a program for each new
- connection.
-
endmenu
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.
+ search lists via option 119, specified in RFC 3397,
+ and SIP servers option 120, specified in RFC 3361.
config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
string "Absolute path to config script"
menu "Process Utilities"
+config BUSYBOX_CONFIG_SMEMCAP
+ bool "smemcap"
+ default n
+ help
+ smemcap is a tool for capturing process data for smem,
+ a memory usage statistic tool.
+
config BUSYBOX_CONFIG_FREE
bool "free"
default y
config BUSYBOX_CONFIG_SETUIDGID
bool "setuidgid"
+ default n
help
Sets soft resource limits as specified by options
config BUSYBOX_CONFIG_ENVUIDGID
bool "envuidgid"
+ default n
help
Sets $UID to account's uid and $GID to account's gid
config BUSYBOX_CONFIG_ENVDIR
bool "envdir"
+ default n
help
Sets various environment variables as specified by files
in the given directory
config BUSYBOX_CONFIG_SOFTLIMIT
bool "softlimit"
+ default n
help
Sets soft resource limits as specified by options
Displays the status of SELinux.
endmenu
-
menu "Shells"
-choice
- prompt "Choose your default shell"
- default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
- help
- Choose a shell. The ash shell is the most bash compatible
- and full featured one.
-
-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
- bool "hush"
-
-####config FEATURE_SH_IS_LASH
-#### select LASH
-#### bool "lash"
-
-####config FEATURE_SH_IS_MSH
-#### select MSH
-#### bool "msh"
-
-config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
- bool "none"
-
-endchoice
config BUSYBOX_CONFIG_ASH
bool "ash"
Enable pseudorandom generator and dynamic variable "$RANDOM".
Each read of "$RANDOM" will generate a new pseudorandom value.
+
+choice
+ prompt "Choose which shell is aliased to 'sh' name"
+ default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
+ help
+ Choose which shell you want to be executed by 'sh' alias.
+ The ash shell is the most bash compatible and full featured one.
+
+# note: cannot use "select ASH" here, it breaks "make allnoconfig"
+config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
+ depends on BUSYBOX_CONFIG_ASH
+ bool "ash"
+ depends on !BUSYBOX_CONFIG_NOMMU
+
+config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
+ depends on BUSYBOX_CONFIG_HUSH
+ bool "hush"
+
+config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
+ bool "none"
+
+endchoice
+
+choice
+ prompt "Choose which shell is aliased to 'bash' name"
+ default BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
+ help
+ Choose which shell you want to be executed by 'bash' alias.
+ The ash shell is the most bash compatible and full featured one.
+
+ Note that selecting this option does not switch on any bash
+ compatibility code. It merely makes it possible to install
+ /bin/bash (sym)link and run scripts which start with
+ #!/bin/bash line.
+
+ Many systems use it in scripts which use bash-specific features,
+ even simple ones like $RANDOM. Without this option, busybox
+ can't be used for running them because it won't recongnize
+ "bash" as a supported applet name.
+
+config BUSYBOX_CONFIG_FEATURE_BASH_IS_ASH
+ depends on BUSYBOX_CONFIG_ASH
+ bool "ash"
+ depends on !BUSYBOX_CONFIG_NOMMU
+
+config BUSYBOX_CONFIG_FEATURE_BASH_IS_HUSH
+ depends on BUSYBOX_CONFIG_HUSH
+ bool "hush"
+
+config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
+ bool "none"
+
+endchoice
+
+
config BUSYBOX_CONFIG_LASH
bool "lash (deprecated: aliased to hush)"
default n
config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
bool "Hide message on interactive shell startup"
default n
- depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
+ depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
help
Remove the busybox introduction when starting a shell.
config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
bool "Standalone shell"
default n
- depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
+ depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
help
This option causes busybox shells to use busybox applets
in preference to executables in the PATH whenever possible. For
config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
bool "Run 'nofork' applets directly"
default n
- depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
+ depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
help
This option causes busybox shells [currently only ash]
to not execute typical fork/exec/wait sequence, but call <applet>_main
It analyzes stdin with various ioctls, trying to determine whether
it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
If it detects one, it closes stdin/out/err and reopens that device.
- Then it executes given program. Usage example for /etc/inittab
- (for busybox init):
+ Then it executes given program. Opening the device will make
+ that device a controlling tty. This may require cttyhack
+ to be a session leader.
+
+ Example for /etc/inittab (for busybox init):
::respawn:/bin/cttyhack /bin/sh
+ Giving controlling tty to shell running with PID 1:
+
+ $ exec cttyhack sh
+
+ Starting an interactive shell from boot shell script:
+
+ setsid cttyhack sh
+
endmenu
Option -D instructs syslogd to drop consecutive messages
which are totally the same.
+config BUSYBOX_CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE
+ int "Read buffer size in bytes"
+ default 256
+ range 256 20000
+ depends on BUSYBOX_CONFIG_SYSLOGD
+ help
+ This option sets the size of the syslog read buffer.
+ Actual memory usage increases around five times the
+ change done here.
+
config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
bool "Circular Buffer support"
default y
problems that occur within programs and scripts.
endmenu
-
menu "Linux System Utilities"
+config BUSYBOX_CONFIG_REV
+ bool "rev"
+ default n
+ help
+ Reverse lines of a file or files.
+
config BUSYBOX_CONFIG_ACPID
bool "acpid"
default n
WARNING:
With all submodules selected, it will add ~8k to busybox.
+config BUSYBOX_CONFIG_FLOCK
+ bool "flock"
+ default n
+ help
+ Manage locks from shell scripts
+
config BUSYBOX_CONFIG_FREERAMDISK
bool "freeramdisk"
default n
with little overhead. If you wish to be able to create minix
filesystems this utility will do the job for you.
-comment "Minix filesystem support"
- depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX
-
config BUSYBOX_CONFIG_FEATURE_MINIX2
bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
default n
default n
help
Utility to create ReiserFS filesystems.
+ Note: this applet needs a lot of testing and polishing.
config BUSYBOX_CONFIG_MKFS_VFAT
bool "mkfs_vfat"
config BUSYBOX_CONFIG_HD
bool "hd"
default n
- select BUSYBOX_CONFIG_HEXDUMP
+ depends on BUSYBOX_CONFIG_HEXDUMP
help
hd is an alias to hexdump -C.
will be unable to determine the current screen size, and will be
unable to move the cursor.
-config BUSYBOX_CONFIG_VOLUMEID
- bool #No description makes it a hidden option
- default n
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
- bool "Ext filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
- bool "btrfs filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
- bool "Reiser filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
- bool "fat filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
- bool "hfs filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
- bool "jfs filesystem"
- default n
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-### config FEATURE_VOLUMEID_UFS
-### bool "ufs filesystem"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
- bool "xfs filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
- bool "ntfs filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
- bool "iso9660 filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
- bool "udf filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
- bool "luks filesystem"
- default n
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
- bool "linux swap filesystem"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-### config FEATURE_VOLUMEID_LVM
-### bool "lvm"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_CRAMFS
- bool "cramfs filesystem"
- default n
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-### config FEATURE_VOLUMEID_HPFS
-### bool "hpfs filesystem"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ROMFS
- bool "romfs filesystem"
- default n
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
- bool "sysv filesystem"
- default n
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-### config FEATURE_VOLUMEID_MINIX
-### bool "minix filesystem"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-### These only detect partition tables - not used (yet?)
-### config FEATURE_VOLUMEID_MAC
-### bool "mac filesystem"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-###
-### config FEATURE_VOLUMEID_MSDOS
-### bool "msdos filesystem"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
- bool "ocfs2 filesystem"
- default n
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
-### config FEATURE_VOLUMEID_HIGHPOINTRAID
-### bool "highpoint raid"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_ISWRAID
-### bool "intel raid"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_LSIRAID
-### bool "lsi raid"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_VIARAID
-### bool "via raid"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_SILICONRAID
-### bool "silicon raid"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_NVIDIARAID
-### bool "nvidia raid"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_PROMISERAID
-### bool "promise raid"
-### default n
-### depends on VOLUMEID
-### help
-### TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
- bool "linuxraid"
- default y
- depends on BUSYBOX_CONFIG_VOLUMEID
- help
- TODO
-
config BUSYBOX_CONFIG_MOUNT
bool "mount"
default y
The idea is to use such virtual filesystems in /etc/fstab.
config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
- bool "Support specifiying devices by label or UUID"
+ bool "Support specifying devices by label or UUID"
default n
depends on BUSYBOX_CONFIG_MOUNT
select BUSYBOX_CONFIG_VOLUMEID
systems.
config BUSYBOX_CONFIG_RDEV
- bool "rdev"
- default n
- help
+ bool "rdev"
+ default n
+ help
Print the device node associated with the filesystem mounted at '/'.
config BUSYBOX_CONFIG_READPROFILE
specify an offset or cryptographic options to the loopback device.
(If you don't want umount to free the loop device, use "umount -D".)
+config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP_CREATE
+ bool "Create new loopback devices if needed"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP
+ help
+ Linux kernels >= 2.6.24 support unlimited loopback devices. They are
+ allocated for use when trying to use a loop device. The loop device
+ must however exist.
+
+ This feature lets mount to try to create next /dev/loopN device
+ if it does not find a free one.
+
config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
bool "Support for the old /etc/mtab file"
default n
If you must use this, keep in mind it's inherently brittle (for
example a mount under chroot won't update it), can't handle modern
features like separate per-process filesystem namespaces, requires
- that your /etc directory be writeable, tends to get easily confused
+ that your /etc directory be writable, tends to get easily confused
by --bind or --move mounts, won't update if you rename a directory
that contains a mount point, and so on. (In brief: avoid.)
About the only reason to use this is if you've removed /proc from
your kernel.
+config BUSYBOX_CONFIG_VOLUMEID
+ bool #No description makes it a hidden option
+ default n
+
+menu "Filesystem/Volume identification"
+ depends on BUSYBOX_CONFIG_VOLUMEID
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
+ bool "Ext filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
+ bool "btrfs filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
+ bool "Reiser filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
+ bool "fat filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
+ bool "hfs filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
+ bool "jfs filesystem"
+ default n
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+### config FEATURE_VOLUMEID_UFS
+### bool "ufs filesystem"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
+ bool "xfs filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
+ bool "ntfs filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
+ bool "iso9660 filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
+ bool "udf filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
+ bool "luks filesystem"
+ default n
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
+ bool "linux swap filesystem"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+### config FEATURE_VOLUMEID_LVM
+### bool "lvm"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_CRAMFS
+ bool "cramfs filesystem"
+ default n
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+### config FEATURE_VOLUMEID_HPFS
+### bool "hpfs filesystem"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ROMFS
+ bool "romfs filesystem"
+ default n
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
+ bool "sysv filesystem"
+ default n
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+### config FEATURE_VOLUMEID_MINIX
+### bool "minix filesystem"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+### These only detect partition tables - not used (yet?)
+### config FEATURE_VOLUMEID_MAC
+### bool "mac filesystem"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+###
+### config FEATURE_VOLUMEID_MSDOS
+### bool "msdos filesystem"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
+ bool "ocfs2 filesystem"
+ default n
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+### config FEATURE_VOLUMEID_HIGHPOINTRAID
+### bool "highpoint raid"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+### config FEATURE_VOLUMEID_ISWRAID
+### bool "intel raid"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+### config FEATURE_VOLUMEID_LSIRAID
+### bool "lsi raid"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+### config FEATURE_VOLUMEID_VIARAID
+### bool "via raid"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+### config FEATURE_VOLUMEID_SILICONRAID
+### bool "silicon raid"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+### config FEATURE_VOLUMEID_NVIDIARAID
+### bool "nvidia raid"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+### config FEATURE_VOLUMEID_PROMISERAID
+### bool "promise raid"
+### default y
+### depends on VOLUMEID
+### help
+### TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
+ bool "linuxraid"
+ default y
+ depends on BUSYBOX_CONFIG_VOLUMEID
+ help
+ TODO
+
+endmenu
+
endmenu
--- /dev/null
+--- a/applets/Kbuild.src
++++ b/applets/Kbuild.src
+@@ -28,7 +28,7 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla
+ applets/applets.o: include/usage_compressed.h include/applet_tables.h
+
+ applets/applet_tables: .config include/applets.h
+-applets/usage: .config include/applets.h
++applets/usage: .config include/applets.h include/autoconf.h
+ applets/usage_pod: .config include/applet_tables.h include/applets.h
+
+ quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
--- /dev/null
+--- a/debianutils/mktemp.c
++++ b/debianutils/mktemp.c
+@@ -50,7 +50,7 @@ int mktemp_main(int argc UNUSED_PARAM, c
+ opts = getopt32(argv, "dqtp:", &path);
+
+ chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
+- if (chp[0] != '/' || (opts & 8))
++ if (!strchr(chp, '/') || (opts & 8))
+ chp = concat_path_file(path, chp);
+
+ if (opts & 1) { /* -d */
--- /dev/null
+--- a/editors/sed.c
++++ b/editors/sed.c
+@@ -61,6 +61,10 @@
+ #include "libbb.h"
+ #include "xregex.h"
+
++enum {
++ OPT_in_place = 1 << 0,
++};
++
+ /* Each sed command turns into one of these structures. */
+ typedef struct sed_cmd_s {
+ /* Ordered by alignment requirements: currently 36 bytes on x86 */
+@@ -938,8 +942,11 @@ static void process_files(void)
+
+ if (matched) {
+ /* once matched, "n,xxx" range is dead, disabling it */
+- if (sed_cmd->beg_line > 0)
++ if (sed_cmd->beg_line > 0
++ && !(option_mask32 & OPT_in_place) /* but not for -i */
++ ) {
+ sed_cmd->beg_line = -2;
++ }
+ sed_cmd->in_match = !(
+ /* has the ending line come, or is this a single address command? */
+ (sed_cmd->end_line ?
+@@ -1270,9 +1277,6 @@ static void add_cmd_block(char *cmdstr)
+ int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int sed_main(int argc UNUSED_PARAM, char **argv)
+ {
+- enum {
+- OPT_in_place = 1 << 0,
+- };
+ unsigned opt;
+ llist_t *opt_e, *opt_f;
+ int status = EXIT_SUCCESS;
+@@ -1292,6 +1296,7 @@ int sed_main(int argc UNUSED_PARAM, char
+ opt_e = opt_f = NULL;
+ opt_complementary = "e::f::" /* can occur multiple times */
+ "nn"; /* count -n */
++ /* -i must be first, to match OPT_in_place definition */
+ opt = getopt32(argv, "irne:f:", &opt_e, &opt_f,
+ &G.be_quiet); /* counter for -n */
+ //argc -= optind;
+--- a/testsuite/sed.tests
++++ b/testsuite/sed.tests
+@@ -270,11 +270,16 @@ testing "sed a cmd ended by double backs
+ | two \\
+ '
+
+-# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
++# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
+ testing "sed with N skipping lines past ranges on next cmds" \
+ "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
+ "4\n4\n" "" "1\n2\n3\n4\n"
+
++testing "sed -i with address modifies all files, not only first" \
++ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
++ "bar\nbar\n" "foo\n" ""
++
++
+ # testing "description" "arguments" "result" "infile" "stdin"
+
+ exit $FAILCOUNT
--- /dev/null
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -4515,6 +4515,7 @@ clear_traps(void)
+ INT_ON;
+ }
+ }
++ may_have_traps = 0;
+ }
+
+ /* Lives far away from here, needed for forkchild */
+--- /dev/null
++++ b/shell/ash_test/ash-signals/signal7.right
+@@ -0,0 +1 @@
++Bug detected: 0
+--- /dev/null
++++ b/shell/ash_test/ash-signals/signal7.tests
+@@ -0,0 +1,18 @@
++bug() {
++ trap : exit
++ # Bug was causing sh to be run in subshell,
++ # as if this line is replaced with (sh -c ...; exit $?) &
++ # here:
++ sh -c 'echo REAL_CHILD=$$' &
++ echo PARENTS_IDEA_OF_CHILD=$!
++ wait # make sure bkgd shell completes
++}
++
++bug | {
++while read varval; do
++ eval $varval
++done
++test x"$REAL_CHILD" != x"" \
++&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
++echo "Bug detected: $?"
++}
+--- a/shell/hush.c
++++ b/shell/hush.c
+@@ -3901,8 +3901,6 @@ static void insert_bg_job(struct pipe *p
+
+ if (G_interactive_fd)
+ printf("[%d] %d %s\n", job->jobid, job->cmds[0].pid, job->cmdtext);
+- /* Last command's pid goes to $! */
+- G.last_bg_pid = job->cmds[job->num_cmds - 1].pid;
+ G.last_jobid = job->jobid;
+ }
+
+@@ -4825,6 +4823,8 @@ static int run_list(struct pipe *pi)
+ if (G.run_list_level == 1)
+ insert_bg_job(pi);
+ #endif
++ /* Last command's pid goes to $! */
++ G.last_bg_pid = pi->cmds[pi->num_cmds - 1].pid;
+ G.last_exitcode = rcode = EXIT_SUCCESS;
+ debug_printf_exec(": cmd&: exitcode EXIT_SUCCESS\n");
+ } else {
+--- /dev/null
++++ b/shell/hush_test/hush-trap/signal7.right
+@@ -0,0 +1 @@
++Bug detected: 0
+--- /dev/null
++++ b/shell/hush_test/hush-trap/signal7.tests
+@@ -0,0 +1,18 @@
++bug() {
++ trap : exit
++ # Bug was causing sh to be run in subshell,
++ # as if this line is replaced with (sh -c ...; exit $?) &
++ # here:
++ sh -c 'echo REAL_CHILD=$$' &
++ echo PARENTS_IDEA_OF_CHILD=$!
++ wait # make sure bkgd shell completes
++}
++
++bug | {
++while read varval; do
++ eval $varval
++done
++test x"$REAL_CHILD" != x"" \
++&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
++echo "Bug detected: $?"
++}
+--- a/shell/shell_common.c
++++ b/shell/shell_common.c
+@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv)
+ val <<= l->factor_shift;
+ }
+ //bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val);
++ /* from man bash: "If neither -H nor -S
++ * is specified, both the soft and hard
++ * limits are set. */
++ if (!opts)
++ opts = OPT_hard + OPT_soft;
+ if (opts & OPT_hard)
+ limit.rlim_max = val;
+- if ((opts & OPT_soft) || opts == 0)
++ if (opts & OPT_soft)
+ limit.rlim_cur = val;
+ //bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max);
+ if (setrlimit(l->cmd, &limit) < 0) {
/* Construct a ip/udp header for a packet, send packet */
int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
uint32_t source_nip, int source_port,
-@@ -173,11 +178,12 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -173,10 +178,10 @@ int FAST_FUNC udhcp_send_raw_packet(stru
{
struct sockaddr_ll dest_sll;
struct ip_udp_dhcp_packet packet;
int fd;
int result = -1;
const char *msg;
-
+ int p_len = udhcp_get_payload_len(dhcp_pkt);
-+
+
fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
if (fd < 0) {
- msg = "socket(%s)";
-@@ -186,7 +192,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -185,8 +190,8 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+ }
memset(&dest_sll, 0, sizeof(dest_sll));
- memset(&packet, 0, offsetof(struct ip_udp_dhcp_packet, data));
+- memset(&packet, 0, offsetof(struct ip_udp_dhcp_packet, data));
- packet.data = *dhcp_pkt; /* struct copy */
++ memset(&packet, 0, sizeof(packet));
+ memcpy(&(packet.data), dhcp_pkt, p_len);
dest_sll.sll_family = AF_PACKET;
dest_sll.sll_protocol = htons(ETH_P_IP);
-@@ -208,27 +214,25 @@ int FAST_FUNC udhcp_send_raw_packet(stru
- * In order to work with those buggy servers,
- * we truncate packets after end option byte.
- */
-- padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(packet.data.options);
+@@ -199,36 +204,24 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+ goto ret_close;
+ }
+- /* We were sending full-sized DHCP packets (zero padded),
+- * but some badly configured servers were seen dropping them.
+- * Apparently they drop all DHCP packets >576 *ethernet* octets big,
+- * whereas they may only drop packets >576 *IP* octets big
+- * (which for typical Ethernet II means 590 octets: 6+6+2 + 576).
+- *
+- * In order to work with those buggy servers,
+- * we truncate packets after end option byte.
+- */
+- padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(packet.data.options);
+-
packet.ip.protocol = IPPROTO_UDP;
packet.ip.saddr = source_nip;
packet.ip.daddr = dest_nip;
udhcp_dump_packet(dhcp_pkt);
- result = sendto(fd, &packet, IP_UPD_DHCP_SIZE - padding, /*flags:*/ 0,
-+ result = sendto(fd, &packet, p_len, 0,
++ result = sendto(fd, &packet, p_len, /*flags:*/ 0,
(struct sockaddr *) &dest_sll, sizeof(dest_sll));
msg = "sendto";
ret_close:
-@@ -246,7 +250,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -246,7 +239,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
uint32_t dest_nip, int dest_port)
{
struct sockaddr_in client;
int fd;
int result = -1;
const char *msg;
-@@ -278,8 +281,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -277,9 +269,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+ }
udhcp_dump_packet(dhcp_pkt);
-
+-
- padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(dhcp_pkt->options);
- result = safe_write(fd, dhcp_pkt, DHCP_SIZE - padding);
+ result = safe_write(fd, dhcp_pkt, udhcp_get_payload_len(dhcp_pkt));
--- a/shell/ash.c
+++ b/shell/ash.c
-@@ -12428,8 +12428,17 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12429,8 +12429,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) {
-@@ -12441,10 +12450,12 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12442,10 +12451,12 @@ exportcmd(int argc UNUSED_PARAM, char **
vp = *findvar(hashvar(name), name);
if (vp) {
vp->flags |= flag;
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.src.h
-+++ b/include/usage.src.h
-@@ -2961,6 +2961,9 @@ INSERT
- " or\n" \
- "$ nameif -c /etc/my_mactab_file\n" \
-
-+#define netmsg_trivial_usage NOUSAGE_STR
-+#define netmsg_full_usage ""
-+
- #define netstat_trivial_usage \
- "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]"
- #define netstat_full_usage "\n\n" \
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -623,6 +623,12 @@ config FEATURE_NAMEIF_EXTENDED
+ bool "netmsg"
+ default n
+ help
-+ simple program for sending udp broadcast messages
++ simple program for sending udp broadcast messages
+
config NETSTAT
bool "netstat"
+ close(s);
+ exit(1);
+}
+--- a/include/usage.src.h
++++ b/include/usage.src.h
+@@ -1,3 +1,4 @@
++
+ /* vi: set sw=8 ts=8: */
+ /*
+ * This file suffers from chronically incorrect tabification
+@@ -2961,6 +2962,9 @@ INSERT
+ " or\n" \
+ "$ nameif -c /etc/my_mactab_file\n" \
+
++#define netmsg_trivial_usage NOUSAGE_STR
++#define netmsg_full_usage ""
++
+ #define netstat_trivial_usage \
+ "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]"
+ #define netstat_full_usage "\n\n" \
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -1717,21 +1717,32 @@ static int check_user_passwd(const char
+@@ -1717,21 +1717,32 @@ static int check_user_passwd(const char
if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
char *md5_passwd;
IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname))
--- a/include/usage.src.h
+++ b/include/usage.src.h
-@@ -2319,6 +2319,9 @@ INSERT
+@@ -2320,6 +2320,9 @@ INSERT
#define loadkmap_example_usage \
"$ loadkmap < /etc/i18n/lang-keymap\n"
--- a/include/usage.src.h
+++ b/include/usage.src.h
-@@ -1718,7 +1718,8 @@ INSERT
+@@ -1719,7 +1719,8 @@ INSERT
IF_FEATURE_HTTPD_SETUID(" [-u USER[:GRP]]") \
IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \
" [-h HOME]\n" \
#define httpd_full_usage "\n\n" \
"Listen for incoming HTTP requests\n" \
"\nOptions:" \
-@@ -2321,6 +2322,9 @@ INSERT
+@@ -1737,6 +1738,8 @@ INSERT
+ "\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 lock_trivial_usage NOUSAGE_STR
- #define lock_full_usage ""
-+
-+#define lock_trivial_usage NOUSAGE_STR
-+#define lock_full_usage ""
-
- #define logger_trivial_usage \
- "[OPTIONS] [MESSAGE]"
+ #define hwclock_trivial_usage \
+ IF_FEATURE_HWCLOCK_LONG_OPTIONS( \
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -250,6 +250,8 @@ struct globals {
string "Default directory containing modules"
default "/lib/modules"
- depends on DEPMOD || MODPROBE || MODPROBE_SMALL || MODINFO
-+ depends on DEPMOD || MODPROBE || MODPROBE_SMALL || MODINFO || INSMOD
++ depends on DEPMOD || INSMOD || MODPROBE || MODPROBE_SMALL || MODINFO
help
Directory that contains kernel modules.
Defaults to "/lib/modules"
--- a/editors/awk.c
+++ b/editors/awk.c
-@@ -70,9 +70,14 @@ typedef struct chain_s {
+@@ -1,3 +1,4 @@
++
+ /* vi: set sw=4 ts=4: */
+ /*
+ * awk implementation for busybox
+@@ -70,9 +71,14 @@ typedef struct chain_s {
} chain;
/* Function */
} func;
/* I/O stream */
-@@ -1453,7 +1458,8 @@ static void parse_program(char *p)
+@@ -1453,7 +1459,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);
-@@ -1462,7 +1468,7 @@ static void parse_program(char *p)
+@@ -1462,7 +1469,7 @@ static void parse_program(char *p)
if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM)
break;
}
chain_group();
clear_array(ahash);
-@@ -2547,7 +2553,8 @@ static var *evaluate(node *op, var *res)
+@@ -2547,7 +2554,8 @@ static var *evaluate(node *op, var *res)
var *vbeg, *v;
const char *sv_progname;
syntax_error(EMSG_UNDEF_FUNC);
vbeg = v = nvalloc(op->r.f->nargs + 1);
-@@ -2564,7 +2571,10 @@ static var *evaluate(node *op, var *res)
+@@ -2564,7 +2572,10 @@ static var *evaluate(node *op, var *res)
fnargs = vbeg;
sv_progname = g_progname;
g_progname = sv_progname;
nvfree(fnargs);
-@@ -2942,6 +2952,143 @@ static rstream *next_input_file(void)
+@@ -2942,6 +2953,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)
{
-@@ -3007,6 +3154,9 @@ int awk_main(int argc, char **argv)
+@@ -3007,6 +3155,9 @@ int awk_main(int argc, char **argv)
*s1 = '=';
}
}
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
-@@ -98,6 +98,8 @@ struct globals {
- GLOBALS
-
- #if ENABLE_FEATURE_REMOTE_LOG
-+ len_and_sockaddr *remoteAddr;
-+ int remoteFD;
- llist_t *remoteHosts;
- #endif
- #if ENABLE_FEATURE_IPC_SYSLOG
-@@ -554,6 +556,7 @@ static void do_syslogd(void) NORETURN;
- static void do_syslogd(void)
+@@ -555,6 +555,7 @@ static void do_syslogd(void)
{
int sock_fd;
-+ int send_err = 0;
#if ENABLE_FEATURE_REMOTE_LOG
++ int send_err = 0;
llist_t *item;
#endif
-@@ -637,10 +640,23 @@ static void do_syslogd(void)
+ #if ENABLE_FEATURE_SYSLOGD_DUP
+@@ -636,11 +637,23 @@ static void do_syslogd(void)
+ if (rh->remoteFD == -1)
continue;
}
- /* Send message to remote logger, ignore possible error */
+- /* Send message to remote logger, ignore possible error */
- /* TODO: on some errors, close and set G.remoteFD to -1
- * so that DNS resolution and connect is retried? */
- sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
- &(rh->remoteAddr->u.sa), rh->remoteAddr->len);
++ /* Send message to remote logger */
+ if (sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
-+ &G.remoteAddr->u.sa, G.remoteAddr->len) == -1 ) {
++ &(rh->remoteAddr->u.sa), rh->remoteAddr->len) == -1)
+ send_err = errno;
-+ }
+
+ /* On some errors, close and set G.remoteFD to -1
+ * so that DNS resolution and connect is retried */
+ case EISCONN:
+ case ENOTCONN:
+ case EPIPE:
-+ close(G.remoteFD);
-+ G.remoteFD = -1;
++ close(rh->remoteFD);
++ rh->remoteFD = -1;
+ break;
+ }
}
/* I guess *n < 0 might indicate error. Anyway,
* malloc'ing -1 bytes won't be good, so: */
//if (*n < 0)
-@@ -154,6 +160,7 @@ int id_main(int argc UNUSED_PARAM, char
+@@ -154,6 +160,7 @@ int id_main(int argc UNUSED_PARAM, char
if (egid != rgid)
status |= print_group(egid, " ");
}
/* We are supplying largish buffer, trying
* to not run get_groups() twice. That might be slow
* ("user database in remote SQL server" case) */
-@@ -181,6 +188,7 @@ int id_main(int argc UNUSED_PARAM, char
+@@ -181,6 +188,7 @@ int id_main(int argc UNUSED_PARAM, char
}
if (ENABLE_FEATURE_CLEAN_UP)
free(groups);
+++ /dev/null
---- a/debianutils/mktemp.c
-+++ b/debianutils/mktemp.c
-@@ -50,7 +50,7 @@ int mktemp_main(int argc UNUSED_PARAM, c
- opts = getopt32(argv, "dqtp:", &path);
-
- chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
-- if (chp[0] != '/' || (opts & 8))
-+ if (!strchr(chp, '/') || (opts & 8))
- chp = concat_path_file(path, chp);
-
- if (opts & 1) { /* -d */
+++ /dev/null
---- a/editors/sed.c
-+++ b/editors/sed.c
-@@ -61,6 +61,10 @@
- #include "libbb.h"
- #include "xregex.h"
-
-+enum {
-+ OPT_in_place = 1 << 0,
-+};
-+
- /* Each sed command turns into one of these structures. */
- typedef struct sed_cmd_s {
- /* Ordered by alignment requirements: currently 36 bytes on x86 */
-@@ -938,8 +942,11 @@ static void process_files(void)
-
- if (matched) {
- /* once matched, "n,xxx" range is dead, disabling it */
-- if (sed_cmd->beg_line > 0)
-+ if (sed_cmd->beg_line > 0
-+ && !(option_mask32 & OPT_in_place) /* but not for -i */
-+ ) {
- sed_cmd->beg_line = -2;
-+ }
- sed_cmd->in_match = !(
- /* has the ending line come, or is this a single address command? */
- (sed_cmd->end_line ?
-@@ -1270,9 +1277,6 @@ static void add_cmd_block(char *cmdstr)
- int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
- int sed_main(int argc UNUSED_PARAM, char **argv)
- {
-- enum {
-- OPT_in_place = 1 << 0,
-- };
- unsigned opt;
- llist_t *opt_e, *opt_f;
- int status = EXIT_SUCCESS;
-@@ -1292,6 +1296,7 @@ int sed_main(int argc UNUSED_PARAM, char
- opt_e = opt_f = NULL;
- opt_complementary = "e::f::" /* can occur multiple times */
- "nn"; /* count -n */
-+ /* -i must be first, to match OPT_in_place definition */
- opt = getopt32(argv, "irne:f:", &opt_e, &opt_f,
- &G.be_quiet); /* counter for -n */
- //argc -= optind;
---- a/testsuite/sed.tests
-+++ b/testsuite/sed.tests
-@@ -270,11 +270,16 @@ testing "sed a cmd ended by double backs
- | two \\
- '
-
--# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
-+# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
- testing "sed with N skipping lines past ranges on next cmds" \
- "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
- "4\n4\n" "" "1\n2\n3\n4\n"
-
-+testing "sed -i with address modifies all files, not only first" \
-+ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
-+ "bar\nbar\n" "foo\n" ""
-+
-+
- # testing "description" "arguments" "result" "infile" "stdin"
-
- exit $FAILCOUNT
+++ /dev/null
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -4515,6 +4515,7 @@ clear_traps(void)
- INT_ON;
- }
- }
-+ may_have_traps = 0;
- }
-
- /* Lives far away from here, needed for forkchild */
---- /dev/null
-+++ b/shell/ash_test/ash-signals/signal7.right
-@@ -0,0 +1 @@
-+Bug detected: 0
---- /dev/null
-+++ b/shell/ash_test/ash-signals/signal7.tests
-@@ -0,0 +1,18 @@
-+bug() {
-+ trap : exit
-+ # Bug was causing sh to be run in subshell,
-+ # as if this line is replaced with (sh -c ...; exit $?) &
-+ # here:
-+ sh -c 'echo REAL_CHILD=$$' &
-+ echo PARENTS_IDEA_OF_CHILD=$!
-+ wait # make sure bkgd shell completes
-+}
-+
-+bug | {
-+while read varval; do
-+ eval $varval
-+done
-+test x"$REAL_CHILD" != x"" \
-+&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
-+echo "Bug detected: $?"
-+}
---- a/shell/hush.c
-+++ b/shell/hush.c
-@@ -3901,8 +3901,6 @@ static void insert_bg_job(struct pipe *p
-
- if (G_interactive_fd)
- printf("[%d] %d %s\n", job->jobid, job->cmds[0].pid, job->cmdtext);
-- /* Last command's pid goes to $! */
-- G.last_bg_pid = job->cmds[job->num_cmds - 1].pid;
- G.last_jobid = job->jobid;
- }
-
-@@ -4825,6 +4823,8 @@ static int run_list(struct pipe *pi)
- if (G.run_list_level == 1)
- insert_bg_job(pi);
- #endif
-+ /* Last command's pid goes to $! */
-+ G.last_bg_pid = pi->cmds[pi->num_cmds - 1].pid;
- G.last_exitcode = rcode = EXIT_SUCCESS;
- debug_printf_exec(": cmd&: exitcode EXIT_SUCCESS\n");
- } else {
---- /dev/null
-+++ b/shell/hush_test/hush-trap/signal7.right
-@@ -0,0 +1 @@
-+Bug detected: 0
---- /dev/null
-+++ b/shell/hush_test/hush-trap/signal7.tests
-@@ -0,0 +1,18 @@
-+bug() {
-+ trap : exit
-+ # Bug was causing sh to be run in subshell,
-+ # as if this line is replaced with (sh -c ...; exit $?) &
-+ # here:
-+ sh -c 'echo REAL_CHILD=$$' &
-+ echo PARENTS_IDEA_OF_CHILD=$!
-+ wait # make sure bkgd shell completes
-+}
-+
-+bug | {
-+while read varval; do
-+ eval $varval
-+done
-+test x"$REAL_CHILD" != x"" \
-+&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
-+echo "Bug detected: $?"
-+}
---- a/shell/shell_common.c
-+++ b/shell/shell_common.c
-@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv)
- val <<= l->factor_shift;
- }
- //bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val);
-+ /* from man bash: "If neither -H nor -S
-+ * is specified, both the soft and hard
-+ * limits are set. */
-+ if (!opts)
-+ opts = OPT_hard + OPT_soft;
- if (opts & OPT_hard)
- limit.rlim_max = val;
-- if ((opts & OPT_soft) || opts == 0)
-+ if (opts & OPT_soft)
- limit.rlim_cur = val;
- //bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max);
- if (setrlimit(l->cmd, &limit) < 0) {