include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
-PKG_VERSION:=1.18.5
+PKG_VERSION:=1.19.2
PKG_RELEASE:=1
PKG_FLAGS:=essential
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/
-PKG_MD5SUM:=96dd43cc7cee4017a6bf31b7da82a1f5
+PKG_MD5SUM:=50267054345f1a0b77fe65f6e0e5ba29
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc
PKG_BUILD_PARALLEL:=1
config BUSYBOX_CONFIG_INSTALL_NO_USR
bool "Don't use /usr"
default n
- depends on BUSYBOX_CONFIG_FEATURE_INSTALLER
help
Disable use of /usr. busybox --install and "make install"
will install applets only to /bin and /sbin,
default n
depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
help
- With this option on, invalid UTF-8 bytes are not substituted
- with the selected substitution character.
+ 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 '?'.
Don't enable this unless you have a really good reason to clean
things up manually.
+config BUSYBOX_CONFIG_FEATURE_UTMP
+ bool "Support utmp file"
+ default n
+ help
+ The file /var/run/utmp is used to track who is currently logged in.
+ With this option on, certain applets (getty, login, telnetd etc)
+ will create and delete entries there.
+ "who" applet requires this option.
+
config BUSYBOX_CONFIG_FEATURE_WTMP
bool "Support wtmp file"
default n
- select BUSYBOX_CONFIG_FEATURE_UTMP
+ depends on BUSYBOX_CONFIG_FEATURE_UTMP
help
The file /var/run/wtmp is used to track when users have logged into
and logged out of the system.
will append new entries there.
"last" applet requires this option.
-config BUSYBOX_CONFIG_FEATURE_UTMP
- bool "Support utmp file"
- default n
- help
- The file /var/run/utmp is used to track who is currently logged in.
- With this option on, certain applets (getty, login, telnetd etc)
- will create and delete entries there.
- "who" applet requires this option.
-
config BUSYBOX_CONFIG_FEATURE_PIDFILE
bool "Support writing pidfiles"
default y
symlinks pointing to each binary), and only set the suid bit on the
one that needs it.
- The applets currently marked to need the suid bit are:
+ The applets which require root rights (need suid bit or
+ to be run by root) and will refuse to execute otherwise:
+ crontab, login, passwd, su, vlock, wall.
- crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
- traceroute, vlock.
+ The applets which will use root rights if they have them
+ (via suid bit, or because run by root), but would try to work
+ without root right nevertheless:
+ findfs, ping[6], traceroute[6], mount.
+
+ Note that if you DONT select this option, but DO make busybox
+ suid root, ALL applets will run under root, which is a huge
+ security hole (think "cp /some/file /etc/passwd").
config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
- default n if BUSYBOX_CONFIG_FEATURE_SUID
+ default n
depends on BUSYBOX_CONFIG_FEATURE_SUID
help
Allow the SUID / SGID state of an applet to be determined at runtime
by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
The format of this file is as follows:
- <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
+ APPLET = [Ssx-][Ssx-][x-] [USER.GROUP]
+
+ s: USER or GROUP is allowed to execute APPLET.
+ APPLET will run under USER or GROUP
+ (reagardless of who's running it).
+ S: USER or GROUP is NOT allowed to execute APPLET.
+ APPLET will run under USER or GROUP.
+ This option is not very sensical.
+ x: USER/GROUP/others are allowed to execute APPLET.
+ No UID/GID change will be done when it is run.
+ -: USER/GROUP/others are not allowed to execute APPLET.
An example might help:
su = ssx # exactly the same
mount = sx- root.disk # applet mount can be run by root and members
- # of group disk and runs with euid=0
+ # of group disk (but not anyone else)
+ # and runs with euid=0 (egid is not changed)
cp = --- # disable applet cp for everyone
config BUSYBOX_CONFIG_SELINUX
bool "Support NSA Security Enhanced Linux"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enable support for SELinux in applets ls, ps, and id. Also provide
the option of compiling in SELinux applets.
default n
depends on !BUSYBOX_CONFIG_STATIC
help
- (TODO: what is it and why/when is it useful?)
+ Hardened code option. PIE binaries are loaded at a different
+ address at each invocation. This has some overhead,
+ particularly on x86-32 which is short on registers.
+
Most people will leave this set to 'N'.
config BUSYBOX_CONFIG_NOMMU
config BUSYBOX_CONFIG_LFS
bool
default y
- select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
help
If you want to build BusyBox with large file support, then enable
this option. This will have no effect if your kernel or your C
endchoice
-### config PARSE
-### bool "Uniform config file parser debugging applet: parse"
-
endmenu
menu 'Installation Options ("make install" behavior)'
config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
bool "not installed"
- depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE || BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
help
Do not install applet links. Useful when you plan to use
busybox --install for installing links, or plan to use
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Archival Utilities"
+
+
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ
bool "Make tar, rpm, modprobe etc understand .xz data"
default n
config BUSYBOX_CONFIG_AR
bool "ar"
- default n
+ default n # needs to be improved to be able to replace binutils ar
help
ar is an archival utility program used to create, modify, and
extract contents from archives. An archive is a single file holding
Lzop compression/decompresion.
config BUSYBOX_CONFIG_LZOP_COMPR_HIGH
- bool "lzop complession levels 7,8,9 (not very useful)"
+ bool "lzop compression levels 7,8,9 (not very useful)"
default n
depends on BUSYBOX_CONFIG_LZOP
help
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
config BUSYBOX_CONFIG_CHVT
bool "chvt"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
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 n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program prints active (foreground) console number.
config BUSYBOX_CONFIG_DEALLOCVT
bool "deallocvt"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program deallocates unused virtual consoles.
config BUSYBOX_CONFIG_DUMPKMAP
bool "dumpkmap"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
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_KBD_MODE
bool "kbd_mode"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program reports and sets keyboard mode.
config BUSYBOX_CONFIG_LOADFONT
bool "loadfont"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads a console font from standard input.
config BUSYBOX_CONFIG_LOADKMAP
bool "loadkmap"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads a keyboard translation table from
standard input.
config BUSYBOX_CONFIG_OPENVT
bool "openvt"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program is used to start a command on an unused
virtual terminal.
config BUSYBOX_CONFIG_SETCONSOLE
bool "setconsole"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ 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_SETFONT
bool "setfont"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Allows to load console screen map. Useful for i18n.
config BUSYBOX_CONFIG_DEFAULT_SETFONT_DIR
string "Default directory for console-tools files"
- default ""
+ default n
depends on BUSYBOX_CONFIG_SETFONT
help
Directory to use if setfont's params are simple filenames
config BUSYBOX_CONFIG_SETKEYCODES
bool "setkeycodes"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ 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 n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program redirects the output console of kernel messages.
config BUSYBOX_CONFIG_SHOWKEY
bool "showkey"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Shows keys pressed.
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
Enable option (-I) to output an ISO-8601 compliant
date/time string.
+# defaults to "no": stat's nanosecond field is a bit non-portable
config BUSYBOX_CONFIG_FEATURE_DATE_NANO
bool "Support %[num]N nanosecond format specifier"
default n
- depends on BUSYBOX_CONFIG_DATE && BUSYBOX_CONFIG_PLATFORM_LINUX
+ depends on BUSYBOX_CONFIG_DATE # syscall(__NR_clock_gettime)
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support %[num]N format specifier. Adds ~250 bytes of code.
With this option off, 'date DATE' is 'date -s DATE' support
the same format. With it on, 'date DATE' additionally supports
MMDDhhmm[[YY]YY][.ss] format.
-
+config BUSYBOX_CONFIG_ID
+ bool "id"
+ default y
+ help
+ id displays the current user and group ID names.
+config BUSYBOX_CONFIG_GROUPS
+ bool "groups"
+ default n
+ help
+ Print the group names associated with current user id.
config BUSYBOX_CONFIG_TEST
bool "test"
default y
depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
help
Enable 64-bit support in test.
-
+config BUSYBOX_CONFIG_TOUCH
+ bool "touch"
+ default y
+ help
+ touch is used to create or change the access and/or
+ modification timestamp of specified files.
config BUSYBOX_CONFIG_TR
bool "tr"
default y
default n
help
Base64 encode and decode
+config BUSYBOX_CONFIG_WHO
+ bool "who"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_UTMP
+ help
+ who is used to show who is logged on.
+config BUSYBOX_CONFIG_USERS
+ bool "users"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_UTMP
+ help
+ Print users currently logged on.
config BUSYBOX_CONFIG_CAL
bool "cal"
hostid prints the numeric identifier (in hexadecimal) for
the current host.
-config BUSYBOX_CONFIG_ID
- bool "id"
- default y
- help
- id displays the current user and group ID names.
-
config BUSYBOX_CONFIG_INSTALL
bool "install"
default n
help
Support long options for the install applet.
-config BUSYBOX_CONFIG_LENGTH
- bool "length"
- default y
- help
- length is used to print out the length of a specified string.
+####config LENGTH
+#### bool "length"
+#### default y
+#### help
+#### length is used to print out the length of a specified string.
config BUSYBOX_CONFIG_LN
bool "ln"
config BUSYBOX_CONFIG_STAT
bool "stat"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX # statfs()
help
display file or filesystem status.
help
Enable this option for a faster tee, at expense of size.
-config BUSYBOX_CONFIG_TOUCH
- bool "touch"
- default y
- help
- touch is used to create or change the access and/or
- modification timestamp of specified files.
-
config BUSYBOX_CONFIG_TRUE
bool "true"
default y
help
Use "unsigned long long" in wc for counter variables.
-config BUSYBOX_CONFIG_WHO
- bool "who"
- default n
- depends on BUSYBOX_CONFIG_FEATURE_UTMP
- help
- who is used to show who is logged on.
-
config BUSYBOX_CONFIG_WHOAMI
bool "whoami"
default n
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Debian Utilities"
+
+
config BUSYBOX_CONFIG_MKTEMP
bool "mktemp"
default y
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Linux Ext2 FS Progs"
+
+
config BUSYBOX_CONFIG_CHATTR
bool "chattr"
default n
config BUSYBOX_CONFIG_LSATTR
bool "lsattr"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
lsattr lists the file attributes on a second extended file system.
config BUSYBOX_CONFIG_TUNE2FS
bool "tune2fs"
- default n
+ default n # off: it is too limited compared to upstream version
help
tune2fs allows the system administrator to adjust various tunable
filesystem parameters on Linux ext2/ext3 filesystems.
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Linux Ext2 FS Progs"
+
+
config BUSYBOX_CONFIG_CHATTR
bool "chattr"
default n
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
default n
help
Apply a unified diff formatted patch.
-
-config BUSYBOX_CONFIG_AWK
- bool "awk"
- default y
- help
- Awk is used as a pattern scanning and processing language. This is
- the BusyBox implementation of that programming language.
-
-config BUSYBOX_CONFIG_FEATURE_AWK_LIBM
- bool "Enable math functions (requires libm)"
- default y
- depends on BUSYBOX_CONFIG_AWK
- help
- Enable math functions of the Awk programming language.
- NOTE: This will require libm to be present for linking.
-
-config BUSYBOX_CONFIG_CMP
- bool "cmp"
- default y
- help
- cmp is used to compare two files and returns the result
- to standard output.
-
-config BUSYBOX_CONFIG_DIFF
- bool "diff"
- default n
- help
- diff compares two files or directories and outputs the
- differences between them in a form that can be given to
- the patch command.
-
-config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_CONFIG_DIFF && BUSYBOX_CONFIG_LONG_OPTS
- help
- Enable use of long options.
-
-config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
- bool "Enable directory support"
- default n
- depends on BUSYBOX_CONFIG_DIFF
- help
- This option enables support for directory and subdirectory
- comparison.
-
-config BUSYBOX_CONFIG_ED
- bool "ed"
- default n
- help
- The original 1970's Unix text editor, from the days of teletypes.
- Small, simple, evil. Part of SUSv3. If you're not already using
- this, you don't need it.
-
-config BUSYBOX_CONFIG_SED
- bool "sed"
- default y
- help
- sed is used to perform text transformations on a file
- or input from a pipeline.
-
config BUSYBOX_CONFIG_VI
bool "vi"
default y
Select this if you wish to be able to do search and replace in
busybox vi.
+config BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH
+ bool "Enable regex in search and replace"
+ default n # Uses GNU regex, which may be unavailable. FIXME
+ depends on BUSYBOX_CONFIG_FEATURE_VI_SEARCH
+ help
+ Use extended regex search.
+
config BUSYBOX_CONFIG_FEATURE_VI_USE_SIGNALS
bool "Catch signals"
default y
help
If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
this option makes vi perform a last-ditch effort to find it:
- vi positions cursor to 999,999 and asks terminal to report real
- cursor position using "ESC [ 6 n" escape sequence, then reads stdin.
+ position cursor to 999,999 and ask terminal to report real
+ cursor position using "ESC [ 6 n" escape sequence, then read stdin.
This is not clean but helps a lot on serial lines and such.
This will make the cursor movement faster, but requires more memory
and it makes the applet a tiny bit larger.
+config BUSYBOX_CONFIG_AWK
+ bool "awk"
+ default y
+ help
+ Awk is used as a pattern scanning and processing language. This is
+ the BusyBox implementation of that programming language.
+
+config BUSYBOX_CONFIG_FEATURE_AWK_LIBM
+ bool "Enable math functions (requires libm)"
+ default y
+ depends on BUSYBOX_CONFIG_AWK
+ help
+ Enable math functions of the Awk programming language.
+ NOTE: This will require libm to be present for linking.
+
+config BUSYBOX_CONFIG_CMP
+ bool "cmp"
+ default y
+ help
+ cmp is used to compare two files and returns the result
+ to standard output.
+
+config BUSYBOX_CONFIG_DIFF
+ bool "diff"
+ default n
+ help
+ diff compares two files or directories and outputs the
+ differences between them in a form that can be given to
+ the patch command.
+
+config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS
+ bool "Enable long options"
+ default n
+ depends on BUSYBOX_CONFIG_DIFF && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Enable use of long options.
+
+config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
+ bool "Enable directory support"
+ default n
+ depends on BUSYBOX_CONFIG_DIFF
+ help
+ This option enables support for directory and subdirectory
+ comparison.
+
+config BUSYBOX_CONFIG_ED
+ bool "ed"
+ default n
+ help
+ The original 1970's Unix text editor, from the days of teletypes.
+ Small, simple, evil. Part of SUSv3. If you're not already using
+ this, you don't need it.
+
+config BUSYBOX_CONFIG_SED
+ bool "sed"
+ default y
+ help
+ sed is used to perform text transformations on a file
+ or input from a pipeline.
+
config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
bool "Allow vi and awk to execute shell commands"
default y
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
This option allows find to restrict searches to a single filesystem.
config BUSYBOX_CONFIG_FEATURE_FIND_MAXDEPTH
- bool "Enable -maxdepth N"
+ bool "Enable -mindepth N and -maxdepth N"
default y
depends on BUSYBOX_CONFIG_FIND
help
- This option enables -maxdepth N option.
+ This option enables -mindepth N and -maxdepth N option.
config BUSYBOX_CONFIG_FEATURE_FIND_NEWER
bool "Enable -newer: compare file modification times"
depends on BUSYBOX_CONFIG_FIND
help
Support the 'find -newer' option for finding any files which have
- a modified time that is more recent than the specified FILE.
+ modification time that is more recent than the specified FILE.
config BUSYBOX_CONFIG_FEATURE_FIND_INUM
bool "Enable -inum: inode number matching"
depends on BUSYBOX_CONFIG_FIND
help
Support the 'find -links' option for matching number of links.
-
config BUSYBOX_CONFIG_GREP
bool "grep"
default y
Print the specified number of leading (-B) and/or trailing (-A)
context surrounding our matching lines.
Print the specified number of context lines (-C).
-
config BUSYBOX_CONFIG_XARGS
bool "xargs"
default y
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
Mesg controls access to your terminal by others. It is typically
used to allow or disallow other users to write to your terminal
+config BUSYBOX_CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP
+ bool "Enable writing to tty only by group, not by everybody"
+ default n
+ depends on BUSYBOX_CONFIG_MESG
+ help
+ Usually, ttys are owned by group "tty", and "write" tool is
+ setgid to this group. This way, "mesg y" only needs to enable
+ "write by owning group" bit in tty mode.
+
+ If you set this option to N, "mesg y" will enable writing
+ by anybody at all. This is not recommended.
+
endmenu
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Busybox Library Tuning"
+config BUSYBOX_CONFIG_FEATURE_SYSTEMD
+ bool "Enable systemd support"
+ default n
+ help
+ If you plan to use busybox daemons on a system where daemons
+ are controlled by systemd, enable this option.
+ If you don't use systemd, it is still safe to enable it,
+ but the downside is increased code size.
+config BUSYBOX_CONFIG_FEATURE_RTMINMAX
+ bool "Support RTMIN[+n] and RTMAX[-n] signal names"
+ default n
+ help
+ Support RTMIN[+n] and RTMAX[-n] signal names
+ in kill, killall etc. This costs ~250 bytes.
+
config BUSYBOX_CONFIG_PASSWORD_MINLEN
int "Minimum password length"
default 6
config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
int "History size"
- range 0 99999
+ # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
+ range 0 9999
default 256
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
- Specify command history size.
+ Specify command history size (0 - disable).
config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
bool "History saving"
help
Enable history saving in shells.
+config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
+ bool "Reverse history search"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
+ help
+ Enable readline-like Ctrl-R combination for reverse history search.
+ Increases code by about 0.5k.
+
config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
bool "Tab completion"
default y
and create a regular file. This does not conform to POSIX,
but prevents a symlink attack.
Similarly, "cp file device" will not send file's data
- to the device.
+ to the device. (To do that, use "cat file >device")
config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
bool "Give more precise messages when copy fails (cp, mv etc)"
range 1 1024
default 4
help
- Size of buffer used by cp, mv, install etc.
+ Size of buffer used by cp, mv, install, wget etc.
Buffers which are 4 kb or less will be allocated on stack.
Bigger buffers will be allocated with mmap, with fallback to 4 kb
stack buffer if mmap fails.
+config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
+ bool "Skip rootfs in mount table"
+ default n
+ help
+ Ignore rootfs entry in mount table.
+
+ In Linux, kernel has a special filesystem, rootfs, which is initially
+ mounted on /. It contains initramfs data, if kernel is configured
+ to have one. Usually, another file system is mounted over / early
+ in boot process, and therefore most tools which manipulate
+ mount table, such as df, will skip rootfs entry.
+
+ However, some systems do not mount anything on /.
+ If you need to configure busybox for one of these systems,
+ you may find useful to turn this option off to make df show
+ initramfs statistic.
+
+ Otherwise, choose Y.
+
config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
time intervals (time, ping, traceroute etc need this).
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
default n
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
- getty lets you log in on a tty, it is normally invoked by init.
+ getty lets you log in on a tty. It is normally invoked by init.
+
+ Note that you can save a few bytes by disabling it and
+ using login applet directly.
+ If you need to reset tty attributes before calling login,
+ this script approximates getty:
+
+ exec </dev/$1 >/dev/$1 2>&1 || exit 1
+ reset
+ stty sane; stty ispeed 38400; stty ospeed 38400
+ printf "%s login: " "`hostname`"
+ read -r login
+ exec /bin/login "$login"
config BUSYBOX_CONFIG_LOGIN
bool "login"
+# DO NOT EDIT. This file is generated from Config.src
menu "Mail Utilities"
+
+
config BUSYBOX_CONFIG_MAKEMIME
bool "makemime"
default n
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
config BUSYBOX_CONFIG_CONSPY
bool "conspy"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
A text-mode VNC like program for Linux virtual terminals.
example: conspy NUM shared access to console num
or conspy -nd NUM screenshot of console num
or conspy -cs NUM poor man's GNU screen like
+config BUSYBOX_CONFIG_LESS
+ bool "less"
+ default y
+ help
+ 'less' is a pager, meaning that it displays text files. It possesses
+ a wide array of features, and is an improvement over 'more'.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_MAXLINES
+ int "Max number of input lines less will try to eat"
+ default 9999999
+ depends on BUSYBOX_CONFIG_LESS
+
+config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
+ bool "Enable bracket searching"
+ default n
+ depends on BUSYBOX_CONFIG_LESS
+ help
+ This option adds the capability to search for matching left and right
+ brackets, facilitating programming.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
+ bool "Enable extra flags"
+ default n
+ depends on BUSYBOX_CONFIG_LESS
+ help
+ The extra flags provided do the following:
+
+ The -M flag enables a more sophisticated status line.
+ The -m flag enables a simpler status line with a percentage.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
+ bool "Enable marks"
+ default n
+ depends on BUSYBOX_CONFIG_LESS
+ help
+ Marks enable positions in a file to be stored for easy reference.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
+ bool "Enable regular expressions"
+ default n
+ depends on BUSYBOX_CONFIG_LESS
+ help
+ Enable regular expressions, allowing complex file searches.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
+ bool "Enable automatic resizing on window size changes"
+ default n
+ depends on BUSYBOX_CONFIG_LESS
+ help
+ Makes less track window size changes.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_ASK_TERMINAL
+ bool "Use 'tell me cursor position' ESC sequence to measure window"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_LESS_WINCH
+ help
+ Makes less track window size changes.
+ If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+ this option makes less perform a last-ditch effort to find it:
+ position cursor to 999,999 and ask terminal to report real
+ cursor position using "ESC [ 6 n" escape sequence, then read stdin.
+
+ This is not clean but helps a lot on serial lines and such.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
+ bool "Enable flag changes ('-' command)"
+ default n
+ depends on BUSYBOX_CONFIG_LESS
+ help
+ This enables the ability to change command-line flags within
+ less itself ('-' keyboard command).
+
+config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS
+ bool "Enable dynamic switching of line numbers"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
+ help
+ Enables "-N" command.
config BUSYBOX_CONFIG_NANDWRITE
bool "nandwrite"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Write to the specified MTD device, with bad blocks awareness
config BUSYBOX_CONFIG_NANDDUMP
bool "nanddump"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Dump the content of raw NAND chip
+config BUSYBOX_CONFIG_SETSERIAL
+ bool "setserial"
+ default n
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ Retrieve or set Linux serial port.
config BUSYBOX_CONFIG_UBIATTACH
bool "ubiattach"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Attach MTD device to an UBI device.
config BUSYBOX_CONFIG_UBIDETACH
bool "ubidetach"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Detach MTD device from an UBI device.
+config BUSYBOX_CONFIG_UBIMKVOL
+ bool "ubimkvol"
+ default n
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ Create a UBI volume.
+
+config BUSYBOX_CONFIG_UBIRMVOL
+ bool "ubirmvol"
+ default n
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ Delete a UBI volume.
+
+config BUSYBOX_CONFIG_UBIRSVOL
+ bool "ubirsvol"
+ default n
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ Resize a UBI volume.
+
+config BUSYBOX_CONFIG_UBIUPDATEVOL
+ bool "ubiupdatevol"
+ default n
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ Update a UBI volume.
+
config BUSYBOX_CONFIG_ADJTIMEX
bool "adjtimex"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Adjtimex reads and optionally sets adjustment parameters for
the Linux clock adjustment algorithm.
config BUSYBOX_CONFIG_BEEP
bool "beep"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The beep applets beeps in a given freq/Hz.
config BUSYBOX_CONFIG_DEVFSD
bool "devfsd (obsolete)"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
This is deprecated and should NOT be used anymore.
config BUSYBOX_CONFIG_FEATURE_DEVFS
bool "Use devfs names for all devices (obsolete)"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This is obsolete and should NOT be used anymore.
Use linux >= 2.6 (optionally with hotplug) and mdev instead!
config BUSYBOX_CONFIG_EJECT
bool "eject"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Used to eject cdroms. (defaults to /dev/cdrom)
config BUSYBOX_CONFIG_FBSPLASH
bool "fbsplash"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Shows splash image and progress bar on framebuffer device.
Can be used during boot phase of an embedded device. ~2kb.
config BUSYBOX_CONFIG_FLASHCP
bool "flashcp"
- default n
+ default n # doesn't build on Ubuntu 8.04
help
The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
This utility is used to copy images into a MTD device.
config BUSYBOX_CONFIG_FLASH_LOCK
bool "flash_lock"
- default n
+ default n # doesn't build on Ubuntu 8.04
help
The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
utility locks part or all of the flash device.
config BUSYBOX_CONFIG_FLASH_UNLOCK
bool "flash_unlock"
- default n
+ default n # doesn't build on Ubuntu 8.04
help
The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
utility unlocks part or all of the flash device.
config BUSYBOX_CONFIG_FLASH_ERASEALL
bool "flash_eraseall"
- default n
+ default n # doesn't build on Ubuntu 8.04
help
The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
This utility is used to erase the whole MTD device.
config BUSYBOX_CONFIG_IONICE
bool "ionice"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Set/set program io scheduling class and priority
Requires kernel >= 2.6.13
config BUSYBOX_CONFIG_INOTIFYD
bool "inotifyd"
- default n
+ default n # doesn't build on Knoppix 5
help
Simple inotify daemon. Reports filesystem changes. Requires
kernel >= 2.6.13
logged into the system (mimics sysvinit last). +900 bytes.
endchoice
-config BUSYBOX_CONFIG_LESS
- bool "less"
- default y
- help
- 'less' is a pager, meaning that it displays text files. It possesses
- a wide array of features, and is an improvement over 'more'.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_MAXLINES
- int "Max number of input lines less will try to eat"
- default 9999999
- depends on BUSYBOX_CONFIG_LESS
-
-config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
- bool "Enable bracket searching"
- default n
- depends on BUSYBOX_CONFIG_LESS
- help
- This option adds the capability to search for matching left and right
- brackets, facilitating programming.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
- bool "Enable extra flags"
- default n
- depends on BUSYBOX_CONFIG_LESS
- help
- The extra flags provided do the following:
-
- The -M flag enables a more sophisticated status line.
- The -m flag enables a simpler status line with a percentage.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
- bool "Enable marks"
- default n
- depends on BUSYBOX_CONFIG_LESS
- help
- Marks enable positions in a file to be stored for easy reference.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
- bool "Enable regular expressions"
- default n
- depends on BUSYBOX_CONFIG_LESS
- help
- Enable regular expressions, allowing complex file searches.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
- bool "Enable automatic resizing on window size changes"
- default n
- depends on BUSYBOX_CONFIG_LESS
- help
- Makes less track window size changes.
-
-config BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
- bool "Enable flag changes ('-' command)"
- default n
- depends on BUSYBOX_CONFIG_LESS
- help
- This enables the ability to change command-line flags within
- less itself ('-' keyboard command).
-
-config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS
- bool "Enable dynamic switching of line numbers"
- default n
- depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
- help
- Enables "-N" command.
-
config BUSYBOX_CONFIG_HDPARM
bool "hdparm"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Get/Set hard drive parameters. Primarily intended for ATA
drives. Adds about 13k (or around 30k if you enable the
config BUSYBOX_CONFIG_RAIDAUTORUN
bool "raidautorun"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
raidautorun tells the kernel md driver to
search and start RAID arrays.
config BUSYBOX_CONFIG_READAHEAD
bool "readahead"
default n
- depends on BUSYBOX_CONFIG_LFS && BUSYBOX_CONFIG_PLATFORM_LINUX
+ depends on BUSYBOX_CONFIG_LFS
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Preload the files listed on the command line into RAM cache so that
subsequent reads on these files will not block on disk I/O.
config BUSYBOX_CONFIG_RFKILL
bool "rfkill"
- default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ default n # doesn't build on Ubuntu 9.04
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enable/disable wireless devices.
config BUSYBOX_CONFIG_RUNLEVEL
bool "runlevel"
default n
+ depends on BUSYBOX_CONFIG_FEATURE_UTMP
help
find the current and previous system runlevel.
config BUSYBOX_CONFIG_RX
bool "rx"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Receive files using the Xmodem protocol.
config BUSYBOX_CONFIG_TASKSET
bool "taskset"
- default n
+ default n # doesn't build on some non-x86 targets (m68k)
help
Retrieve or set a processes's CPU affinity.
This requires sched_{g,s}etaffinity support in your libc.
config BUSYBOX_CONFIG_WALL
bool "wall"
default n
+ depends on BUSYBOX_CONFIG_FEATURE_UTMP
help
Write a message to all users that are logged in.
config BUSYBOX_CONFIG_WATCHDOG
bool "watchdog"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The watchdog utility is used with hardware or software watchdog
device drivers. It opens the specified watchdog device special file
#
menu "Linux Module Utilities"
-depends on BUSYBOX_CONFIG_PLATFORM_LINUX
config BUSYBOX_CONFIG_MODINFO
bool "modinfo"
config BUSYBOX_CONFIG_MODPROBE_SMALL
bool "Simplified modutils"
default n
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Simplified modutils.
bool "Accept module options on modprobe command line"
default n
depends on BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Allow insmod and modprobe take module options from command line.
bool "insmod"
default y
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
insmod is used to load specified modules in the running kernel.
bool "rmmod"
default y
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
rmmod is used to unload specified modules from the kernel.
bool "lsmod"
default y
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
lsmod is used to display a list of loaded modules.
bool "Pretty output"
default y
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.
bool "modprobe"
default n
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Handle the loading of modules, and their dependencies on a high
level.
bool "Blacklist support"
default n
depends on BUSYBOX_CONFIG_MODPROBE
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Say 'y' here to enable support for the 'blacklist' command in
modprobe.conf. This prevents the alias resolver to resolve
bool "depmod"
default n
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
depmod generates modules.dep (and potentially modules.alias
and modules.symbols) that contain dependency information
bool "Support version 2.2/2.4 Linux kernels"
default n
depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_LSMOD
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support module loading for 2.2.x and 2.4.x Linux kernels.
This increases size considerably. Say N unless you plan
bool "Try to load module from a mmap'ed area"
default n
depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This option causes module loading code to try to mmap
module first. If it does not work (for example,
bool "Enable module version checking"
default n
depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE)
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support checking of versions for modules. This is used to
ensure that the kernel and module are made for each other.
bool "Add module symbols to kernel symbol table"
default n
depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE)
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
By adding module symbols to the kernel symbol table, Oops messages
occuring within kernel modules can be properly debugged. By enabling
bool "In kernel memory optimization (uClinux only)"
default n
depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && (BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE)
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This is a special uClinux only memory optimization that lets insmod
load the specified kernel module directly into kernel space, reducing
bool "Enable insmod load map (-m) option"
default n
depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && BUSYBOX_CONFIG_INSMOD
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enabling this, one would be able to get a load map
output on stdout. This makes kernel module debugging
bool "Symbols in load map"
default n
depends on BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP && !BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Without this option, -m will only output section
load map. With this option, -m will also output
bool "Support tainted module checking with new kernels"
default y
depends on (BUSYBOX_CONFIG_LSMOD || BUSYBOX_CONFIG_FEATURE_2_4_MODULES) && !BUSYBOX_CONFIG_MODPROBE_SMALL
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support checking for tainted modules. These are usually binary
only modules that will make the linux-kernel list ignore your
bool "Support for module.aliases file"
default n
depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Generate and parse modules.alias containing aliases for bus
identifiers:
bool "Support for module.symbols file"
default n
depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Generate and parse modules.symbols containing aliases for
symbol_request() kernel calls, such as:
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Networking Utilities"
+config BUSYBOX_CONFIG_NAMEIF
+ bool "nameif"
+ default n
+ 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 n
+ 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 n
help
Network block device client
-
config BUSYBOX_CONFIG_NC
bool "nc"
default y
config BUSYBOX_CONFIG_NC_110_COMPAT
bool "Netcat 1.10 compatibility (+2.5k)"
- default n
+ default n # 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 and -ll.
+config BUSYBOX_CONFIG_PING
+ bool "ping"
+ default y
+ 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 n
+ 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 y
+ 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_WHOIS
+ bool "whois"
+ default n
+ help
+ whois is a client for the whois directory service
config BUSYBOX_CONFIG_FEATURE_IPV6
bool "Enable IPv6 support"
config BUSYBOX_CONFIG_ARP
bool "arp"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Manipulate the system ARP cache.
config BUSYBOX_CONFIG_ARPING
bool "arping"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Ping hosts by ARP packets.
config BUSYBOX_CONFIG_BRCTL
bool "brctl"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Manage ethernet bridges.
Supports addbr/delbr and addif/delif.
config BUSYBOX_CONFIG_ETHER_WAKE
bool "ether-wake"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Send a magic packet to wake up sleeping machines.
config BUSYBOX_CONFIG_IFCONFIG
bool "ifconfig"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Ifconfig is used to configure the kernel-resident network interfaces.
config BUSYBOX_CONFIG_IFENSLAVE
bool "ifenslave"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Userspace application to bind several interfaces
to a logical interface (use with kernel bonding driver).
config BUSYBOX_CONFIG_IFPLUGD
bool "ifplugd"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Network interface plug detection daemon.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
bool "Use busybox ip applet"
default n
- depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP && BUSYBOX_CONFIG_PLATFORM_LINUX
+ 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
config BUSYBOX_CONFIG_IP
bool "ip"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The "ip" applet is a TCP/IP interface configuration and routing
utility. You generally don't need "ip" to use busybox with
help
Support long options for the ipcalc applet.
-config BUSYBOX_CONFIG_NAMEIF
- bool "nameif"
- default n
- depends on 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 n
- depends on BUSYBOX_CONFIG_NAMEIF
- help
- This extends the nameif syntax to support the bus_info and driver
- checks. 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 mac=00:80:C8:38:91:B5
- new_interface_name 00:80:C8:38:91:B5
-
config BUSYBOX_CONFIG_NETMSG
bool "netmsg"
default y
config BUSYBOX_CONFIG_NETSTAT
bool "netstat"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
netstat prints information about the Linux networking subsystem.
config BUSYBOX_CONFIG_NTPD
bool "ntpd"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The NTP client/server daemon.
Make ntpd usable as a NTP server. If you disable this option
ntpd will be usable only as a NTP client.
-config BUSYBOX_CONFIG_PING
- bool "ping"
- default y
- depends on 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 y
- 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 y
- 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_PSCAN
bool "pscan"
default n
config BUSYBOX_CONFIG_ROUTE
bool "route"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Route displays or manipulates the kernel's IP routing tables.
config BUSYBOX_CONFIG_SLATTACH
bool "slattach"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
slattach is a small utility to attach network interfaces to serial
lines.
config BUSYBOX_CONFIG_TRACEROUTE
bool "traceroute"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to trace the route of IP packets.
config BUSYBOX_CONFIG_TUNCTL
bool "tunctl"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
tunctl creates or deletes tun devices.
config BUSYBOX_CONFIG_VCONFIG
bool "vconfig"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Creates, removes, and configures VLAN interfaces
config BUSYBOX_CONFIG_ZCIP
bool "zcip"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
config BUSYBOX_CONFIG_UDHCPD
bool "udhcp server (udhcpd)"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
udhcpd is a DHCP server geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
If selected, udhcpd will write a new file with leases every
time a new lease has been accepted, thus eliminating the need
to send SIGUSR1 for the initial writing or updating. Any timed
- rewriting remains undisturbed
+ rewriting remains undisturbed.
+
+config BUSYBOX_CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC
+ bool "Select IP address based on client MAC"
+ default n
+ depends on BUSYBOX_CONFIG_UDHCPD
+ help
+ If selected, udhcpd will base its selection of IP address to offer
+ on the client's hardware address. Otherwise udhcpd uses the next
+ consecutive free address.
+
+ This reduces the frequency of IP address changes for clients
+ which let their lease expire, and makes consecutive DHCPOFFERS
+ for the same client to (almost always) contain the same
+ IP address.
config BUSYBOX_CONFIG_DHCPD_LEASES_FILE
string "Absolute path to lease file"
config BUSYBOX_CONFIG_UDHCPC
bool "udhcp client (udhcpc)"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
udhcpc is a DHCP client geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_DHCPRELAY
help
Verbosity can be increased with multiple -v options.
- This options controls how high it can be cranked up.
+ This option controls how high it can be cranked up.
Bigger values result in bigger code. Levels above 1
are very verbose and useful for debugging only.
search lists via option 119, specified in RFC 3397,
and SIP servers option 120, specified in RFC 3361.
+config BUSYBOX_CONFIG_FEATURE_UDHCP_8021Q
+ bool "Support for 802.1Q VLAN parameters"
+ default n
+ depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
+ help
+ If selected, both client and server will support passing of VLAN
+ ID and priority via options 132 and 133 as per 802.1Q.
+
config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
string "Absolute path to config script"
default "/usr/share/udhcpc/default.script"
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Print Utilities"
+
+
config BUSYBOX_CONFIG_LPD
bool "lpd"
default n
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
default n
help
Per-processor statistics
+config BUSYBOX_CONFIG_NMETER
+ bool "nmeter"
+ default n
+ help
+ Prints selected system stats continuously, one line per update.
config BUSYBOX_CONFIG_PMAP
bool "pmap"
default n
default n
help
Analyze power consumption on Intel-based laptops
+config BUSYBOX_CONFIG_PSTREE
+ bool "pstree"
+ default n
+ help
+ Display a tree of processes.
+config BUSYBOX_CONFIG_PWDX
+ bool "pwdx"
+ default n
+ help
+ Report current working directory of a process
config BUSYBOX_CONFIG_SMEMCAP
bool "smemcap"
default n
help
smemcap is a tool for capturing process data for smem,
a memory usage statistic tool.
+config BUSYBOX_CONFIG_UPTIME
+ bool "uptime"
+ default y
+ select BUSYBOX_CONFIG_PLATFORM_LINUX #sysinfo()
+ help
+ uptime gives a one line display of the current time, how long
+ the system has been running, how many users are currently logged
+ on, and the system load averages for the past 1, 5, and 15 minutes.
+
+config BUSYBOX_CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
+ bool "Support for showing the number of users"
+ default n
+ 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 y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ 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.
default n
depends on BUSYBOX_CONFIG_KILL
-config BUSYBOX_CONFIG_NMETER
- bool "nmeter"
- default n
- help
- Prints selected system stats continuously, one line per update.
-
config BUSYBOX_CONFIG_PGREP
bool "pgrep"
default y
config BUSYBOX_CONFIG_FEATURE_PS_TIME
bool "Enable time and elapsed time output"
default n
- depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP && BUSYBOX_CONFIG_PLATFORM_LINUX
+ depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support -o time and -o etime output specifiers.
Enable 's' in top (gives lots of memory info).
config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
- bool "Support for showing threads in ps/top"
+ bool "Support for showing threads in ps/pstree/top"
default n
- depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP
+ depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_PSTREE
help
- Enables ps -T option and 'h' command in top
-
-config BUSYBOX_CONFIG_UPTIME
- bool "uptime"
- default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
- help
- uptime gives a one line display of the current time, how long
- the system has been running, how many users are currently logged
- on, and the system load averages for the past 1, 5, and 15 minutes.
+ Enables the ps -T option, showing of threads in pstree,
+ and 'h' command in top.
config BUSYBOX_CONFIG_WATCH
bool "watch"
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "Runit Utilities"
+
+
config BUSYBOX_CONFIG_RUNSV
bool "runsv"
default n
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "SELinux Utilities"
depends on BUSYBOX_CONFIG_SELINUX
+
+
config BUSYBOX_CONFIG_CHCON
bool "chcon"
default n
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
help
Enable bash-compatible extensions.
+config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
+ bool "Idle timeout variable"
+ default n
+ 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 y
Enable job control in the ash shell.
config BUSYBOX_CONFIG_ASH_ALIAS
- bool "alias support"
+ bool "Alias support"
default y
depends on BUSYBOX_CONFIG_ASH
help
default y
depends on BUSYBOX_CONFIG_ASH
help
- Enable getopts builtin in the ash shell.
+ Enable support for getopts builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
bool "Builtin version of 'echo'"
default y
depends on BUSYBOX_CONFIG_ASH
help
- Enable support for echo, builtin to ash.
+ Enable support for echo builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
bool "Builtin version of 'printf'"
default y
depends on BUSYBOX_CONFIG_ASH
help
- Enable support for printf, builtin to ash.
+ Enable support for printf builtin in ash.
config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
bool "Builtin version of 'test'"
default y
depends on BUSYBOX_CONFIG_ASH
help
- Enable support for test, builtin to ash.
+ Enable support for test builtin in ash.
config BUSYBOX_CONFIG_ASH_CMDCMD
bool "'command' command to override shell builtins"
default n
depends on BUSYBOX_CONFIG_ASH
help
- Enable "check for new mail" in the ash shell.
+ Enable "check for new mail" function in the ash shell.
config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
bool "Optimize for size instead of speed"
bool "cttyhack"
default n
help
- One common problem reported on the mailing list is "can't access tty;
- job control turned off" error message which typically appears when
- one tries to use shell with stdin/stdout opened to /dev/console.
+ One common problem reported on the mailing list is the "can't
+ access tty; job control turned off" error message, which typically
+ appears when one tries to use a shell with stdin/stdout on
+ /dev/console.
This device is special - it cannot be a controlling tty.
- Proper solution is to use correct device instead of /dev/console.
+ The proper solution is to use the correct device instead of
+ /dev/console.
- cttyhack provides "quick and dirty" solution to this problem.
+ cttyhack provides a "quick and dirty" solution to this problem.
It analyzes stdin with various ioctls, trying to determine whether
it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
- If it detects one, it closes stdin/out/err and reopens that device.
- Then it executes given program. Opening the device will make
+ On Linux it also checks sysfs for a pointer to the active console.
+ If cttyhack is able to find the real console device, it closes
+ stdin/out/err and reopens that device.
+ Then it executes the given program. Opening the device will make
that device a controlling tty. This may require cttyhack
to be a session leader.
default n
depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
help
- This option causes busybox shells [currently only ash]
- to not execute typical fork/exec/wait sequence, but call <applet>_main
- directly, if possible. (Sometimes it is not possible: for example,
+ This option causes busybox shells to not execute typical
+ fork/exec/wait sequence, but call <applet>_main directly,
+ if possible. (Sometimes it is not possible: for example,
this is not possible in pipes).
This will be done only for some applets (those which are marked
This may significantly speed up some shell scripts.
- This feature is relatively new. Use with care.
+ This feature is relatively new. Use with care. Report bugs
+ to project mailing list.
+
+config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
+ bool "Use $HISTFILESIZE"
+ default n
+ depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
+ help
+ This option makes busybox shells to use $HISTFILESIZE variable
+ to set shell history size. Note that its max value is capped
+ by "History size" setting in library tuning section.
+
endmenu
Option -D instructs syslogd to drop consecutive messages
which are totally the same.
+config BUSYBOX_CONFIG_FEATURE_SYSLOGD_CFG
+ bool "Support syslog.conf"
+ default n
+ depends on BUSYBOX_CONFIG_SYSLOGD
+ help
+ Supports restricted syslogd config. See docs/syslog.conf.txt
+
config BUSYBOX_CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE
int "Read buffer size in bytes"
default 256
config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL
bool "Use the klogctl() interface"
default y
- depends on BUSYBOX_CONFIG_KLOGD && BUSYBOX_CONFIG_PLATFORM_LINUX
+ depends on BUSYBOX_CONFIG_KLOGD
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The klogd applet supports two interfaces for reading
kernel messages. Linux provides the klogctl() interface
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
config BUSYBOX_CONFIG_ACPID
bool "acpid"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
acpid listens to ACPI events coming either in textual form from
/proc/acpi/event (though it is marked deprecated it is still widely
config BUSYBOX_CONFIG_BLKID
bool "blkid"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_VOLUMEID
help
Lists labels and UUIDs of all filesystems.
WARNING:
With all submodules selected, it will add ~8k to busybox.
+config BUSYBOX_CONFIG_FEATURE_BLKID_TYPE
+ bool "Print filesystem type"
+ default n
+ depends on BUSYBOX_CONFIG_BLKID
+ help
+ Show TYPE="filesystem type"
+
config BUSYBOX_CONFIG_DMESG
bool "dmesg"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
dmesg is used to examine or control the kernel ring buffer. When the
Linux kernel prints messages to the system log, they are stored in
config BUSYBOX_CONFIG_FBSET
bool "fbset"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
fbset is used to show or change the settings of a Linux frame buffer
device. The frame buffer device provides a simple and unique
config BUSYBOX_CONFIG_FDFLUSH
bool "fdflush"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
fdflush is only needed when changing media on slightly-broken
removable media drives. It is used to make Linux believe that a
config BUSYBOX_CONFIG_FDFORMAT
bool "fdformat"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
fdformat is used to low-level format a floppy disk.
config BUSYBOX_CONFIG_FDISK
bool "fdisk"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The fdisk utility is used to divide hard disks into one or more
logical disks, which are generally called partitions. This utility
bool "Support over 4GB disks"
default y
depends on BUSYBOX_CONFIG_FDISK
+ depends on !BUSYBOX_CONFIG_LFS # with LFS no special code is needed
help
Enable this option to support large disks > 4GB.
config BUSYBOX_CONFIG_FINDFS
bool "findfs"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_VOLUMEID
help
Prints the name of a filesystem with given label or UUID.
config BUSYBOX_CONFIG_FREERAMDISK
bool "freeramdisk"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Linux allows you to create ramdisks. This utility allows you to
delete them and completely free all memory that was used for the
config BUSYBOX_CONFIG_MKFS_EXT2
bool "mkfs_ext2"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to create EXT2 filesystems.
config BUSYBOX_CONFIG_MKFS_MINIX
bool "mkfs_minix"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The minix filesystem is a nice, small, compact, read-write filesystem
with little overhead. If you wish to be able to create minix
config BUSYBOX_CONFIG_MKFS_REISER
bool "mkfs_reiser"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to create ReiserFS filesystems.
Note: this applet needs a lot of testing and polishing.
config BUSYBOX_CONFIG_MKFS_VFAT
bool "mkfs_vfat"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to create FAT32 filesystems.
config BUSYBOX_CONFIG_HWCLOCK
bool "hwclock"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The hwclock utility is used to read and set the hardware clock
on a system. This is primarily used to set the current time on
config BUSYBOX_CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS
bool "Use FHS /var/lib/hwclock/adjtime"
- default n
+ default n # util-linux-ng in Fedora 13 still uses /etc/adjtime
depends on BUSYBOX_CONFIG_HWCLOCK
help
Starting with FHS 2.3, the adjtime state file is supposed to exist
config BUSYBOX_CONFIG_IPCS
bool "ipcs"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The ipcs utility is used to provide information on the currently
allocated System V interprocess (IPC) objects in the system.
config BUSYBOX_CONFIG_LOSETUP
bool "losetup"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
losetup is used to associate or detach a loop device with a regular
file or block device, and to query the status of a loop device. This
config BUSYBOX_CONFIG_LSPCI
bool "lspci"
default n
+ #select PLATFORM_LINUX
help
lspci is a utility for displaying information about PCI buses in the
system and devices connected to them.
config BUSYBOX_CONFIG_LSUSB
bool "lsusb"
default n
+ #select PLATFORM_LINUX
help
lsusb is a utility for displaying information about USB buses in the
system and devices connected to them.
config BUSYBOX_CONFIG_MDEV
bool "mdev"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
mdev is a mini-udev implementation for dynamically creating device
nodes in the /dev directory.
config BUSYBOX_CONFIG_MOUNT
bool "mount"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
All files and filesystems in Unix are arranged into one big directory
tree. The 'mount' utility is used to graft a filesystem onto a
config BUSYBOX_CONFIG_PIVOT_ROOT
bool "pivot_root"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The pivot_root utility swaps the mount points for the root filesystem
with some other mounted filesystem. This allows you to do all sorts
config BUSYBOX_CONFIG_RDATE
bool "rdate"
- default y
+ default n
help
The rdate utility allows you to synchronize the date and time of your
system clock with the date and time of a remote networked system using
config BUSYBOX_CONFIG_READPROFILE
bool "readprofile"
default n
+ #select PLATFORM_LINUX
help
This allows you to parse /proc/profile for basic profiling.
config BUSYBOX_CONFIG_RTCWAKE
bool "rtcwake"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enter a system sleep state until specified wakeup time.
config BUSYBOX_CONFIG_SETARCH
bool "setarch"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The linux32 utility is used to create a 32bit environment for the
specified program (usually a shell). It only makes sense to have
config BUSYBOX_CONFIG_SWAPONOFF
bool "swaponoff"
default n
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
This option enables both the 'swapon' and the 'swapoff' utilities.
Once you have created some swap space using 'mkswap', you also need
config BUSYBOX_CONFIG_SWITCH_ROOT
bool "switch_root"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
The switch_root utility is used from initramfs to select a new
root device. Under initramfs, you have to use this instead of
config BUSYBOX_CONFIG_UMOUNT
bool "umount"
default y
- depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ select BUSYBOX_CONFIG_PLATFORM_LINUX
help
When you want to remove a mounted filesystem from its current mount
point, for example when you are shutting down the system, the
### config FEATURE_VOLUMEID_UFS
### bool "ufs filesystem"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_MINIX
### bool "minix filesystem"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### These only detect partition tables - not used (yet?)
### config FEATURE_VOLUMEID_MAC
### bool "mac filesystem"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
###
### config FEATURE_VOLUMEID_MSDOS
### bool "msdos filesystem"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_HIGHPOINTRAID
### bool "highpoint raid"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_ISWRAID
### bool "intel raid"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_LSIRAID
### bool "lsi raid"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_VIARAID
### bool "via raid"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_SILICONRAID
### bool "silicon raid"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_NVIDIARAID
### bool "nvidia raid"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
### config FEATURE_VOLUMEID_PROMISERAID
### bool "promise raid"
-### default n
+### default y
### depends on VOLUMEID
### help
### TODO
--- /dev/null
+--- a/include/platform.h
++++ b/include/platform.h
+@@ -433,7 +433,7 @@ typedef unsigned smalluint;
+ # undef HAVE_STPCPY
+ #endif
+
+-#if defined(ANDROID)
++#if defined(ANDROID) || defined(__ANDROID__)
+ # undef HAVE_DPRINTF
+ # undef HAVE_GETLINE
+ # undef HAVE_STPCPY
--- /dev/null
+--- a/applets/applet_tables.c
++++ b/applets/applet_tables.c
+@@ -80,8 +80,15 @@ int main(int argc, char **argv)
+
+ printf("#define NUM_APPLETS %u\n", NUM_APPLETS);
+ if (NUM_APPLETS == 1) {
++ char *dash_to_underscore, *p;
+ printf("#define SINGLE_APPLET_STR \"%s\"\n", applets[0].name);
+- printf("#define SINGLE_APPLET_MAIN %s_main\n", applets[0].name);
++ /* Example: "ether-wake" -> "ether_wake" */
++ p = dash_to_underscore = strdup(applets[0].name);
++ p--;
++ while (*++p)
++ if (*p == '-')
++ *p = '_';
++ printf("#define SINGLE_APPLET_MAIN %s_main\n", dash_to_underscore);
+ }
+ printf("\n");
+
--- /dev/null
+--- a/loginutils/chpasswd.c
++++ b/loginutils/chpasswd.c
+@@ -33,9 +33,8 @@ static const char chpasswd_longopts[] AL
+ int chpasswd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int chpasswd_main(int argc UNUSED_PARAM, char **argv)
+ {
+- char *name, *pass;
+- char salt[sizeof("$N$XXXXXXXX")];
+- int opt, rc;
++ char *name;
++ int opt;
+
+ if (getuid() != 0)
+ bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
+@@ -45,6 +44,10 @@ int chpasswd_main(int argc UNUSED_PARAM,
+ opt = getopt32(argv, "em");
+
+ while ((name = xmalloc_fgetline(stdin)) != NULL) {
++ char *free_me;
++ char *pass;
++ int rc;
++
+ pass = strchr(name, ':');
+ if (!pass)
+ bb_error_msg_and_die("missing new password");
+@@ -52,7 +55,10 @@ int chpasswd_main(int argc UNUSED_PARAM,
+
+ xuname2uid(name); /* dies if there is no such user */
+
++ free_me = NULL;
+ if (!(opt & OPT_ENC)) {
++ char salt[sizeof("$N$XXXXXXXX")];
++
+ crypt_make_salt(salt, 1);
+ if (opt & OPT_MD5) {
+ salt[0] = '$';
+@@ -60,7 +66,7 @@ int chpasswd_main(int argc UNUSED_PARAM,
+ salt[2] = '$';
+ crypt_make_salt(salt + 3, 4);
+ }
+- pass = pw_encrypt(pass, salt, 0);
++ free_me = pass = pw_encrypt(pass, salt, 0);
+ }
+
+ /* This is rather complex: if user is not found in /etc/shadow,
+@@ -81,8 +87,7 @@ int chpasswd_main(int argc UNUSED_PARAM,
+ bb_info_msg("Password for '%s' changed", name);
+ logmode = LOGMODE_STDIO;
+ free(name);
+- if (!(opt & OPT_ENC))
+- free(pass);
++ free(free_me);
+ }
+ return EXIT_SUCCESS;
+ }
--- /dev/null
+--- a/miscutils/crond.c
++++ b/miscutils/crond.c
+@@ -861,7 +861,8 @@ int crond_main(int argc UNUSED_PARAM, ch
+
+ /* "-b after -f is ignored", and so on for every pair a-b */
+ opt_complementary = "f-b:b-f:S-L:L-S" IF_FEATURE_CROND_D(":d-l")
+- ":l+:d+"; /* -l and -d have numeric param */
++ /* -l and -d have numeric param */
++ ":l+" IF_FEATURE_CROND_D(":d+");
+ opts = getopt32(argv, "l:L:fbSc:" IF_FEATURE_CROND_D("d:"),
+ &G.log_level, &G.log_filename, &G.crontab_dir_name
+ IF_FEATURE_CROND_D(,&G.log_level));
--- /dev/null
+--- a/networking/inetd.c
++++ b/networking/inetd.c
+@@ -1278,6 +1278,7 @@ int inetd_main(int argc UNUSED_PARAM, ch
+ sep->se_count = 0;
+ rearm_alarm(); /* will revive it in RETRYTIME sec */
+ restore_sigmask(&omask);
++ maybe_close(new_udp_fd);
+ maybe_close(accepted_fd);
+ continue; /* -> check next fd in fd set */
+ }
+@@ -1298,17 +1299,18 @@ int inetd_main(int argc UNUSED_PARAM, ch
+ bb_perror_msg("vfork"+1);
+ sleep(1);
+ restore_sigmask(&omask);
++ maybe_close(new_udp_fd);
+ maybe_close(accepted_fd);
+ continue; /* -> check next fd in fd set */
+ }
+ if (pid == 0)
+ pid--; /* -1: "we did fork and we are child" */
+ }
+- /* if pid == 0 here, we never forked */
++ /* if pid == 0 here, we didn't fork */
+
+ if (pid > 0) { /* parent */
+ if (sep->se_wait) {
+- /* tcp wait: we passed listening socket to child,
++ /* wait: we passed socket to child,
+ * will wait for child to terminate */
+ sep->se_wait = pid;
+ remove_fd_from_set(sep->se_fd);
+@@ -1345,9 +1347,13 @@ int inetd_main(int argc UNUSED_PARAM, ch
+ setsid();
+ /* "nowait" udp */
+ if (new_udp_fd >= 0) {
+- len_and_sockaddr *lsa = xzalloc_lsa(sep->se_family);
++ len_and_sockaddr *lsa;
++ int r;
++
++ close(new_udp_fd);
++ lsa = xzalloc_lsa(sep->se_family);
+ /* peek at the packet and remember peer addr */
+- int r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT,
++ r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT,
+ &lsa->u.sa, &lsa->len);
+ if (r < 0)
+ goto do_exit1;
--- /dev/null
+--- a/sysklogd/syslogd.c
++++ b/sysklogd/syslogd.c
+@@ -278,7 +278,7 @@ static void parse_syslogdcfg(const char
+ parser_t *parser;
+
+ parser = config_open2(file ? file : "/etc/syslog.conf",
+- file ? xfopen_for_read : fopen_or_warn_stdin);
++ file ? xfopen_for_read : fopen_for_read);
+ if (!parser)
+ /* didn't find default /etc/syslog.conf */
+ /* proceed as if we built busybox without config support */
+@@ -678,7 +678,7 @@ static void timestamp_and_log(int pri, c
+ if (LOG_PRI(pri) < G.logLevel) {
+ #if ENABLE_FEATURE_IPC_SYSLOG
+ if ((option_mask32 & OPT_circularlog) && G.shbuf) {
+- log_to_shmem(msg);
++ log_to_shmem(G.printbuf);
+ return;
+ }
+ #endif
--- /dev/null
+--- a/coreutils/tail.c
++++ b/coreutils/tail.c
+@@ -203,7 +203,7 @@ int tail_main(int argc, char **argv)
+ int fd = fds[i];
+
+ if (ENABLE_FEATURE_FANCY_TAIL && fd < 0)
+- continue; /* may happen with -E */
++ continue; /* may happen with -F */
+
+ if (nfiles > header_threshhold) {
+ tail_xprint_header(fmt, argv[i]);
+@@ -252,14 +252,14 @@ int tail_main(int argc, char **argv)
+ * Used only by +N code ("start from Nth", 1-based): */
+ seen = 1;
+ newlines_seen = 0;
+- while ((nread = tail_read(fd, buf, tailbufsize-taillen)) > 0) {
++ while ((nread = tail_read(fd, buf, tailbufsize - taillen)) > 0) {
+ if (G.from_top) {
+ int nwrite = nread;
+ if (seen < count) {
+ /* We need to skip a few more bytes/lines */
+ if (COUNT_BYTES) {
+ nwrite -= (count - seen);
+- seen = count;
++ seen += nread;
+ } else {
+ char *s = buf;
+ do {
+--- a/testsuite/tail.tests
++++ b/testsuite/tail.tests
+@@ -14,4 +14,12 @@ testing "tail: +N with N > file length"
+ "0\n" \
+ "" "qw"
+
++testing "tail: -c +N with largish N" \
++ "
++ dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8200 | wc -c;
++ dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8208 | wc -c;
++ " \
++ "8185\n8177\n" \
++ "" ""
++
+ exit $FAILCOUNT
--- /dev/null
+--- a/networking/tftp.c
++++ b/networking/tftp.c
+@@ -813,7 +813,8 @@ int tftpd_main(int argc UNUSED_PARAM, ch
+ goto err;
+ }
+ mode = local_file + strlen(local_file) + 1;
+- if (mode >= block_buf + result || strcmp(mode, "octet") != 0) {
++ /* RFC 1350 says mode string is case independent */
++ if (mode >= block_buf + result || strcasecmp(mode, "octet") != 0) {
+ goto err;
+ }
+ # if ENABLE_FEATURE_TFTP_BLOCKSIZE
--- a/init/init.c
+++ b/init/init.c
-@@ -572,8 +572,11 @@ static void run_actions(int action_type)
+@@ -573,8 +573,11 @@ static void run_actions(int action_type)
/* Only run stuff with pid == 0. If pid != 0,
* it is already running
*/
--- a/networking/brctl.c
+++ b/networking/brctl.c
-@@ -105,7 +105,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
+@@ -129,7 +129,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
"setageing\0" "setfd\0" "sethello\0" "setmaxage\0"
"setpathcost\0" "setportprio\0" "setbridgeprio\0"
)
enum { ARG_addbr = 0, ARG_delbr, ARG_addif, ARG_delif
IF_FEATURE_BRCTL_FANCY(,
-@@ -113,7 +113,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
+@@ -137,7 +137,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
ARG_setageing, ARG_setfd, ARG_sethello, ARG_setmaxage,
ARG_setpathcost, ARG_setportprio, ARG_setbridgeprio
)
--- a/networking/wget.c
+++ b/networking/wget.c
-@@ -597,7 +597,7 @@ int wget_main(int argc UNUSED_PARAM, cha
+@@ -872,7 +872,7 @@ int wget_main(int argc UNUSED_PARAM, cha
/* Ignored: */
// "tries\0" Required_argument "t"
/* Ignored (we always use PASV): */
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
-@@ -24,7 +24,7 @@
+@@ -37,7 +37,7 @@
#define TMPDIR CONFIG_FEATURE_CROND_DIR
#endif
--- a/miscutils/crontab.c
+++ b/miscutils/crontab.c
-@@ -12,7 +12,7 @@
+@@ -22,7 +22,7 @@
#include "libbb.h"
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -1196,7 +1196,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1257,7 +1257,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
switch (state) {
case INIT_SELECTING:
if (packet_num == 0)
xid = random_xid();
/* broadcast */
-@@ -1225,7 +1225,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1286,7 +1286,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
packet_num = 0;
continue;
case REQUESTING:
--- a/networking/udhcp/packet.c
+++ b/networking/udhcp/packet.c
-@@ -165,6 +165,11 @@ uint16_t FAST_FUNC udhcp_checksum(void *
+@@ -158,6 +158,11 @@ uint16_t FAST_FUNC udhcp_checksum(void *
return ~sum;
}
/* Construct a ip/udp header for a packet, send packet */
int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
uint32_t source_nip, int source_port,
-@@ -173,10 +178,10 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -166,10 +171,10 @@ int FAST_FUNC udhcp_send_raw_packet(stru
{
struct sockaddr_ll dest_sll;
struct ip_udp_dhcp_packet packet;
fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
if (fd < 0) {
-@@ -185,8 +190,8 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -178,8 +183,8 @@ int FAST_FUNC udhcp_send_raw_packet(stru
}
memset(&dest_sll, 0, sizeof(dest_sll));
dest_sll.sll_family = AF_PACKET;
dest_sll.sll_protocol = htons(ETH_P_IP);
-@@ -199,36 +204,24 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -192,36 +197,24 @@ int FAST_FUNC udhcp_send_raw_packet(stru
goto ret_close;
}
(struct sockaddr *) &dest_sll, sizeof(dest_sll));
msg = "sendto";
ret_close:
-@@ -246,7 +239,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -239,7 +232,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
uint32_t dest_nip, int dest_port)
{
struct sockaddr_in client;
int fd;
int result = -1;
const char *msg;
-@@ -277,9 +269,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -270,9 +262,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
}
udhcp_dump_packet(dhcp_pkt);
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -436,6 +436,7 @@ static int raw_bcast_from_client_config_
+@@ -540,6 +540,7 @@ static int raw_bcast_from_client_config_
static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
{
struct dhcp_packet packet;
/* Fill in: op, htype, hlen, cookie, chaddr fields,
* random xid field (we override it below),
-@@ -453,6 +454,7 @@ static NOINLINE int send_discover(uint32
+@@ -557,6 +558,7 @@ static NOINLINE int send_discover(uint32
*/
add_client_options(&packet);
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -1144,6 +1144,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1205,6 +1205,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
/* silence "uninitialized!" warning */
unsigned timestamp_before_wait = timestamp_before_wait;
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
-@@ -56,6 +56,8 @@ const struct dhcp_optflag dhcp_optflags[
+@@ -60,6 +60,8 @@ const struct dhcp_optflag dhcp_optflags[
+ { OPTION_U8 , 0x85 }, /* DHCP_VLAN_PRIORITY */
#endif
- { OPTION_STATIC_ROUTES , 0x79 }, /* DHCP_STATIC_ROUTES */
{ OPTION_STATIC_ROUTES , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */
+ { OPTION_6RD , 0xd4 }, /* DHCP_6RD (RFC) */
+ { OPTION_6RD , 0x96 }, /* DHCP_6RD (Comcast) */
{ OPTION_STRING , 0xfc }, /* DHCP_WPAD */
/* Options below have no match in dhcp_option_strings[],
-@@ -119,6 +121,8 @@ const char dhcp_option_strings[] ALIGN1
- // is not handled yet by "string->option" conversion code:
- "staticroutes" "\0"/* DHCP_STATIC_ROUTES */
+@@ -127,6 +129,8 @@ const char dhcp_option_strings[] ALIGN1
+ "vlanpriority" "\0"/* DHCP_VLAN_PRIORITY */
+ #endif
"msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */
+ "ip6rd" "\0" /* DHCP_6RD (RFC) */
+ "ip6rd" "\0" /* DHCP_6RD (Comcast) */
"wpad" "\0" /* DHCP_WPAD */
;
-@@ -146,6 +150,7 @@ const uint8_t dhcp_option_lengths[] ALIG
+@@ -154,6 +158,7 @@ const uint8_t dhcp_option_lengths[] ALIG
[OPTION_S32] = 4,
/* Just like OPTION_STRING, we use minimum length here */
[OPTION_STATIC_ROUTES] = 5,
OPTION_SIP_SERVERS,
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -45,6 +45,7 @@ static const uint8_t len_of_option_as_st
+@@ -100,6 +100,7 @@ static const uint8_t len_of_option_as_st
[OPTION_IP ] = sizeof("255.255.255.255 "),
[OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
[OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),
[OPTION_STRING ] = 1,
#if ENABLE_FEATURE_UDHCP_RFC3397
[OPTION_DNS_STRING ] = 1, /* unused */
-@@ -68,6 +69,23 @@ static int sprint_nip(char *dest, const
+@@ -123,6 +124,23 @@ static int sprint_nip(char *dest, const
return sprintf(dest, "%s%u.%u.%u.%u", pre, ip[0], ip[1], ip[2], ip[3]);
}
/* really simple implementation, just count the bits */
static int mton(uint32_t mask)
{
-@@ -177,6 +195,70 @@ static NOINLINE char *xmalloc_optname_op
+@@ -232,6 +250,70 @@ static NOINLINE char *xmalloc_optname_op
return ret;
}
--- a/shell/ash.c
+++ b/shell/ash.c
-@@ -12532,8 +12532,17 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12611,8 +12611,17 @@ exportcmd(int argc UNUSED_PARAM, char **
const char *p;
char **aptr;
int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
aptr = argptr;
name = *aptr;
if (name) {
-@@ -12545,10 +12554,12 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12624,10 +12633,12 @@ exportcmd(int argc UNUSED_PARAM, char **
vp = *findvar(hashvar(name), name);
if (vp) {
vp->flags |= flag;
--- a/include/applets.src.h
+++ b/include/applets.src.h
-@@ -256,6 +256,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D
- IF_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_DROP))
- IF_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_DROP))
- IF_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_DROP))
-+IF_NETMSG(APPLET(netmsg, _BB_DIR_BIN, _BB_SUID_REQUIRE))
- IF_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_DROP))
- IF_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_DROP))
- IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP))
---- a/include/usage.src.h
-+++ b/include/usage.src.h
-@@ -1,3 +1,4 @@
-+
- /* vi: set sw=8 ts=8: */
- /*
- * This file suffers from chronically incorrect tabification
-@@ -2706,6 +2707,9 @@ INSERT
- " or\n" \
- "$ nameif -c /etc/my_mactab_file\n" \
-
-+#define netmsg_trivial_usage NOUSAGE_STR
-+#define netmsg_full_usage ""
-+
- #define nmeter_trivial_usage \
- "format_string"
- #define nmeter_full_usage "\n\n" \
+@@ -266,6 +266,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO
+ IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
+ IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
+ IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
++IF_NETMSG(APPLET(netmsg, BB_DIR_BIN, BB_SUID_REQUIRE))
+ IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
+ IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
+ IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
--- a/networking/Config.src
+++ b/networking/Config.src
-@@ -640,6 +640,12 @@ config FEATURE_NAMEIF_EXTENDED
- new_interface_name mac=00:80:C8:38:91:B5
- new_interface_name 00:80:C8:38:91:B5
+@@ -612,6 +612,12 @@ config FEATURE_IPCALC_LONG_OPTIONS
+ help
+ Support long options for the ipcalc applet.
+config NETMSG
+ bool "netmsg"
lib-$(CONFIG_NTPD) += ntpd.o
--- /dev/null
+++ b/networking/netmsg.c
-@@ -0,0 +1,63 @@
+@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2006 Felix Fietkau <nbd@openwrt.org>
+ *
+#include <string.h>
+#include "busybox.h"
+
++//usage:#define netmsg_trivial_usage NOUSAGE_STR
++//usage:#define netmsg_full_usage ""
+
+#ifndef CONFIG_NETMSG
+int main(int argc, char **argv)
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -1742,21 +1742,32 @@ static int check_user_passwd(const char
+@@ -1772,21 +1772,32 @@ static int check_user_passwd(const char
if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
char *md5_passwd;
--- a/include/applets.src.h
+++ b/include/applets.src.h
-@@ -213,6 +213,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN,
- IF_LOAD_POLICY(APPLET(load_policy, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
- IF_LOADFONT(APPLET(loadfont, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
- IF_LOADKMAP(APPLET(loadkmap, _BB_DIR_SBIN, _BB_SUID_DROP))
-+IF_LOCK(APPLET(lock, _BB_DIR_BIN, _BB_SUID_DROP))
- IF_LOGGER(APPLET(logger, _BB_DIR_USR_BIN, _BB_SUID_DROP))
- IF_LOGIN(APPLET(login, _BB_DIR_BIN, _BB_SUID_REQUIRE))
- IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname))
---- a/include/usage.src.h
-+++ b/include/usage.src.h
-@@ -2089,6 +2089,9 @@ INSERT
- #define loadkmap_example_usage \
- "$ loadkmap < /etc/i18n/lang-keymap\n"
-
-+#define lock_trivial_usage NOUSAGE_STR
-+#define lock_full_usage ""
-+
- #define logger_trivial_usage \
- "[OPTIONS] [MESSAGE]"
- #define logger_full_usage "\n\n" \
+@@ -218,6 +218,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN,
+ IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
+ IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
++IF_LOCK(APPLET(lock, BB_DIR_BIN, BB_SUID_DROP))
+ IF_LOGGER(APPLET(logger, BB_DIR_USR_BIN, BB_SUID_DROP))
+ /* Needs to be run by root or be suid root - needs to change uid and gid: */
+ IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
--- a/miscutils/Config.src
+++ b/miscutils/Config.src
-@@ -485,6 +485,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
+@@ -419,6 +419,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
help
Enables the 'hdparm -d' option to get/set using_dma flag.
lib-$(CONFIG_MICROCOM) += microcom.o
--- /dev/null
+++ b/miscutils/lock.c
-@@ -0,0 +1,132 @@
+@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2006 Felix Fietkau <nbd@openwrt.org>
+ *
+#include <stdio.h>
+#include "busybox.h"
+
++//usage:#define lock_trivial_usage NOUSAGE_STR
++//usage:#define lock_full_usage ""
++
+static int unlock = 0;
+static int shared = 0;
+static int waitonly = 0;
---- a/include/usage.src.h
-+++ b/include/usage.src.h
-@@ -1623,7 +1623,8 @@ INSERT
- IF_FEATURE_HTTPD_SETUID(" [-u USER[:GRP]]") \
- IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \
- " [-h HOME]\n" \
-- "or httpd -d/-e" IF_FEATURE_HTTPD_AUTH_MD5("/-m") " STRING"
-+ "or httpd -d/-e" IF_FEATURE_HTTPD_AUTH_MD5("/-m") " STRING" \
-+ " [-R <path> [-H <host>]]"
- #define httpd_full_usage "\n\n" \
- "Listen for incoming HTTP requests\n" \
- "\nOptions:" \
-@@ -1641,6 +1642,8 @@ INSERT
- "\n -m STRING MD5 crypt STRING") \
- "\n -e STRING HTML encode STRING" \
- "\n -d STRING URL decode STRING" \
-+ "\n -R PATH Redirect target path" \
-+ "\n -H HOST Redirect target host" \
-
- #define hwclock_trivial_usage \
- IF_FEATURE_HWCLOCK_LONG_OPTIONS( \
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -243,6 +243,8 @@ struct globals {
+@@ -105,6 +105,7 @@
+ //usage: IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]")
+ //usage: " [-h HOME]\n"
+ //usage: "or httpd -d/-e" IF_FEATURE_HTTPD_AUTH_MD5("/-m") " STRING"
++//usage: " [-R <path> [-H <host>]]"
+ //usage:#define httpd_full_usage "\n\n"
+ //usage: "Listen for incoming HTTP requests\n"
+ //usage: "\n -i Inetd mode"
+@@ -121,6 +122,8 @@
+ //usage: "\n -m STRING MD5 crypt STRING")
+ //usage: "\n -e STRING HTML encode STRING"
+ //usage: "\n -d STRING URL decode STRING"
++//usage: "\n -R PATH Redirect target path"
++//usage: "\n -H HOST Redirect target host"
+
+ #include "libbb.h"
+ #if ENABLE_FEATURE_HTTPD_USE_SENDFILE
+@@ -272,6 +275,8 @@ struct globals {
const char *found_mime_type;
const char *found_moved_temporarily;
Htaccess_IP *ip_a_d; /* config allow/deny lines */
IF_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;)
-@@ -293,6 +295,8 @@ struct globals {
+@@ -322,6 +327,8 @@ struct globals {
#define index_page (G.index_page )
#define found_mime_type (G.found_mime_type )
#define found_moved_temporarily (G.found_moved_temporarily)
#define last_mod (G.last_mod )
#define ip_a_d (G.ip_a_d )
#define g_realm (G.g_realm )
-@@ -999,8 +1003,11 @@ static void send_headers(int responseNum
+@@ -1028,8 +1035,11 @@ static void send_headers(int responseNum
}
#endif
if (responseNum == HTTP_MOVED_TEMPORARILY) {
(g_query ? "?" : ""),
(g_query ? g_query : ""));
}
-@@ -1967,8 +1974,12 @@ static void handle_incoming_and_exit(con
+@@ -1997,8 +2007,12 @@ static void handle_incoming_and_exit(con
} while (*++tptr);
*++urlp = '\0'; /* terminate after last character */
if (is_directory(urlcopy + 1, 1, NULL)) {
found_moved_temporarily = urlcopy;
}
-@@ -2325,7 +2336,9 @@ static void sighup_handler(int sig UNUSE
+@@ -2355,7 +2369,9 @@ static void sighup_handler(int sig UNUSE
}
enum {
d_opt_decode_url,
h_opt_home_httpd,
IF_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,)
-@@ -2374,12 +2387,13 @@ int httpd_main(int argc UNUSED_PARAM, ch
+@@ -2404,12 +2420,13 @@ int httpd_main(int argc UNUSED_PARAM, ch
/* We do not "absolutize" path given by -h (home) opt.
* If user gives relative path in -h,
* $SCRIPT_FILENAME will not be set. */
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -1261,10 +1261,10 @@ static NOINLINE void cgi_io_loop_and_exi
+@@ -1294,10 +1294,10 @@ static NOINLINE void cgi_io_loop_and_exi
if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1)
break;
}
--- a/networking/httpd.c
+++ b/networking/httpd.c
-@@ -1853,6 +1853,7 @@ static void handle_incoming_and_exit(con
+@@ -1886,6 +1886,7 @@ static void handle_incoming_and_exit(con
char *header_ptr = header_ptr;
Htaccess_Proxy *proxy_entry;
#endif
+--- a/modutils/Config.src
++++ b/modutils/Config.src
+@@ -247,7 +247,7 @@ config FEATURE_MODUTILS_SYMBOLS
+ config DEFAULT_MODULES_DIR
+ string "Default directory containing modules"
+ default "/lib/modules"
+- depends on DEPMOD || MODPROBE || MODPROBE_SMALL || MODINFO
++ depends on DEPMOD || INSMOD || MODPROBE || MODPROBE_SMALL || MODINFO
+ help
+ Directory that contains kernel modules.
+ Defaults to "/lib/modules"
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -11,6 +11,106 @@
/* 2.6 style insmod has no options and required filename
* (not module name - .ko can't be omitted) */
-@@ -59,9 +159,15 @@ int insmod_main(int argc UNUSED_PARAM, c
+@@ -58,9 +158,15 @@ int insmod_main(int argc UNUSED_PARAM, c
if (!filename)
bb_show_usage();
-- rc = bb_init_module(filename, parse_cmdline_module_options(argv));
+- rc = bb_init_module(filename, parse_cmdline_module_options(argv, /*quote_spaces:*/ 0));
+ rc = find_module(filename);
+ if (rc || (g_filename == NULL))
-+ goto done;
++ goto done;
+
-+ rc = bb_init_module(g_filename, parse_cmdline_module_options(argv));
++ rc = bb_init_module(g_filename, parse_cmdline_module_options(argv, /*quote_spaces:*/ 0));
if (rc)
bb_error_msg("can't insert '%s': %s", filename, moderror(rc));
+ free (g_filename);
+done:
return rc;
}
---- a/modutils/Config.src
-+++ b/modutils/Config.src
-@@ -229,7 +229,7 @@ config FEATURE_MODUTILS_SYMBOLS
- config DEFAULT_MODULES_DIR
- string "Default directory containing modules"
- default "/lib/modules"
-- depends on DEPMOD || MODPROBE || MODPROBE_SMALL || MODINFO
-+ depends on DEPMOD || INSMOD || MODPROBE || MODPROBE_SMALL || MODINFO
- help
- Directory that contains kernel modules.
- Defaults to "/lib/modules"
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
-@@ -77,6 +77,10 @@
+@@ -136,6 +136,10 @@
# include <rpc/pmap_clnt.h>
#endif
#if defined(__dietlibc__)
// 16.12.2006, Sampo Kellomaki (sampo@iki.fi)
-@@ -194,6 +198,7 @@ static const int32_t mount_options[] = {
+@@ -254,6 +258,7 @@ static const int32_t mount_options[] = {
/* "rslave" */ MS_SLAVE|MS_RECURSIVE,
- /* "rprivate" */ MS_SLAVE|MS_RECURSIVE,
+ /* "rprivate" */ MS_PRIVATE|MS_RECURSIVE,
/* "runbindable" */ MS_UNBINDABLE|MS_RECURSIVE,
+ /* "union" */ MS_UNION,
)
// Always understood.
-@@ -249,6 +254,7 @@ static const char mount_option_str[] =
- "rslave\0"
- "rprivate\0"
- "runbindable\0"
-+ "union" "\0"
+@@ -310,6 +315,7 @@ static const char mount_option_str[] =
+ "make-rslave\0"
+ "make-rprivate\0"
+ "make-runbindable\0"
++ "make-union\0"
)
// Always understood.
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
-@@ -69,9 +69,6 @@
+@@ -128,9 +128,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... */
/* vi: set sw=4 ts=4: */
/*
* awk implementation for busybox
-@@ -74,9 +75,14 @@ typedef struct chain_s {
+@@ -81,9 +82,14 @@ typedef struct chain_s {
} chain;
/* Function */
} func;
/* I/O stream */
-@@ -1466,7 +1472,8 @@ static void parse_program(char *p)
+@@ -1473,7 +1479,8 @@ static void parse_program(char *p)
next_token(TC_FUNCTION);
g_pos++;
f = newfunc(t_string);
f->nargs = 0;
while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) {
v = findvar(ahash, t_string);
-@@ -1475,7 +1482,7 @@ static void parse_program(char *p)
+@@ -1482,7 +1489,7 @@ static void parse_program(char *p)
if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM)
break;
}
chain_group();
clear_array(ahash);
-@@ -2573,7 +2580,8 @@ static var *evaluate(node *op, var *res)
+@@ -2580,7 +2587,8 @@ static var *evaluate(node *op, var *res)
var *vbeg, *v;
const char *sv_progname;
syntax_error(EMSG_UNDEF_FUNC);
vbeg = v = nvalloc(op->r.f->nargs + 1);
-@@ -2590,7 +2598,10 @@ static var *evaluate(node *op, var *res)
+@@ -2597,7 +2605,10 @@ static var *evaluate(node *op, var *res)
fnargs = vbeg;
sv_progname = g_progname;
g_progname = sv_progname;
nvfree(fnargs);
-@@ -2984,6 +2995,143 @@ static rstream *next_input_file(void)
+@@ -2991,6 +3002,143 @@ static rstream *next_input_file(void)
#undef files_happen
}
int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int awk_main(int argc, char **argv)
{
-@@ -3049,6 +3197,9 @@ int awk_main(int argc, char **argv)
+@@ -3056,6 +3204,9 @@ int awk_main(int argc, char **argv)
*s1 = '=';
}
}
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -874,7 +874,6 @@ static void perform_renew(void)
+@@ -983,7 +983,6 @@ static void perform_renew(void)
state = RENEW_REQUESTED;
break;
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
--- a/networking/brctl.c
+++ b/networking/brctl.c
-@@ -32,7 +32,7 @@
+@@ -56,7 +56,7 @@
/* Maximum number of ports supported per bridge interface. */
#ifndef MAX_PORTS
#endif
/* Use internal number parsing and not the "exact" conversion. */
-@@ -169,6 +169,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
+@@ -193,6 +193,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
printf(bi.stp_enabled ? "\tyes" : "\tno");
/* print interface list */
arm_ioctl(args, BRCTL_GET_PORT_LIST,
(unsigned long) ifidx, MAX_PORTS);
xioctl(fd, SIOCDEVPRIVATE, &ifr);
-@@ -197,9 +198,19 @@ int brctl_main(int argc UNUSED_PARAM, ch
+@@ -221,9 +222,19 @@ int brctl_main(int argc UNUSED_PARAM, ch
br = *argv++;
if (key == ARG_addbr || key == ARG_delbr) { /* addbr or delbr */
goto done;
}
-@@ -208,14 +219,27 @@ int brctl_main(int argc UNUSED_PARAM, ch
+@@ -232,14 +243,27 @@ int brctl_main(int argc UNUSED_PARAM, ch
strncpy_IFNAMSIZ(ifr.ifr_name, br);
if (key == ARG_addif || key == ARG_delif) { /* addif or delif */
--- a/coreutils/id.c
+++ b/coreutils/id.c
-@@ -19,10 +19,12 @@
+@@ -63,10 +63,12 @@
/* This is a NOEXEC applet. Be very careful! */
#endif
#endif
#endif
-@@ -84,7 +86,11 @@ static int get_groups(const char *userna
+@@ -128,7 +130,11 @@ static int get_groups(const char *userna
/* If the user is a member of more than
* *n groups, then -1 is returned. Otherwise >= 0.
* (and no defined way of detecting errors?!) */
+#endif
/* I guess *n < 0 might indicate error. Anyway,
* malloc'ing -1 bytes won't be good, so: */
- //if (*n < 0)
-@@ -156,6 +162,7 @@ int id_main(int argc UNUSED_PARAM, char
+ if (*n < 0)
+@@ -210,6 +216,7 @@ int id_main(int argc UNUSED_PARAM, char
if (egid != rgid)
status |= print_group(egid, " ");
}
/* We are supplying largish buffer, trying
* to not run get_groups() twice. That might be slow
* ("user database in remote SQL server" case) */
-@@ -183,6 +190,7 @@ int id_main(int argc UNUSED_PARAM, char
+@@ -236,6 +243,7 @@ int id_main(int argc UNUSED_PARAM, char
}
if (ENABLE_FEATURE_CLEAN_UP)
free(groups);
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
-@@ -313,6 +313,7 @@ make_new_session(
+@@ -330,6 +330,7 @@ make_new_session(
/* Restore default signal handling ASAP */
bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);
+ signal(SIGINT, SIG_DFL);
- if (ENABLE_FEATURE_UTMP) {
- len_and_sockaddr *lsa = get_peer_lsa(sock);
+ pid = getpid();
+
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
-@@ -133,7 +133,7 @@ int insmod_main(int argc, char **argv) M
+@@ -139,7 +139,7 @@ int insmod_main(int argc, char **argv) M
int insmod_main(int argc UNUSED_PARAM, char **argv)
{
char *filename;
/* Compat note:
* 2.6 style insmod has no options and required filename
-@@ -143,10 +143,8 @@ int insmod_main(int argc UNUSED_PARAM, c
+@@ -149,10 +149,8 @@ int insmod_main(int argc UNUSED_PARAM, c
* or in $MODPATH.
*/
filename = *++argv;
if (!filename)
-@@ -157,7 +155,7 @@ int insmod_main(int argc UNUSED_PARAM, c
- goto done;
+@@ -163,7 +161,7 @@ int insmod_main(int argc UNUSED_PARAM, c
+ goto done;
- rc = bb_init_module(g_filename, parse_cmdline_module_options(argv));
+ rc = bb_init_module(g_filename, parse_cmdline_module_options(argv, /*quote_spaces:*/ 0));
- if (rc)
+ if (rc && !(opt & INSMOD_OPT_SILENT))
bb_error_msg("can't insert '%s': %s", filename, moderror(rc));