1
0
mirror of https://git.openwrt.org/openwrt/openwrt.git synced 2024-06-16 20:23:53 +02:00

busybox: update to 1.26.2

Refresh patches, delete patches that have been applied upstream.

Signed-off-by: Magnus Kroken <mkroken@gmail.com>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name> [fix defaults]
This commit is contained in:
Magnus Kroken 2017-01-15 02:21:41 +01:00 committed by Felix Fietkau
parent 5d2a9d2a3a
commit 84da2a677a
31 changed files with 3048 additions and 3798 deletions

File diff suppressed because it is too large Load Diff

View File

@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
PKG_VERSION:=1.25.1
PKG_RELEASE:=2
PKG_VERSION:=1.26.2
PKG_RELEASE:=1
PKG_FLAGS:=essential
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://www.busybox.net/downloads \
http://sources.buildroot.net
PKG_HASH:=27667e0f2328fdbd79cfd622e4453e5c57e58f781c5da97c9be337d93aa2a02e
PKG_HASH:=da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
PKG_BUILD_PARALLEL:=1

View File

@ -10,15 +10,18 @@ config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
menu "Busybox Settings"
menu "General Configuration"
config BUSYBOX_CONFIG_DESKTOP
bool "Enable options for full-blown desktop systems"
default BUSYBOX_DEFAULT_DESKTOP
help
Enable options and features which are not essential.
Select this only if you plan to use busybox on full-blown
desktop machine with common Linux distro, not on an embedded box.
Select this if you plan to use busybox on full-blown desktop machine
with common Linux distro, which needs higher level of command-line
compatibility.
If you are preparing your build to be used on an embedded box
where you have tighter control over the entire set of userspace
tools, you can unselect this option for smaller code size.
config BUSYBOX_CONFIG_EXTRA_COMPAT
bool "Provide compatible behavior for rare corner cases (bigger code)"
@ -57,30 +60,6 @@ config BUSYBOX_CONFIG_PLATFORM_LINUX
Answering 'N' here will disable such applets and hide the
corresponding configuration options.
choice
prompt "Buffer allocation policy"
default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
help
There are 3 ways BusyBox can handle buffer allocations:
- Use malloc. This costs code size for the call to xmalloc.
- Put them on stack. For some very small machines with limited stack
space, this can be deadly. For most folks, this works just fine.
- Put them in BSS. This works beautifully for computers with a real
MMU (and OS support), but wastes runtime RAM for uCLinux. This
behavior was the only one available for BusyBox versions 0.48 and
earlier.
config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
bool "Allocate with Malloc"
config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
bool "Allocate on the Stack"
config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
bool "Allocate in the .bss section"
endchoice
config BUSYBOX_CONFIG_SHOW_USAGE
bool "Show applet usage messages"
default BUSYBOX_DEFAULT_SHOW_USAGE
@ -143,131 +122,6 @@ config BUSYBOX_CONFIG_INSTALL_NO_USR
will install applets only to /bin and /sbin,
never to /usr/bin or /usr/sbin.
config BUSYBOX_CONFIG_LOCALE_SUPPORT
bool "Enable locale support (system needs locale for this to work)"
default BUSYBOX_DEFAULT_LOCALE_SUPPORT
help
Enable this if your system has locale support and you would like
busybox to support locale settings.
config BUSYBOX_CONFIG_UNICODE_SUPPORT
bool "Support Unicode"
default BUSYBOX_DEFAULT_UNICODE_SUPPORT
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_UNICODE_USING_LOCALE
bool "Use libc routines for Unicode (else uses internal ones)"
default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
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.
Internal implementation is smaller.
config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
help
With this option on, Unicode support is activated
only if locale-related variables have 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 BUSYBOX_DEFAULT_SUBST_WCHAR
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 BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
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 BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
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 BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
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 BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
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 BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
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 BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
help
With this option on, on line-editing input (such as used by shells)
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_PAM
bool "Support for PAM (Pluggable Authentication Modules)"
default BUSYBOX_DEFAULT_PAM
@ -275,19 +129,6 @@ config BUSYBOX_CONFIG_PAM
Use PAM in some busybox applets (currently login and httpd) instead
of direct access to password database.
config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
bool "Use sendfile system call"
default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
When enabled, busybox will use the kernel sendfile() function
instead of read/write loops to copy data between file descriptors
(for example, cp command does this a lot).
If sendfile() doesn't work, copying code falls back to read/write
loop. sendfile() was originally implemented for faster I/O
from files to sockets, but since Linux 2.6.33 it was extended
to work for many more file types.
config BUSYBOX_CONFIG_LONG_OPTS
bool "Support for --long-options"
default BUSYBOX_DEFAULT_LONG_OPTS
@ -496,9 +337,7 @@ config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
# This is automatically selected if any of enabled applets need it.
# You do not need to select it manually.
endmenu
menu 'Build Options'
comment 'Build Options'
config BUSYBOX_CONFIG_STATIC
bool "Build BusyBox as a static binary (no shared libs)"
@ -673,9 +512,73 @@ config BUSYBOX_CONFIG_EXTRA_LDLIBS
help
Additional LDLIBS to pass to the linker with -l.
endmenu
comment 'Installation Options ("make install" behavior)'
menu 'Debugging Options'
choice
prompt "What kind of applet links to install"
default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
help
Choose what kind of links to applets are created by "make install".
config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
bool "as soft-links"
help
Install applets as soft-links to the busybox binary. This needs some
free inodes on the filesystem, but might help with filesystem
generators that can't cope with hard-links.
config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
bool "as hard-links"
help
Install applets as hard-links to the busybox binary. This might
count on a filesystem with few inodes.
config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
bool "as script wrappers"
help
Install applets as script wrappers that call the busybox binary.
config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
bool "not installed"
help
Do not install applet links. Useful when you plan to use
busybox --install for installing links, or plan to use
a standalone shell and thus don't need applet links.
endchoice
choice
prompt "/bin/sh applet link"
default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
help
Choose how you install /bin/sh applet link.
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
bool "as soft-link"
help
Install /bin/sh applet as soft-link to the busybox binary.
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
bool "as hard-link"
help
Install /bin/sh applet as hard-link to the busybox binary.
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
bool "as script wrapper"
help
Install /bin/sh applet as script wrapper that calls
the busybox binary.
endchoice
config BUSYBOX_CONFIG_PREFIX
string "BusyBox installation prefix"
default BUSYBOX_DEFAULT_PREFIX
help
Define your directory to install BusyBox files/subdirs in.
comment 'Debugging Options'
config BUSYBOX_CONFIG_DEBUG
bool "Build BusyBox with extra Debugging symbols"
@ -769,78 +672,8 @@ endchoice
endmenu
menu 'Installation Options ("make install" behavior)'
choice
prompt "What kind of applet links to install"
default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
help
Choose what kind of links to applets are created by "make install".
config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
bool "as soft-links"
help
Install applets as soft-links to the busybox binary. This needs some
free inodes on the filesystem, but might help with filesystem
generators that can't cope with hard-links.
config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
bool "as hard-links"
help
Install applets as hard-links to the busybox binary. This might
count on a filesystem with few inodes.
config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
bool "as script wrappers"
help
Install applets as script wrappers that call the busybox binary.
config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
bool "not installed"
help
Do not install applet links. Useful when you plan to use
busybox --install for installing links, or plan to use
a standalone shell and thus don't need applet links.
endchoice
choice
prompt "/bin/sh applet link"
default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
help
Choose how you install /bin/sh applet link.
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
bool "as soft-link"
help
Install /bin/sh applet as soft-link to the busybox binary.
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
bool "as hard-link"
help
Install /bin/sh applet as hard-link to the busybox binary.
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
bool "as script wrapper"
help
Install /bin/sh applet as script wrapper that calls
the busybox binary.
endchoice
config BUSYBOX_CONFIG_PREFIX
string "BusyBox installation prefix"
default BUSYBOX_DEFAULT_PREFIX
help
Define your directory to install BusyBox files/subdirs in.
endmenu
source libbb/Config.in
endmenu
comment "Applets"
source archival/Config.in

View File

@ -31,7 +31,7 @@ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
Make tar, rpm, modprobe etc understand .gz data.
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
bool "tar, rpm, modprobe etc understand .Z data"
bool "Make tar, rpm, modprobe etc understand .Z data"
default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z # it is ancient
help
Make tar, rpm, modprobe etc understand .Z data.
@ -79,10 +79,16 @@ config BUSYBOX_CONFIG_GUNZIP
You can use the `-t' option to test the integrity of
an archive, without decompressing it.
config BUSYBOX_CONFIG_ZCAT
bool "zcat"
default BUSYBOX_DEFAULT_ZCAT
help
Alias to "gunzip -c".
config BUSYBOX_CONFIG_FEATURE_GUNZIP_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_GUNZIP_LONG_OPTIONS
depends on BUSYBOX_CONFIG_GUNZIP && BUSYBOX_CONFIG_LONG_OPTS
depends on (BUSYBOX_CONFIG_GUNZIP || BUSYBOX_CONFIG_ZCAT) && BUSYBOX_CONFIG_LONG_OPTS
help
Enable use of long options.
config BUSYBOX_CONFIG_BUNZIP2
@ -97,6 +103,12 @@ config BUSYBOX_CONFIG_BUNZIP2
Unless you have a specific application which requires bunzip2, you
should probably say N here.
config BUSYBOX_CONFIG_BZCAT
bool "bzcat"
default BUSYBOX_DEFAULT_BZCAT
help
Alias to "bunzip2 -c".
config BUSYBOX_CONFIG_UNLZMA
bool "unlzma"
default BUSYBOX_DEFAULT_UNLZMA
@ -109,31 +121,47 @@ config BUSYBOX_CONFIG_UNLZMA
The BusyBox unlzma applet is limited to decompression only.
On an x86 system, this applet adds about 4K.
config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
bool "Optimize unlzma for speed"
default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
depends on BUSYBOX_CONFIG_UNLZMA
config BUSYBOX_CONFIG_LZCAT
bool "lzcat"
default BUSYBOX_DEFAULT_LZCAT
help
This option reduces decompression time by about 25% at the cost of
a 1K bigger binary.
unlzma is a compression utility using the Lempel-Ziv-Markov chain
compression algorithm, and range coding. Compression
is generally considerably better than that achieved by the bzip2
compressors.
The BusyBox unlzma applet is limited to decompression only.
On an x86 system, this applet adds about 4K.
config BUSYBOX_CONFIG_LZMA
bool "Provide lzma alias which supports only unpacking"
bool "lzma -d"
default BUSYBOX_DEFAULT_LZMA
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_FEATURE_LZMA_FAST
bool "Optimize unlzma for speed"
default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
depends on BUSYBOX_CONFIG_UNLZMA || BUSYBOX_CONFIG_LZCAT || BUSYBOX_CONFIG_LZMA
help
This option reduces decompression time by about 25% at the cost of
a 1K bigger binary.
config BUSYBOX_CONFIG_UNXZ
bool "unxz"
default BUSYBOX_DEFAULT_UNXZ
help
unxz is a unlzma successor.
config BUSYBOX_CONFIG_XZCAT
bool "xzcat"
default BUSYBOX_DEFAULT_XZCAT
help
Alias to "unxz -c".
config BUSYBOX_CONFIG_XZ
bool "Provide xz alias which supports only unpacking"
bool "xz -d"
default BUSYBOX_DEFAULT_XZ
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.
@ -158,7 +186,7 @@ config BUSYBOX_CONFIG_CPIO
cpio has 110 bytes of overheads for every stored file.
This implementation of cpio can extract cpio archives created in the
"newc" or "crc" format, it cannot create or modify them.
"newc" or "crc" format.
Unless you have a specific application which requires cpio, you
should probably say N here.
@ -198,16 +226,6 @@ config BUSYBOX_CONFIG_DPKG_DEB
Unless you have a specific application which requires dpkg-deb,
say N here.
config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
bool "Extract only (-x)"
default BUSYBOX_DEFAULT_FEATURE_DPKG_DEB_EXTRACT_ONLY
depends on BUSYBOX_CONFIG_DPKG_DEB
help
This reduces dpkg-deb to the equivalent of
"ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
of the extra dpkg-deb, ar or tar options are needed, they are linked
to internally.
config BUSYBOX_CONFIG_GZIP
bool "gzip"
default BUSYBOX_DEFAULT_GZIP
@ -249,10 +267,22 @@ config BUSYBOX_CONFIG_LZOP
help
Lzop compression/decompresion.
config BUSYBOX_CONFIG_UNLZOP
bool "unlzop"
default BUSYBOX_DEFAULT_UNLZOP
help
Lzop decompresion.
config BUSYBOX_CONFIG_LZOPCAT
bool "lzopcat"
default BUSYBOX_DEFAULT_LZOPCAT
help
Alias to "unlzop -c".
config BUSYBOX_CONFIG_LZOP_COMPR_HIGH
bool "lzop compression levels 7,8,9 (not very useful)"
default BUSYBOX_DEFAULT_LZOP_COMPR_HIGH
depends on BUSYBOX_CONFIG_LZOP
depends on BUSYBOX_CONFIG_LZOP || BUSYBOX_CONFIG_UNLZOP || BUSYBOX_CONFIG_LZOPCAT
help
High levels (7,8,9) of lzop compression. These levels
are actually slower than gzip at equivalent compression ratios

View File

@ -6,7 +6,6 @@
menu "Console Utilities"
config BUSYBOX_CONFIG_CHVT
bool "chvt"
default BUSYBOX_DEFAULT_CHVT
@ -14,27 +13,17 @@ config BUSYBOX_CONFIG_CHVT
help
This program is used to change to another terminal.
Example: chvt 4 (change to terminal /dev/tty4)
config BUSYBOX_CONFIG_FGCONSOLE
bool "fgconsole"
default BUSYBOX_DEFAULT_FGCONSOLE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program prints active (foreground) console number.
config BUSYBOX_CONFIG_CLEAR
bool "clear"
default BUSYBOX_DEFAULT_CLEAR
help
This program clears the terminal screen.
config BUSYBOX_CONFIG_DEALLOCVT
bool "deallocvt"
default BUSYBOX_DEFAULT_DEALLOCVT
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program deallocates unused virtual consoles.
config BUSYBOX_CONFIG_DUMPKMAP
bool "dumpkmap"
default BUSYBOX_DEFAULT_DUMPKMAP
@ -42,14 +31,18 @@ config BUSYBOX_CONFIG_DUMPKMAP
help
This program dumps the kernel's keyboard translation table to
stdout, in binary format. You can then use loadkmap to load it.
config BUSYBOX_CONFIG_FGCONSOLE
bool "fgconsole"
default BUSYBOX_DEFAULT_FGCONSOLE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program prints active (foreground) console number.
config BUSYBOX_CONFIG_KBD_MODE
bool "kbd_mode"
default BUSYBOX_DEFAULT_KBD_MODE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program reports and sets keyboard mode.
config BUSYBOX_CONFIG_LOADFONT
bool "loadfont"
default BUSYBOX_DEFAULT_LOADFONT
@ -57,61 +50,6 @@ config BUSYBOX_CONFIG_LOADFONT
help
This program loads a console font from standard input.
config BUSYBOX_CONFIG_LOADKMAP
bool "loadkmap"
default BUSYBOX_DEFAULT_LOADKMAP
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads a keyboard translation table from
standard input.
config BUSYBOX_CONFIG_OPENVT
bool "openvt"
default BUSYBOX_DEFAULT_OPENVT
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program is used to start a command on an unused
virtual terminal.
config BUSYBOX_CONFIG_RESET
bool "reset"
default BUSYBOX_DEFAULT_RESET
help
This program is used to reset the terminal screen, if it
gets messed up.
config BUSYBOX_CONFIG_RESIZE
bool "resize"
default BUSYBOX_DEFAULT_RESIZE
help
This program is used to (re)set the width and height of your current
terminal.
config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT
bool "Print environment variables"
default BUSYBOX_DEFAULT_FEATURE_RESIZE_PRINT
depends on BUSYBOX_CONFIG_RESIZE
help
Prints the newly set size (number of columns and rows) of
the terminal.
E.g.:
COLUMNS=80;LINES=44;export COLUMNS LINES;
config BUSYBOX_CONFIG_SETCONSOLE
bool "setconsole"
default BUSYBOX_DEFAULT_SETCONSOLE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program redirects the system console to another device,
like the current tty while logged in via telnet.
config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_SETCONSOLE_LONG_OPTIONS
depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the setconsole applet.
config BUSYBOX_CONFIG_SETFONT
bool "setfont"
default BUSYBOX_DEFAULT_SETFONT
@ -134,28 +72,6 @@ config BUSYBOX_CONFIG_DEFAULT_SETFONT_DIR
Directory to use if setfont's params are simple filenames
(not /path/to/file or ./file). Default is "" (no default directory).
config BUSYBOX_CONFIG_SETKEYCODES
bool "setkeycodes"
default BUSYBOX_DEFAULT_SETKEYCODES
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads entries into the kernel's scancode-to-keycode
map, allowing unusual keyboards to generate usable keycodes.
config BUSYBOX_CONFIG_SETLOGCONS
bool "setlogcons"
default BUSYBOX_DEFAULT_SETLOGCONS
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program redirects the output console of kernel messages.
config BUSYBOX_CONFIG_SHOWKEY
bool "showkey"
default BUSYBOX_DEFAULT_SHOWKEY
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Shows keys pressed.
comment "Common options for loadfont and setfont"
depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
@ -172,5 +88,74 @@ config BUSYBOX_CONFIG_FEATURE_LOADFONT_RAW
depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
help
Support old (raw) console fonts.
config BUSYBOX_CONFIG_LOADKMAP
bool "loadkmap"
default BUSYBOX_DEFAULT_LOADKMAP
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads a keyboard translation table from
standard input.
config BUSYBOX_CONFIG_OPENVT
bool "openvt"
default BUSYBOX_DEFAULT_OPENVT
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program is used to start a command on an unused
virtual terminal.
config BUSYBOX_CONFIG_RESET
bool "reset"
default BUSYBOX_DEFAULT_RESET
help
This program is used to reset the terminal screen, if it
gets messed up.
config BUSYBOX_CONFIG_RESIZE
bool "resize"
default BUSYBOX_DEFAULT_RESIZE
help
This program is used to (re)set the width and height of your current
terminal.
config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT
bool "Print environment variables"
default BUSYBOX_DEFAULT_FEATURE_RESIZE_PRINT
depends on BUSYBOX_CONFIG_RESIZE
help
Prints the newly set size (number of columns and rows) of
the terminal.
E.g.:
COLUMNS=80;LINES=44;export COLUMNS LINES;
config BUSYBOX_CONFIG_SETCONSOLE
bool "setconsole"
default BUSYBOX_DEFAULT_SETCONSOLE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program redirects the system console to another device,
like the current tty while logged in via telnet.
config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_SETCONSOLE_LONG_OPTIONS
depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the setconsole applet.
config BUSYBOX_CONFIG_SETKEYCODES
bool "setkeycodes"
default BUSYBOX_DEFAULT_SETKEYCODES
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads entries into the kernel's scancode-to-keycode
map, allowing unusual keyboards to generate usable keycodes.
config BUSYBOX_CONFIG_SETLOGCONS
bool "setlogcons"
default BUSYBOX_DEFAULT_SETLOGCONS
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program redirects the output console of kernel messages.
config BUSYBOX_CONFIG_SHOWKEY
bool "showkey"
default BUSYBOX_DEFAULT_SHOWKEY
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Shows keys pressed.
endmenu

File diff suppressed because it is too large Load Diff

View File

@ -194,28 +194,22 @@ config BUSYBOX_CONFIG_GREP
help
grep is used to search files for a specified pattern.
config BUSYBOX_CONFIG_FEATURE_GREP_EGREP_ALIAS
bool "Enable extended regular expressions (egrep & grep -E)"
default BUSYBOX_DEFAULT_FEATURE_GREP_EGREP_ALIAS
depends on BUSYBOX_CONFIG_GREP
config BUSYBOX_CONFIG_EGREP
bool "egrep"
default BUSYBOX_DEFAULT_EGREP
help
Enabled support for extended regular expressions. Extended
regular expressions allow for alternation (foo|bar), grouping,
and various repetition operators.
Alias to "grep -E"
config BUSYBOX_CONFIG_FEATURE_GREP_FGREP_ALIAS
bool "Alias fgrep to grep -F"
default BUSYBOX_DEFAULT_FEATURE_GREP_FGREP_ALIAS
depends on BUSYBOX_CONFIG_GREP
config BUSYBOX_CONFIG_FGREP
bool "fgrep"
default BUSYBOX_DEFAULT_FGREP
help
fgrep sees the search pattern as a normal string rather than
regular expressions.
grep -F always works, this just creates the fgrep alias.
Alias to "grep -F"
config BUSYBOX_CONFIG_FEATURE_GREP_CONTEXT
bool "Enable before and after context flags (-A, -B and -C)"
default BUSYBOX_DEFAULT_FEATURE_GREP_CONTEXT
depends on BUSYBOX_CONFIG_GREP
depends on BUSYBOX_CONFIG_GREP || BUSYBOX_CONFIG_EGREP
help
Print the specified number of leading (-B) and/or trailing (-A)
context surrounding our matching lines.

View File

@ -45,15 +45,27 @@ config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE
Enable reading and parsing of $PWD/bootchartd.conf
and /etc/bootchartd.conf files.
config BUSYBOX_CONFIG_HALT
bool "poweroff, halt, and reboot"
bool "halt"
default BUSYBOX_DEFAULT_HALT
help
Stop all processes and either halt, reboot, or power off the system.
Stop all processes and halt the system.
config BUSYBOX_CONFIG_POWEROFF
bool "poweroff"
default BUSYBOX_DEFAULT_POWEROFF
help
Stop all processes and power off the system.
config BUSYBOX_CONFIG_REBOOT
bool "reboot"
default BUSYBOX_DEFAULT_REBOOT
help
Stop all processes and reboot the system.
config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
bool "Call telinit on shutdown and reboot"
default BUSYBOX_DEFAULT_FEATURE_CALL_TELINIT
depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT
depends on (BUSYBOX_CONFIG_HALT || BUSYBOX_CONFIG_POWEROFF || BUSYBOX_CONFIG_REBOOT) && !BUSYBOX_CONFIG_INIT
help
Call an external program (normally telinit) to facilitate
a switch to a proper runlevel.
@ -143,7 +155,7 @@ config BUSYBOX_CONFIG_FEATURE_EXTRA_QUIET
config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS
bool "Support dumping core for child processes (debugging only)"
default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS
default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS # not Y because this is a debug option
depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC
help
If this option is enabled and the file /.init_enable_core

View File

@ -45,6 +45,30 @@ config BUSYBOX_CONFIG_FEATURE_RTMINMAX
Support RTMIN[+n] and RTMAX[-n] signal names
in kill, killall etc. This costs ~250 bytes.
choice
prompt "Buffer allocation policy"
default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
help
There are 3 ways BusyBox can handle buffer allocations:
- Use malloc. This costs code size for the call to xmalloc.
- Put them on stack. For some very small machines with limited stack
space, this can be deadly. For most folks, this works just fine.
- Put them in BSS. This works beautifully for computers with a real
MMU (and OS support), but wastes runtime RAM for uCLinux. This
behavior was the only one available for BusyBox versions 0.48 and
earlier.
config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
bool "Allocate with Malloc"
config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
bool "Allocate on the Stack"
config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
bool "Allocate in the .bss section"
endchoice
config BUSYBOX_CONFIG_PASSWORD_MINLEN
int "Minimum password length"
default BUSYBOX_DEFAULT_PASSWORD_MINLEN
@ -191,6 +215,131 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
correctly, or want to save on code size (about 400 bytes),
then do not turn this option on.
config BUSYBOX_CONFIG_LOCALE_SUPPORT
bool "Enable locale support (system needs locale for this to work)"
default BUSYBOX_DEFAULT_LOCALE_SUPPORT
help
Enable this if your system has locale support and you would like
busybox to support locale settings.
config BUSYBOX_CONFIG_UNICODE_SUPPORT
bool "Support Unicode"
default BUSYBOX_DEFAULT_UNICODE_SUPPORT
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_UNICODE_USING_LOCALE
bool "Use libc routines for Unicode (else uses internal ones)"
default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
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.
Internal implementation is smaller.
config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
help
With this option on, Unicode support is activated
only if locale-related variables have 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 BUSYBOX_DEFAULT_SUBST_WCHAR
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 BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
help
Any character with Unicode value bigger than this is assumed
to be non-printable on output device. Many applets replace
such characters with substitution character.
The idea is that many valid printable Unicode chars
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 BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
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 BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
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 BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
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 BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
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 BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
help
With this option on, on line-editing input (such as used by shells)
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_FEATURE_NON_POSIX_CP
bool "Non-POSIX, but safer, copying to special nodes"
default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
@ -215,6 +364,19 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
cp: cannot stat '/vmlinuz/file': Not a directory
This will cost you ~60 bytes.
config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
bool "Use sendfile system call"
default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
When enabled, busybox will use the kernel sendfile() function
instead of read/write loops to copy data between file descriptors
(for example, cp command does this a lot).
If sendfile() doesn't work, copying code falls back to read/write
loop. sendfile() was originally implemented for faster I/O
from files to sockets, but since Linux 2.6.33 it was extended
to work for many more file types.
config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
int "Copy buffer size, in kilobytes"
range 1 1024

View File

@ -1,20 +1,11 @@
# DO NOT EDIT. This file is generated from Config.src
menu "Mail Utilities"
config BUSYBOX_CONFIG_MAKEMIME
bool "makemime"
default BUSYBOX_DEFAULT_MAKEMIME
help
Create MIME-formatted messages.
config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET
string "Default charset"
default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL
help
Default charset of the message.
config BUSYBOX_CONFIG_POPMAILDIR
bool "popmaildir"
default BUSYBOX_DEFAULT_POPMAILDIR
@ -31,7 +22,6 @@ config BUSYBOX_CONFIG_FEATURE_POPMAILDIR_DELIVERY
of the message before actual delivery (-F "prog [args...]").
Allow to use a custom program for message actual delivery
(-M "prog [args...]").
config BUSYBOX_CONFIG_REFORMIME
bool "reformime"
default BUSYBOX_DEFAULT_REFORMIME
@ -45,11 +35,17 @@ config BUSYBOX_CONFIG_FEATURE_REFORMIME_COMPAT
help
Accept (for compatibility only) and ignore options
other than -x and -X.
config BUSYBOX_CONFIG_SENDMAIL
bool "sendmail"
default BUSYBOX_DEFAULT_SENDMAIL
help
Barebones sendmail.
config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET
string "Default charset"
default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET
depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL
help
Default charset of the message.
endmenu

File diff suppressed because it is too large Load Diff

View File

@ -6,13 +6,6 @@
menu "Linux Module Utilities"
config BUSYBOX_CONFIG_MODINFO
bool "modinfo"
default BUSYBOX_DEFAULT_MODINFO
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Show information about a Linux Kernel module
config BUSYBOX_CONFIG_MODPROBE_SMALL
bool "Simplified modutils"
default BUSYBOX_DEFAULT_MODPROBE_SMALL
@ -44,6 +37,42 @@ config BUSYBOX_CONFIG_MODPROBE_SMALL
- rmmod is an alias to modprobe -r
- depmod generates modules.dep.bb
config BUSYBOX_CONFIG_DEPMOD
bool "depmod"
default BUSYBOX_DEFAULT_DEPMOD
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
depmod generates modules.dep (and potentially modules.alias
and modules.symbols) that contain dependency information
for modprobe.
config BUSYBOX_CONFIG_INSMOD
bool "insmod"
default BUSYBOX_DEFAULT_INSMOD
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
insmod is used to load specified modules in the running kernel.
config BUSYBOX_CONFIG_LSMOD
bool "lsmod"
default BUSYBOX_DEFAULT_LSMOD
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
lsmod is used to display a list of loaded modules.
config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
bool "Pretty output"
default BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
depends on BUSYBOX_CONFIG_LSMOD && !BUSYBOX_CONFIG_MODPROBE_SMALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This option makes output format of lsmod adjusted to
the format of module-init-tools for Linux kernel 2.6.
Increases size somewhat.
config BUSYBOX_CONFIG_MODINFO
bool "modinfo"
default BUSYBOX_DEFAULT_MODINFO
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Show information about a Linux Kernel module
config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
bool "Accept module options on modprobe command line"
default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
@ -58,45 +87,9 @@ config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
depends on BUSYBOX_CONFIG_MODPROBE_SMALL
help
Check if the module is already loaded.
config BUSYBOX_CONFIG_INSMOD
bool "insmod"
default BUSYBOX_DEFAULT_INSMOD
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
insmod is used to load specified modules in the running kernel.
config BUSYBOX_CONFIG_RMMOD
bool "rmmod"
default BUSYBOX_DEFAULT_RMMOD
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
rmmod is used to unload specified modules from the kernel.
config BUSYBOX_CONFIG_LSMOD
bool "lsmod"
default BUSYBOX_DEFAULT_LSMOD
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
lsmod is used to display a list of loaded modules.
config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
bool "Pretty output"
default BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
depends on BUSYBOX_CONFIG_LSMOD
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This option makes output format of lsmod adjusted to
the format of module-init-tools for Linux kernel 2.6.
Increases size somewhat.
config BUSYBOX_CONFIG_MODPROBE
bool "modprobe"
default BUSYBOX_DEFAULT_MODPROBE
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Handle the loading of modules, and their dependencies on a high
@ -105,7 +98,7 @@ config BUSYBOX_CONFIG_MODPROBE
config BUSYBOX_CONFIG_FEATURE_MODPROBE_BLACKLIST
bool "Blacklist support"
default BUSYBOX_DEFAULT_FEATURE_MODPROBE_BLACKLIST
depends on BUSYBOX_CONFIG_MODPROBE
depends on BUSYBOX_CONFIG_MODPROBE && !BUSYBOX_CONFIG_MODPROBE_SMALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Say 'y' here to enable support for the 'blacklist' command in
@ -113,16 +106,12 @@ config BUSYBOX_CONFIG_FEATURE_MODPROBE_BLACKLIST
blacklisted modules. This is useful if you want to prevent your
hardware autodetection scripts to load modules like evdev, frame
buffer drivers etc.
config BUSYBOX_CONFIG_DEPMOD
bool "depmod"
default BUSYBOX_DEFAULT_DEPMOD
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
config BUSYBOX_CONFIG_RMMOD
bool "rmmod"
default BUSYBOX_DEFAULT_RMMOD
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
depmod generates modules.dep (and potentially modules.alias
and modules.symbols) that contain dependency information
for modprobe.
rmmod is used to unload specified modules from the kernel.
comment "Options common to multiple modutils"

View File

@ -6,183 +6,6 @@
menu "Networking Utilities"
config BUSYBOX_CONFIG_NAMEIF
bool "nameif"
default BUSYBOX_DEFAULT_NAMEIF
select BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
nameif is used to rename network interface by its MAC address.
Renamed interfaces MUST be in the down state.
It is possible to use a file (default: /etc/mactab)
with list of new interface names and MACs.
Maximum interface name length: IFNAMSIZ = 16
File fields are separated by space or tab.
File format:
# Comment
new_interface_name XX:XX:XX:XX:XX:XX
config BUSYBOX_CONFIG_FEATURE_NAMEIF_EXTENDED
bool "Extended nameif"
default BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED
depends on BUSYBOX_CONFIG_NAMEIF
help
This extends the nameif syntax to support the bus_info, driver,
phyaddr selectors. The syntax is compatible to the normal nameif.
File format:
new_interface_name driver=asix bus=usb-0000:00:08.2-3
new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
new_interface_name phy_address=2 00:80:C8:38:91:B5
new_interface_name mac=00:80:C8:38:91:B5
new_interface_name 00:80:C8:38:91:B5
config BUSYBOX_CONFIG_NBDCLIENT
bool "nbd-client"
default BUSYBOX_DEFAULT_NBDCLIENT
help
Network block device client
config BUSYBOX_CONFIG_NC
bool "nc"
default BUSYBOX_DEFAULT_NC
help
A simple Unix utility which reads and writes data across network
connections.
config BUSYBOX_CONFIG_NC_SERVER
bool "Netcat server options (-l)"
default BUSYBOX_DEFAULT_NC_SERVER
depends on BUSYBOX_CONFIG_NC
help
Allow netcat to act as a server.
config BUSYBOX_CONFIG_NC_EXTRA
bool "Netcat extensions (-eiw and -f FILE)"
default BUSYBOX_DEFAULT_NC_EXTRA
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 BUSYBOX_DEFAULT_NC_110_COMPAT # off specially for Rob
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.
config BUSYBOX_CONFIG_PING
bool "ping"
default BUSYBOX_DEFAULT_PING
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
elicit an ICMP ECHO_RESPONSE from a host or gateway.
config BUSYBOX_CONFIG_PING6
bool "ping6"
default BUSYBOX_DEFAULT_PING6
depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_PING
help
This will give you a ping that can talk IPv6.
config BUSYBOX_CONFIG_FEATURE_FANCY_PING
bool "Enable fancy ping output"
default BUSYBOX_DEFAULT_FEATURE_FANCY_PING
depends on BUSYBOX_CONFIG_PING
help
Make the output from the ping applet include statistics, and at the
same time provide full support for ICMP packets.
config BUSYBOX_CONFIG_WGET
bool "wget"
default BUSYBOX_DEFAULT_WGET
help
wget is a utility for non-interactive download of files from HTTP
and FTP servers.
config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR
bool "Enable a nifty process meter (+2k)"
default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
depends on BUSYBOX_CONFIG_WGET
help
Enable the transfer progress bar for wget transfers.
config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
bool "Enable HTTP authentication"
default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
depends on BUSYBOX_CONFIG_WGET
help
Support authenticated HTTP transfers.
config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the wget applet.
config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT
bool "Enable timeout option -T SEC"
default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
depends on BUSYBOX_CONFIG_WGET
help
Supports network read and connect timeouts for wget,
so that wget will give up and timeout, through the -T
command line option.
Currently only connect and network data read timeout are
supported (i.e., timeout is not applied to the DNS query). When
FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
will work in addition to -T.
config BUSYBOX_CONFIG_FEATURE_WGET_OPENSSL
bool "Try to connect to HTTPS using openssl"
default BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
depends on BUSYBOX_CONFIG_WGET
help
Choose how wget establishes SSL connection for https:// URLs.
Busybox itself contains no SSL code. wget will spawn
a helper program to talk over HTTPS.
OpenSSL has a simple SSL client for debug purposes.
If you select "openssl" helper, wget will effectively call
"openssl s_client -quiet -connect IP:443 2>/dev/null"
and pipe its data through it.
Note inconvenient API: host resolution is done twice,
and there is no guarantee openssl's idea of IPv6 address
format is the same as ours.
Another problem is that s_client prints debug information
to stderr, and it needs to be suppressed. This means
all error messages get suppressed too.
openssl is also a big binary, often dynamically linked
against ~15 libraries.
config BUSYBOX_CONFIG_FEATURE_WGET_SSL_HELPER
bool "Try to connect to HTTPS using ssl_helper"
default BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER
depends on BUSYBOX_CONFIG_WGET
help
Choose how wget establishes SSL connection for https:// URLs.
Busybox itself contains no SSL code. wget will spawn
a helper program to talk over HTTPS.
ssl_helper is a tool which can be built statically
from busybox sources against a small embedded SSL library.
Please see networking/ssl_helper/README.
It does not require double host resolution and emits
error messages to stderr.
Precompiled static binary may be available at
http://busybox.net/downloads/binaries/
config BUSYBOX_CONFIG_WHOIS
bool "whois"
default BUSYBOX_DEFAULT_WHOIS
help
whois is a client for the whois directory service
config BUSYBOX_CONFIG_FEATURE_IPV6
bool "Enable IPv6 support"
default BUSYBOX_DEFAULT_FEATURE_IPV6
@ -230,7 +53,6 @@ config BUSYBOX_CONFIG_ARP
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Manipulate the system ARP cache.
config BUSYBOX_CONFIG_ARPING
bool "arping"
default BUSYBOX_DEFAULT_ARPING
@ -264,37 +86,26 @@ config BUSYBOX_CONFIG_FEATURE_BRCTL_SHOW
help
Add support for option which prints the current config:
show
config BUSYBOX_CONFIG_DNSD
bool "dnsd"
default BUSYBOX_DEFAULT_DNSD
help
Small and static DNS server daemon.
config BUSYBOX_CONFIG_ETHER_WAKE
bool "ether-wake"
default BUSYBOX_DEFAULT_ETHER_WAKE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Send a magic packet to wake up sleeping machines.
config BUSYBOX_CONFIG_FAKEIDENTD
bool "fakeidentd"
default BUSYBOX_DEFAULT_FAKEIDENTD
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
fakeidentd listens on the ident port and returns a predefined
fake value on any query.
config BUSYBOX_CONFIG_FTPD
bool "ftpd"
default BUSYBOX_DEFAULT_FTPD
help
simple FTP daemon. You have to run it via inetd.
config BUSYBOX_CONFIG_FEATURE_FTP_WRITE
config BUSYBOX_CONFIG_FEATURE_FTPD_WRITE
bool "Enable upload commands"
default BUSYBOX_DEFAULT_FEATURE_FTP_WRITE
default BUSYBOX_DEFAULT_FEATURE_FTPD_WRITE
depends on BUSYBOX_CONFIG_FTPD
help
Enable all kinds of FTP upload commands (-w option)
@ -310,13 +121,12 @@ config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
it increases the code size by ~40 bytes.
Most other ftp servers seem to behave similar to this.
config BUSYBOX_CONFIG_FEATURE_FTP_AUTHENTICATION
config BUSYBOX_CONFIG_FEATURE_FTPD_AUTHENTICATION
bool "Enable authentication"
default BUSYBOX_DEFAULT_FEATURE_FTP_AUTHENTICATION
default BUSYBOX_DEFAULT_FEATURE_FTPD_AUTHENTICATION
depends on BUSYBOX_CONFIG_FTPD
help
Enable basic system login as seen in telnet etc.
config BUSYBOX_CONFIG_FTPGET
bool "ftpget"
default BUSYBOX_DEFAULT_FTPGET
@ -335,13 +145,17 @@ config BUSYBOX_CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS
depends on BUSYBOX_CONFIG_LONG_OPTS && (BUSYBOX_CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT)
help
Support long options for the ftpget/ftpput applet.
config BUSYBOX_CONFIG_HOSTNAME
bool "hostname"
default BUSYBOX_DEFAULT_HOSTNAME
help
Show or set the system's host name.
config BUSYBOX_CONFIG_DNSDOMAINNAME
bool "dnsdomainname"
default BUSYBOX_DEFAULT_DNSDOMAINNAME
help
Alias to "hostname -d".
config BUSYBOX_CONFIG_HTTPD
bool "httpd"
default BUSYBOX_DEFAULT_HTTPD
@ -460,7 +274,6 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_GZIP
help
Makes httpd send files using GZIP content encoding if the
client supports it and a pre-compressed <file>.gz exists.
config BUSYBOX_CONFIG_IFCONFIG
bool "ifconfig"
default BUSYBOX_DEFAULT_IFCONFIG
@ -508,7 +321,6 @@ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS
help
Setting this will make ifconfig attempt to find the broadcast
automatically if the value '+' is used.
config BUSYBOX_CONFIG_IFENSLAVE
bool "ifenslave"
default BUSYBOX_DEFAULT_IFENSLAVE
@ -516,20 +328,18 @@ config BUSYBOX_CONFIG_IFENSLAVE
help
Userspace application to bind several interfaces
to a logical interface (use with kernel bonding driver).
config BUSYBOX_CONFIG_IFPLUGD
bool "ifplugd"
default BUSYBOX_DEFAULT_IFPLUGD
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Network interface plug detection daemon.
config BUSYBOX_CONFIG_IFUPDOWN
bool "ifupdown"
default BUSYBOX_DEFAULT_IFUPDOWN
config BUSYBOX_CONFIG_IFUP
bool "ifup"
default BUSYBOX_DEFAULT_IFUP
help
Activate or deactivate the specified interfaces. This applet makes
use of either "ifconfig" and "route" or the "ip" command to actually
Activate the specified interfaces. This applet makes use
of either "ifconfig" and "route" or the "ip" command to actually
configure network interfaces. Therefore, you will probably also want
to enable either IFCONFIG and ROUTE, or enable
FEATURE_IFUPDOWN_IP and the various IP options. Of
@ -540,10 +350,16 @@ config BUSYBOX_CONFIG_IFUPDOWN
"ifconfig", "route" and "run-parts" or the "ip" command, either
via busybox or via standalone utilities.
config BUSYBOX_CONFIG_IFDOWN
bool "ifdown"
default BUSYBOX_DEFAULT_IFDOWN
help
Deactivate the specified interfaces.
config BUSYBOX_CONFIG_IFUPDOWN_IFSTATE_PATH
string "Absolute path to ifstate file"
default BUSYBOX_DEFAULT_IFUPDOWN_IFSTATE_PATH
depends on BUSYBOX_CONFIG_IFUPDOWN
depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
help
ifupdown keeps state information in a file called ifstate.
Typically it is located in /var/run/ifstate, however
@ -552,69 +368,39 @@ config BUSYBOX_CONFIG_IFUPDOWN_IFSTATE_PATH
This config option defines location of ifstate.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
bool "Use ip applet"
bool "Use ip tool (else ifconfig/route is used)"
default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP
depends on BUSYBOX_CONFIG_IFUPDOWN
depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
help
Use the iproute "ip" command to implement "ifup" and "ifdown", rather
than the default of using the older 'ifconfig' and 'route' utilities.
than the default of using the older "ifconfig" and "route" utilities.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
bool "Use busybox ip applet"
default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP_BUILTIN
depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
select BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_IP
select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
select BUSYBOX_CONFIG_FEATURE_IP_LINK
select BUSYBOX_CONFIG_FEATURE_IP_ROUTE
help
Use the busybox iproute "ip" applet to implement "ifupdown".
If Y: you must install either the full-blown iproute2 package
or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets
will not work.
If left disabled, you must install the full-blown iproute2
utility or the "ifup" and "ifdown" applets will not work.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
bool "Use busybox ifconfig and route applets"
default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
depends on BUSYBOX_CONFIG_IFUPDOWN && !BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
select BUSYBOX_CONFIG_IFCONFIG
select BUSYBOX_CONFIG_ROUTE
help
Use the busybox iproute "ifconfig" and "route" applets to
implement the "ifup" and "ifdown" utilities.
If left disabled, you must install the full-blown ifconfig
and route utilities, or the "ifup" and "ifdown" applets will not
work.
If N: you must install either the full-blown ifconfig and route
utilities, or enable these applets in Busybox.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV4
bool "Support for IPv4"
default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV4
depends on BUSYBOX_CONFIG_IFUPDOWN
depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
help
If you want ifup/ifdown to talk IPv4, leave this on.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV6
bool "Support for IPv6"
default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV6
depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_FEATURE_IPV6
depends on (BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN) && BUSYBOX_CONFIG_FEATURE_IPV6
help
If you need support for IPv6, turn this option on.
### UNUSED
###config FEATURE_IFUPDOWN_IPX
### bool "Support for IPX"
### default y
### depends on IFUPDOWN
### help
### If this option is selected you can use busybox to work with IPX
### networks.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_MAPPING
bool "Enable mapping support"
default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_MAPPING
depends on BUSYBOX_CONFIG_IFUPDOWN
depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
help
This enables support for the "mapping" stanza, unless you have
a weird network setup you don't need it.
@ -622,13 +408,12 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_MAPPING
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP
bool "Support for external dhcp clients"
default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_EXTERNAL_DHCP
depends on BUSYBOX_CONFIG_IFUPDOWN
depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN
help
This enables support for the external dhcp clients. Clients are
tried in the following order: dhcpcd, dhclient, pump and udhcpc.
Otherwise, if udhcpc applet is enabled, it is used.
Otherwise, ifup/ifdown will have no support for DHCP.
config BUSYBOX_CONFIG_INETD
bool "inetd"
default BUSYBOX_DEFAULT_INETD
@ -678,7 +463,6 @@ config BUSYBOX_CONFIG_FEATURE_INETD_RPC
select BUSYBOX_CONFIG_FEATURE_HAVE_RPC
help
Support Sun-RPC based services
config BUSYBOX_CONFIG_IP
bool "ip"
default BUSYBOX_DEFAULT_IP
@ -688,24 +472,72 @@ config BUSYBOX_CONFIG_IP
utility. You generally don't need "ip" to use busybox with
TCP/IP.
config BUSYBOX_CONFIG_IPADDR
bool "ipaddr"
default BUSYBOX_DEFAULT_IPADDR
select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support short form of ip addr: ipaddr
config BUSYBOX_CONFIG_IPLINK
bool "iplink"
default BUSYBOX_DEFAULT_IPLINK
select BUSYBOX_CONFIG_FEATURE_IP_LINK
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support short form of ip link: iplink
config BUSYBOX_CONFIG_IPROUTE
bool "iproute"
default BUSYBOX_DEFAULT_IPROUTE
select BUSYBOX_CONFIG_FEATURE_IP_ROUTE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support short form of ip route: iproute
config BUSYBOX_CONFIG_IPTUNNEL
bool "iptunnel"
default BUSYBOX_DEFAULT_IPTUNNEL
select BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support short form of ip tunnel: iptunnel
config BUSYBOX_CONFIG_IPRULE
bool "iprule"
default BUSYBOX_DEFAULT_IPRULE
select BUSYBOX_CONFIG_FEATURE_IP_RULE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support short form of ip rule: iprule
config BUSYBOX_CONFIG_IPNEIGH
bool "ipneigh"
default BUSYBOX_DEFAULT_IPNEIGH
select BUSYBOX_CONFIG_FEATURE_IP_NEIGH
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support short form of ip neigh: ipneigh
config BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
bool "ip address"
default BUSYBOX_DEFAULT_FEATURE_IP_ADDRESS
depends on BUSYBOX_CONFIG_IP
depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR
help
Address manipulation support for the "ip" applet.
config BUSYBOX_CONFIG_FEATURE_IP_LINK
bool "ip link"
default BUSYBOX_DEFAULT_FEATURE_IP_LINK
depends on BUSYBOX_CONFIG_IP
depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPLINK
help
Configure network devices with "ip".
config BUSYBOX_CONFIG_FEATURE_IP_ROUTE
bool "ip route"
default BUSYBOX_DEFAULT_FEATURE_IP_ROUTE
depends on BUSYBOX_CONFIG_IP
depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPROUTE
help
Add support for routing table management to "ip".
@ -719,80 +551,33 @@ config BUSYBOX_CONFIG_FEATURE_IP_ROUTE_DIR
config BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
bool "ip tunnel"
default BUSYBOX_DEFAULT_FEATURE_IP_TUNNEL
depends on BUSYBOX_CONFIG_IP
depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPTUNNEL
help
Add support for tunneling commands to "ip".
config BUSYBOX_CONFIG_FEATURE_IP_RULE
bool "ip rule"
default BUSYBOX_DEFAULT_FEATURE_IP_RULE
depends on BUSYBOX_CONFIG_IP
depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPRULE
help
Add support for rule commands to "ip".
config BUSYBOX_CONFIG_FEATURE_IP_NEIGH
bool "ip neighbor"
default BUSYBOX_DEFAULT_FEATURE_IP_NEIGH
depends on BUSYBOX_CONFIG_IP
depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPNEIGH
help
Add support for neighbor commands to "ip".
config BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS
bool "Support short forms of ip commands"
default BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS
depends on BUSYBOX_CONFIG_IP
help
Also support short-form of ip <OBJECT> commands:
ip addr -> ipaddr
ip link -> iplink
ip route -> iproute
ip tunnel -> iptunnel
ip rule -> iprule
ip neigh -> ipneigh
Say N unless you desparately need the short form of the ip
object commands.
config BUSYBOX_CONFIG_FEATURE_IP_RARE_PROTOCOLS
bool "Support displaying rarely used link types"
default BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS
depends on BUSYBOX_CONFIG_IP
depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR || BUSYBOX_CONFIG_IPLINK || BUSYBOX_CONFIG_IPROUTE || BUSYBOX_CONFIG_IPTUNNEL || BUSYBOX_CONFIG_IPRULE || BUSYBOX_CONFIG_IPNEIGH
help
If you are not going to use links of type "frad", "econet",
"bif" etc, you probably don't need to enable this.
Ethernet, wireless, infrared, ppp/slip, ip tunnelling
link types are supported without this option selected.
config BUSYBOX_CONFIG_IPADDR
bool
default BUSYBOX_DEFAULT_IPADDR
depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
config BUSYBOX_CONFIG_IPLINK
bool
default BUSYBOX_DEFAULT_IPLINK
depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_LINK
config BUSYBOX_CONFIG_IPROUTE
bool
default BUSYBOX_DEFAULT_IPROUTE
depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_ROUTE
config BUSYBOX_CONFIG_IPTUNNEL
bool
default BUSYBOX_DEFAULT_IPTUNNEL
depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
config BUSYBOX_CONFIG_IPRULE
bool
default BUSYBOX_DEFAULT_IPRULE
depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_RULE
config BUSYBOX_CONFIG_IPNEIGH
bool
default BUSYBOX_DEFAULT_IPNEIGH
depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_NEIGH
config BUSYBOX_CONFIG_IPCALC
bool "ipcalc"
default BUSYBOX_DEFAULT_IPCALC
@ -814,13 +599,84 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS
depends on BUSYBOX_CONFIG_IPCALC && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the ipcalc applet.
config BUSYBOX_CONFIG_FAKEIDENTD
bool "fakeidentd"
default BUSYBOX_DEFAULT_FAKEIDENTD
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
fakeidentd listens on the ident port and returns a predefined
fake value on any query.
config BUSYBOX_CONFIG_NAMEIF
bool "nameif"
default BUSYBOX_DEFAULT_NAMEIF
select BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
nameif is used to rename network interface by its MAC address.
Renamed interfaces MUST be in the down state.
It is possible to use a file (default: /etc/mactab)
with list of new interface names and MACs.
Maximum interface name length: IFNAMSIZ = 16
File fields are separated by space or tab.
File format:
# Comment
new_interface_name XX:XX:XX:XX:XX:XX
config BUSYBOX_CONFIG_FEATURE_NAMEIF_EXTENDED
bool "Extended nameif"
default BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED
depends on BUSYBOX_CONFIG_NAMEIF
help
This extends the nameif syntax to support the bus_info, driver,
phyaddr selectors. The syntax is compatible to the normal nameif.
File format:
new_interface_name driver=asix bus=usb-0000:00:08.2-3
new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
new_interface_name phy_address=2 00:80:C8:38:91:B5
new_interface_name mac=00:80:C8:38:91:B5
new_interface_name 00:80:C8:38:91:B5
config BUSYBOX_CONFIG_NBDCLIENT
bool "nbd-client"
default BUSYBOX_DEFAULT_NBDCLIENT
help
Network block device client
config BUSYBOX_CONFIG_NC
bool "nc"
default BUSYBOX_DEFAULT_NC
help
A simple Unix utility which reads and writes data across network
connections.
config BUSYBOX_CONFIG_NC_SERVER
bool "Netcat server options (-l)"
default BUSYBOX_DEFAULT_NC_SERVER
depends on BUSYBOX_CONFIG_NC
help
Allow netcat to act as a server.
config BUSYBOX_CONFIG_NC_EXTRA
bool "Netcat extensions (-eiw and -f FILE)"
default BUSYBOX_DEFAULT_NC_EXTRA
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 BUSYBOX_DEFAULT_NC_110_COMPAT # off specially for Rob
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.
config BUSYBOX_CONFIG_NETMSG
bool "netmsg"
default BUSYBOX_DEFAULT_NETMSG
help
simple program for sending udp broadcast messages
config BUSYBOX_CONFIG_NETSTAT
bool "netstat"
default BUSYBOX_DEFAULT_NETSTAT
@ -843,13 +699,11 @@ config BUSYBOX_CONFIG_FEATURE_NETSTAT_PRG
help
Add support for -p flag to print out PID and program name.
+700 bytes of code.
config BUSYBOX_CONFIG_NSLOOKUP
bool "nslookup"
default BUSYBOX_DEFAULT_NSLOOKUP
help
nslookup is a tool to query Internet name servers.
config BUSYBOX_CONFIG_NTPD
bool "ntpd"
default BUSYBOX_DEFAULT_NTPD
@ -872,20 +726,39 @@ config BUSYBOX_CONFIG_FEATURE_NTPD_CONF
help
Make ntpd look in /etc/ntp.conf for peers. Only "server address"
is supported.
config BUSYBOX_CONFIG_PING
bool "ping"
default BUSYBOX_DEFAULT_PING
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
elicit an ICMP ECHO_RESPONSE from a host or gateway.
config BUSYBOX_CONFIG_PING6
bool "ping6"
default BUSYBOX_DEFAULT_PING6
depends on BUSYBOX_CONFIG_FEATURE_IPV6
help
This will give you a ping that can talk IPv6.
config BUSYBOX_CONFIG_FEATURE_FANCY_PING
bool "Enable fancy ping output"
default BUSYBOX_DEFAULT_FEATURE_FANCY_PING
depends on BUSYBOX_CONFIG_PING || BUSYBOX_CONFIG_PING6
help
Make the output from the ping applet include statistics, and at the
same time provide full support for ICMP packets.
config BUSYBOX_CONFIG_PSCAN
bool "pscan"
default BUSYBOX_DEFAULT_PSCAN
help
Simple network port scanner.
config BUSYBOX_CONFIG_ROUTE
bool "route"
default BUSYBOX_DEFAULT_ROUTE
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Route displays or manipulates the kernel's IP routing tables.
config BUSYBOX_CONFIG_SLATTACH
bool "slattach"
default BUSYBOX_DEFAULT_SLATTACH
@ -893,17 +766,6 @@ config BUSYBOX_CONFIG_SLATTACH
help
slattach is a small utility to attach network interfaces to serial
lines.
#config TC
# bool "tc"
# default y
# help
# show / manipulate traffic control settings
#
#config FEATURE_TC_INGRESS
# def_bool n
# depends on TC
config BUSYBOX_CONFIG_TCPSVD
bool "tcpsvd"
default BUSYBOX_DEFAULT_TCPSVD
@ -911,6 +773,12 @@ config BUSYBOX_CONFIG_TCPSVD
tcpsvd listens on a TCP port and runs a program for each new
connection.
config BUSYBOX_CONFIG_UDPSVD
bool "udpsvd"
default BUSYBOX_DEFAULT_UDPSVD
help
udpsvd listens on an UDP port and runs a program for each new
connection.
config BUSYBOX_CONFIG_TELNET
bool "telnet"
default BUSYBOX_DEFAULT_TELNET
@ -936,7 +804,6 @@ config BUSYBOX_CONFIG_FEATURE_TELNET_AUTOLOGIN
remote host you are connecting to. This is useful when you need to
log into a machine without telling the username (autologin). This
option enables `-a' and `-l USER' arguments.
config BUSYBOX_CONFIG_TELNETD
bool "telnetd"
default BUSYBOX_DEFAULT_TELNETD
@ -978,7 +845,6 @@ config BUSYBOX_CONFIG_TELNETD
with all that done, telnetd _should_ work....
config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
bool "Support standalone telnetd (not inetd only)"
default BUSYBOX_DEFAULT_FEATURE_TELNETD_STANDALONE
@ -1006,7 +872,6 @@ config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD_WAIT
This option is rarely used. "tcp nowait" is much more usual
way of running tcp services, including telnetd.
You most probably want to say N here.
config BUSYBOX_CONFIG_TFTP
bool "tftp"
default BUSYBOX_DEFAULT_TFTP
@ -1071,7 +936,6 @@ config BUSYBOX_CONFIG_TFTP_DEBUG
help
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 BUSYBOX_DEFAULT_TRACEROUTE
@ -1082,33 +946,24 @@ config BUSYBOX_CONFIG_TRACEROUTE
config BUSYBOX_CONFIG_TRACEROUTE6
bool "traceroute6"
default BUSYBOX_DEFAULT_TRACEROUTE6
depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_TRACEROUTE
depends on BUSYBOX_CONFIG_FEATURE_IPV6
help
Utility to trace the route of IPv6 packets.
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
bool "Enable verbose output"
default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_VERBOSE
depends on BUSYBOX_CONFIG_TRACEROUTE
depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6
help
Add some verbosity to traceroute. This includes among other things
hostnames and ICMP response types.
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
bool "Enable loose source route"
default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_SOURCE_ROUTE
depends on BUSYBOX_CONFIG_TRACEROUTE
help
Add option to specify a loose source route gateway
(8 maximum).
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP
bool "Use ICMP instead of UDP"
bool "Enable -I option (use ICMP instead of UDP)"
default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_USE_ICMP
depends on BUSYBOX_CONFIG_TRACEROUTE
depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6
help
Add option -I to use ICMP ECHO instead of UDP datagrams.
config BUSYBOX_CONFIG_TUNCTL
bool "tunctl"
default BUSYBOX_DEFAULT_TUNCTL
@ -1123,32 +978,101 @@ config BUSYBOX_CONFIG_FEATURE_TUNCTL_UG
help
Allow to specify owner and group of newly created interface.
340 bytes of pure bloat. Say no here.
source udhcp/Config.in
config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
string "ifup udhcpc command line options"
default BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS
depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC
help
Command line options to pass to udhcpc from ifup.
Intended to alter options not available in /etc/network/interfaces.
(IE: --syslog --background etc...)
config BUSYBOX_CONFIG_UDPSVD
bool "udpsvd"
default BUSYBOX_DEFAULT_UDPSVD
help
udpsvd listens on an UDP port and runs a program for each new
connection.
config BUSYBOX_CONFIG_VCONFIG
bool "vconfig"
default BUSYBOX_DEFAULT_VCONFIG
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Creates, removes, and configures VLAN interfaces
config BUSYBOX_CONFIG_WGET
bool "wget"
default BUSYBOX_DEFAULT_WGET
help
wget is a utility for non-interactive download of files from HTTP
and FTP servers.
config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR
bool "Enable a nifty process meter (+2k)"
default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR
depends on BUSYBOX_CONFIG_WGET
help
Enable the transfer progress bar for wget transfers.
config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION
bool "Enable HTTP authentication"
default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION
depends on BUSYBOX_CONFIG_WGET
help
Support authenticated HTTP transfers.
config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
bool "Enable long options"
default BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS
depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the wget applet.
config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT
bool "Enable timeout option -T SEC"
default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT
depends on BUSYBOX_CONFIG_WGET
help
Supports network read and connect timeouts for wget,
so that wget will give up and timeout, through the -T
command line option.
Currently only connect and network data read timeout are
supported (i.e., timeout is not applied to the DNS query). When
FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
will work in addition to -T.
config BUSYBOX_CONFIG_FEATURE_WGET_OPENSSL
bool "Try to connect to HTTPS using openssl"
default BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL
depends on BUSYBOX_CONFIG_WGET
help
Choose how wget establishes SSL connection for https:// URLs.
Busybox itself contains no SSL code. wget will spawn
a helper program to talk over HTTPS.
OpenSSL has a simple SSL client for debug purposes.
If you select "openssl" helper, wget will effectively run:
"openssl s_client -quiet -connect hostname:443
-servername hostname 2>/dev/null" and pipe its data
through it. -servername is not used if hostname is numeric.
Note inconvenient API: host resolution is done twice,
and there is no guarantee openssl's idea of IPv6 address
format is the same as ours.
Another problem is that s_client prints debug information
to stderr, and it needs to be suppressed. This means
all error messages get suppressed too.
openssl is also a big binary, often dynamically linked
against ~15 libraries.
config BUSYBOX_CONFIG_FEATURE_WGET_SSL_HELPER
bool "Try to connect to HTTPS using ssl_helper"
default BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER
depends on BUSYBOX_CONFIG_WGET
help
Choose how wget establishes SSL connection for https:// URLs.
Busybox itself contains no SSL code. wget will spawn
a helper program to talk over HTTPS.
ssl_helper is a tool which can be built statically
from busybox sources against a small embedded SSL library.
Please see networking/ssl_helper/README.
It does not require double host resolution and emits
error messages to stderr.
Precompiled static binary may be available at
http://busybox.net/downloads/binaries/
config BUSYBOX_CONFIG_WHOIS
bool "whois"
default BUSYBOX_DEFAULT_WHOIS
help
whois is a client for the whois directory service
config BUSYBOX_CONFIG_ZCIP
bool "zcip"
default BUSYBOX_DEFAULT_ZCIP
@ -1162,4 +1086,15 @@ config BUSYBOX_CONFIG_ZCIP
See http://www.zeroconf.org for further details, and "zcip.script"
in the busybox examples.
source udhcp/Config.in
config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
string "ifup udhcpc command line options"
default BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS
depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC
help
Command line options to pass to udhcpc from ifup.
Intended to alter options not available in /etc/network/interfaces.
(IE: --syslog --background etc...)
endmenu

View File

@ -22,7 +22,6 @@ config BUSYBOX_CONFIG_UDHCPD
config BUSYBOX_CONFIG_DHCPRELAY
bool "dhcprelay"
default BUSYBOX_DEFAULT_DHCPRELAY
depends on BUSYBOX_CONFIG_UDHCPD
help
dhcprelay listens for dhcp requests on one or more interfaces
and forwards these requests to a different interface or dhcp
@ -31,7 +30,6 @@ config BUSYBOX_CONFIG_DHCPRELAY
config BUSYBOX_CONFIG_DUMPLEASES
bool "Lease display utility (dumpleases)"
default BUSYBOX_DEFAULT_DUMPLEASES
depends on BUSYBOX_CONFIG_UDHCPD
help
dumpleases displays the leases written out by the udhcpd server.
Lease times are stored in the file by time remaining in lease, or

View File

@ -6,11 +6,50 @@
menu "Process Utilities"
config BUSYBOX_CONFIG_FREE
bool "free"
default BUSYBOX_DEFAULT_FREE
select BUSYBOX_CONFIG_PLATFORM_LINUX #sysinfo()
help
free displays the total amount of free and used physical and swap
memory in the system, as well as the buffers used by the kernel.
The shared memory column should be ignored; it is obsolete.
config BUSYBOX_CONFIG_FUSER
bool "fuser"
default BUSYBOX_DEFAULT_FUSER
help
fuser lists all PIDs (Process IDs) that currently have a given
file open. fuser can also list all PIDs that have a given network
(TCP or UDP) port open.
config BUSYBOX_CONFIG_IOSTAT
bool "iostat"
default BUSYBOX_DEFAULT_IOSTAT
help
Report CPU and I/O statistics
config BUSYBOX_CONFIG_KILL
bool "kill"
default BUSYBOX_DEFAULT_KILL
help
The command kill sends the specified signal to the specified
process or process group. If no signal is specified, the TERM
signal is sent.
config BUSYBOX_CONFIG_KILLALL
bool "killall"
default BUSYBOX_DEFAULT_KILLALL
help
killall sends a signal to all processes running any of the
specified commands. If no signal name is specified, SIGTERM is
sent.
config BUSYBOX_CONFIG_KILLALL5
bool "killall5"
default BUSYBOX_DEFAULT_KILLALL5
help
The SystemV killall command. killall5 sends a signal
to all processes except kernel threads and the processes
in its own session, so it won't kill the shell that is running
the script it was called from.
config BUSYBOX_CONFIG_LSOF
bool "lsof"
default BUSYBOX_DEFAULT_LSOF
@ -27,6 +66,39 @@ config BUSYBOX_CONFIG_NMETER
default BUSYBOX_DEFAULT_NMETER
help
Prints selected system stats continuously, one line per update.
config BUSYBOX_CONFIG_PGREP
bool "pgrep"
default BUSYBOX_DEFAULT_PGREP
help
Look for processes by name.
config BUSYBOX_CONFIG_PKILL
bool "pkill"
default BUSYBOX_DEFAULT_PKILL
help
Send signals to processes by name.
config BUSYBOX_CONFIG_PIDOF
bool "pidof"
default BUSYBOX_DEFAULT_PIDOF
help
Pidof finds the process id's (pids) of the named programs. It prints
those id's on the standard output.
config BUSYBOX_CONFIG_FEATURE_PIDOF_SINGLE
bool "Enable argument for single shot (-s)"
default BUSYBOX_DEFAULT_FEATURE_PIDOF_SINGLE
depends on BUSYBOX_CONFIG_PIDOF
help
Support argument '-s' for returning only the first pid found.
config BUSYBOX_CONFIG_FEATURE_PIDOF_OMIT
bool "Enable argument for omitting pids (-o)"
default BUSYBOX_DEFAULT_FEATURE_PIDOF_OMIT
depends on BUSYBOX_CONFIG_PIDOF
help
Support argument '-o' for omitting the given pids in output.
The special pid %PPID can be used to name the parent process
of the pidof, in other words the calling shell or shell script.
config BUSYBOX_CONFIG_PMAP
bool "pmap"
default BUSYBOX_DEFAULT_PMAP
@ -37,6 +109,51 @@ config BUSYBOX_CONFIG_POWERTOP
default BUSYBOX_DEFAULT_POWERTOP
help
Analyze power consumption on Intel-based laptops
config BUSYBOX_CONFIG_PS
bool "ps"
default BUSYBOX_DEFAULT_PS
help
ps gives a snapshot of the current processes.
config BUSYBOX_CONFIG_FEATURE_PS_WIDE
bool "Enable wide output option (-w)"
default BUSYBOX_DEFAULT_FEATURE_PS_WIDE
depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
help
Support argument 'w' for wide output.
If given once, 132 chars are printed, and if given more
than once, the length is unlimited.
config BUSYBOX_CONFIG_FEATURE_PS_LONG
bool "Enable long output option (-l)"
default BUSYBOX_DEFAULT_FEATURE_PS_LONG
depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
help
Support argument 'l' for long output.
Adds fields PPID, RSS, START, TIME & TTY
config BUSYBOX_CONFIG_FEATURE_PS_TIME
bool "Enable time and elapsed time output"
default BUSYBOX_DEFAULT_FEATURE_PS_TIME
depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support -o time and -o etime output specifiers.
config BUSYBOX_CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS
bool "Enable additional ps columns"
default BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS
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 BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS
depends on BUSYBOX_CONFIG_FEATURE_PS_TIME
help
Include support for measuring HZ on old kernels and non-ELF systems
(if you are on Linux 2.4.0+ and use ELF, you don't need this)
config BUSYBOX_CONFIG_PSTREE
bool "pstree"
default BUSYBOX_DEFAULT_PSTREE
@ -47,12 +164,23 @@ config BUSYBOX_CONFIG_PWDX
default BUSYBOX_DEFAULT_PWDX
help
Report current working directory of a process
config BUSYBOX_CONFIG_RENICE
bool "renice"
default BUSYBOX_DEFAULT_RENICE
help
Renice alters the scheduling priority of one or more running
processes.
config BUSYBOX_CONFIG_SMEMCAP
bool "smemcap"
default BUSYBOX_DEFAULT_SMEMCAP
help
smemcap is a tool for capturing process data for smem,
a memory usage statistic tool.
config BUSYBOX_CONFIG_BB_SYSCTL
bool "sysctl"
default BUSYBOX_DEFAULT_BB_SYSCTL
help
Configure kernel parameters at runtime.
config BUSYBOX_CONFIG_TOP
bool "top"
default BUSYBOX_DEFAULT_TOP
@ -121,139 +249,12 @@ config BUSYBOX_CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
depends on BUSYBOX_CONFIG_UPTIME && BUSYBOX_CONFIG_FEATURE_UTMP
help
Makes uptime display the number of users currently logged on.
config BUSYBOX_CONFIG_FREE
bool "free"
default BUSYBOX_DEFAULT_FREE
select BUSYBOX_CONFIG_PLATFORM_LINUX #sysinfo()
config BUSYBOX_CONFIG_WATCH
bool "watch"
default BUSYBOX_DEFAULT_WATCH
help
free displays the total amount of free and used physical and swap
memory in the system, as well as the buffers used by the kernel.
The shared memory column should be ignored; it is obsolete.
config BUSYBOX_CONFIG_FUSER
bool "fuser"
default BUSYBOX_DEFAULT_FUSER
help
fuser lists all PIDs (Process IDs) that currently have a given
file open. fuser can also list all PIDs that have a given network
(TCP or UDP) port open.
config BUSYBOX_CONFIG_KILL
bool "kill"
default BUSYBOX_DEFAULT_KILL
help
The command kill sends the specified signal to the specified
process or process group. If no signal is specified, the TERM
signal is sent.
config BUSYBOX_CONFIG_KILLALL
bool "killall"
default BUSYBOX_DEFAULT_KILLALL
depends on BUSYBOX_CONFIG_KILL
help
killall sends a signal to all processes running any of the
specified commands. If no signal name is specified, SIGTERM is
sent.
config BUSYBOX_CONFIG_KILLALL5
bool "killall5"
default BUSYBOX_DEFAULT_KILLALL5
depends on BUSYBOX_CONFIG_KILL
config BUSYBOX_CONFIG_PGREP
bool "pgrep"
default BUSYBOX_DEFAULT_PGREP
help
Look for processes by name.
config BUSYBOX_CONFIG_PIDOF
bool "pidof"
default BUSYBOX_DEFAULT_PIDOF
help
Pidof finds the process id's (pids) of the named programs. It prints
those id's on the standard output.
config BUSYBOX_CONFIG_FEATURE_PIDOF_SINGLE
bool "Enable argument for single shot (-s)"
default BUSYBOX_DEFAULT_FEATURE_PIDOF_SINGLE
depends on BUSYBOX_CONFIG_PIDOF
help
Support argument '-s' for returning only the first pid found.
config BUSYBOX_CONFIG_FEATURE_PIDOF_OMIT
bool "Enable argument for omitting pids (-o)"
default BUSYBOX_DEFAULT_FEATURE_PIDOF_OMIT
depends on BUSYBOX_CONFIG_PIDOF
help
Support argument '-o' for omitting the given pids in output.
The special pid %PPID can be used to name the parent process
of the pidof, in other words the calling shell or shell script.
config BUSYBOX_CONFIG_PKILL
bool "pkill"
default BUSYBOX_DEFAULT_PKILL
help
Send signals to processes by name.
config BUSYBOX_CONFIG_PS
bool "ps"
default BUSYBOX_DEFAULT_PS
help
ps gives a snapshot of the current processes.
config BUSYBOX_CONFIG_FEATURE_PS_WIDE
bool "Enable wide output option (-w)"
default BUSYBOX_DEFAULT_FEATURE_PS_WIDE
depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
help
Support argument 'w' for wide output.
If given once, 132 chars are printed, and if given more
than once, the length is unlimited.
config BUSYBOX_CONFIG_FEATURE_PS_LONG
bool "Enable long output option (-l)"
default BUSYBOX_DEFAULT_FEATURE_PS_LONG
depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP
help
Support argument 'l' for long output.
Adds fields PPID, RSS, START, TIME & TTY
config BUSYBOX_CONFIG_FEATURE_PS_TIME
bool "Enable time and elapsed time output"
default BUSYBOX_DEFAULT_FEATURE_PS_TIME
depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support -o time and -o etime output specifiers.
config BUSYBOX_CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS
bool "Enable additional ps columns"
default BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS
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 BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS
depends on BUSYBOX_CONFIG_FEATURE_PS_TIME
help
Include support for measuring HZ on old kernels and non-ELF systems
(if you are on Linux 2.4.0+ and use ELF, you don't need this)
config BUSYBOX_CONFIG_RENICE
bool "renice"
default BUSYBOX_DEFAULT_RENICE
help
Renice alters the scheduling priority of one or more running
processes.
config BUSYBOX_CONFIG_BB_SYSCTL
bool "sysctl"
default BUSYBOX_DEFAULT_BB_SYSCTL
help
Configure kernel parameters at runtime.
watch is used to execute a program periodically, showing
output to the screen.
config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
bool "Support for showing threads in ps/pstree/top"
@ -263,11 +264,4 @@ config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
Enables the ps -T option, showing of threads in pstree,
and 'h' command in top.
config BUSYBOX_CONFIG_WATCH
bool "watch"
default BUSYBOX_DEFAULT_WATCH
help
watch is used to execute a program periodically, showing
output to the screen.
endmenu

View File

@ -73,6 +73,13 @@ config BUSYBOX_CONFIG_SV_DEFAULT_SERVICE_DIR
help
Default directory for services.
Defaults to "/var/service"
config BUSYBOX_CONFIG_SVC
bool "svc"
default BUSYBOX_DEFAULT_SVC
help
svc controls the state of services monitored by the runsv supervisor.
It is comaptible with daemontools command with the same name.
config BUSYBOX_CONFIG_SVLOGD
bool "svlogd"
default BUSYBOX_DEFAULT_SVLOGD

View File

@ -7,7 +7,6 @@
menu "SELinux Utilities"
depends on BUSYBOX_CONFIG_SELINUX
config BUSYBOX_CONFIG_CHCON
bool "chcon"
default BUSYBOX_DEFAULT_CHCON
@ -21,28 +20,24 @@ config BUSYBOX_CONFIG_FEATURE_CHCON_LONG_OPTIONS
depends on BUSYBOX_CONFIG_CHCON && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the chcon applet.
config BUSYBOX_CONFIG_GETENFORCE
bool "getenforce"
default BUSYBOX_DEFAULT_GETENFORCE
depends on BUSYBOX_CONFIG_SELINUX
help
Enable support to get the current mode of SELinux.
config BUSYBOX_CONFIG_GETSEBOOL
bool "getsebool"
default BUSYBOX_DEFAULT_GETSEBOOL
depends on BUSYBOX_CONFIG_SELINUX
help
Enable support to get SELinux boolean values.
config BUSYBOX_CONFIG_LOAD_POLICY
bool "load_policy"
default BUSYBOX_DEFAULT_LOAD_POLICY
depends on BUSYBOX_CONFIG_SELINUX
help
Enable support to load SELinux policy.
config BUSYBOX_CONFIG_MATCHPATHCON
bool "matchpathcon"
default BUSYBOX_DEFAULT_MATCHPATHCON
@ -50,15 +45,6 @@ config BUSYBOX_CONFIG_MATCHPATHCON
help
Enable support to get default security context of the
specified path from the file contexts configuration.
config BUSYBOX_CONFIG_RESTORECON
bool "restorecon"
default BUSYBOX_DEFAULT_RESTORECON
depends on BUSYBOX_CONFIG_SELINUX
help
Enable support to relabel files. The feature is almost
the same as setfiles, but usage is a little different.
config BUSYBOX_CONFIG_RUNCON
bool "runcon"
default BUSYBOX_DEFAULT_RUNCON
@ -72,7 +58,6 @@ config BUSYBOX_CONFIG_FEATURE_RUNCON_LONG_OPTIONS
depends on BUSYBOX_CONFIG_RUNCON && BUSYBOX_CONFIG_LONG_OPTS
help
Support long options for the runcon applet.
config BUSYBOX_CONFIG_SELINUXENABLED
bool "selinuxenabled"
default BUSYBOX_DEFAULT_SELINUXENABLED
@ -80,14 +65,18 @@ config BUSYBOX_CONFIG_SELINUXENABLED
help
Enable support for this command to be used within shell scripts
to determine if selinux is enabled.
config BUSYBOX_CONFIG_SESTATUS
bool "sestatus"
default BUSYBOX_DEFAULT_SESTATUS
depends on BUSYBOX_CONFIG_SELINUX
help
Displays the status of SELinux.
config BUSYBOX_CONFIG_SETENFORCE
bool "setenforce"
default BUSYBOX_DEFAULT_SETENFORCE
depends on BUSYBOX_CONFIG_SELINUX
help
Enable support to modify the mode SELinux is running in.
config BUSYBOX_CONFIG_SETFILES
bool "setfiles"
default BUSYBOX_DEFAULT_SETFILES
@ -106,6 +95,13 @@ config BUSYBOX_CONFIG_FEATURE_SETFILES_CHECK_OPTION
Support "-c" option (check the validity of the contexts against
the specified binary policy) for setfiles. Requires libsepol.
config BUSYBOX_CONFIG_RESTORECON
bool "restorecon"
default BUSYBOX_DEFAULT_RESTORECON
depends on BUSYBOX_CONFIG_SELINUX
help
Enable support to relabel files. The feature is almost
the same as setfiles, but usage is a little different.
config BUSYBOX_CONFIG_SETSEBOOL
bool "setsebool"
default BUSYBOX_DEFAULT_SETSEBOOL
@ -114,11 +110,4 @@ config BUSYBOX_CONFIG_SETSEBOOL
Enable support for change boolean.
semanage and -P option is not supported yet.
config BUSYBOX_CONFIG_SESTATUS
bool "sestatus"
default BUSYBOX_DEFAULT_SESTATUS
depends on BUSYBOX_CONFIG_SELINUX
help
Displays the status of SELinux.
endmenu

View File

@ -6,6 +6,57 @@
menu "Shells"
choice
prompt "Choose which shell is aliased to 'sh' name"
default BUSYBOX_CONFIG_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_SH_IS_ASH
depends on !BUSYBOX_CONFIG_NOMMU
bool "ash"
config BUSYBOX_CONFIG_SH_IS_HUSH
bool "hush"
config BUSYBOX_CONFIG_SH_IS_NONE
bool "none"
endchoice
choice
prompt "Choose which shell is aliased to 'bash' name"
default BUSYBOX_CONFIG_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_BASH_IS_ASH
depends on !BUSYBOX_CONFIG_NOMMU
bool "ash"
config BUSYBOX_CONFIG_BASH_IS_HUSH
bool "hush"
config BUSYBOX_CONFIG_BASH_IS_NONE
bool "none"
endchoice
config BUSYBOX_CONFIG_ASH
bool "ash"
default BUSYBOX_DEFAULT_ASH
@ -17,96 +68,26 @@ config BUSYBOX_CONFIG_ASH
shell (by Herbert Xu), which was created by porting the 'ash' shell
(written by Kenneth Almquist) from NetBSD.
config BUSYBOX_CONFIG_ASH_BASH_COMPAT
bool "bash-compatible extensions"
default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
depends on BUSYBOX_CONFIG_ASH
help
Enable bash-compatible extensions.
config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
bool "Idle timeout variable"
default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
depends on BUSYBOX_CONFIG_ASH
help
Enables bash-like auto-logout after $TMOUT seconds of idle time.
config BUSYBOX_CONFIG_ASH_JOB_CONTROL
bool "Job control"
default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
depends on BUSYBOX_CONFIG_ASH
help
Enable job control in the ash shell.
config BUSYBOX_CONFIG_ASH_ALIAS
bool "Alias support"
default BUSYBOX_DEFAULT_ASH_ALIAS
depends on BUSYBOX_CONFIG_ASH
help
Enable alias support in the ash shell.
config BUSYBOX_CONFIG_ASH_GETOPTS
bool "Builtin getopt to parse positional parameters"
default BUSYBOX_DEFAULT_ASH_GETOPTS
depends on BUSYBOX_CONFIG_ASH
help
Enable support for getopts builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
bool "Builtin version of 'echo'"
default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
depends on BUSYBOX_CONFIG_ASH
help
Enable support for echo builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
bool "Builtin version of 'printf'"
default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
depends on BUSYBOX_CONFIG_ASH
help
Enable support for printf builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
bool "Builtin version of 'test'"
default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
depends on BUSYBOX_CONFIG_ASH
help
Enable support for test builtin in ash.
config BUSYBOX_CONFIG_ASH_HELP
bool "help builtin"
default BUSYBOX_DEFAULT_ASH_HELP
depends on BUSYBOX_CONFIG_ASH
help
Enable help builtin in ash.
config BUSYBOX_CONFIG_ASH_CMDCMD
bool "'command' command to override shell builtins"
default BUSYBOX_DEFAULT_ASH_CMDCMD
depends on BUSYBOX_CONFIG_ASH
help
Enable support for the ash 'command' builtin, which allows
you to run the specified command with the specified arguments,
even when there is an ash builtin command with the same name.
config BUSYBOX_CONFIG_ASH_MAIL
bool "Check for new mail on interactive shells"
default BUSYBOX_DEFAULT_ASH_MAIL
depends on BUSYBOX_CONFIG_ASH
help
Enable "check for new mail" function in the ash shell.
config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
bool "Optimize for size instead of speed"
default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
depends on BUSYBOX_CONFIG_ASH
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Compile ash for reduced size at the price of speed.
config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB
bool "Use internal glob() implementation"
default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB # Y is bigger, but because of uclibc glob() bug, let Y be default for now
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Do not use glob() function from libc, use internal implementation.
Use this if you are getting "glob.h: No such file or directory"
or similar build errors.
config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
bool "Pseudorandom generator and $RANDOM variable"
default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
depends on BUSYBOX_CONFIG_ASH
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable pseudorandom generator and dynamic variable "$RANDOM".
Each read of "$RANDOM" will generate a new pseudorandom value.
@ -117,12 +98,90 @@ config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
bool "Expand prompt string"
default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
depends on BUSYBOX_CONFIG_ASH
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
"PS#" may contain volatile content, such as backquote commands.
This option recreates the prompt string from the environment
variable each time it is displayed.
config BUSYBOX_CONFIG_ASH_BASH_COMPAT
bool "bash-compatible extensions"
default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable bash-compatible extensions.
config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
bool "Idle timeout variable"
default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enables bash-like auto-logout after $TMOUT seconds of idle time.
config BUSYBOX_CONFIG_ASH_JOB_CONTROL
bool "Job control"
default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable job control in the ash shell.
config BUSYBOX_CONFIG_ASH_ALIAS
bool "Alias support"
default BUSYBOX_DEFAULT_ASH_ALIAS
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable alias support in the ash shell.
config BUSYBOX_CONFIG_ASH_GETOPTS
bool "Builtin getopt to parse positional parameters"
default BUSYBOX_DEFAULT_ASH_GETOPTS
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable support for getopts builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
bool "Builtin version of 'echo'"
default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable support for echo builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
bool "Builtin version of 'printf'"
default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable support for printf builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
bool "Builtin version of 'test'"
default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable support for test builtin in ash.
config BUSYBOX_CONFIG_ASH_HELP
bool "help builtin"
default BUSYBOX_DEFAULT_ASH_HELP
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable help builtin in ash.
config BUSYBOX_CONFIG_ASH_CMDCMD
bool "'command' command to override shell builtins"
default BUSYBOX_DEFAULT_ASH_CMDCMD
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable support for the ash 'command' builtin, which allows
you to run the specified command with the specified arguments,
even when there is an ash builtin command with the same name.
config BUSYBOX_CONFIG_ASH_MAIL
bool "Check for new mail on interactive shells"
default BUSYBOX_DEFAULT_ASH_MAIL
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH
help
Enable "check for new mail" function in the ash shell.
config BUSYBOX_CONFIG_CTTYHACK
bool "cttyhack"
default BUSYBOX_DEFAULT_CTTYHACK
@ -183,7 +242,7 @@ config BUSYBOX_CONFIG_HUSH
config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
bool "bash-compatible extensions"
default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable bash-compatible extensions.
@ -197,14 +256,14 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
config BUSYBOX_CONFIG_HUSH_HELP
bool "help builtin"
default BUSYBOX_DEFAULT_HUSH_HELP
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable help builtin in hush. Code size + ~1 kbyte.
config BUSYBOX_CONFIG_HUSH_INTERACTIVE
bool "Interactive mode"
default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable interactive mode (prompt and command editing).
Without this, hush simply reads and executes commands
@ -232,35 +291,35 @@ config BUSYBOX_CONFIG_HUSH_JOB
config BUSYBOX_CONFIG_HUSH_TICK
bool "Process substitution"
default BUSYBOX_DEFAULT_HUSH_TICK
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable process substitution `command` and $(command) in hush.
config BUSYBOX_CONFIG_HUSH_IF
bool "Support if/then/elif/else/fi"
default BUSYBOX_DEFAULT_HUSH_IF
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable if/then/elif/else/fi in hush.
config BUSYBOX_CONFIG_HUSH_LOOPS
bool "Support for, while and until loops"
default BUSYBOX_DEFAULT_HUSH_LOOPS
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable for, while and until loops in hush.
config BUSYBOX_CONFIG_HUSH_CASE
bool "Support case ... esac statement"
default BUSYBOX_DEFAULT_HUSH_CASE
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable case ... esac statement in hush. +400 bytes.
config BUSYBOX_CONFIG_HUSH_FUNCTIONS
bool "Support funcname() { commands; } syntax"
default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable support for shell functions in hush. +800 bytes.
@ -274,7 +333,7 @@ config BUSYBOX_CONFIG_HUSH_LOCAL
config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
bool "Pseudorandom generator and $RANDOM variable"
default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable pseudorandom generator and dynamic variable "$RANDOM".
Each read of "$RANDOM" will generate a new pseudorandom value.
@ -282,14 +341,14 @@ config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
config BUSYBOX_CONFIG_HUSH_EXPORT_N
bool "Support 'export -n' option"
default BUSYBOX_DEFAULT_HUSH_EXPORT_N
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
export -n unexports variables. It is a bash extension.
config BUSYBOX_CONFIG_HUSH_MODE_X
bool "Support 'hush -x' option and 'set -x' command"
default BUSYBOX_DEFAULT_HUSH_MODE_X
depends on BUSYBOX_CONFIG_HUSH
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
This instructs hush to print commands before execution.
Adds ~300 bytes.
@ -302,72 +361,17 @@ config BUSYBOX_CONFIG_MSH
msh is deprecated and will be removed, please migrate to hush.
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_SH_MATH_SUPPORT
config BUSYBOX_CONFIG_FEATURE_SH_MATH
bool "POSIX math support"
default BUSYBOX_DEFAULT_SH_MATH_SUPPORT
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH
default BUSYBOX_DEFAULT_FEATURE_SH_MATH
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Enable math support in the shell via $((...)) syntax.
config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
config BUSYBOX_CONFIG_FEATURE_SH_MATH_64
bool "Extend POSIX math support to 64 bit"
default BUSYBOX_DEFAULT_SH_MATH_SUPPORT_64
depends on BUSYBOX_CONFIG_SH_MATH_SUPPORT
default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64
depends on BUSYBOX_CONFIG_FEATURE_SH_MATH
help
Enable 64-bit math support in the shell. This will make the shell
slightly larger, but will allow computation with very large numbers.
@ -376,14 +380,14 @@ config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
bool "Hide message on interactive shell startup"
default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
Remove the busybox introduction when starting a shell.
config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
bool "Standalone shell"
default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
This option causes busybox shells to use busybox applets
in preference to executables in the PATH whenever possible. For
@ -416,7 +420,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
bool "Run 'nofork' applets directly"
default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
This option causes busybox shells to not execute typical
fork/exec/wait sequence, but call <applet>_main directly,
@ -434,7 +438,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
bool "Use $HISTFILESIZE"
default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
help
This option makes busybox shells to use $HISTFILESIZE variable
to set shell history size. Note that its max value is capped

View File

@ -47,7 +47,6 @@ config BUSYBOX_CONFIG_LOGGER
config BUSYBOX_CONFIG_LOGREAD
bool "logread"
default BUSYBOX_DEFAULT_LOGREAD
depends on BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
help
If you enabled Circular Buffer support, you almost
certainly want to enable this feature as well. This

File diff suppressed because it is too large Load Diff

View File

@ -189,6 +189,15 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UBIFS
bool "UBIFS filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UBIFS
depends on BUSYBOX_CONFIG_VOLUMEID
help
UBIFS (Unsorted Block Image File System) is a file
system for use with raw flash memory media.
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
bool "udf filesystem"
default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF

View File

@ -1,37 +0,0 @@
From 7cef4817d6d6d61a1166ed7dfc13537b95c65970 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Thu, 15 Sep 2016 13:20:51 +0200
Subject: [PATCH] libbb:/send_to_from: do not require that "to" should have the
same AF. Closes 9146
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
libbb/udp_io.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--- a/libbb/udp_io.c
+++ b/libbb/udp_io.c
@@ -70,7 +70,13 @@ send_to_from(int fd, void *buf, size_t l
msg.msg_flags = flags;
cmsgptr = CMSG_FIRSTHDR(&msg);
- if (to->sa_family == AF_INET && from->sa_family == AF_INET) {
+ /*
+ * Users report that to->sa_family can be AF_INET6 too,
+ * if "to" was acquired by recv_from_to(). IOW: recv_from_to()
+ * was seen showing IPv6 "from" even when the destination
+ * of received packet (our local address) was IPv4.
+ */
+ if (/* to->sa_family == AF_INET && */ from->sa_family == AF_INET) {
struct in_pktinfo *pktptr;
cmsgptr->cmsg_level = IPPROTO_IP;
cmsgptr->cmsg_type = IP_PKTINFO;
@@ -86,7 +92,7 @@ send_to_from(int fd, void *buf, size_t l
pktptr->ipi_spec_dst = ((struct sockaddr_in*)from)->sin_addr;
}
# if ENABLE_FEATURE_IPV6 && defined(IPV6_PKTINFO)
- else if (to->sa_family == AF_INET6 && from->sa_family == AF_INET6) {
+ else if (/* to->sa_family == AF_INET6 && */ from->sa_family == AF_INET6) {
struct in6_pktinfo *pktptr;
cmsgptr->cmsg_level = IPPROTO_IPV6;
cmsgptr->cmsg_type = IPV6_PKTINFO;

View File

@ -1,20 +0,0 @@
--- a/scripts/trylink
+++ b/scripts/trylink
@@ -46,7 +46,7 @@ try() {
}
check_cc() {
- local tempname="$(mktemp)"
+ local tempname="$(mktemp /tmp/tmp.XXXXXXXXXX)"
local r
echo "int main(int argc,char**argv){return argv?argc:0;}" >"$tempname".c
# Can use "-o /dev/null", but older gcc tend to *unlink it* on failure! :(
@@ -61,7 +61,7 @@ check_cc() {
}
check_libc_is_glibc() {
- local tempname="$(mktemp)"
+ local tempname="$(mktemp /tmp/tmp.XXXXXXXXXX)"
local r
echo "\
#include <stdlib.h>

View File

@ -1,6 +1,6 @@
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -237,9 +237,6 @@
@@ -245,9 +245,6 @@
#if ENABLE_FEATURE_MOUNT_NFS
/* This is just a warning of a common mistake. Possibly this should be a
* uclibc faq entry rather than in busybox... */

View File

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -697,6 +697,7 @@ static int bcast_or_ucast(struct dhcp_pa
@@ -704,6 +704,7 @@ static int bcast_or_ucast(struct dhcp_pa
static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
{
struct dhcp_packet packet;
@ -8,7 +8,7 @@
/* Fill in: op, htype, hlen, cookie, chaddr fields,
* random xid field (we override it below),
@@ -714,6 +715,7 @@ static NOINLINE int send_discover(uint32
@@ -721,6 +722,7 @@ static NOINLINE int send_discover(uint32
*/
add_client_options(&packet);

View File

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1422,6 +1422,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
@@ -1439,6 +1439,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
/* silence "uninitialized!" warning */
unsigned timestamp_before_wait = timestamp_before_wait;

View File

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1103,7 +1103,6 @@ static void perform_renew(void)
@@ -1110,7 +1110,6 @@ static void perform_renew(void)
state = RENEW_REQUESTED;
break;
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */

View File

@ -1,6 +1,6 @@
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -333,6 +333,7 @@ make_new_session(
@@ -497,6 +497,7 @@ make_new_session(
/* Restore default signal handling ASAP */
bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);

View File

@ -1,6 +1,6 @@
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -123,6 +123,7 @@
@@ -122,6 +122,7 @@
//usage: IF_FEATURE_DATE_ISOFMT(
//usage: "\n -D FMT Use FMT for -d TIME conversion"
//usage: )
@ -8,7 +8,7 @@
//usage: "\n"
//usage: "\nRecognized TIME formats:"
//usage: "\n hh:mm[:ss]"
@@ -139,9 +140,8 @@
@@ -138,9 +139,8 @@
#include "libbb.h"
#include "common_bufsiz.h"
@ -20,7 +20,7 @@
enum {
OPT_RFC2822 = (1 << 0), /* R */
@@ -149,8 +149,9 @@ enum {
@@ -148,8 +148,9 @@ enum {
OPT_UTC = (1 << 2), /* u */
OPT_DATE = (1 << 3), /* d */
OPT_REFERENCE = (1 << 4), /* r */
@ -32,7 +32,7 @@
};
static void maybe_set_utc(int opt)
@@ -168,12 +169,15 @@ static const char date_longopts[] ALIGN1
@@ -167,12 +168,15 @@ static const char date_longopts[] ALIGN1
/* "universal\0" No_argument "u" */
"date\0" Required_argument "d"
"reference\0" Required_argument "r"
@ -48,7 +48,7 @@
struct timespec ts;
struct tm tm_time;
char buf_fmt_dt2str[64];
@@ -188,7 +192,7 @@ int date_main(int argc UNUSED_PARAM, cha
@@ -187,7 +191,7 @@ int date_main(int argc UNUSED_PARAM, cha
opt_complementary = "d--s:s--d"
IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
IF_LONG_OPTS(applet_long_options = date_longopts;)
@ -57,7 +57,7 @@
IF_FEATURE_DATE_ISOFMT("I::D:"),
&date_str, &date_str, &filename
IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
@@ -245,6 +249,31 @@ int date_main(int argc UNUSED_PARAM, cha
@@ -244,6 +248,31 @@ int date_main(int argc UNUSED_PARAM, cha
if (*argv)
bb_show_usage();

View File

@ -1,100 +0,0 @@
From a843f09a4d4428cf11ca02307e60058251b05743 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Fri, 16 Sep 2016 21:52:03 +0200
Subject: [PATCH] libnetlink: fix alignment of netlink messages
An padding to align a message should not only be added between
different attributes of a netlink message, but also at the end of the
message to pad it to the correct size.
Without this patch the following command does not work and returns an
error code:
ip link add type nlmon
Without this ip from busybox sends this:
sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=45, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1474057401, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon"}, iov_len=45}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 45
return value: 2
The normal ip utile from iproute2 sends this:
sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=48, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1473716938, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon\0\0\0"}, iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48
return value: 0
With this patch ip from busybox sends this:
sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=48, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1473716908, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon\0\0\0"}, iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48
return value: 0
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
networking/libiproute/libnetlink.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- a/networking/libiproute/libnetlink.c
+++ b/networking/libiproute/libnetlink.c
@@ -338,14 +338,14 @@ int FAST_FUNC addattr32(struct nlmsghdr
int len = RTA_LENGTH(4);
struct rtattr *rta;
- if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) {
+ if ((int)(NLMSG_ALIGN(n->nlmsg_len + len)) > maxlen) {
return -1;
}
rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len));
rta->rta_type = type;
rta->rta_len = len;
move_to_unaligned32(RTA_DATA(rta), data);
- n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len;
+ n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len + len);
return 0;
}
@@ -354,14 +354,14 @@ int FAST_FUNC addattr_l(struct nlmsghdr
int len = RTA_LENGTH(alen);
struct rtattr *rta;
- if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) {
+ if ((int)(NLMSG_ALIGN(n->nlmsg_len + len)) > maxlen) {
return -1;
}
rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len));
rta->rta_type = type;
rta->rta_len = len;
memcpy(RTA_DATA(rta), data, alen);
- n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len;
+ n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len + len);
return 0;
}
@@ -370,14 +370,14 @@ int FAST_FUNC rta_addattr32(struct rtatt
int len = RTA_LENGTH(4);
struct rtattr *subrta;
- if (RTA_ALIGN(rta->rta_len) + len > maxlen) {
+ if (RTA_ALIGN(rta->rta_len + len) > maxlen) {
return -1;
}
subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len));
subrta->rta_type = type;
subrta->rta_len = len;
move_to_unaligned32(RTA_DATA(subrta), data);
- rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len;
+ rta->rta_len = NLMSG_ALIGN(rta->rta_len + len);
return 0;
}
@@ -386,14 +386,14 @@ int FAST_FUNC rta_addattr_l(struct rtatt
struct rtattr *subrta;
int len = RTA_LENGTH(alen);
- if (RTA_ALIGN(rta->rta_len) + len > maxlen) {
+ if (RTA_ALIGN(rta->rta_len + len) > maxlen) {
return -1;
}
subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len));
subrta->rta_type = type;
subrta->rta_len = len;
memcpy(RTA_DATA(subrta), data, alen);
- rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len;
+ rta->rta_len = NLMSG_ALIGN(rta->rta_len + len);
return 0;
}

View File

@ -1,486 +0,0 @@
From 485fcc89b99eae9cc7501eaff344b104e52ab7bf Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Mon, 26 Sep 2016 17:48:22 +0200
Subject: [PATCH] iproute: properly support high routing table IDs
The Linux kernel uses two distinct fields to denote the routing table ID in
use by network routes; the 8 bit `rtm_table` member of `struct rtmsg` and the
32 bit `RTA_TABLE` netlink attribute.
If a routing table ID is larger than 255, the `RT_TABLE` attribute must be used
and the `rtm_table` field has to be set to the special `RT_TABLE_UNSPEC` value.
This commit ...
- switches the *_n2a() and *_a2n() functions of rt_names.c to use dynamically
sized, name-sorted arrays instead of fixed arrays limited to 1024 slots in
order to support IDs up to 65535
- adds proper handling of high table IDs to iprule.c and iproute.c when
adding, removing and dumping ip rules and network routes
After this change, the Busybox ip applet fully supports IP rules with high ID
numbers, using the same logic as the full iproute2.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
networking/libiproute/iproute.c | 75 ++++++++------
networking/libiproute/iprule.c | 4 +-
networking/libiproute/rt_names.c | 204 +++++++++++++++++++++++----------------
3 files changed, 169 insertions(+), 114 deletions(-)
--- a/networking/libiproute/iproute.c
+++ b/networking/libiproute/iproute.c
@@ -66,6 +66,7 @@ static int FAST_FUNC print_route(const s
inet_prefix dst;
inet_prefix src;
int host_len = -1;
+ uint32_t rtable;
if (n->nlmsg_type != RTM_NEWROUTE && n->nlmsg_type != RTM_DELROUTE) {
fprintf(stderr, "Not a route: %08x %08x %08x\n",
@@ -83,34 +84,6 @@ static int FAST_FUNC print_route(const s
else if (r->rtm_family == AF_INET)
host_len = 32;
- if (r->rtm_family == AF_INET6) {
- if (G_filter.tb) {
- if (G_filter.tb < 0) {
- if (!(r->rtm_flags & RTM_F_CLONED)) {
- return 0;
- }
- } else {
- if (r->rtm_flags & RTM_F_CLONED) {
- return 0;
- }
- if (G_filter.tb == RT_TABLE_LOCAL) {
- if (r->rtm_type != RTN_LOCAL) {
- return 0;
- }
- } else if (G_filter.tb == RT_TABLE_MAIN) {
- if (r->rtm_type == RTN_LOCAL) {
- return 0;
- }
- } else {
- return 0;
- }
- }
- }
- } else {
- if (G_filter.tb > 0 && G_filter.tb != r->rtm_table) {
- return 0;
- }
- }
if (G_filter.rdst.family
&& (r->rtm_family != G_filter.rdst.family || G_filter.rdst.bitlen > r->rtm_dst_len)
) {
@@ -141,6 +114,37 @@ static int FAST_FUNC print_route(const s
memset(&dst, 0, sizeof(dst));
parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len);
+ rtable = tb[RTA_TABLE] ? *(uint32_t*)RTA_DATA(tb[RTA_TABLE]) : r->rtm_table;
+
+ if (G_filter.tb) {
+ if (r->rtm_family == AF_INET6) {
+ if (G_filter.tb < 0) {
+ if (!(r->rtm_flags & RTM_F_CLONED)) {
+ return 0;
+ }
+ } else {
+ if (r->rtm_flags & RTM_F_CLONED) {
+ return 0;
+ }
+ if (G_filter.tb == RT_TABLE_LOCAL) {
+ if (r->rtm_type != RTN_LOCAL) {
+ return 0;
+ }
+ } else if (G_filter.tb == RT_TABLE_MAIN) {
+ if (r->rtm_type == RTN_LOCAL) {
+ return 0;
+ }
+ } else if (G_filter.tb != rtable) {
+ return 0;
+ }
+ }
+ } else {
+ if (G_filter.tb != rtable) {
+ return 0;
+ }
+ }
+ }
+
if (tb[RTA_SRC]) {
src.bitlen = r->rtm_src_len;
src.bytelen = (r->rtm_family == AF_INET6 ? 16 : 4);
@@ -349,7 +353,9 @@ IF_FEATURE_IP_RULE(ARG_table,)
smalluint ok = 0;
smalluint scope_ok = 0;
int arg;
-
+#if ENABLE_FEATURE_IP_RULE
+ uint32_t rtable = 0;
+#endif
memset(&req, 0, sizeof(req));
req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
@@ -419,7 +425,7 @@ IF_FEATURE_IP_RULE(ARG_table,)
NEXT_ARG();
if (rtnl_rttable_a2n(&tid, *argv))
invarg_1_to_2(*argv, "table");
- req.r.rtm_table = tid;
+ rtable = tid;
#endif
} else if (arg == ARG_dev || arg == ARG_oif) {
NEXT_ARG();
@@ -475,6 +481,15 @@ IF_FEATURE_IP_RULE(ARG_table,)
}
}
+#if ENABLE_FEATURE_IP_RULE
+ if (rtable >= 256) {
+ addattr32(&req.n, sizeof(req), RTA_TABLE, rtable);
+ req.r.rtm_table = RT_TABLE_UNSPEC;
+ } else if (rtable > 0) {
+ req.r.rtm_table = rtable;
+ }
+#endif
+
if (mxrta->rta_len > RTA_LENGTH(0)) {
if (mxlock) {
rta_addattr32(mxrta, sizeof(mxbuf), RTAX_LOCK, mxlock);
--- a/networking/libiproute/iprule.c
+++ b/networking/libiproute/iprule.c
@@ -114,7 +114,9 @@ static int FAST_FUNC print_rule(const st
printf("iif %s ", (char*)RTA_DATA(tb[RTA_IIF]));
}
- if (r->rtm_table)
+ if (tb[RTA_TABLE])
+ printf("lookup %s ", rtnl_rttable_n2a(*(uint32_t*)RTA_DATA(tb[RTA_TABLE])));
+ else if (r->rtm_table)
printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table));
if (tb[RTA_FLOW]) {
--- a/networking/libiproute/rt_names.c
+++ b/networking/libiproute/rt_names.c
@@ -11,21 +11,26 @@
#include "rt_names.h"
#define CONFDIR CONFIG_FEATURE_IP_ROUTE_DIR
+#define RT_TABLE_MAX 65535
+
+struct rtnl_tab_entry {
+ unsigned int id;
+ const char *name;
+};
typedef struct rtnl_tab_t {
- const char *cached_str;
- unsigned cached_result;
- /* upstream version switched to a hash table and removed
- * id < 256 limit. For now bbox bumps this array size from 256
- * to 1024. If you plan to change this to a hash table,
- * consider merging several hash tables we have (for example,
- * awk has resizable one!
- */
-#define RT_TABLE_MAX 1023
- const char *tab[RT_TABLE_MAX+1];
+ struct rtnl_tab_entry *tab;
+ size_t length;
} rtnl_tab_t;
-static void rtnl_tab_initialize(const char *file, const char **tab)
+static int tabcmp(const void *p1, const void *p2)
+{
+ const struct rtnl_tab_entry *e1 = p1;
+ const struct rtnl_tab_entry *e2 = p2;
+ return strcmp(e1->name, e2->name);
+}
+
+static void rtnl_tab_initialize(const char *file, rtnl_tab_t *tab)
{
char *token[2];
char fullname[sizeof(CONFDIR"/rt_dsfield") + 8];
@@ -40,34 +45,42 @@ static void rtnl_tab_initialize(const ch
file, parser->lineno);
break;
}
- tab[id] = xstrdup(token[1]);
+
+ tab->tab = xrealloc(tab->tab, (tab->length + 1) * sizeof(*tab->tab));
+ tab->tab[tab->length].id = id;
+ tab->tab[tab->length].name = xstrdup(token[1]);
+ tab->length++;
}
config_close(parser);
+ qsort(tab->tab, tab->length, sizeof(*tab->tab), tabcmp);
}
static int rtnl_a2n(rtnl_tab_t *tab, uint32_t *id, const char *arg, int base)
{
- unsigned i;
-
- if (tab->cached_str && strcmp(tab->cached_str, arg) == 0) {
- *id = tab->cached_result;
- return 0;
- }
+ int delta;
+ ssize_t l = 0;
+ ssize_t r = tab->length - 1;
+ ssize_t m;
+ uint32_t i;
+
+ while (l <= r) {
+ m = l + (r - l) / 2;
+ delta = strcmp(tab->tab[m].name, arg);
- for (i = 0; i <= RT_TABLE_MAX; i++) {
- if (tab->tab[i]
- && strcmp(tab->tab[i], arg) == 0
- ) {
- tab->cached_str = tab->tab[i];
- tab->cached_result = i;
- *id = i;
+ if (delta == 0) {
+ *id = tab->tab[m].id;
return 0;
+ } else if (delta < 0) {
+ l = m + 1;
+ } else {
+ r = m - 1;
}
}
i = bb_strtou(arg, NULL, base);
if (i > RT_TABLE_MAX)
return -1;
+
*id = i;
return 0;
}
@@ -77,40 +90,39 @@ static rtnl_tab_t *rtnl_rtprot_tab;
static void rtnl_rtprot_initialize(void)
{
- static const char *const init_tab[] = {
- "none",
- "redirect",
- "kernel",
- "boot",
- "static",
- NULL,
- NULL,
- NULL,
- "gated",
- "ra",
- "mrt",
- "zebra",
- "bird",
+ static const struct rtnl_tab_entry init_tab[] = {
+ { 0, "none" },
+ { 1, "redirect" },
+ { 2, "kernel" },
+ { 3, "boot" },
+ { 4, "static" },
+ { 8, "gated" },
+ { 9, "ra" },
+ { 10, "mrt" },
+ { 11, "zebra" },
+ { 12, "bird" }
};
if (rtnl_rtprot_tab)
return;
rtnl_rtprot_tab = xzalloc(sizeof(*rtnl_rtprot_tab));
+ rtnl_rtprot_tab->tab = xzalloc(sizeof(init_tab));
+ rtnl_rtprot_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
memcpy(rtnl_rtprot_tab->tab, init_tab, sizeof(init_tab));
- rtnl_tab_initialize("protos", rtnl_rtprot_tab->tab);
+ rtnl_tab_initialize("protos", rtnl_rtprot_tab);
}
#if 0 /* UNUSED */
const char* FAST_FUNC rtnl_rtprot_n2a(int id)
{
- if (id < 0 || id > RT_TABLE_MAX) {
- return itoa(id);
- }
+ size_t i;
rtnl_rtprot_initialize();
- if (rtnl_rtprot_tab->tab[id])
- return rtnl_rtprot_tab->tab[id];
+ for (i = 0; i < rtnl_rtprot_tab->length; i++)
+ if (rtnl_rtprot_tab->tab[i].id == id)
+ return rtnl_rtprot_tab->tab[i].name;
+
return itoa(id);
}
#endif
@@ -126,27 +138,33 @@ static rtnl_tab_t *rtnl_rtscope_tab;
static void rtnl_rtscope_initialize(void)
{
+ static const struct rtnl_tab_entry init_tab[] = {
+ { 0, "global" },
+ { 200, "site" },
+ { 253, "link" },
+ { 254, "host" },
+ { 255, "nowhere" }
+ };
+
if (rtnl_rtscope_tab)
return;
rtnl_rtscope_tab = xzalloc(sizeof(*rtnl_rtscope_tab));
- rtnl_rtscope_tab->tab[0] = "global";
- rtnl_rtscope_tab->tab[255] = "nowhere";
- rtnl_rtscope_tab->tab[254] = "host";
- rtnl_rtscope_tab->tab[253] = "link";
- rtnl_rtscope_tab->tab[200] = "site";
- rtnl_tab_initialize("scopes", rtnl_rtscope_tab->tab);
+ rtnl_rtscope_tab->tab = xzalloc(sizeof(init_tab));
+ rtnl_rtscope_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
+ memcpy(rtnl_rtscope_tab->tab, init_tab, sizeof(init_tab));
+ rtnl_tab_initialize("scopes", rtnl_rtscope_tab);
}
const char* FAST_FUNC rtnl_rtscope_n2a(int id)
{
- if (id < 0 || id > RT_TABLE_MAX) {
- return itoa(id);
- }
+ size_t i;
rtnl_rtscope_initialize();
- if (rtnl_rtscope_tab->tab[id])
- return rtnl_rtscope_tab->tab[id];
+ for (i = 0; i < rtnl_rtscope_tab->length; i++)
+ if (rtnl_rtscope_tab->tab[i].id == id)
+ return rtnl_rtscope_tab->tab[i].name;
+
return itoa(id);
}
@@ -161,10 +179,17 @@ static rtnl_tab_t *rtnl_rtrealm_tab;
static void rtnl_rtrealm_initialize(void)
{
- if (rtnl_rtrealm_tab) return;
+ static const struct rtnl_tab_entry init_tab[] = {
+ { 0, "unknown" }
+ };
+
+ if (rtnl_rtrealm_tab)
+ return;
rtnl_rtrealm_tab = xzalloc(sizeof(*rtnl_rtrealm_tab));
- rtnl_rtrealm_tab->tab[0] = "unknown";
- rtnl_tab_initialize("realms", rtnl_rtrealm_tab->tab);
+ rtnl_rtrealm_tab->tab = xzalloc(sizeof(init_tab));
+ rtnl_rtrealm_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
+ memcpy(rtnl_rtrealm_tab->tab, init_tab, sizeof(init_tab));
+ rtnl_tab_initialize("realms", rtnl_rtrealm_tab);
}
int FAST_FUNC rtnl_rtrealm_a2n(uint32_t *id, char *arg)
@@ -176,14 +201,14 @@ int FAST_FUNC rtnl_rtrealm_a2n(uint32_t
#if ENABLE_FEATURE_IP_RULE
const char* FAST_FUNC rtnl_rtrealm_n2a(int id)
{
- if (id < 0 || id > RT_TABLE_MAX) {
- return itoa(id);
- }
+ size_t i;
rtnl_rtrealm_initialize();
- if (rtnl_rtrealm_tab->tab[id])
- return rtnl_rtrealm_tab->tab[id];
+ for (i = 0; i < rtnl_rtrealm_tab->length; i++)
+ if (rtnl_rtrealm_tab->tab[i].id == id)
+ return rtnl_rtrealm_tab->tab[i].name;
+
return itoa(id);
}
#endif
@@ -193,22 +218,29 @@ static rtnl_tab_t *rtnl_rtdsfield_tab;
static void rtnl_rtdsfield_initialize(void)
{
- if (rtnl_rtdsfield_tab) return;
+ static const struct rtnl_tab_entry init_tab[] = {
+ { 0, "0" }
+ };
+
+ if (rtnl_rtdsfield_tab)
+ return;
rtnl_rtdsfield_tab = xzalloc(sizeof(*rtnl_rtdsfield_tab));
- rtnl_rtdsfield_tab->tab[0] = "0";
- rtnl_tab_initialize("dsfield", rtnl_rtdsfield_tab->tab);
+ rtnl_rtdsfield_tab->tab = xzalloc(sizeof(init_tab));
+ rtnl_rtdsfield_tab->length = sizeof(init_tab) / sizeof(init_tab[0]);
+ memcpy(rtnl_rtdsfield_tab->tab, init_tab, sizeof(init_tab));
+ rtnl_tab_initialize("dsfield", rtnl_rtdsfield_tab);
}
const char* FAST_FUNC rtnl_dsfield_n2a(int id)
{
- if (id < 0 || id > RT_TABLE_MAX) {
- return itoa(id);
- }
+ size_t i;
rtnl_rtdsfield_initialize();
- if (rtnl_rtdsfield_tab->tab[id])
- return rtnl_rtdsfield_tab->tab[id];
+ for (i = 0; i < rtnl_rtdsfield_tab->length; i++)
+ if (rtnl_rtdsfield_tab->tab[i].id == id)
+ return rtnl_rtdsfield_tab->tab[i].name;
+
return itoa(id);
}
@@ -224,27 +256,33 @@ static rtnl_tab_t *rtnl_rttable_tab;
static void rtnl_rttable_initialize(void)
{
+ static const struct rtnl_tab_entry tab_init[] = {
+ { 0, "unspec" },
+ { 253, "default" },
+ { 254, "main" },
+ { 255, "local" }
+ };
+
if (rtnl_rttable_tab)
return;
rtnl_rttable_tab = xzalloc(sizeof(*rtnl_rttable_tab));
- rtnl_rttable_tab->tab[0] = "unspec";
- rtnl_rttable_tab->tab[255] = "local";
- rtnl_rttable_tab->tab[254] = "main";
- rtnl_rttable_tab->tab[253] = "default";
- rtnl_tab_initialize("tables", rtnl_rttable_tab->tab);
+ rtnl_rttable_tab->tab = xzalloc(sizeof(tab_init));
+ rtnl_rttable_tab->length = sizeof(tab_init) / sizeof(tab_init[0]);
+ memcpy(rtnl_rttable_tab->tab, tab_init, sizeof(tab_init));
+ rtnl_tab_initialize("tables", rtnl_rttable_tab);
}
const char* FAST_FUNC rtnl_rttable_n2a(int id)
{
- if (id < 0 || id > RT_TABLE_MAX) {
- return itoa(id);
- }
+ size_t i;
rtnl_rttable_initialize();
- if (rtnl_rttable_tab->tab[id])
- return rtnl_rttable_tab->tab[id];
+ for (i = 0; i < rtnl_rttable_tab->length; i++)
+ if (rtnl_rttable_tab->tab[i].id == id)
+ return rtnl_rttable_tab->tab[i].name;
+
return itoa(id);
}