busybox: update to v1.12.4 (partially closes: #4279)

SVN-Revision: 16053
This commit is contained in:
Nicolas Thill 2009-05-25 13:52:31 +00:00
parent 9e9ac96aeb
commit 9a16485900
40 changed files with 542 additions and 472 deletions

View file

@ -1,4 +1,4 @@
# #
# Copyright (C) 2006-2009 OpenWrt.org # Copyright (C) 2006-2009 OpenWrt.org
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=busybox PKG_NAME:=busybox
PKG_VERSION:=1.11.3 PKG_VERSION:=1.12.4
PKG_RELEASE:=6 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \ PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/ http://distfiles.gentoo.org/distfiles/
PKG_MD5SUM:=4355ad8bb57ce3b39ad827566c1a6da3 PKG_MD5SUM:=5b8c427bf596732d6b6156672e6e093f
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View file

@ -20,6 +20,15 @@ config BUSYBOX_CONFIG_DESKTOP
Select this only if you plan to use busybox on full-blown Select this only if you plan to use busybox on full-blown
desktop machine with common Linux distro, not on an embedded box. desktop machine with common Linux distro, not on an embedded box.
config BUSYBOX_CONFIG_EXTRA_COMPAT
bool "Provide compatible behavior for rare corner cases (bigger code)"
default n
help
This option makes grep, sed etc handle rare corner cases
(embedded NUL bytes and such). This makes code bigger and uses
some GNU extensions in libc. You probably only need this option
if you plan to run busybox on desktop.
config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
bool "Assume that 1:1 char/glyph correspondence is not true" bool "Assume that 1:1 char/glyph correspondence is not true"
default n default n
@ -39,7 +48,7 @@ choice
There are 3 ways BusyBox can handle buffer allocations: There are 3 ways BusyBox can handle buffer allocations:
- Use malloc. This costs code size for the call to xmalloc. - Use malloc. This costs code size for the call to xmalloc.
- Put them on stack. For some very small machines with limited stack - Put them on stack. For some very small machines with limited stack
space, this can be deadly. For most folks, this works just fine. space, this can be deadly. For most folks, this works just fine.
- Put them in BSS. This works beautifully for computers with a real - Put them in BSS. This works beautifully for computers with a real
MMU (and OS support), but wastes runtime RAM for uCLinux. This MMU (and OS support), but wastes runtime RAM for uCLinux. This
behavior was the only one available for BusyBox versions 0.48 and behavior was the only one available for BusyBox versions 0.48 and
@ -71,8 +80,8 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
select BUSYBOX_CONFIG_SHOW_USAGE select BUSYBOX_CONFIG_SHOW_USAGE
help help
All BusyBox applets will show more verbose help messages when All BusyBox applets will show more verbose help messages when
busybox is invoked with --help. This will add a lot of text to the busybox is invoked with --help. This will add a lot of text to the
busybox binary. In the default configuration, this will add about busybox binary. In the default configuration, this will add about
13k, but it can add much more depending on your configuration. 13k, but it can add much more depending on your configuration.
config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
@ -85,15 +94,15 @@ config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
If you have a really tiny busybox with few applets enabled (and If you have a really tiny busybox with few applets enabled (and
bunzip2 isn't one of them), the overhead of the decompressor might bunzip2 isn't one of them), the overhead of the decompressor might
be noticeable. Also, if you run executables directly from ROM be noticeable. Also, if you run executables directly from ROM
and have very little memory, this might not be a win. Otherwise, and have very little memory, this might not be a win. Otherwise,
you probably want this. you probably want this.
config BUSYBOX_CONFIG_FEATURE_INSTALLER config BUSYBOX_CONFIG_FEATURE_INSTALLER
bool "Support --install [-s] to install applet links at runtime" bool "Support --install [-s] to install applet links at runtime"
default n default n
help help
Enable 'busybox --install [-s]' support. This will allow you to use Enable 'busybox --install [-s]' support. This will allow you to use
busybox at runtime to create hard links or symlinks for all the busybox at runtime to create hard links or symlinks for all the
applets that are compiled into busybox. applets that are compiled into busybox.
@ -117,7 +126,7 @@ config BUSYBOX_CONFIG_FEATURE_DEVPTS
help help
Enable if you want BusyBox to use Unix98 PTY support. If enabled, Enable if you want BusyBox to use Unix98 PTY support. If enabled,
busybox will use /dev/ptmx for the master side of the pseudoterminal busybox will use /dev/ptmx for the master side of the pseudoterminal
and /dev/pts/<number> for the slave side. Otherwise, BSD style and /dev/pts/<number> for the slave side. Otherwise, BSD style
/dev/ttyp<number> will be used. To use this option, you should have /dev/ttyp<number> will be used. To use this option, you should have
devpts mounted. devpts mounted.
@ -126,7 +135,7 @@ config BUSYBOX_CONFIG_FEATURE_CLEAN_UP
default n default n
help help
As a size optimization, busybox normally exits without explicitly As a size optimization, busybox normally exits without explicitly
freeing dynamically allocated memory or closing files. This saves freeing dynamically allocated memory or closing files. This saves
space since the OS will clean up for us, but it can confuse debuggers space since the OS will clean up for us, but it can confuse debuggers
like valgrind, which report tons of memory and resource leaks. like valgrind, which report tons of memory and resource leaks.
@ -151,7 +160,7 @@ config BUSYBOX_CONFIG_FEATURE_SUID
If you're really paranoid and don't want to do this, build two If you're really paranoid and don't want to do this, build two
busybox binaries with different applets in them (and the appropriate busybox binaries with different applets in them (and the appropriate
symlinks pointing to each binary), and only set the suid bit on the 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 one that needs it. The applets currently marked to need the suid bit
are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs, are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
and vlock. and vlock.
@ -161,7 +170,7 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
depends on BUSYBOX_CONFIG_FEATURE_SUID depends on BUSYBOX_CONFIG_FEATURE_SUID
help help
Allow the SUID / SGID state of an applet to be determined at runtime 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.) by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
The format of this file is as follows: The format of this file is as follows:
<applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>) <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
@ -169,11 +178,12 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
An example might help: An example might help:
[SUID] [SUID]
su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0 su = ssx root.0 # applet su can be run by anyone and runs with
# euid=0/egid=0
su = ssx # exactly the same su = ssx # exactly the same
mount = sx- root.disk # applet mount can be run by root and members of group disk mount = sx- root.disk # applet mount can be run by root and members
# and runs with euid=0 # of group disk and runs with euid=0
cp = --- # disable applet cp for everyone cp = --- # disable applet cp for everyone
@ -192,14 +202,15 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
default n default n
depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
help help
/etc/busybox.conf should be readable by the user needing the SUID, check /etc/busybox.conf should be readable by the user needing the SUID,
this option to avoid users to be notified about missing permissions. check this option to avoid users to be notified about missing
permissions.
config BUSYBOX_CONFIG_SELINUX config BUSYBOX_CONFIG_SELINUX
bool "Support NSA Security Enhanced Linux" bool "Support NSA Security Enhanced Linux"
default n default n
help help
Enable support for SELinux in applets ls, ps, and id. Also provide Enable support for SELinux in applets ls, ps, and id. Also provide
the option of compiling in SELinux applets. the option of compiling in SELinux applets.
If you do not have a complete SELinux userland installed, this stuff If you do not have a complete SELinux userland installed, this stuff
@ -234,9 +245,9 @@ config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH
default "/proc/self/exe" default "/proc/self/exe"
help help
When Busybox applets need to run other busybox applets, BusyBox When Busybox applets need to run other busybox applets, BusyBox
sometimes needs to exec() itself. When the /proc filesystem is sometimes needs to exec() itself. When the /proc filesystem is
mounted, /proc/self/exe always points to the currently running mounted, /proc/self/exe always points to the currently running
executable. If you haven't got /proc, set this to wherever you executable. If you haven't got /proc, set this to wherever you
want to run BusyBox from. want to run BusyBox from.
# These are auto-selected by other options # These are auto-selected by other options
@ -303,7 +314,7 @@ config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
busybox code. busybox code.
This feature allows every applet to be built as a tiny This feature allows every applet to be built as a tiny
separate executable. Enabling it for "one big busybox binary" separate executable. Enabling it for "one big busybox binary"
approach serves no purpose and increases code size. approach serves no purpose and increases code size.
You should almost certainly say "no" to this. You should almost certainly say "no" to this.
@ -320,7 +331,7 @@ config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
### standalone application which uses libbusybox say 'Y'. ### standalone application which uses libbusybox say 'Y'.
### ###
### Note: libbusybox is GPL, not LGPL, and exports no stable API that ### Note: libbusybox is GPL, not LGPL, and exports no stable API that
### might act as a copyright barrier. We can and will modify the ### might act as a copyright barrier. We can and will modify the
### exported function set between releases (even minor version number ### exported function set between releases (even minor version number
### changes), and happily break out-of-tree features. ### changes), and happily break out-of-tree features.
### ###
@ -329,7 +340,7 @@ config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
bool "Produce a binary for each applet, linked against libbusybox" bool "Produce a binary for each applet, linked against libbusybox"
default n default n
depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
help help
If your CPU architecture doesn't allow for sharing text/rodata If your CPU architecture doesn't allow for sharing text/rodata
sections of running binaries, but allows for runtime dynamic sections of running binaries, but allows for runtime dynamic
@ -347,7 +358,7 @@ config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
bool "Produce additional busybox binary linked against libbusybox" bool "Produce additional busybox binary linked against libbusybox"
default n default n
depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
help help
Build busybox, dynamically linked against libbusybox.so.N.N.N. Build busybox, dynamically linked against libbusybox.so.N.N.N.
@ -378,11 +389,11 @@ config BUSYBOX_CONFIG_LFS
select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
help help
If you want to build BusyBox with large file support, then enable 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 this option. This will have no effect if your kernel or your C
library lacks large file support for large files. Some of the library lacks large file support for large files. Some of the
programs that can benefit from large file support include dd, gzip, programs that can benefit from large file support include dd, gzip,
cp, mount, tar, and many others. If you want to access files larger cp, mount, tar, and many others. If you want to access files larger
than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'. than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX
string "Cross Compiler prefix" string "Cross Compiler prefix"
@ -403,20 +414,20 @@ config BUSYBOX_CONFIG_DEBUG
default n default n
help help
Say Y here if you wish to examine BusyBox internals while applets are Say Y here if you wish to examine BusyBox internals while applets are
running. This increases the size of the binary considerably, and running. This increases the size of the binary considerably, and
should only be used when doing development. If you are doing should only be used when doing development. If you are doing
development and want to debug BusyBox, answer Y. development and want to debug BusyBox, answer Y.
Most people should answer N. Most people should answer N.
config BUSYBOX_CONFIG_DEBUG_PESSIMIZE config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
bool "Disable compiler optimizations." bool "Disable compiler optimizations"
default n default n
depends on BUSYBOX_CONFIG_DEBUG depends on BUSYBOX_CONFIG_DEBUG
help help
The compiler's optimization of source code can eliminate and reorder The compiler's optimization of source code can eliminate and reorder
code, resulting in an executable that's hard to understand when code, resulting in an executable that's hard to understand when
stepping through it with a debugger. This switches it off, resulting stepping through it with a debugger. This switches it off, resulting
in a much bigger executable that more closely matches the source in a much bigger executable that more closely matches the source
code. code.
@ -433,27 +444,28 @@ choice
default BUSYBOX_CONFIG_NO_DEBUG_LIB default BUSYBOX_CONFIG_NO_DEBUG_LIB
help help
Using an additional debugging library will make BusyBox become Using an additional debugging library will make BusyBox become
considerable larger and will cause it to run more slowly. You considerable larger and will cause it to run more slowly. You
should always leave this option disabled for production use. should always leave this option disabled for production use.
dmalloc support: dmalloc support:
---------------- ----------------
This enables compiling with dmalloc ( http://dmalloc.com/ ) This enables compiling with dmalloc ( http://dmalloc.com/ )
which is an excellent public domain mem leak and malloc problem which is an excellent public domain mem leak and malloc problem
detector. To enable dmalloc, before running busybox you will detector. To enable dmalloc, before running busybox you will
want to properly set your environment, for example: want to properly set your environment, for example:
export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
The 'debug=' value is generated using the following command The 'debug=' value is generated using the following command
dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ dmalloc -p log-stats -p log-non-free -p log-bad-space \
-p check-fence -p check-heap -p check-lists -p check-blank \ -p log-elapsed-time -p check-fence -p check-heap \
-p check-funcs -p realloc-copy -p allow-free-null -p check-lists -p check-blank -p check-funcs -p realloc-copy \
-p allow-free-null
Electric-fence support: Electric-fence support:
----------------------- -----------------------
This enables compiling with Electric-fence support. Electric This enables compiling with Electric-fence support. Electric
fence is another very useful malloc debugging library which uses fence is another very useful malloc debugging library which uses
your computer's virtual memory hardware to detect illegal memory your computer's virtual memory hardware to detect illegal memory
accesses. This support will make BusyBox be considerable larger accesses. This support will make BusyBox be considerable larger
and run slower, so you should leave this option disabled unless and run slower, so you should leave this option disabled unless
you are hunting a hard to find memory problem. you are hunting a hard to find memory problem.
@ -475,9 +487,12 @@ config BUSYBOX_CONFIG_INCLUDE_SUSv2
help help
This option will enable backwards compatibility with SuSv2, This option will enable backwards compatibility with SuSv2,
specifically, old-style numeric options ('command -1 <file>') specifically, old-style numeric options ('command -1 <file>')
will be supported in head, tail, and fold. (Note: should will be supported in head, tail, and fold. (Note: should
affect renice too.) affect renice too.)
config BUSYBOX_CONFIG_PARSE
bool "Uniform config file parser debugging applet: parse"
endmenu endmenu
menu 'Installation Options' menu 'Installation Options'
@ -505,8 +520,8 @@ config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
bool "as hard-links" bool "as hard-links"
help help
Install applets as hard-links to the busybox binary. This might count Install applets as hard-links to the busybox binary. This might
on a filesystem with few inodes. count on a filesystem with few inodes.
config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
bool "as script wrappers" bool "as script wrappers"
@ -542,7 +557,8 @@ config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
bool "as script wrapper" bool "as script wrapper"
help help
Install /bin/sh applet as script wrapper that call the busybox binary. Install /bin/sh applet as script wrapper that call the busybox
binary.
endchoice endchoice

View file

@ -5,12 +5,36 @@
menu "Archival Utilities" menu "Archival Utilities"
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
bool "Make tar, rpm, modprobe etc understand .lzma data"
default n
help
Make tar, rpm, modprobe etc understand .lzma data.
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2
bool "Make tar, rpm, modprobe etc understand .bz2 data"
default y
help
Make tar, rpm, modprobe etc understand .bz2 data.
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ
bool "Make tar, rpm, modprobe etc understand .gz data"
default y
help
Make tar, rpm, modprobe etc understand .gz data.
config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z
bool "Make tar and gunzip understand .Z data"
default n
help
Make tar and gunzip understand .Z data.
config BUSYBOX_CONFIG_AR config BUSYBOX_CONFIG_AR
bool "ar" bool "ar"
default n default n
help help
ar is an archival utility program used to create, modify, and ar is an archival utility program used to create, modify, and
extract contents from archives. An archive is a single file holding extract contents from archives. An archive is a single file holding
a collection of other files in a structure that makes it possible to a collection of other files in a structure that makes it possible to
retrieve the original individual files (called archive members). retrieve the original individual files (called archive members).
The original files' contents, mode (permissions), timestamp, owner, The original files' contents, mode (permissions), timestamp, owner,
@ -33,8 +57,8 @@ config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES
default n default n
depends on BUSYBOX_CONFIG_AR depends on BUSYBOX_CONFIG_AR
help help
By default the ar format can only store the first 15 characters of the By default the ar format can only store the first 15 characters of
filename, this option removes that limitation. the filename, this option removes that limitation.
It supports the GNU ar long filename method which moves multiple long It supports the GNU ar long filename method which moves multiple long
filenames into a the data section of a new ar entry. filenames into a the data section of a new ar entry.
@ -43,7 +67,7 @@ config BUSYBOX_CONFIG_BUNZIP2
default y default y
help help
bunzip2 is a compression utility using the Burrows-Wheeler block bunzip2 is a compression utility using the Burrows-Wheeler block
sorting text compression algorithm, and Huffman coding. Compression sorting text compression algorithm, and Huffman coding. Compression
is generally considerably better than that achieved by more is generally considerably better than that achieved by more
conventional LZ77/LZ78-based compressors, and approaches the conventional LZ77/LZ78-based compressors, and approaches the
performance of the PPM family of statistical compressors. performance of the PPM family of statistical compressors.
@ -53,10 +77,10 @@ config BUSYBOX_CONFIG_BUNZIP2
config BUSYBOX_CONFIG_BZIP2 config BUSYBOX_CONFIG_BZIP2
bool "bzip2" bool "bzip2"
default n default y
help help
bzip2 is a compression utility using the Burrows-Wheeler block bzip2 is a compression utility using the Burrows-Wheeler block
sorting text compression algorithm, and Huffman coding. Compression sorting text compression algorithm, and Huffman coding. Compression
is generally considerably better than that achieved by more is generally considerably better than that achieved by more
conventional LZ77/LZ78-based compressors, and approaches the conventional LZ77/LZ78-based compressors, and approaches the
performance of the PPM family of statistical compressors. performance of the PPM family of statistical compressors.
@ -68,15 +92,15 @@ config BUSYBOX_CONFIG_CPIO
bool "cpio" bool "cpio"
default n default n
help help
cpio is an archival utility program used to create, modify, and extract cpio is an archival utility program used to create, modify, and
contents from archives. extract contents from archives.
cpio has 110 bytes of overheads for every stored file. cpio has 110 bytes of overheads for every stored file.
This implementation of cpio can extract cpio archives created in the This implementation of cpio can extract cpio archives created in the
"newc" or "crc" format, it cannot create or modify them. "newc" or "crc" format, it cannot create or modify them.
Unless you have a specific application which requires cpio, you should Unless you have a specific application which requires cpio, you
probably say N here. should probably say N here.
config BUSYBOX_CONFIG_FEATURE_CPIO_O config BUSYBOX_CONFIG_FEATURE_CPIO_O
bool "Support for archive creation" bool "Support for archive creation"
@ -90,30 +114,33 @@ config BUSYBOX_CONFIG_DPKG
bool "dpkg" bool "dpkg"
default n default n
help help
dpkg is a medium-level tool to install, build, remove and manage Debian packages. dpkg is a medium-level tool to install, build, remove and manage
Debian packages.
This implementation of dpkg has a number of limitations, you should use the This implementation of dpkg has a number of limitations,
official dpkg if possible. you should use the official dpkg if possible.
config BUSYBOX_CONFIG_DPKG_DEB config BUSYBOX_CONFIG_DPKG_DEB
bool "dpkg_deb" bool "dpkg_deb"
default n default n
help help
dpkg-deb packs, unpacks and provides information about Debian archives. dpkg-deb packs, unpacks and provides information about Debian
archives.
This implementation of dpkg-deb cannot pack archives. This implementation of dpkg-deb cannot pack archives.
Unless you have a specific application which requires dpkg-deb, you should Unless you have a specific application which requires dpkg-deb,
probably say N here. say N here.
config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
bool "Extract only (-x)" bool "Extract only (-x)"
default n default n
depends on BUSYBOX_CONFIG_DPKG_DEB depends on BUSYBOX_CONFIG_DPKG_DEB
help help
This reduces dpkg-deb to the equivalent of "ar -p <deb> data.tar.gz | tar -zx". This reduces dpkg-deb to the equivalent of
However it saves space as none of the extra dpkg-deb, ar or tar options are "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
needed, they are linked to internally. of the extra dpkg-deb, ar or tar options are needed, they are linked
to internally.
config BUSYBOX_CONFIG_GUNZIP config BUSYBOX_CONFIG_GUNZIP
bool "gunzip" bool "gunzip"
@ -123,15 +150,6 @@ config BUSYBOX_CONFIG_GUNZIP
You can use the `-t' option to test the integrity of You can use the `-t' option to test the integrity of
an archive, without decompressing it. an archive, without decompressing it.
config BUSYBOX_CONFIG_FEATURE_GUNZIP_UNCOMPRESS
bool "Uncompress support"
default y
depends on BUSYBOX_CONFIG_GUNZIP
help
Enable if you want gunzip to have the ability to decompress
archives created by the program compress (not much
used anymore).
config BUSYBOX_CONFIG_GZIP config BUSYBOX_CONFIG_GZIP
bool "gzip" bool "gzip"
default y default y
@ -151,13 +169,6 @@ config BUSYBOX_CONFIG_RPM
help help
Mini RPM applet - queries and extracts RPM packages. Mini RPM applet - queries and extracts RPM packages.
config BUSYBOX_CONFIG_FEATURE_RPM_BZ2
bool "Enable handling of rpms with bzip2-compressed data inside"
default n
depends on BUSYBOX_CONFIG_RPM
help
Enable handling of rpms with bzip2-compressed data inside.
config BUSYBOX_CONFIG_TAR config BUSYBOX_CONFIG_TAR
bool "tar" bool "tar"
default y default y
@ -166,6 +177,8 @@ config BUSYBOX_CONFIG_TAR
create compressed archives. It's probably the most widely used create compressed archives. It's probably the most widely used
UNIX archive program. UNIX archive program.
if TAR
config BUSYBOX_CONFIG_FEATURE_TAR_CREATE config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
bool "Enable archive creation" bool "Enable archive creation"
default y default y
@ -174,45 +187,13 @@ config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
If you enable this option you'll be able to create If you enable this option you'll be able to create
tar archives using the `-c' option. tar archives using the `-c' option.
config BUSYBOX_CONFIG_FEATURE_TAR_GZIP
bool "Enable -z option"
default y
depends on BUSYBOX_CONFIG_TAR
help
If you enable this option tar will be able to call gzip,
when creating or extracting tar gziped archives.
config BUSYBOX_CONFIG_FEATURE_TAR_BZIP2
bool "Enable -j option to handle .tar.bz2 files"
default y
depends on BUSYBOX_CONFIG_TAR
help
If you enable this option you'll be able to extract
archives compressed with bzip2.
config BUSYBOX_CONFIG_FEATURE_TAR_LZMA
bool "Enable -a option to handle .tar.lzma files"
default n
depends on BUSYBOX_CONFIG_TAR
help
If you enable this option you'll be able to extract
archives compressed with lzma.
config BUSYBOX_CONFIG_FEATURE_TAR_COMPRESS
bool "Enable -Z option"
default n
depends on BUSYBOX_CONFIG_TAR
help
If you enable this option tar will be able to call uncompress,
when extracting .tar.Z archives.
config BUSYBOX_CONFIG_FEATURE_TAR_AUTODETECT config BUSYBOX_CONFIG_FEATURE_TAR_AUTODETECT
bool "Let tar autodetect gz/bz2 compresses tarballs" bool "Autodetect gz/bz2 compressed tarballs"
default n default n
depends on BUSYBOX_CONFIG_FEATURE_TAR_GZIP || BUSYBOX_CONFIG_FEATURE_TAR_BZIP2 depends on BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z || BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ || BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2 || BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
help help
With this option tar can automatically detect gzip/bzip2 compressed With this option tar can automatically detect gzip/bzip2 compressed
tarballs. Currently it works only on seekable streams. tarballs. Currently it works only on files (not pipes etc).
config BUSYBOX_CONFIG_FEATURE_TAR_FROM config BUSYBOX_CONFIG_FEATURE_TAR_FROM
bool "Enable -X (exclude from) and -T (include from) options)" bool "Enable -X (exclude from) and -T (include from) options)"
@ -237,8 +218,9 @@ config BUSYBOX_CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
depends on BUSYBOX_CONFIG_TAR depends on BUSYBOX_CONFIG_TAR
help help
This option is required to unpack archives created by some old This option is required to unpack archives created by some old
version of Sun's tar (it was calculating checksum using signed arithmetic). version of Sun's tar (it was calculating checksum using signed
It is said to be fixed in newer Sun tar, but "old" tarballs still exist. arithmetic). It is said to be fixed in newer Sun tar, but "old"
tarballs still exist.
config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS
bool "Support for GNU tar extensions (long filenames)" bool "Support for GNU tar extensions (long filenames)"
@ -264,6 +246,8 @@ config BUSYBOX_CONFIG_FEATURE_TAR_UNAME_GNAME
listings (-t) and preserving permissions when unpacking (-p). listings (-t) and preserving permissions when unpacking (-p).
+200 bytes. +200 bytes.
endif #tar
config BUSYBOX_CONFIG_UNCOMPRESS config BUSYBOX_CONFIG_UNCOMPRESS
bool "uncompress" bool "uncompress"
default n default n
@ -276,7 +260,7 @@ config BUSYBOX_CONFIG_UNLZMA
default n default n
help help
unlzma is a compression utility using the Lempel-Ziv-Markov chain unlzma is a compression utility using the Lempel-Ziv-Markov chain
compression algorithm, and range coding. Compression compression algorithm, and range coding. Compression
is generally considerably better than that achieved by the bzip2 is generally considerably better than that achieved by the bzip2
compressors. compressors.
@ -304,41 +288,4 @@ config BUSYBOX_CONFIG_UNZIP
current directory. Use the `-d' option to extract to a current directory. Use the `-d' option to extract to a
directory of your choice. directory of your choice.
comment "Common options for cpio and tar"
depends on BUSYBOX_CONFIG_CPIO || BUSYBOX_CONFIG_TAR
comment "Common options for dpkg and dpkg_deb"
depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB
config BUSYBOX_CONFIG_FEATURE_DEB_TAR_GZ
bool "gzip debian packages (normal)"
default n if BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB
depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB
help
This is the default compression method inside the debian ar file.
If you want compatibility with standard .deb's you should say yes here.
config BUSYBOX_CONFIG_FEATURE_DEB_TAR_BZ2
bool "bzip2 debian packages"
default n
depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB
help
This allows dpkg and dpkg-deb to extract deb's that are compressed internally
with bzip2 instead of gzip.
You only want this if you are creating your own custom debian packages that
use an internal control.tar.bz2 or data.tar.bz2.
config BUSYBOX_CONFIG_FEATURE_DEB_TAR_LZMA
bool "lzma debian packages"
default n
depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB
help
This allows dpkg and dpkg-deb to extract deb's that are compressed
internally with lzma instead of gzip.
You only want this if you are creating your own custom debian
packages that use an internal control.tar.lzma or data.tar.lzma.
endmenu endmenu

View file

@ -95,6 +95,12 @@ config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
help help
Support long options for the setconsole applet. Support long options for the setconsole applet.
config BUSYBOX_CONFIG_SETFONT
bool "setfont"
default n
help
Allows to load console screen map. Useful for i18n.
config BUSYBOX_CONFIG_SETKEYCODES config BUSYBOX_CONFIG_SETKEYCODES
bool "setkeycodes" bool "setkeycodes"
default n default n
@ -108,4 +114,10 @@ config BUSYBOX_CONFIG_SETLOGCONS
help help
This program redirects the output console of kernel messages. This program redirects the output console of kernel messages.
config BUSYBOX_CONFIG_SHOWKEY
bool "showkey"
default n
help
Shows keys pressed.
endmenu endmenu

View file

@ -10,7 +10,7 @@ config BUSYBOX_CONFIG_BASENAME
default y default y
help help
basename is used to strip the directory and suffix from filenames, basename is used to strip the directory and suffix from filenames,
leaving just the filename itself. Enable this option if you wish leaving just the filename itself. Enable this option if you wish
to enable the 'basename' utility. to enable the 'basename' utility.
config BUSYBOX_CONFIG_CAL config BUSYBOX_CONFIG_CAL
@ -24,7 +24,7 @@ config BUSYBOX_CONFIG_CAT
default y default y
help help
cat is used to concatenate files and print them to the standard cat is used to concatenate files and print them to the standard
output. Enable this option if you wish to enable the 'cat' utility. output. Enable this option if you wish to enable the 'cat' utility.
config BUSYBOX_CONFIG_CATV config BUSYBOX_CONFIG_CATV
bool "catv" bool "catv"
@ -117,7 +117,8 @@ config BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
print to standard error the number of records read and written print to standard error the number of records read and written
so far, then to resume copying. so far, then to resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid $ dd if=/dev/zero of=/dev/null&
$ pid=$! kill -USR1 $pid; sleep 1; kill $pid
10899206+0 records in 10899206+0 records out 10899206+0 records in 10899206+0 records out
config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS
@ -232,7 +233,7 @@ config BUSYBOX_CONFIG_EXPR_MATH_SUPPORT_64
default n default n
depends on BUSYBOX_CONFIG_EXPR depends on BUSYBOX_CONFIG_EXPR
help help
Enable 64-bit math support in the expr applet. This will make Enable 64-bit math support in the expr applet. This will make
the applet slightly larger, but will allow computation with very the applet slightly larger, but will allow computation with very
large numbers. large numbers.
@ -509,18 +510,33 @@ config BUSYBOX_CONFIG_SHA1SUM
Compute and check SHA1 message digest Compute and check SHA1 message digest
config BUSYBOX_CONFIG_SLEEP config BUSYBOX_CONFIG_SLEEP
bool "sleep (single integer arg with no suffix)" bool "sleep"
default y default y
help help
sleep is used to pause for a specified number of seconds, sleep is used to pause for a specified number of seconds.
It comes in 3 versions:
- small: takes one integer parameter
- fancy: takes multiple integer arguments with suffixes:
sleep 1d 2h 3m 15s
- fancy with fractional numbers:
sleep 2.3s 4.5h sleeps for 16202.3 seconds
Last one is "the most compatible" with coreutils sleep,
but it adds around 1k of code.
config BUSYBOX_CONFIG_FEATURE_FANCY_SLEEP config BUSYBOX_CONFIG_FEATURE_FANCY_SLEEP
bool "Enable multiple integer args and optional time suffixes" bool "Enable multiple arguments and s/m/h/d suffixes"
default y default y
depends on BUSYBOX_CONFIG_SLEEP depends on BUSYBOX_CONFIG_SLEEP
help help
Allow sleep to pause for specified minutes, hours, and days. Allow sleep to pause for specified minutes, hours, and days.
config BUSYBOX_CONFIG_FEATURE_FLOAT_SLEEP
bool "Enable fractional arguments"
default n
depends on BUSYBOX_CONFIG_FEATURE_FANCY_SLEEP
help
Allow for fractional numeric parameters.
config BUSYBOX_CONFIG_SORT config BUSYBOX_CONFIG_SORT
bool "sort" bool "sort"
default y default y
@ -532,9 +548,9 @@ config BUSYBOX_CONFIG_FEATURE_SORT_BIG
default n default n
depends on BUSYBOX_CONFIG_SORT depends on BUSYBOX_CONFIG_SORT
help help
Without this, sort only supports -r, -u, and an integer version Without this, sort only supports -r, -u, and an integer version
of -n. Selecting this adds sort keys, floating point support, and of -n. Selecting this adds sort keys, floating point support, and
more. This adds a little over 3k to a nonstatic build on x86. more. This adds a little over 3k to a nonstatic build on x86.
The SuSv3 sort standard is available at: The SuSv3 sort standard is available at:
http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
@ -566,7 +582,7 @@ config BUSYBOX_CONFIG_FEATURE_STAT_FORMAT
depends on BUSYBOX_CONFIG_STAT depends on BUSYBOX_CONFIG_STAT
help help
Without this, stat will not support the '-c format' option where Without this, stat will not support the '-c format' option where
users can pass a custom format string for output. This adds about users can pass a custom format string for output. This adds about
7k to a nonstatic build on amd64. 7k to a nonstatic build on amd64.
config BUSYBOX_CONFIG_STTY config BUSYBOX_CONFIG_STTY
@ -627,7 +643,7 @@ config BUSYBOX_CONFIG_TEST
default y default y
help help
test is used to check file types and compare values, test is used to check file types and compare values,
returning an appropriate exit code. The bash shell returning an appropriate exit code. The bash shell
has test built in, ash can build it in optionally. has test built in, ash can build it in optionally.
config BUSYBOX_CONFIG_FEATURE_TEST_64 config BUSYBOX_CONFIG_FEATURE_TEST_64
@ -738,7 +754,7 @@ config BUSYBOX_CONFIG_FEATURE_WC_LARGE
default n default n
depends on BUSYBOX_CONFIG_WC depends on BUSYBOX_CONFIG_WC
help help
Use "unsigned long long" in wc for count variables Use "unsigned long long" in wc for count variables.
config BUSYBOX_CONFIG_WHO config BUSYBOX_CONFIG_WHO
bool "who" bool "who"

View file

@ -26,8 +26,8 @@ config BUSYBOX_CONFIG_RUN_PARTS
It is useful to set up a directory like cron.daily, where you need to It is useful to set up a directory like cron.daily, where you need to
execute all the scripts in that directory. execute all the scripts in that directory.
In this implementation of run-parts some features (such as report mode) In this implementation of run-parts some features (such as report
are not implemented. mode) are not implemented.
Unless you know that run-parts is used in some of your scripts Unless you know that run-parts is used in some of your scripts
you can safely say N here. you can safely say N here.

View file

@ -38,7 +38,7 @@ config BUSYBOX_CONFIG_LSATTR
### bool "mke2fs" ### bool "mke2fs"
### default n ### default n
### help ### help
### mke2fs is used to create an ext2/ext3 filesystem. The normal compat ### mke2fs is used to create an ext2/ext3 filesystem. The normal compat
### symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided. ### symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
### config TUNE2FS ### config TUNE2FS

View file

@ -38,7 +38,7 @@ config BUSYBOX_CONFIG_MKE2FS
bool "mke2fs" bool "mke2fs"
default n default n
help help
mke2fs is used to create an ext2/ext3 filesystem. The normal compat mke2fs is used to create an ext2/ext3 filesystem. The normal compat
symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided. symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
config BUSYBOX_CONFIG_TUNE2FS config BUSYBOX_CONFIG_TUNE2FS

View file

@ -9,7 +9,7 @@ config BUSYBOX_CONFIG_AWK
bool "awk" bool "awk"
default y default y
help help
Awk is used as a pattern scanning and processing language. This is Awk is used as a pattern scanning and processing language. This is
the BusyBox implementation of that programming language. the BusyBox implementation of that programming language.
config BUSYBOX_CONFIG_FEATURE_AWK_MATH config BUSYBOX_CONFIG_FEATURE_AWK_MATH
@ -64,7 +64,7 @@ config BUSYBOX_CONFIG_ED
default n default n
help help
The original 1970's Unix text editor, from the days of teletypes. The original 1970's Unix text editor, from the days of teletypes.
Small, simple, evil. Part of SUSv3. If you're not already using Small, simple, evil. Part of SUSv3. If you're not already using
this, you don't need it. this, you don't need it.
config BUSYBOX_CONFIG_PATCH config BUSYBOX_CONFIG_PATCH
@ -84,9 +84,9 @@ config BUSYBOX_CONFIG_VI
bool "vi" bool "vi"
default y default y
help help
'vi' is a text editor. More specifically, it is the One True 'vi' is a text editor. More specifically, it is the One True
text editor <grin>. It does, however, have a rather steep text editor <grin>. It does, however, have a rather steep
learning curve. If you are not already comfortable with 'vi' learning curve. If you are not already comfortable with 'vi'
you may wish to use something else. you may wish to use something else.
config BUSYBOX_CONFIG_FEATURE_VI_MAX_LEN config BUSYBOX_CONFIG_FEATURE_VI_MAX_LEN
@ -113,7 +113,7 @@ config BUSYBOX_CONFIG_FEATURE_VI_COLON
default y default y
depends on BUSYBOX_CONFIG_VI depends on BUSYBOX_CONFIG_VI
help help
Enable a limited set of colon commands for vi. This does not Enable a limited set of colon commands for vi. This does not
provide an "ex" mode. provide an "ex" mode.
config BUSYBOX_CONFIG_FEATURE_VI_YANKMARK config BUSYBOX_CONFIG_FEATURE_VI_YANKMARK
@ -137,7 +137,7 @@ config BUSYBOX_CONFIG_FEATURE_VI_USE_SIGNALS
default y default y
depends on BUSYBOX_CONFIG_VI depends on BUSYBOX_CONFIG_VI
help help
Selecting this option will make busybox vi signal aware. This will Selecting this option will make busybox vi signal aware. This will
make busybox vi support SIGWINCH to deal with Window Changes, catch make busybox vi support SIGWINCH to deal with Window Changes, catch
Ctrl-Z and Ctrl-C and alarms. Ctrl-Z and Ctrl-C and alarms.

View file

@ -17,7 +17,7 @@ config BUSYBOX_CONFIG_FEATURE_FIND_PRINT0
depends on BUSYBOX_CONFIG_FIND depends on BUSYBOX_CONFIG_FIND
help help
Causes output names to be separated by a null character Causes output names to be separated by a null character
rather than a newline. This allows names that contain rather than a newline. This allows names that contain
newlines and other whitespace to be more easily newlines and other whitespace to be more easily
interpreted by other programs. interpreted by other programs.
@ -182,7 +182,7 @@ config BUSYBOX_CONFIG_FEATURE_GREP_EGREP_ALIAS
default y default y
depends on BUSYBOX_CONFIG_GREP depends on BUSYBOX_CONFIG_GREP
help help
Enabled support for extended regular expressions. Extended Enabled support for extended regular expressions. Extended
regular expressions allow for alternation (foo|bar), grouping, regular expressions allow for alternation (foo|bar), grouping,
and various repetition operators. and various repetition operators.

View file

@ -80,7 +80,7 @@ config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS
help help
If this option is enabled and the file /.init_enable_core If this option is enabled and the file /.init_enable_core
exists, then init will call setrlimit() to allow unlimited exists, then init will call setrlimit() to allow unlimited
core file sizes. If this option is disabled, processes core file sizes. If this option is disabled, processes
will not generate any core files. will not generate any core files.
@ -90,7 +90,7 @@ config BUSYBOX_CONFIG_FEATURE_INITRD
default n default n
depends on BUSYBOX_CONFIG_INIT depends on BUSYBOX_CONFIG_INIT
help help
Legacy support for running init under the old-style initrd. Allows Legacy support for running init under the old-style initrd. Allows
the name linuxrc to act as init, and it doesn't assume init is PID 1. the name linuxrc to act as init, and it doesn't assume init is PID 1.
This does not apply to initramfs, which runs /init as PID 1 and This does not apply to initramfs, which runs /init as PID 1 and
@ -106,7 +106,7 @@ config BUSYBOX_CONFIG_MESG
bool "mesg" bool "mesg"
default y default y
help help
Mesg controls access to your terminal by others. It is typically Mesg controls access to your terminal by others. It is typically
used to allow or disallow other users to write to your terminal used to allow or disallow other users to write to your terminal
endmenu endmenu

View file

@ -62,7 +62,7 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_VI
default n default n
depends on BUSYBOX_CONFIG_FEATURE_EDITING depends on BUSYBOX_CONFIG_FEATURE_EDITING
help help
Enable vi-style line editing. In shells, this mode can be Enable vi-style line editing. In shells, this mode can be
turned on and off with "set -o vi" and "set +o vi". turned on and off with "set -o vi" and "set +o vi".
config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY

View file

@ -9,7 +9,7 @@ config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
bool "Support for shadow passwords" bool "Support for shadow passwords"
default n default n
help help
Build support for shadow password in /etc/shadow. This file is only Build support for shadow password in /etc/shadow. This file is only
readable by root and thus the encrypted passwords are no longer readable by root and thus the encrypted passwords are no longer
publicly readable. publicly readable.
@ -18,17 +18,17 @@ config BUSYBOX_CONFIG_USE_BB_PWD_GRP
default n default n
help help
If you leave this disabled, busybox will use the system's password If you leave this disabled, busybox will use the system's password
and group functions. And if you are using the GNU C library and group functions. And if you are using the GNU C library
(glibc), you will then need to install the /etc/nsswitch.conf (glibc), you will then need to install the /etc/nsswitch.conf
configuration file and the required /lib/libnss_* libraries in configuration file and the required /lib/libnss_* libraries in
order for the password and group functions to work. This generally order for the password and group functions to work. This generally
makes your embedded system quite a bit larger. makes your embedded system quite a bit larger.
Enabling this option will cause busybox to directly access the Enabling this option will cause busybox to directly access the
system's /etc/password, /etc/group files (and your system will be system's /etc/password, /etc/group files (and your system will be
smaller, and I will get fewer emails asking about how glibc NSS smaller, and I will get fewer emails asking about how glibc NSS
works). When this option is enabled, you will not be able to use works). When this option is enabled, you will not be able to use
PAM to access remote LDAP password servers and whatnot. And if you PAM to access remote LDAP password servers and whatnot. And if you
want hostname resolution to work with glibc, you still need the want hostname resolution to work with glibc, you still need the
/lib/libnss_* libraries. /lib/libnss_* libraries.
@ -44,16 +44,16 @@ config BUSYBOX_CONFIG_USE_BB_SHADOW
depends on BUSYBOX_CONFIG_USE_BB_PWD_GRP && BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS depends on BUSYBOX_CONFIG_USE_BB_PWD_GRP && BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
help help
If you leave this disabled, busybox will use the system's shadow If you leave this disabled, busybox will use the system's shadow
password handling functions. And if you are using the GNU C library password handling functions. And if you are using the GNU C library
(glibc), you will then need to install the /etc/nsswitch.conf (glibc), you will then need to install the /etc/nsswitch.conf
configuration file and the required /lib/libnss_* libraries in configuration file and the required /lib/libnss_* libraries in
order for the shadow password functions to work. This generally order for the shadow password functions to work. This generally
makes your embedded system quite a bit larger. makes your embedded system quite a bit larger.
Enabling this option will cause busybox to directly access the Enabling this option will cause busybox to directly access the
system's /etc/shadow file when handling shadow passwords. This system's /etc/shadow file when handling shadow passwords. This
makes your system smaller (and I will get fewer emails asking about makes your system smaller (and I will get fewer emails asking about
how glibc NSS works). When this option is enabled, you will not be how glibc NSS works). When this option is enabled, you will not be
able to use PAM to access shadow passwords from remote LDAP able to use PAM to access shadow passwords from remote LDAP
password servers and whatnot. password servers and whatnot.
@ -66,7 +66,7 @@ config BUSYBOX_CONFIG_USE_BB_CRYPT
standard C library functions. standard C library functions.
If you leave this disabled, busybox will use the system's If you leave this disabled, busybox will use the system's
crypt functions. Most C libraries use large (~70k) crypt functions. Most C libraries use large (~70k)
static buffers there, and also combine them with more general static buffers there, and also combine them with more general
DES encryption/decryption. DES encryption/decryption.
@ -101,7 +101,7 @@ config BUSYBOX_CONFIG_DELGROUP
Utility for deleting a group account. Utility for deleting a group account.
config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP
bool "Support for removing users from groups." bool "Support for removing users from groups"
default n default n
depends on BUSYBOX_CONFIG_DELGROUP depends on BUSYBOX_CONFIG_DELGROUP
help help
@ -211,9 +211,9 @@ config BUSYBOX_CONFIG_PASSWD
select BUSYBOX_CONFIG_FEATURE_SUID select BUSYBOX_CONFIG_FEATURE_SUID
select BUSYBOX_CONFIG_FEATURE_SYSLOG select BUSYBOX_CONFIG_FEATURE_SYSLOG
help help
passwd changes passwords for user and group accounts. A normal user passwd changes passwords for user and group accounts. A normal user
may only change the password for his/her own account, the super user may only change the password for his/her own account, the super user
may change the password for any account. The administrator of a group may change the password for any account. The administrator of a group
may change the password for the group. may change the password for the group.
Note that Busybox binary must be setuid root for this applet to Note that Busybox binary must be setuid root for this applet to

View file

@ -101,7 +101,7 @@ config BUSYBOX_CONFIG_CROND
help help
Crond is a background daemon that parses individual crontab Crond is a background daemon that parses individual crontab
files and executes commands on behalf of the users in question. files and executes commands on behalf of the users in question.
This is a port of dcron from slackware. It uses files of the This is a port of dcron from slackware. It uses files of the
format /var/spool/cron/crontabs/<username> files, for example: format /var/spool/cron/crontabs/<username> files, for example:
$ cat /var/spool/cron/crontabs/root $ cat /var/spool/cron/crontabs/root
# Run daily cron jobs at 4:40 every day: # Run daily cron jobs at 4:40 every day:
@ -126,7 +126,7 @@ config BUSYBOX_CONFIG_CRONTAB
default y default y
select BUSYBOX_CONFIG_FEATURE_SUID select BUSYBOX_CONFIG_FEATURE_SUID
help help
Crontab manipulates the crontab for a particular user. Only Crontab manipulates the crontab for a particular user. Only
the superuser may specify a different user and/or crontab directory. the superuser may specify a different user and/or crontab directory.
Note that Busybox binary must be setuid root for this applet to Note that Busybox binary must be setuid root for this applet to
work properly. work properly.
@ -167,8 +167,9 @@ config BUSYBOX_CONFIG_DEVFSD_FG_NP
default n default n
depends on BUSYBOX_CONFIG_DEVFSD depends on BUSYBOX_CONFIG_DEVFSD
help help
-fg Run the daemon in the foreground. -fg Run the daemon in the foreground.
-np Exit after parsing the configuration file. Do not poll for events. -np Exit after parsing the configuration file.
Do not poll for events.
config BUSYBOX_CONFIG_DEVFSD_VERBOSE config BUSYBOX_CONFIG_DEVFSD_VERBOSE
bool "Increases logging (and size)" bool "Increases logging (and size)"
@ -184,14 +185,14 @@ config BUSYBOX_CONFIG_FEATURE_DEVFS
This is obsolete and will be going away at the end of 2008.. This is obsolete and will be going away at the end of 2008..
This tells busybox to look for names like /dev/loop/0 instead of This tells busybox to look for names like /dev/loop/0 instead of
/dev/loop0. If your /dev directory has normal names instead of /dev/loop0. If your /dev directory has normal names instead of
devfs names, you don't want this. devfs names, you don't want this.
config BUSYBOX_CONFIG_EJECT config BUSYBOX_CONFIG_EJECT
bool "eject" bool "eject"
default n default n
help help
Used to eject cdroms. (defaults to /dev/cdrom) Used to eject cdroms. (defaults to /dev/cdrom)
config BUSYBOX_CONFIG_FEATURE_EJECT_SCSI config BUSYBOX_CONFIG_FEATURE_EJECT_SCSI
bool "SCSI support" bool "SCSI support"
@ -226,7 +227,8 @@ config BUSYBOX_CONFIG_INOTIFYD
bool "inotifyd" bool "inotifyd"
default n default n
help help
Simple inotify daemon. Reports filesystem changes. Requires kernel >= 2.6.13 Simple inotify daemon. Reports filesystem changes. Requires
kernel >= 2.6.13
config BUSYBOX_CONFIG_LAST config BUSYBOX_CONFIG_LAST
bool "last" bool "last"
@ -309,8 +311,8 @@ config BUSYBOX_CONFIG_HDPARM
bool "hdparm" bool "hdparm"
default n default n
help help
Get/Set hard drive parameters. Primarily intended for ATA Get/Set hard drive parameters. Primarily intended for ATA
drives. Adds about 13k (or around 30k if you enable the drives. Adds about 13k (or around 30k if you enable the
FEATURE_HDPARM_GET_IDENTITY option).... FEATURE_HDPARM_GET_IDENTITY option)....
config BUSYBOX_CONFIG_FEATURE_HDPARM_GET_IDENTITY config BUSYBOX_CONFIG_FEATURE_HDPARM_GET_IDENTITY
@ -340,7 +342,7 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
This is dangerous stuff, so you should probably say N. This is dangerous stuff, so you should probably say N.
config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
bool "perform device reset (DANGEROUS)" bool "Perform device reset (DANGEROUS)"
default n default n
depends on BUSYBOX_CONFIG_HDPARM depends on BUSYBOX_CONFIG_HDPARM
help help
@ -348,16 +350,16 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
This is dangerous stuff, so you should probably say N. This is dangerous stuff, so you should probably say N.
config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
bool "tristate device for hotswap (DANGEROUS)" bool "Tristate device for hotswap (DANGEROUS)"
default n default n
depends on BUSYBOX_CONFIG_HDPARM depends on BUSYBOX_CONFIG_HDPARM
help help
Enables the 'hdparm -x' option to tristate device for hotswap, Enables the 'hdparm -x' option to tristate device for hotswap,
and the '-b' option to get/set bus state. This is dangerous and the '-b' option to get/set bus state. This is dangerous
stuff, so you should probably say N. stuff, so you should probably say N.
config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
bool "get/set using_dma flag (DANGEROUS)" bool "Get/set using_dma flag (DANGEROUS)"
default n default n
depends on BUSYBOX_CONFIG_HDPARM depends on BUSYBOX_CONFIG_HDPARM
help help
@ -424,7 +426,7 @@ config BUSYBOX_CONFIG_MT
bool "mt" bool "mt"
default n default n
help help
mt is used to control tape devices. You can use the mt utility mt is used to control tape devices. You can use the mt utility
to advance or rewind a tape past a specified number of archive to advance or rewind a tape past a specified number of archive
files on the tape. files on the tape.
@ -445,7 +447,7 @@ config BUSYBOX_CONFIG_READAHEAD
This applet just calls the readahead(2) system call on each file. This applet just calls the readahead(2) system call on each file.
It is mainly useful in system startup scripts to preload files It is mainly useful in system startup scripts to preload files
or executables before they are used. When used at the right time or executables before they are used. When used at the right time
(in particular when a CPU bound process is running) it can (in particular when a CPU bound process is running) it can
significantly speed up system startup. significantly speed up system startup.
@ -509,16 +511,17 @@ config BUSYBOX_CONFIG_TTYSIZE
default n default n
help help
A replacement for "stty size". Unlike stty, can report only width, A replacement for "stty size". Unlike stty, can report only width,
only height, or both, in any order. It also does not complain on error, only height, or both, in any order. It also does not complain on
but returns default 80x24. Usage in shell scripts: width=`ttysize w`. error, but returns default 80x24.
Usage in shell scripts: width=`ttysize w`.
config BUSYBOX_CONFIG_WATCHDOG config BUSYBOX_CONFIG_WATCHDOG
bool "watchdog" bool "watchdog"
default y default y
help help
The watchdog utility is used with hardware or software watchdog The watchdog utility is used with hardware or software watchdog
device drivers. It opens the specified watchdog device special file device drivers. It opens the specified watchdog device special file
and periodically writes a magic character to the device. If the and periodically writes a magic character to the device. If the
watchdog applet ever fails to write the magic character within a watchdog applet ever fails to write the magic character within a
certain amount of time, the watchdog device assumes the system has certain amount of time, the watchdog device assumes the system has
hung, and will cause the hardware to reboot. hung, and will cause the hardware to reboot.

View file

@ -5,14 +5,64 @@
menu "Linux Module Utilities" menu "Linux Module Utilities"
config BUSYBOX_CONFIG_MODPROBE_SMALL
bool "Simplified modutils"
default n
help
Simplified modutils.
With this option modprobe does not require modules.dep file
and does not use /etc/modules.conf file.
It scans module files in /lib/modules/`uname -r` and
determines dependencies and module alias names on the fly.
This may make module loading slower, most notably
when one needs to load module by alias (this requires
scanning through module _bodies_).
At the first attempt to load a module by alias modprobe
will try to generate modules.dep.bb file in order to speed up
future loads by alias. Failure to do so (read-only /lib/modules,
etc) is not reported, and future modprobes will be slow too.
NB: modules.dep.bb file format is not compatible
with modules.dep file as created/used by standard module tools.
Additional module parameters can be stored in
/etc/modules/$module_name files.
Apart from modprobe, other utilities are also provided:
- insmod is an alias to modprobe
- rmmod is an alias to modprobe -r
- depmod generates modules.dep.bb
As of 2008-07, this code is experimental. It is 14kb smaller
than "non-small" modutils.
config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
bool "Accept module options on modprobe command line"
default n
depends on BUSYBOX_CONFIG_MODPROBE_SMALL
help
Allow insmod and modprobe take module options from command line.
N.B. Very bloaty.
config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
bool "Skip loading of already loaded modules"
default n
depends on BUSYBOX_CONFIG_MODPROBE_SMALL
help
Check if the module is already loaded.
N.B. It's racy.
config BUSYBOX_CONFIG_DEPMOD config BUSYBOX_CONFIG_DEPMOD
bool "depmod" bool "depmod"
default n default n
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
help help
depmod generates modules.dep (FIXME: elaborate) depmod generates modules.dep (FIXME: elaborate)
config BUSYBOX_CONFIG_FEATURE_DEPMOD_PRUNE_FANCY config BUSYBOX_CONFIG_FEATURE_DEPMOD_PRUNE_FANCY
bool "fancy dependency pruning" bool "Fancy dependency pruning"
default n default n
depends on BUSYBOX_CONFIG_DEPMOD depends on BUSYBOX_CONFIG_DEPMOD
help help
@ -26,7 +76,7 @@ config BUSYBOX_CONFIG_FEATURE_DEPMOD_PRUNE_FANCY
If unsure, say N. If unsure, say N.
config BUSYBOX_CONFIG_FEATURE_DEPMOD_ALIAS config BUSYBOX_CONFIG_FEATURE_DEPMOD_ALIAS
bool "alias support" bool "Alias support"
default n default n
depends on BUSYBOX_CONFIG_DEPMOD depends on BUSYBOX_CONFIG_DEPMOD
help help
@ -38,6 +88,7 @@ config BUSYBOX_CONFIG_FEATURE_DEPMOD_ALIAS
config BUSYBOX_CONFIG_INSMOD config BUSYBOX_CONFIG_INSMOD
bool "insmod" bool "insmod"
default y default y
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
help help
insmod is used to load specified modules in the running kernel. insmod is used to load specified modules in the running kernel.
@ -46,7 +97,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_VERSION_CHECKING
default n default n
depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES
help help
Support checking of versions for modules. This is used to Support checking of versions for modules. This is used to
ensure that the kernel and module are made for each other. ensure that the kernel and module are made for each other.
config BUSYBOX_CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS config BUSYBOX_CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
@ -55,9 +106,9 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES
help help
By adding module symbols to the kernel symbol table, Oops messages By adding module symbols to the kernel symbol table, Oops messages
occuring within kernel modules can be properly debugged. By enabling occuring within kernel modules can be properly debugged. By enabling
this feature, module symbols will always be added to the kernel symbol this feature, module symbols will always be added to the kernel symbol
table for properly debugging support. If you are not interested in table for properly debugging support. If you are not interested in
Oops messages from kernel modules, say N. Oops messages from kernel modules, say N.
config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM
@ -87,18 +138,20 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL
depends on BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP depends on BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP
help help
Without this option, -m will only output section Without this option, -m will only output section
load map. With this option, -m will also output load map. With this option, -m will also output
symbols load map. symbols load map.
config BUSYBOX_CONFIG_RMMOD config BUSYBOX_CONFIG_RMMOD
bool "rmmod" bool "rmmod"
default y default y
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
help help
rmmod is used to unload specified modules from the kernel. rmmod is used to unload specified modules from the kernel.
config BUSYBOX_CONFIG_LSMOD config BUSYBOX_CONFIG_LSMOD
bool "lsmod" bool "lsmod"
default y default y
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
help help
lsmod is used to display a list of loaded modules. lsmod is used to display a list of loaded modules.
@ -113,6 +166,7 @@ config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
config BUSYBOX_CONFIG_MODPROBE config BUSYBOX_CONFIG_MODPROBE
bool "modprobe" bool "modprobe"
default n default n
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
help help
Handle the loading of modules, and their dependencies on a high Handle the loading of modules, and their dependencies on a high
level. level.
@ -168,7 +222,7 @@ config BUSYBOX_CONFIG_FEATURE_CHECK_TAINTED_MODULE
default y default y
depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_LSMOD depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_LSMOD
help help
Support checking for tainted modules. These are usually binary Support checking for tainted modules. These are usually binary
only modules that will make the linux-kernel list ignore your only modules that will make the linux-kernel list ignore your
support request. support request.
This option is required to support GPLONLY modules. This option is required to support GPLONLY modules.
@ -196,7 +250,7 @@ config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
# Simulate indentation # Simulate indentation
string "Default directory containing modules" string "Default directory containing modules"
default "/lib/modules" default "/lib/modules"
depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_DEPMOD depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_DEPMOD
help help
Directory that contains kernel modules. Directory that contains kernel modules.
Defaults to "/lib/modules" Defaults to "/lib/modules"
@ -205,7 +259,7 @@ config BUSYBOX_CONFIG_DEFAULT_DEPMOD_FILE
# Simulate indentation # Simulate indentation
string "Default name of modules.dep" string "Default name of modules.dep"
default "modules.dep" default "modules.dep"
depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_DEPMOD depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_DEPMOD
help help
Filename that contains kernel modules dependencies. Filename that contains kernel modules dependencies.
Defaults to "modules.dep" Defaults to "modules.dep"

View file

@ -66,12 +66,12 @@ config BUSYBOX_CONFIG_FEATURE_BRCTL_FANCY
This adds about 600 bytes. This adds about 600 bytes.
config BUSYBOX_CONFIG_FEATURE_BRCTL_SHOW config BUSYBOX_CONFIG_FEATURE_BRCTL_SHOW
bool "Support show" bool "Support show, showmac and showstp"
default y default y
depends on BUSYBOX_CONFIG_BRCTL && BUSYBOX_CONFIG_FEATURE_BRCTL_FANCY depends on BUSYBOX_CONFIG_BRCTL && BUSYBOX_CONFIG_FEATURE_BRCTL_FANCY
help help
Add support for option which prints the current config: Add support for option which prints the current config:
show showmacs, showstp, show
config BUSYBOX_CONFIG_DNSD config BUSYBOX_CONFIG_DNSD
bool "dnsd" bool "dnsd"
@ -216,7 +216,7 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_ENCODE_URL_STR
depends on BUSYBOX_CONFIG_HTTPD depends on BUSYBOX_CONFIG_HTTPD
help help
This option allows html encoding of arbitrary strings for display This option allows html encoding of arbitrary strings for display
by the browser. Output goes to stdout. by the browser. Output goes to stdout.
For example, httpd -e "<Hello World>" produces For example, httpd -e "<Hello World>" produces
"&#60Hello&#32World&#62". "&#60Hello&#32World&#62".
@ -264,7 +264,7 @@ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_SLIP
default n default n
depends on BUSYBOX_CONFIG_IFCONFIG depends on BUSYBOX_CONFIG_IFCONFIG
help help
Allow "keepalive" and "outfill" support for SLIP. If you're not Allow "keepalive" and "outfill" support for SLIP. If you're not
planning on using serial lines, leave this unchecked. planning on using serial lines, leave this unchecked.
config BUSYBOX_CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
@ -281,7 +281,7 @@ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_HW
depends on BUSYBOX_CONFIG_IFCONFIG depends on BUSYBOX_CONFIG_IFCONFIG
help help
Set the hardware address of this interface, if the device driver Set the hardware address of this interface, if the device driver
supports this operation. Currently, we only support the 'ether' supports this operation. Currently, we only support the 'ether'
class. class.
config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS
@ -303,15 +303,15 @@ config BUSYBOX_CONFIG_IFUPDOWN
bool "ifupdown" bool "ifupdown"
default n default n
help help
Activate or deactivate the specified interfaces. This applet makes Activate or deactivate the specified interfaces. This applet makes
use of either "ifconfig" and "route" or the "ip" command to actually use of either "ifconfig" and "route" or the "ip" command to actually
configure network interfaces. Therefore, you will probably also want configure network interfaces. Therefore, you will probably also want
to enable either IFCONFIG and ROUTE, or enable to enable either IFCONFIG and ROUTE, or enable
FEATURE_IFUPDOWN_IP and the various IP options. Of FEATURE_IFUPDOWN_IP and the various IP options. Of
course you could use non-busybox versions of these programs, so course you could use non-busybox versions of these programs, so
against my better judgement (since this will surely result in plenty against my better judgement (since this will surely result in plenty
of support questions on the mailing list), I do not force you to of support questions on the mailing list), I do not force you to
enable these additional options. It is up to you to supply either enable these additional options. It is up to you to supply either
"ifconfig", "route" and "run-parts" or the "ip" command, either "ifconfig", "route" and "run-parts" or the "ip" command, either
via busybox or via standalone utilities. via busybox or via standalone utilities.
@ -458,7 +458,7 @@ config BUSYBOX_CONFIG_IP
default n default n
help help
The "ip" applet is a TCP/IP interface configuration and routing The "ip" applet is a TCP/IP interface configuration and routing
utility. You generally don't need "ip" to use busybox with utility. You generally don't need "ip" to use busybox with
TCP/IP. TCP/IP.
config BUSYBOX_CONFIG_FEATURE_IP_ADDRESS config BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
@ -558,7 +558,8 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_FANCY
default n default n
depends on BUSYBOX_CONFIG_IPCALC depends on BUSYBOX_CONFIG_IPCALC
help help
Adds the options hostname, prefix and silent to the output of "ipcalc". Adds the options hostname, prefix and silent to the output of
"ipcalc".
config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS
bool "Enable long options" bool "Enable long options"
@ -638,6 +639,14 @@ config BUSYBOX_CONFIG_FEATURE_NETSTAT_WIDE
Add support for wide columns. Useful when displaying IPv6 addresses Add support for wide columns. Useful when displaying IPv6 addresses
(-W option). (-W option).
config BUSYBOX_CONFIG_FEATURE_NETSTAT_PRG
bool "Enable PID/Program name output"
default n
depends on BUSYBOX_CONFIG_NETSTAT
help
Add support for -p flag to print out PID and program name.
+700 bytes of code.
config BUSYBOX_CONFIG_NSLOOKUP config BUSYBOX_CONFIG_NSLOOKUP
bool "nslookup" bool "nslookup"
default y default y
@ -694,7 +703,8 @@ config BUSYBOX_CONFIG_SLATTACH
bool "slattach" bool "slattach"
default n default n
help help
slattach is a small utility to attach network interfaces to serial lines. slattach is a small utility to attach network interfaces to serial
lines.
config BUSYBOX_CONFIG_TELNET config BUSYBOX_CONFIG_TELNET
bool "telnet" bool "telnet"
@ -709,7 +719,7 @@ config BUSYBOX_CONFIG_FEATURE_TELNET_TTYPE
depends on BUSYBOX_CONFIG_TELNET depends on BUSYBOX_CONFIG_TELNET
help help
Setting this option will forward the TERM environment variable to the Setting this option will forward the TERM environment variable to the
remote host you are connecting to. This is useful to make sure that remote host you are connecting to. This is useful to make sure that
things like ANSI colors and other control sequences behave. things like ANSI colors and other control sequences behave.
config BUSYBOX_CONFIG_FEATURE_TELNET_AUTOLOGIN config BUSYBOX_CONFIG_FEATURE_TELNET_AUTOLOGIN
@ -728,9 +738,9 @@ config BUSYBOX_CONFIG_TELNETD
select BUSYBOX_CONFIG_FEATURE_SYSLOG select BUSYBOX_CONFIG_FEATURE_SYSLOG
help help
A daemon for the TELNET protocol, allowing you to log onto the host A daemon for the TELNET protocol, allowing you to log onto the host
running the daemon. Please keep in mind that the TELNET protocol running the daemon. Please keep in mind that the TELNET protocol
sends passwords in plain text. If you can't afford the space for an sends passwords in plain text. If you can't afford the space for an
SSH daemon and you trust your network, you may say 'y' here. As a SSH daemon and you trust your network, you may say 'y' here. As a
more secure alternative, you should seriously consider installing the more secure alternative, you should seriously consider installing the
very small Dropbear SSH daemon instead: very small Dropbear SSH daemon instead:
http://matt.ucc.asn.au/dropbear/dropbear.html http://matt.ucc.asn.au/dropbear/dropbear.html
@ -756,7 +766,7 @@ config BUSYBOX_CONFIG_TELNETD
mount -t devpts devpts /dev/pts mount -t devpts devpts /dev/pts
You need to be sure that Busybox has LOGIN and You need to be sure that Busybox has LOGIN and
FEATURE_SUID enabled. And finally, you should make FEATURE_SUID enabled. And finally, you should make
certain that Busybox has been installed setuid root: certain that Busybox has been installed setuid root:
chown root.root /bin/busybox chown root.root /bin/busybox
@ -776,7 +786,7 @@ config BUSYBOX_CONFIG_TFTP
bool "tftp" bool "tftp"
default n default n
help help
This enables the Trivial File Transfer Protocol client program. TFTP This enables the Trivial File Transfer Protocol client program. TFTP
is usually used for simple, small transfers such as a root image is usually used for simple, small transfers such as a root image
for a network-enabled bootloader. for a network-enabled bootloader.
@ -795,7 +805,7 @@ config BUSYBOX_CONFIG_FEATURE_TFTP_GET
default n default n
depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help help
Add support for the GET command within the TFTP client. This allows Add support for the GET command within the TFTP client. This allows
a client to retrieve a file from a TFTP server. a client to retrieve a file from a TFTP server.
Also enable upload support in tftpd, if tftpd is selected. Also enable upload support in tftpd, if tftpd is selected.
@ -804,7 +814,7 @@ config BUSYBOX_CONFIG_FEATURE_TFTP_PUT
default n default n
depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help help
Add support for the PUT command within the TFTP client. This allows Add support for the PUT command within the TFTP client. This allows
a client to transfer a file to a TFTP server. a client to transfer a file to a TFTP server.
Also enable download support in tftpd, if tftpd is selected. Also enable download support in tftpd, if tftpd is selected.
@ -821,7 +831,7 @@ config BUSYBOX_CONFIG_DEBUG_TFTP
default n default n
depends on BUSYBOX_CONFIG_TFTP depends on BUSYBOX_CONFIG_TFTP
help help
Enable debug settings for tftp. This is useful if you're running Enable debug settings for tftp. This is useful if you're running
into problems with tftp as the protocol doesn't help you much when into problems with tftp as the protocol doesn't help you much when
you run into problems. you run into problems.
@ -836,7 +846,7 @@ config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
default y default y
depends on BUSYBOX_CONFIG_TRACEROUTE depends on BUSYBOX_CONFIG_TRACEROUTE
help help
Add some verbosity to traceroute. This includes amongst other things Add some verbosity to traceroute. This includes amongst other things
hostnames and ICMP response types. hostnames and ICMP response types.
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
@ -906,12 +916,14 @@ config BUSYBOX_CONFIG_TCPSVD
bool "tcpsvd" bool "tcpsvd"
default n default n
help help
tcpsvd listens on a TCP port and runs a program for each new connection tcpsvd listens on a TCP port and runs a program for each new
connection.
config BUSYBOX_CONFIG_UDPSVD config BUSYBOX_CONFIG_UDPSVD
bool "udpsvd" bool "udpsvd"
default n default n
help help
udpsvd listens on an UDP port and runs a program for each new connection udpsvd listens on an UDP port and runs a program for each new
connection.
endmenu endmenu

View file

@ -18,7 +18,7 @@ config BUSYBOX_CONFIG_FUSER
default n default n
help help
fuser lists all PIDs (Process IDs) that currently have a given fuser lists all PIDs (Process IDs) that currently have a given
file open. fuser can also list all PIDs that have a given network file open. fuser can also list all PIDs that have a given network
(TCP or UDP) port open. (TCP or UDP) port open.
config BUSYBOX_CONFIG_KILL config BUSYBOX_CONFIG_KILL
@ -26,7 +26,7 @@ config BUSYBOX_CONFIG_KILL
default y default y
help help
The command kill sends the specified signal to the specified The command kill sends the specified signal to the specified
process or process group. If no signal is specified, the TERM process or process group. If no signal is specified, the TERM
signal is sent. signal is sent.
config BUSYBOX_CONFIG_KILLALL config BUSYBOX_CONFIG_KILLALL
@ -35,7 +35,7 @@ config BUSYBOX_CONFIG_KILLALL
depends on BUSYBOX_CONFIG_KILL depends on BUSYBOX_CONFIG_KILL
help help
killall sends a signal to all processes running any of the killall sends a signal to all processes running any of the
specified commands. If no signal name is specified, SIGTERM is specified commands. If no signal name is specified, SIGTERM is
sent. sent.
config BUSYBOX_CONFIG_KILLALL5 config BUSYBOX_CONFIG_KILLALL5

View file

@ -39,7 +39,7 @@ config BUSYBOX_CONFIG_ASH
help help
Tha 'ash' shell adds about 60k in the default configuration and is Tha 'ash' shell adds about 60k in the default configuration and is
the most complete and most pedantically correct shell included with the most complete and most pedantically correct shell included with
busybox. This shell is actually a derivative of the Debian 'dash' busybox. This shell is actually a derivative of the Debian 'dash'
shell (by Herbert Xu), which was created by porting the 'ash' shell shell (by Herbert Xu), which was created by porting the 'ash' shell
(written by Kenneth Almquist) from NetBSD. (written by Kenneth Almquist) from NetBSD.
@ -51,7 +51,7 @@ config BUSYBOX_CONFIG_ASH_BASH_COMPAT
default y default y
depends on BUSYBOX_CONFIG_ASH depends on BUSYBOX_CONFIG_ASH
help help
Enable bash-conpatible extensions. Enable bash-compatible extensions.
config BUSYBOX_CONFIG_ASH_JOB_CONTROL config BUSYBOX_CONFIG_ASH_JOB_CONTROL
bool "Job control" bool "Job control"
@ -69,7 +69,7 @@ config BUSYBOX_CONFIG_ASH_READ_NCHARS
'read -s' will read without echoing the user's input. 'read -s' will read without echoing the user's input.
config BUSYBOX_CONFIG_ASH_READ_TIMEOUT config BUSYBOX_CONFIG_ASH_READ_TIMEOUT
bool "'read -t S' support." bool "'read -t S' support"
default y default y
depends on BUSYBOX_CONFIG_ASH depends on BUSYBOX_CONFIG_ASH
help help
@ -96,7 +96,7 @@ config BUSYBOX_CONFIG_ASH_MATH_SUPPORT_64
default y default y
depends on BUSYBOX_CONFIG_ASH_MATH_SUPPORT depends on BUSYBOX_CONFIG_ASH_MATH_SUPPORT
help help
Enable 64-bit math support in the ash shell. This will make Enable 64-bit math support in the ash shell. This will make
the shell slightly larger, but will allow computation with very the shell slightly larger, but will allow computation with very
large numbers. large numbers.
@ -176,11 +176,13 @@ config BUSYBOX_CONFIG_HUSH
default n default n
help help
hush is a very small shell (just 18k) and it has fairly complete hush is a very small shell (just 18k) and it has fairly complete
Bourne shell grammar. It even handles all the normal flow control Bourne shell grammar. It even handles all the normal flow control
options such as if/then/elif/else/fi, for/in/do/done, while loops, options such as if/then/elif/else/fi, for/in/do/done, while loops,
etc. case/esac.
It does not handle case/esac, select, function, here documents ( << It uses only vfork, so it can be used on uClinux systems.
It does not handle select, functions, here documents ( <<
word ), arithmetic expansion, aliases, brace expansion, tilde word ), arithmetic expansion, aliases, brace expansion, tilde
expansion, &> and >& redirection of stdout+stderr, etc. expansion, &> and >& redirection of stdout+stderr, etc.
@ -232,6 +234,14 @@ config BUSYBOX_CONFIG_HUSH_LOOPS
depends on BUSYBOX_CONFIG_HUSH depends on BUSYBOX_CONFIG_HUSH
help help
Enable for, while and until loops in hush. Enable for, while and until loops in hush.
As of 2008-07, break and continue statements are not supported.
config BUSYBOX_CONFIG_HUSH_CASE
bool "Support case ... esac statement"
default n
depends on BUSYBOX_CONFIG_HUSH
help
Enable case ... esac statement in hush. +400 bytes.
config BUSYBOX_CONFIG_LASH config BUSYBOX_CONFIG_LASH
bool "lash" bool "lash"
@ -246,10 +256,10 @@ config BUSYBOX_CONFIG_MSH
help help
The minix shell (adds just 30k) is quite complete and handles things The minix shell (adds just 30k) is quite complete and handles things
like for/do/done, case/esac and all the things you expect a Bourne like for/do/done, case/esac and all the things you expect a Bourne
shell to do. It is not always pedantically correct about Bourne shell to do. It is not always pedantically correct about Bourne
shell grammar (try running the shell testscript "tests/sh.testcases" shell grammar (try running the shell testscript "tests/sh.testcases"
on it and compare vs bash) but for most things it works quite well. on it and compare vs bash) but for most things it works quite well.
It also uses only vfork, so it can be used on uClinux systems. It uses only vfork, so it can be used on uClinux systems.
comment "Bourne Shell Options" comment "Bourne Shell Options"
depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
@ -267,11 +277,11 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
help help
This option causes busybox shells to use busybox applets This option causes busybox shells to use busybox applets
in preference to executables in the PATH whenever possible. For in preference to executables in the PATH whenever possible. For
example, entering the command 'ifconfig' into the shell would cause example, entering the command 'ifconfig' into the shell would cause
busybox to use the ifconfig busybox applet. Specifying the fully busybox to use the ifconfig busybox applet. Specifying the fully
qualified executable name, such as '/sbin/ifconfig' will still qualified executable name, such as '/sbin/ifconfig' will still
execute the /sbin/ifconfig executable on the filesystem. This option execute the /sbin/ifconfig executable on the filesystem. This option
is generally used when creating a statically linked version of busybox is generally used when creating a statically linked version of busybox
for use as a rescue shell, in the event that you screw up your system. for use as a rescue shell, in the event that you screw up your system.
@ -285,12 +295,12 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
started this way). started this way).
# untrue? # untrue?
# Note that this will *also* cause applets to take precedence # Note that this will *also* cause applets to take precedence
# over shell builtins of the same name. So turning this on will # over shell builtins of the same name. So turning this on will
# eliminate any performance gained by turning on the builtin "echo" # eliminate any performance gained by turning on the builtin "echo"
# and "test" commands in ash. # and "test" commands in ash.
# untrue? # untrue?
# Note that when using this option, the shell will attempt to directly # Note that when using this option, the shell will attempt to directly
# run '/bin/busybox'. If you do not have the busybox binary sitting in # run '/bin/busybox'. If you do not have the busybox binary sitting in
# that exact location with that exact name, this option will not work at # that exact location with that exact name, this option will not work at
# all. # all.

View file

@ -10,14 +10,14 @@ config BUSYBOX_CONFIG_SYSLOGD
default y default y
help help
The syslogd utility is used to record logs of all the The syslogd utility is used to record logs of all the
significant events that occur on a system. Every significant events that occur on a system. Every
message that is logged records the date and time of the message that is logged records the date and time of the
event, and will generally also record the name of the event, and will generally also record the name of the
application that generated the message. When used in application that generated the message. When used in
conjunction with klogd, messages from the Linux kernel conjunction with klogd, messages from the Linux kernel
can also be recorded. This is terribly useful, can also be recorded. This is terribly useful,
especially for finding what happened when something goes especially for finding what happened when something goes
wrong. And something almost always will go wrong if wrong. And something almost always will go wrong if
you wait long enough.... you wait long enough....
config BUSYBOX_CONFIG_FEATURE_ROTATE_LOGFILE config BUSYBOX_CONFIG_FEATURE_ROTATE_LOGFILE
@ -35,10 +35,10 @@ config BUSYBOX_CONFIG_FEATURE_REMOTE_LOG
help help
When you enable this feature, the syslogd utility can When you enable this feature, the syslogd utility can
be used to send system log messages to another system be used to send system log messages to another system
connected via a network. This allows the remote connected via a network. This allows the remote
machine to log all the system messages, which can be machine to log all the system messages, which can be
terribly useful for reducing the number of serial terribly useful for reducing the number of serial
cables you use. It can also be a very good security cables you use. It can also be a very good security
measure to prevent system logs from being tampered with measure to prevent system logs from being tampered with
by an intruder. by an intruder.
@ -58,7 +58,7 @@ config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
When you enable this feature, the syslogd utility will When you enable this feature, the syslogd utility will
use a circular buffer to record system log messages. use a circular buffer to record system log messages.
When the buffer is filled it will continue to overwrite When the buffer is filled it will continue to overwrite
the oldest messages. This can be very useful for the oldest messages. This can be very useful for
systems with little or no permanent storage, since systems with little or no permanent storage, since
otherwise system logs can eventually fill up your otherwise system logs can eventually fill up your
entire filesystem, which may cause your system to entire filesystem, which may cause your system to
@ -79,7 +79,7 @@ config BUSYBOX_CONFIG_LOGREAD
depends on BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG depends on BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
help help
If you enabled Circular Buffer support, you almost If you enabled Circular Buffer support, you almost
certainly want to enable this feature as well. This certainly want to enable this feature as well. This
utility will allow you to read the messages that are utility will allow you to read the messages that are
stored in the syslogd circular buffer. stored in the syslogd circular buffer.
@ -100,7 +100,7 @@ config BUSYBOX_CONFIG_KLOGD
help help
klogd is a utility which intercepts and logs all klogd is a utility which intercepts and logs all
messages from the Linux kernel and sends the messages messages from the Linux kernel and sends the messages
out to the 'syslogd' utility so they can be logged. If out to the 'syslogd' utility so they can be logged. If
you wish to record the messages produced by the kernel, you wish to record the messages produced by the kernel,
you should enable this option. you should enable this option.
@ -111,7 +111,7 @@ config BUSYBOX_CONFIG_LOGGER
help help
The logger utility allows you to send arbitrary text The logger utility allows you to send arbitrary text
messages to the system log (i.e. the 'syslogd' utility) so messages to the system log (i.e. the 'syslogd' utility) so
they can be logged. This is generally used to help locate they can be logged. This is generally used to help locate
problems that occur within programs and scripts. problems that occur within programs and scripts.
endmenu endmenu

View file

@ -9,12 +9,12 @@ config BUSYBOX_CONFIG_DMESG
bool "dmesg" bool "dmesg"
default y default y
help help
dmesg is used to examine or control the kernel ring buffer. When the 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 Linux kernel prints messages to the system log, they are stored in
the kernel ring buffer. You can use dmesg to print the kernel's ring the kernel ring buffer. You can use dmesg to print the kernel's ring
buffer, clear the kernel ring buffer, change the size of the kernel buffer, clear the kernel ring buffer, change the size of the kernel
ring buffer, and change the priority level at which kernel messages ring buffer, and change the priority level at which kernel messages
are also logged to the system console. Enable this option if you are also logged to the system console. Enable this option if you
wish to enable the 'dmesg' utility. wish to enable the 'dmesg' utility.
config BUSYBOX_CONFIG_FEATURE_DMESG_PRETTY config BUSYBOX_CONFIG_FEATURE_DMESG_PRETTY
@ -23,7 +23,8 @@ config BUSYBOX_CONFIG_FEATURE_DMESG_PRETTY
depends on BUSYBOX_CONFIG_DMESG depends on BUSYBOX_CONFIG_DMESG
help help
If you wish to scrub the syslog level from the output, say 'Y' here. If you wish to scrub the syslog level from the output, say 'Y' here.
The syslog level is a string prefixed to every line with the form "<#>". The syslog level is a string prefixed to every line with the form
"<#>".
With this option you will see: With this option you will see:
# dmesg # dmesg
@ -42,8 +43,8 @@ config BUSYBOX_CONFIG_FBSET
default n default n
help help
fbset is used to show or change the settings of a Linux frame buffer fbset is used to show or change the settings of a Linux frame buffer
device. The frame buffer device provides a simple and unique device. The frame buffer device provides a simple and unique
interface to access a graphics display. Enable this option interface to access a graphics display. Enable this option
if you wish to enable the 'fbset' utility. if you wish to enable the 'fbset' utility.
config BUSYBOX_CONFIG_FEATURE_FBSET_FANCY config BUSYBOX_CONFIG_FEATURE_FBSET_FANCY
@ -52,8 +53,8 @@ config BUSYBOX_CONFIG_FEATURE_FBSET_FANCY
depends on BUSYBOX_CONFIG_FBSET depends on BUSYBOX_CONFIG_FBSET
help help
This option enables extended fbset options, allowing one to set the This option enables extended fbset options, allowing one to set the
framebuffer size, color depth, etc. interface to access a graphics framebuffer size, color depth, etc. interface to access a graphics
display. Enable this option if you wish to enable extended fbset display. Enable this option if you wish to enable extended fbset
options. options.
config BUSYBOX_CONFIG_FEATURE_FBSET_READMODE config BUSYBOX_CONFIG_FEATURE_FBSET_READMODE
@ -70,11 +71,11 @@ config BUSYBOX_CONFIG_FDFLUSH
default n default n
help help
fdflush is only needed when changing media on slightly-broken fdflush is only needed when changing media on slightly-broken
removable media drives. It is used to make Linux believe that a removable media drives. It is used to make Linux believe that a
hardware disk-change switch has been actuated, which causes Linux to hardware disk-change switch has been actuated, which causes Linux to
forget anything it has cached from the previous media. If you have forget anything it has cached from the previous media. If you have
such a slightly-broken drive, you will need to run fdflush every time such a slightly-broken drive, you will need to run fdflush every time
you change a disk. Most people have working hardware and can safely you change a disk. Most people have working hardware and can safely
leave this disabled. leave this disabled.
config BUSYBOX_CONFIG_FDFORMAT config BUSYBOX_CONFIG_FDFORMAT
@ -88,7 +89,7 @@ config BUSYBOX_CONFIG_FDISK
default n default n
help help
The fdisk utility is used to divide hard disks into one or more The fdisk utility is used to divide hard disks into one or more
logical disks, which are generally called partitions. This utility logical disks, which are generally called partitions. This utility
can be used to list and edit the set of partitions or BSD style can be used to list and edit the set of partitions or BSD style
'disk slices' that are defined on a hard drive. 'disk slices' that are defined on a hard drive.
@ -105,7 +106,7 @@ config BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
depends on BUSYBOX_CONFIG_FDISK depends on BUSYBOX_CONFIG_FDISK
help help
Enabling this option allows you to create or change a partition table Enabling this option allows you to create or change a partition table
and write those changes out to disk. If you leave this option and write those changes out to disk. If you leave this option
disabled, you will only be able to view the partition table. disabled, you will only be able to view the partition table.
config BUSYBOX_CONFIG_FEATURE_AIX_LABEL config BUSYBOX_CONFIG_FEATURE_AIX_LABEL
@ -147,7 +148,7 @@ config BUSYBOX_CONFIG_FEATURE_FDISK_ADVANCED
help help
Enabling this option allows you to do terribly unsafe things like Enabling this option allows you to do terribly unsafe things like
define arbitrary drive geometry, move the beginning of data in a define arbitrary drive geometry, move the beginning of data in a
partition, and similarly evil things. Unless you have a very good partition, and similarly evil things. Unless you have a very good
reason you would be wise to leave this disabled. reason you would be wise to leave this disabled.
config BUSYBOX_CONFIG_FINDFS config BUSYBOX_CONFIG_FINDFS
@ -156,7 +157,7 @@ config BUSYBOX_CONFIG_FINDFS
select BUSYBOX_CONFIG_VOLUMEID select BUSYBOX_CONFIG_VOLUMEID
help help
This is similar to the findfs program that is part of the e2fsprogs This is similar to the findfs program that is part of the e2fsprogs
package. However, the e2fsprogs version only support ext2/3. This package. However, the e2fsprogs version only support ext2/3. This
version supports those in addition to FAT, swap, and ReiserFS. version supports those in addition to FAT, swap, and ReiserFS.
WARNING: WARNING:
With all submodules selected, it will add ~8k to busybox. With all submodules selected, it will add ~8k to busybox.
@ -165,11 +166,11 @@ config BUSYBOX_CONFIG_FREERAMDISK
bool "freeramdisk" bool "freeramdisk"
default n default n
help help
Linux allows you to create ramdisks. This utility allows you to Linux allows you to create ramdisks. This utility allows you to
delete them and completely free all memory that was used for the delete them and completely free all memory that was used for the
ramdisk. For example, if you boot Linux into a ramdisk and later ramdisk. For example, if you boot Linux into a ramdisk and later
pivot_root, you may want to free the memory that is allocated to the pivot_root, you may want to free the memory that is allocated to the
ramdisk. If you have no use for freeing memory from a ramdisk, leave ramdisk. If you have no use for freeing memory from a ramdisk, leave
this disabled. this disabled.
config BUSYBOX_CONFIG_FSCK_MINIX config BUSYBOX_CONFIG_FSCK_MINIX
@ -177,9 +178,9 @@ config BUSYBOX_CONFIG_FSCK_MINIX
default n default n
help help
The minix filesystem is a nice, small, compact, read-write filesystem The minix filesystem is a nice, small, compact, read-write filesystem
with little overhead. It is not a journaling filesystem however and with little overhead. It is not a journaling filesystem however and
can experience corruption if it is not properly unmounted or if the can experience corruption if it is not properly unmounted or if the
power goes off in the middle of a write. This utility allows you to power goes off in the middle of a write. This utility allows you to
check for and attempt to repair any corruption that occurs to a minix check for and attempt to repair any corruption that occurs to a minix
filesystem. filesystem.
@ -188,8 +189,8 @@ config BUSYBOX_CONFIG_MKFS_MINIX
default n default n
help help
The minix filesystem is a nice, small, compact, read-write filesystem The minix filesystem is a nice, small, compact, read-write filesystem
with little overhead. If you wish to be able to create minix filesystems with little overhead. If you wish to be able to create minix
this utility will do the job for you. filesystems this utility will do the job for you.
comment "Minix filesystem support" comment "Minix filesystem support"
depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX
@ -199,9 +200,9 @@ config BUSYBOX_CONFIG_FEATURE_MINIX2
default n default n
depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX
help help
If you wish to be able to create version 2 minix filesystems, enable this. If you wish to be able to create version 2 minix filesystems, enable
If you enabled 'mkfs_minix' then you almost certainly want to be using the this. If you enabled 'mkfs_minix' then you almost certainly want to
version 2 filesystem support. be using the version 2 filesystem support.
config BUSYBOX_CONFIG_GETOPT config BUSYBOX_CONFIG_GETOPT
bool "getopt" bool "getopt"
@ -209,9 +210,9 @@ config BUSYBOX_CONFIG_GETOPT
help help
The getopt utility is used to break up (parse) options in command The getopt utility is used to break up (parse) options in command
lines to make it easy to write complex shell scripts that also check lines to make it easy to write complex shell scripts that also check
for legal (and illegal) options. If you want to write horribly for legal (and illegal) options. If you want to write horribly
complex shell scripts, or use some horribly complex shell script complex shell scripts, or use some horribly complex shell script
written by others, this utility may be for you. Most people will written by others, this utility may be for you. Most people will
wisely leave this disabled. wisely leave this disabled.
config BUSYBOX_CONFIG_HEXDUMP config BUSYBOX_CONFIG_HEXDUMP
@ -243,7 +244,7 @@ config BUSYBOX_CONFIG_HWCLOCK
default y default y
help help
The hwclock utility is used to read and set the hardware clock 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 on a system. This is primarily used to set the current time on
shutdown in the hardware clock, so the hardware will keep the shutdown in the hardware clock, so the hardware will keep the
correct time when Linux is _not_ running. correct time when Linux is _not_ running.
@ -252,7 +253,7 @@ config BUSYBOX_CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS
default n default n
depends on BUSYBOX_CONFIG_HWCLOCK && BUSYBOX_CONFIG_GETOPT_LONG depends on BUSYBOX_CONFIG_HWCLOCK && BUSYBOX_CONFIG_GETOPT_LONG
help help
By default, the hwclock utility only uses short options. If you By default, the hwclock utility only uses short options. If you
are overly fond of its long options, such as --hctosys, --utc, etc) are overly fond of its long options, such as --hctosys, --utc, etc)
then enable this option. then enable this option.
@ -262,11 +263,11 @@ config BUSYBOX_CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS
depends on BUSYBOX_CONFIG_HWCLOCK depends on BUSYBOX_CONFIG_HWCLOCK
help help
Starting with FHS 2.3, the adjtime state file is supposed to exist Starting with FHS 2.3, the adjtime state file is supposed to exist
at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish
to use the FHS behavior, answer Y here, otherwise answer N for the to use the FHS behavior, answer Y here, otherwise answer N for the
classic /etc/adjtime path. classic /etc/adjtime path.
http://www.pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
config BUSYBOX_CONFIG_IPCRM config BUSYBOX_CONFIG_IPCRM
bool "ipcrm" bool "ipcrm"
@ -290,7 +291,7 @@ config BUSYBOX_CONFIG_LOSETUP
default n default n
help help
losetup is used to associate or detach a loop device with a regular 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 file or block device, and to query the status of a loop device. This
version does not currently support enabling data encryption. version does not currently support enabling data encryption.
config BUSYBOX_CONFIG_MDEV config BUSYBOX_CONFIG_MDEV
@ -326,7 +327,8 @@ config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME_REGEXP
default n default n
depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
help help
Add support for regular expressions substitutions when renaming device. Add support for regular expressions substitutions when renaming
device.
config BUSYBOX_CONFIG_FEATURE_MDEV_EXEC config BUSYBOX_CONFIG_FEATURE_MDEV_EXEC
bool "Support command execution at device addition/removal" bool "Support command execution at device addition/removal"
@ -354,9 +356,9 @@ config BUSYBOX_CONFIG_MKSWAP
default n default n
help help
The mkswap utility is used to configure a file or disk partition as The mkswap utility is used to configure a file or disk partition as
Linux swap space. This allows Linux to use the entire file or Linux swap space. This allows Linux to use the entire file or
partition as if it were additional RAM, which can greatly increase partition as if it were additional RAM, which can greatly increase
the capability of low-memory machines. This additional memory is the capability of low-memory machines. This additional memory is
much slower than real RAM, but can be very helpful at preventing your much slower than real RAM, but can be very helpful at preventing your
applications being killed by the Linux out of memory (OOM) killer. applications being killed by the Linux out of memory (OOM) killer.
Once you have created swap space using 'mkswap' you need to enable Once you have created swap space using 'mkswap' you need to enable
@ -377,9 +379,9 @@ config BUSYBOX_CONFIG_MORE
default n default n
help help
more is a simple utility which allows you to read text one screen more is a simple utility which allows you to read text one screen
sized page at a time. If you want to read text that is larger than sized page at a time. If you want to read text that is larger than
the screen, and you are using anything faster than a 300 baud modem, the screen, and you are using anything faster than a 300 baud modem,
you will probably find this utility very helpful. If you don't have you will probably find this utility very helpful. If you don't have
any need to reading text files, you can leave this disabled. any need to reading text files, you can leave this disabled.
config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
@ -388,7 +390,7 @@ config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP
help help
This option allows utilities such as 'more' and 'top' to determine This option allows utilities such as 'more' and 'top' to determine
the size of the screen. If you leave this disabled, your utilities the size of the screen. If you leave this disabled, your utilities
that display things on the screen will be especially primitive and that display things on the screen will be especially primitive and
will be unable to determine the current screen size, and will be will be unable to determine the current screen size, and will be
unable to move the cursor. unable to move the cursor.
@ -608,10 +610,10 @@ config BUSYBOX_CONFIG_MOUNT
default y default y
help help
All files and filesystems in Unix are arranged into one big directory All files and filesystems in Unix are arranged into one big directory
tree. The 'mount' utility is used to graft a filesystem onto a tree. The 'mount' utility is used to graft a filesystem onto a
particular part of the tree. A filesystem can either live on a block particular part of the tree. A filesystem can either live on a block
device, or it can be accessible over the network, as is the case with device, or it can be accessible over the network, as is the case with
NFS filesystems. Most people using BusyBox will also want to enable NFS filesystems. Most people using BusyBox will also want to enable
the 'mount' utility. the 'mount' utility.
config BUSYBOX_CONFIG_FEATURE_MOUNT_FAKE config BUSYBOX_CONFIG_FEATURE_MOUNT_FAKE
@ -649,7 +651,7 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
select BUSYBOX_CONFIG_VOLUMEID select BUSYBOX_CONFIG_VOLUMEID
help help
This allows for specifying a device by label or uuid, rather than by This allows for specifying a device by label or uuid, rather than by
name. This feature utilizes the same functionality as findfs. name. This feature utilizes the same functionality as findfs.
config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS
bool "Support mounting NFS file systems" bool "Support mounting NFS file systems"
@ -672,7 +674,7 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_FLAGS
bool "Support lots of -o flags in mount" bool "Support lots of -o flags in mount"
default y default y
help help
Without this, mount only supports ro/rw/remount. With this, it Without this, mount only supports ro/rw/remount. With this, it
supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime, supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
noatime, diratime, nodiratime, loud, bind, move, shared, slave, noatime, diratime, nodiratime, loud, bind, move, shared, slave,
private, unbindable, rshared, rslave, rprivate, and runbindable. private, unbindable, rshared, rslave, rprivate, and runbindable.
@ -689,11 +691,11 @@ config BUSYBOX_CONFIG_PIVOT_ROOT
default y default y
help help
The pivot_root utility swaps the mount points for the root filesystem The pivot_root utility swaps the mount points for the root filesystem
with some other mounted filesystem. This allows you to do all sorts with some other mounted filesystem. This allows you to do all sorts
of wild and crazy things with your Linux system and is far more of wild and crazy things with your Linux system and is far more
powerful than 'chroot'. powerful than 'chroot'.
Note: This is for initrd in linux 2.4. Under initramfs (introduced Note: This is for initrd in linux 2.4. Under initramfs (introduced
in linux 2.6) use switch_root instead. in linux 2.6) use switch_root instead.
config BUSYBOX_CONFIG_RDATE config BUSYBOX_CONFIG_RDATE
@ -705,6 +707,12 @@ config BUSYBOX_CONFIG_RDATE
the RFC868 protocol, which is built into the inetd daemon on most the RFC868 protocol, which is built into the inetd daemon on most
systems. systems.
config BUSYBOX_CONFIG_RDEV
bool "rdev"
default n
help
Print the device node associated with the filesystem mounted at '/'.
config BUSYBOX_CONFIG_READPROFILE config BUSYBOX_CONFIG_READPROFILE
bool "readprofile" bool "readprofile"
default n default n
@ -728,7 +736,7 @@ config BUSYBOX_CONFIG_SETARCH
default n default n
help help
The linux32 utility is used to create a 32bit environment for the The linux32 utility is used to create a 32bit environment for the
specified program (usually a shell). It only makes sense to have specified program (usually a shell). It only makes sense to have
this util on a system that supports both 64bit and 32bit userland this util on a system that supports both 64bit and 32bit userland
(like amd64/x86, ppc64/ppc, sparc64/sparc, etc...). (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
@ -738,9 +746,9 @@ config BUSYBOX_CONFIG_SWAPONOFF
help help
This option enables both the 'swapon' and the 'swapoff' utilities. This option enables both the 'swapon' and the 'swapoff' utilities.
Once you have created some swap space using 'mkswap', you also need Once you have created some swap space using 'mkswap', you also need
to enable your swap space with the 'swapon' utility. The 'swapoff' to enable your swap space with the 'swapon' utility. The 'swapoff'
utility is used, typically at system shutdown, to disable any swap utility is used, typically at system shutdown, to disable any swap
space. If you are not using any swap space, you can leave this space. If you are not using any swap space, you can leave this
option disabled. option disabled.
config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI
@ -755,28 +763,28 @@ config BUSYBOX_CONFIG_SWITCH_ROOT
default y default y
help help
The switch_root utility is used from initramfs to select a new The switch_root utility is used from initramfs to select a new
root device. Under initramfs, you have to use this instead of root device. Under initramfs, you have to use this instead of
pivot_root. (Stop reading here if you don't care why.) pivot_root. (Stop reading here if you don't care why.)
Booting with initramfs extracts a gzipped cpio archive into rootfs Booting with initramfs extracts a gzipped cpio archive into rootfs
(which is a variant of ramfs/tmpfs). Because rootfs can't be moved (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
or unmounted*, pivot_root will not work from initramfs. Instead, or unmounted*, pivot_root will not work from initramfs. Instead,
switch_root deletes everything out of rootfs (including itself), switch_root deletes everything out of rootfs (including itself),
does a mount --move that overmounts rootfs with the new root, and does a mount --move that overmounts rootfs with the new root, and
then execs the specified init program. then execs the specified init program.
* Because the Linux kernel uses rootfs internally as the starting * Because the Linux kernel uses rootfs internally as the starting
and ending point for searching through the kernel's doubly linked and ending point for searching through the kernel's doubly linked
list of active mount points. That's why. list of active mount points. That's why.
config BUSYBOX_CONFIG_UMOUNT config BUSYBOX_CONFIG_UMOUNT
bool "umount" bool "umount"
default y default y
help help
When you want to remove a mounted filesystem from its current mount point, When you want to remove a mounted filesystem from its current mount
for example when you are shutting down the system, the 'umount' utility is point, for example when you are shutting down the system, the
the tool to use. If you enabled the 'mount' utility, you almost certainly 'umount' utility is the tool to use. If you enabled the 'mount'
also want to enable 'umount'. utility, you almost certainly also want to enable 'umount'.
config BUSYBOX_CONFIG_FEATURE_UMOUNT_ALL config BUSYBOX_CONFIG_FEATURE_UMOUNT_ALL
bool "Support option -a" bool "Support option -a"
@ -794,10 +802,11 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP
depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT
help help
Enabling this feature allows automatic mounting of files (containing Enabling this feature allows automatic mounting of files (containing
filesystem images) via the linux kernel's loopback devices. The mount filesystem images) via the linux kernel's loopback devices.
command will detect you are trying to mount a file instead of a block The mount command will detect you are trying to mount a file instead
device, and transparently associate the file with a loopback device. of a block device, and transparently associate the file with a
The umount command will also free that loopback device. loopback device. The umount command will also free that loopback
device.
You can still use the 'losetup' utility (to manually associate files You can still use the 'losetup' utility (to manually associate files
with loop devices) if you need to do something advanced, such as with loop devices) if you need to do something advanced, such as
@ -811,9 +820,9 @@ config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
select BUSYBOX_CONFIG_FEATURE_MOUNT_FAKE select BUSYBOX_CONFIG_FEATURE_MOUNT_FAKE
help help
Historically, Unix systems kept track of the currently mounted Historically, Unix systems kept track of the currently mounted
partitions in the file "/etc/mtab". These days, the kernel exports partitions in the file "/etc/mtab". These days, the kernel exports
the list of currently mounted partitions in "/proc/mounts", rendering the list of currently mounted partitions in "/proc/mounts", rendering
the old mtab file obsolete. (In modern systems, /etc/mtab should be the old mtab file obsolete. (In modern systems, /etc/mtab should be
a symlink to /proc/mounts.) a symlink to /proc/mounts.)
The only reason to have mount maintain an /etc/mtab file itself is if The only reason to have mount maintain an /etc/mtab file itself is if
@ -823,7 +832,7 @@ config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
features like separate per-process filesystem namespaces, requires features like separate per-process filesystem namespaces, requires
that your /etc directory be writeable, tends to get easily confused that your /etc directory be writeable, tends to get easily confused
by --bind or --move mounts, won't update if you rename a directory by --bind or --move mounts, won't update if you rename a directory
that contains a mount point, and so on. (In brief: avoid.) that contains a mount point, and so on. (In brief: avoid.)
About the only reason to use this is if you've removed /proc from About the only reason to use this is if you've removed /proc from
your kernel. your kernel.

View file

@ -1,6 +1,6 @@
--- a/init/init.c --- a/init/init.c
+++ b/init/init.c +++ b/init/init.c
@@ -505,12 +505,11 @@ static void run_actions(int action_type) @@ -498,12 +498,11 @@ static void run_actions(int action_type)
for (a = init_action_list; a; a = tmp) { for (a = init_action_list; a; a = tmp) {
tmp = a->next; tmp = a->next;
if (a->action_type & action_type) { if (a->action_type & action_type) {

View file

@ -0,0 +1,37 @@
--- a/networking/brctl.c
+++ b/networking/brctl.c
@@ -90,7 +90,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
"setageing\0" "setfd\0" "sethello\0" "setmaxage\0"
"setpathcost\0" "setportprio\0" "setbridgeprio\0"
)
- USE_FEATURE_BRCTL_SHOW("showmacs\0" "show\0");
+ USE_FEATURE_BRCTL_SHOW("show\0");
enum { ARG_addbr = 0, ARG_delbr, ARG_addif, ARG_delif
USE_FEATURE_BRCTL_FANCY(,
@@ -98,7 +98,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
ARG_setageing, ARG_setfd, ARG_sethello, ARG_setmaxage,
ARG_setpathcost, ARG_setportprio, ARG_setbridgeprio
)
- USE_FEATURE_BRCTL_SHOW(, ARG_showmacs, ARG_show)
+ USE_FEATURE_BRCTL_SHOW(, ARG_show)
};
int fd;
--- a/networking/Config.in
+++ b/networking/Config.in
@@ -66,12 +66,12 @@ config FEATURE_BRCTL_FANCY
This adds about 600 bytes.
config FEATURE_BRCTL_SHOW
- bool "Support show, showmac and showstp"
+ bool "Support show"
default n
depends on BRCTL && FEATURE_BRCTL_FANCY
help
Add support for option which prints the current config:
- showmacs, showstp, show
+ show
config DNSD
bool "dnsd"

View file

@ -1,6 +1,6 @@
--- a/networking/wget.c --- a/networking/wget.c
+++ b/networking/wget.c +++ b/networking/wget.c
@@ -437,7 +437,7 @@ int wget_main(int argc ATTRIBUTE_UNUSED, @@ -437,7 +437,7 @@ int wget_main(int argc UNUSED_PARAM, cha
"directory-prefix\0" Required_argument "P" "directory-prefix\0" Required_argument "P"
"proxy\0" Required_argument "Y" "proxy\0" Required_argument "Y"
"user-agent\0" Required_argument "U" "user-agent\0" Required_argument "U"

View file

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c --- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c
@@ -352,7 +352,7 @@ int udhcpc_main(int argc ATTRIBUTE_UNUSE @@ -353,7 +353,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
switch (state) { switch (state) {
case INIT_SELECTING: case INIT_SELECTING:
@ -9,7 +9,7 @@
if (packet_num == 0) if (packet_num == 0)
xid = random_xid(); xid = random_xid();
@@ -382,7 +382,7 @@ int udhcpc_main(int argc ATTRIBUTE_UNUSE @@ -383,7 +383,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
continue; continue;
case RENEW_REQUESTED: case RENEW_REQUESTED:
case REQUESTING: case REQUESTING:

View file

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c --- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c
@@ -319,6 +319,12 @@ int udhcpc_main(int argc ATTRIBUTE_UNUSE @@ -320,6 +320,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
for (;;) { for (;;) {
unsigned timestamp_before_wait; unsigned timestamp_before_wait;

View file

@ -1,9 +1,9 @@
--- a/shell/ash.c --- a/shell/ash.c
+++ b/shell/ash.c +++ b/shell/ash.c
@@ -11909,8 +11909,17 @@ exportcmd(int argc ATTRIBUTE_UNUSED, cha @@ -12018,8 +12018,17 @@ exportcmd(int argc UNUSED_PARAM, char **
const char *p; const char *p;
char **aptr; char **aptr;
int flag = argv[0][0] == 'r'? VREADONLY : VEXPORT; int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
+ int mask = ~0; + int mask = ~0;
+ int nopt; + int nopt;
+ while ((nopt = nextopt("np"))) { + while ((nopt = nextopt("np"))) {
@ -19,7 +19,7 @@
aptr = argptr; aptr = argptr;
name = *aptr; name = *aptr;
if (name) { if (name) {
@@ -11922,10 +11931,12 @@ exportcmd(int argc ATTRIBUTE_UNUSED, cha @@ -12031,10 +12040,12 @@ exportcmd(int argc UNUSED_PARAM, char **
vp = *findvar(hashvar(name), name); vp = *findvar(hashvar(name), name);
if (vp) { if (vp) {
vp->flags |= flag; vp->flags |= flag;

View file

@ -1,6 +1,6 @@
--- a/include/applets.h --- a/include/applets.h
+++ b/include/applets.h +++ b/include/applets.h
@@ -257,6 +257,7 @@ USE_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_ @@ -261,6 +261,7 @@ USE_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_
USE_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_NEVER))
USE_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
@ -10,7 +10,7 @@
USE_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
--- a/include/usage.h --- a/include/usage.h
+++ b/include/usage.h +++ b/include/usage.h
@@ -2815,6 +2815,9 @@ @@ -2816,6 +2816,9 @@
#endif #endif
@ -18,11 +18,11 @@
+#define netmsg_full_usage "" +#define netmsg_full_usage ""
+ +
#define netstat_trivial_usage \ #define netstat_trivial_usage \
"[-laentuwxr"USE_FEATURE_NETSTAT_WIDE("W")"]" "[-laentuwxr"USE_FEATURE_NETSTAT_WIDE("W")USE_FEATURE_NETSTAT_PRG("p")"]"
#define netstat_full_usage "\n\n" \ #define netstat_full_usage "\n\n" \
--- a/networking/Config.in --- a/networking/Config.in
+++ b/networking/Config.in +++ b/networking/Config.in
@@ -602,6 +602,12 @@ config NC @@ -603,6 +603,12 @@ config NC
A simple Unix utility which reads and writes data across network A simple Unix utility which reads and writes data across network
connections. connections.

View file

@ -3,7 +3,7 @@
--- a/networking/httpd.c --- a/networking/httpd.c
+++ b/networking/httpd.c +++ b/networking/httpd.c
@@ -1697,21 +1697,32 @@ static int check_user_passwd(const char @@ -1705,21 +1705,32 @@ static int check_user_passwd(const char
if (ENABLE_FEATURE_HTTPD_AUTH_MD5) { if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
char *md5_passwd; char *md5_passwd;

View file

@ -1,8 +1,8 @@
--- a/include/applets.h --- a/include/applets.h
+++ b/include/applets.h +++ b/include/applets.h
@@ -220,6 +220,7 @@ USE_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN @@ -222,6 +222,7 @@ USE_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN
USE_LOAD_POLICY(APPLET(load_policy, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) USE_LOAD_POLICY(APPLET(load_policy, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
USE_LOADFONT(APPLET(loadfont, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_LOADFONT(APPLET(loadfont, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
USE_LOADKMAP(APPLET(loadkmap, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_LOADKMAP(APPLET(loadkmap, _BB_DIR_SBIN, _BB_SUID_NEVER))
+USE_LOCK(APPLET(lock, _BB_DIR_BIN, _BB_SUID_NEVER)) +USE_LOCK(APPLET(lock, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_LOGGER(APPLET(logger, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_LOGGER(APPLET(logger, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
@ -10,7 +10,7 @@
USE_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_NEVER, logname)) USE_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_NEVER, logname))
--- a/include/usage.h --- a/include/usage.h
+++ b/include/usage.h +++ b/include/usage.h
@@ -2138,6 +2138,9 @@ @@ -2132,6 +2132,9 @@
#define loadkmap_example_usage \ #define loadkmap_example_usage \
"$ loadkmap < /etc/i18n/lang-keymap\n" "$ loadkmap < /etc/i18n/lang-keymap\n"
@ -22,7 +22,7 @@
#define logger_full_usage "\n\n" \ #define logger_full_usage "\n\n" \
--- a/miscutils/Config.in --- a/miscutils/Config.in
+++ b/miscutils/Config.in +++ b/miscutils/Config.in
@@ -364,6 +364,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA @@ -366,6 +366,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
Enables the 'hdparm -d' option to get/set using_dma flag. Enables the 'hdparm -d' option to get/set using_dma flag.
This is dangerous stuff, so you should probably say N. This is dangerous stuff, so you should probably say N.

View file

@ -1,6 +1,6 @@
--- a/include/usage.h --- a/include/usage.h
+++ b/include/usage.h +++ b/include/usage.h
@@ -1558,7 +1558,8 @@ @@ -1552,7 +1552,8 @@
USE_FEATURE_HTTPD_BASIC_AUTH(" [-r realm]") \ USE_FEATURE_HTTPD_BASIC_AUTH(" [-r realm]") \
USE_FEATURE_HTTPD_AUTH_MD5(" [-m pass]") \ USE_FEATURE_HTTPD_AUTH_MD5(" [-m pass]") \
" [-h home]" \ " [-h home]" \
@ -10,7 +10,7 @@
#define httpd_full_usage "\n\n" \ #define httpd_full_usage "\n\n" \
"Listen for incoming HTTP requests\n" \ "Listen for incoming HTTP requests\n" \
"\nOptions:" \ "\nOptions:" \
@@ -1576,6 +1577,8 @@ @@ -1570,6 +1571,8 @@
"\n -h HOME Home directory (default .)" \ "\n -h HOME Home directory (default .)" \
"\n -e STRING HTML encode STRING" \ "\n -e STRING HTML encode STRING" \
"\n -d STRING URL decode STRING" \ "\n -d STRING URL decode STRING" \
@ -21,7 +21,7 @@
USE_GETOPT_LONG( \ USE_GETOPT_LONG( \
--- a/networking/httpd.c --- a/networking/httpd.c
+++ b/networking/httpd.c +++ b/networking/httpd.c
@@ -247,6 +247,8 @@ struct globals { @@ -248,6 +248,8 @@ struct globals {
const char *found_mime_type; const char *found_mime_type;
const char *found_moved_temporarily; const char *found_moved_temporarily;
@ -30,7 +30,7 @@
Htaccess_IP *ip_a_d; /* config allow/deny lines */ Htaccess_IP *ip_a_d; /* config allow/deny lines */
USE_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;) USE_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;)
@@ -292,6 +294,8 @@ struct globals { @@ -293,6 +295,8 @@ struct globals {
#define index_page (G.index_page ) #define index_page (G.index_page )
#define found_mime_type (G.found_mime_type ) #define found_mime_type (G.found_mime_type )
#define found_moved_temporarily (G.found_moved_temporarily) #define found_moved_temporarily (G.found_moved_temporarily)
@ -39,7 +39,7 @@
#define last_mod (G.last_mod ) #define last_mod (G.last_mod )
#define ip_a_d (G.ip_a_d ) #define ip_a_d (G.ip_a_d )
#define g_realm (G.g_realm ) #define g_realm (G.g_realm )
@@ -991,8 +995,11 @@ static void send_headers(int responseNum @@ -999,8 +1003,11 @@ static void send_headers(int responseNum
} }
#endif #endif
if (responseNum == HTTP_MOVED_TEMPORARILY) { if (responseNum == HTTP_MOVED_TEMPORARILY) {
@ -52,7 +52,7 @@
(g_query ? "?" : ""), (g_query ? "?" : ""),
(g_query ? g_query : "")); (g_query ? g_query : ""));
} }
@@ -1923,8 +1930,12 @@ static void handle_incoming_and_exit(con @@ -1931,8 +1938,12 @@ static void handle_incoming_and_exit(con
} while (*++tptr); } while (*++tptr);
*++urlp = '\0'; /* terminate after last character */ *++urlp = '\0'; /* terminate after last character */
@ -66,7 +66,7 @@
if (is_directory(urlcopy + 1, 1, &sb)) { if (is_directory(urlcopy + 1, 1, &sb)) {
found_moved_temporarily = urlcopy; found_moved_temporarily = urlcopy;
} }
@@ -2274,7 +2285,9 @@ static void sighup_handler(int sig) @@ -2281,7 +2292,9 @@ static void sighup_handler(int sig)
#endif #endif
enum { enum {
@ -77,7 +77,7 @@
d_opt_decode_url, d_opt_decode_url,
h_opt_home_httpd, h_opt_home_httpd,
USE_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,) USE_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,)
@@ -2323,12 +2336,13 @@ int httpd_main(int argc ATTRIBUTE_UNUSED @@ -2330,12 +2343,13 @@ int httpd_main(int argc UNUSED_PARAM, ch
/* We do not "absolutize" path given by -h (home) opt. /* We do not "absolutize" path given by -h (home) opt.
* If user gives relative path in -h, * If user gives relative path in -h,
* $SCRIPT_FILENAME will not be set. */ * $SCRIPT_FILENAME will not be set. */

View file

@ -1,6 +1,6 @@
--- a/networking/httpd.c --- a/networking/httpd.c
+++ b/networking/httpd.c +++ b/networking/httpd.c
@@ -1247,10 +1247,10 @@ static NOINLINE void cgi_io_loop_and_exi @@ -1255,10 +1255,10 @@ static NOINLINE void cgi_io_loop_and_exi
if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1) if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1)
break; break;
} }

View file

@ -1,6 +1,6 @@
--- a/coreutils/uniq.c --- a/coreutils/uniq.c
+++ b/coreutils/uniq.c +++ b/coreutils/uniq.c
@@ -82,6 +82,8 @@ int uniq_main(int argc ATTRIBUTE_UNUSED, @@ -82,6 +82,8 @@ int uniq_main(int argc UNUSED_PARAM, cha
if (!s0 || strncmp(e0, e1, max_chars)) { if (!s0 || strncmp(e0, e1, max_chars)) {
break; break;

View file

@ -1,6 +1,6 @@
--- a/networking/httpd.c --- a/networking/httpd.c
+++ b/networking/httpd.c +++ b/networking/httpd.c
@@ -1808,6 +1808,7 @@ static void handle_incoming_and_exit(con @@ -1816,6 +1816,7 @@ static void handle_incoming_and_exit(con
char *header_ptr = header_ptr; char *header_ptr = header_ptr;
Htaccess_Proxy *proxy_entry; Htaccess_Proxy *proxy_entry;
#endif #endif

View file

@ -1,6 +1,6 @@
--- a/networking/httpd.c --- a/networking/httpd.c
+++ b/networking/httpd.c +++ b/networking/httpd.c
@@ -255,6 +255,8 @@ struct globals { @@ -256,6 +256,8 @@ struct globals {
USE_FEATURE_HTTPD_BASIC_AUTH(char *remoteuser;) USE_FEATURE_HTTPD_BASIC_AUTH(char *remoteuser;)
USE_FEATURE_HTTPD_CGI(char *referer;) USE_FEATURE_HTTPD_CGI(char *referer;)
USE_FEATURE_HTTPD_CGI(char *user_agent;) USE_FEATURE_HTTPD_CGI(char *user_agent;)
@ -9,7 +9,7 @@
off_t file_size; /* -1 - unknown */ off_t file_size; /* -1 - unknown */
#if ENABLE_FEATURE_HTTPD_RANGES #if ENABLE_FEATURE_HTTPD_RANGES
@@ -302,6 +304,8 @@ struct globals { @@ -303,6 +305,8 @@ struct globals {
#define remoteuser (G.remoteuser ) #define remoteuser (G.remoteuser )
#define referer (G.referer ) #define referer (G.referer )
#define user_agent (G.user_agent ) #define user_agent (G.user_agent )
@ -18,7 +18,7 @@
#define file_size (G.file_size ) #define file_size (G.file_size )
#if ENABLE_FEATURE_HTTPD_RANGES #if ENABLE_FEATURE_HTTPD_RANGES
#define range_start (G.range_start ) #define range_start (G.range_start )
@@ -1383,6 +1387,10 @@ static void send_cgi_and_exit( @@ -1391,6 +1395,10 @@ static void send_cgi_and_exit(
} }
} }
setenv1("HTTP_USER_AGENT", user_agent); setenv1("HTTP_USER_AGENT", user_agent);
@ -29,7 +29,7 @@
if (post_len) if (post_len)
putenv(xasprintf("CONTENT_LENGTH=%d", post_len)); putenv(xasprintf("CONTENT_LENGTH=%d", post_len));
if (cookie) if (cookie)
@@ -2020,6 +2028,10 @@ static void handle_incoming_and_exit(con @@ -2028,6 +2036,10 @@ static void handle_incoming_and_exit(con
referer = xstrdup(skip_whitespace(iobuf + sizeof("Referer:")-1)); referer = xstrdup(skip_whitespace(iobuf + sizeof("Referer:")-1));
} else if (STRNCASECMP(iobuf, "User-Agent:") == 0) { } else if (STRNCASECMP(iobuf, "User-Agent:") == 0) {
user_agent = xstrdup(skip_whitespace(iobuf + sizeof("User-Agent:")-1)); user_agent = xstrdup(skip_whitespace(iobuf + sizeof("User-Agent:")-1));

View file

@ -27,11 +27,11 @@
+int insmod_main_26(int argc, char **argv); +int insmod_main_26(int argc, char **argv);
#endif #endif
+int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+
+static char *g_filename = NULL; +static char *g_filename = NULL;
+#define _PATH_MODULES "/lib/modules" +#define _PATH_MODULES "/lib/modules"
+ +
+static int check_module_name_match(const char *filename, struct stat *statbuf, +static int FAST_FUNC check_module_name_match(const char *filename, struct stat *statbuf,
+ void *userdata, int depth) + void *userdata, int depth)
+{ +{
+ char *fullname = (char *) userdata; + char *fullname = (char *) userdata;
@ -112,7 +112,7 @@
+ +
+done: +done:
+ free(filename); + free(filename);
+
+ return ret; + return ret;
+} +}
+ +
@ -164,9 +164,9 @@
-/*======================================================================*/ -/*======================================================================*/
- -
- -
-static int check_module_name_match(const char *filename, -static int FAST_FUNC check_module_name_match(const char *filename,
- struct stat *statbuf ATTRIBUTE_UNUSED, - struct stat *statbuf UNUSED_PARAM,
- void *userdata, int depth ATTRIBUTE_UNUSED) - void *userdata, int depth UNUSED_PARAM)
-{ -{
- char *fullname = (char *) userdata; - char *fullname = (char *) userdata;
- char *tmp; - char *tmp;
@ -238,7 +238,7 @@
break; break;
#elif defined(__microblaze__) #elif defined(__microblaze__)
@@ -1759,7 +1823,7 @@ static int arch_list_add(ElfW(RelM) *rel @@ -1764,7 +1828,7 @@ static int arch_list_add(ElfW(RelM) *rel
#if defined(USE_SINGLE) #if defined(USE_SINGLE)
@ -247,7 +247,7 @@
int offset, int size) int offset, int size)
{ {
if (single->allocated == 0) { if (single->allocated == 0) {
@@ -1907,7 +1971,7 @@ static void arch_create_got(struct obj_f @@ -1912,7 +1976,7 @@ static void arch_create_got(struct obj_f
#if defined(USE_GOT_ENTRIES) #if defined(USE_GOT_ENTRIES)
if (got_allocate) { if (got_allocate) {
got_offset += arch_single_init( got_offset += arch_single_init(
@ -256,7 +256,7 @@
got_offset, GOT_ENTRY_SIZE); got_offset, GOT_ENTRY_SIZE);
got_needed = 1; got_needed = 1;
@@ -1921,7 +1985,7 @@ static void arch_create_got(struct obj_f @@ -1926,7 +1990,7 @@ static void arch_create_got(struct obj_f
plt_offset, PLT_ENTRY_SIZE); plt_offset, PLT_ENTRY_SIZE);
#else #else
plt_offset += arch_single_init( plt_offset += arch_single_init(
@ -265,7 +265,7 @@
plt_offset, PLT_ENTRY_SIZE); plt_offset, PLT_ENTRY_SIZE);
#endif #endif
plt_needed = 1; plt_needed = 1;
@@ -1959,8 +2023,7 @@ static unsigned long obj_elf_hash_n(cons @@ -1964,8 +2028,7 @@ static unsigned long obj_elf_hash_n(cons
while (n > 0) { while (n > 0) {
ch = *name++; ch = *name++;
h = (h << 4) + ch; h = (h << 4) + ch;
@ -275,7 +275,7 @@
h ^= g >> 24; h ^= g >> 24;
h &= ~g; h &= ~g;
} }
@@ -2039,7 +2102,7 @@ obj_add_symbol(struct obj_file *f, const @@ -2044,7 +2107,7 @@ obj_add_symbol(struct obj_file *f, const
int n_type = ELF_ST_TYPE(info); int n_type = ELF_ST_TYPE(info);
int n_binding = ELF_ST_BIND(info); int n_binding = ELF_ST_BIND(info);
@ -284,7 +284,7 @@
if (f->symbol_cmp(sym->name, name) == 0) { if (f->symbol_cmp(sym->name, name) == 0) {
int o_secidx = sym->secidx; int o_secidx = sym->secidx;
int o_info = sym->info; int o_info = sym->info;
@@ -2098,14 +2161,14 @@ obj_add_symbol(struct obj_file *f, const @@ -2103,14 +2166,14 @@ obj_add_symbol(struct obj_file *f, const
return sym; return sym;
} }
} }
@ -301,7 +301,7 @@
if (symidx >= f->local_symtab_size) if (symidx >= f->local_symtab_size)
bb_error_msg("local symbol %s with index %ld exceeds local_symtab_size %ld", bb_error_msg("local symbol %s with index %ld exceeds local_symtab_size %ld",
name, (long) symidx, (long) f->local_symtab_size); name, (long) symidx, (long) f->local_symtab_size);
@@ -3228,7 +3291,7 @@ static int obj_relocate(struct obj_file @@ -3234,7 +3297,7 @@ static int obj_relocate(struct obj_file
/* Do it! */ /* Do it! */
switch (arch_apply_relocation switch (arch_apply_relocation
@ -310,12 +310,12 @@
) { ) {
case obj_reloc_ok: case obj_reloc_ok:
break; break;
@@ -3307,11 +3370,11 @@ static int obj_create_image(struct obj_f @@ -3313,11 +3376,11 @@ static int obj_create_image(struct obj_f
/*======================================================================*/ /*======================================================================*/
-static struct obj_file *obj_load(FILE * fp, int loadprogbits ATTRIBUTE_UNUSED) -static struct obj_file *obj_load(FILE *fp, int loadprogbits UNUSED_PARAM)
+static struct obj_file *obj_load(FILE * fp, int loadprogbits) +static struct obj_file *obj_load(FILE *fp, int loadprogbits)
{ {
struct obj_file *f; struct obj_file *f;
ElfW(Shdr) * section_headers; ElfW(Shdr) * section_headers;
@ -324,7 +324,7 @@
char *shstrtab; char *shstrtab;
/* Read the file header. */ /* Read the file header. */
@@ -3583,7 +3646,7 @@ static int obj_gpl_license(struct obj_fi @@ -3591,7 +3654,7 @@ static int obj_gpl_license(struct obj_fi
while (ptr < endptr) { while (ptr < endptr) {
value = strchr(ptr, '='); value = strchr(ptr, '=');
if (value && strncmp(ptr, "license", value-ptr) == 0) { if (value && strncmp(ptr, "license", value-ptr) == 0) {
@ -333,7 +333,7 @@
if (license) if (license)
*license = value+1; *license = value+1;
for (i = 0; i < ARRAY_SIZE(gpl_licenses); ++i) { for (i = 0; i < ARRAY_SIZE(gpl_licenses); ++i) {
@@ -3687,9 +3750,6 @@ static void check_tainted_module(struct @@ -3695,9 +3758,6 @@ static void check_tainted_module(struct
* start of some sections. this info is used by ksymoops to do better * start of some sections. this info is used by ksymoops to do better
* debugging. * debugging.
*/ */
@ -343,7 +343,7 @@
static int static int
get_module_version(struct obj_file *f, char str[STRVERSIONLEN]) get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
{ {
@@ -3722,8 +3782,7 @@ add_ksymoops_symbols(struct obj_file *f, @@ -3730,8 +3790,7 @@ add_ksymoops_symbols(struct obj_file *f,
struct obj_symbol *sym; struct obj_symbol *sym;
char *name, *absolute_filename; char *name, *absolute_filename;
char str[STRVERSIONLEN]; char str[STRVERSIONLEN];
@ -353,7 +353,7 @@
struct stat statbuf; struct stat statbuf;
/* WARNING: was using realpath, but replaced by readlink to stop using /* WARNING: was using realpath, but replaced by readlink to stop using
@@ -3910,145 +3969,57 @@ static void print_load_map(struct obj_fi @@ -3922,145 +3981,57 @@ static void print_load_map(struct obj_fi
void print_load_map(struct obj_file *f); void print_load_map(struct obj_file *f);
#endif #endif
@ -408,7 +408,7 @@
+ if (arg1 == NULL) + if (arg1 == NULL)
bb_show_usage(); bb_show_usage();
- } - }
-
- /* Grab the module name */ - /* Grab the module name */
- tmp1 = xstrdup(arg1); - tmp1 = xstrdup(arg1);
- tmp = basename(tmp1); - tmp = basename(tmp1);
@ -419,7 +419,7 @@
- k_version = myuname.release[2] - '0'; - k_version = myuname.release[2] - '0';
- } - }
- } - }
-
-#if ENABLE_FEATURE_2_6_MODULES -#if ENABLE_FEATURE_2_6_MODULES
- if (k_version > 4 && len > 3 && tmp[len - 3] == '.' - if (k_version > 4 && len > 3 && tmp[len - 3] == '.'
- && tmp[len - 2] == 'k' && tmp[len - 1] == 'o' - && tmp[len - 2] == 'k' && tmp[len - 1] == 'o'
@ -453,7 +453,7 @@
- -
- /* Get a filedesc for the module. Check that we have a complete path */ - /* Get a filedesc for the module. Check that we have a complete path */
- if (stat(arg1, &st) < 0 || !S_ISREG(st.st_mode) - if (stat(arg1, &st) < 0 || !S_ISREG(st.st_mode)
- || (fp = fopen(arg1, "r")) == NULL - || (fp = fopen_for_read(arg1)) == NULL
- ) { - ) {
- /* Hmm. Could not open it. First search under /lib/modules/`uname -r`, - /* Hmm. Could not open it. First search under /lib/modules/`uname -r`,
- * but do not error out yet if we fail to find it... */ - * but do not error out yet if we fail to find it... */
@ -477,7 +477,7 @@
- } - }
- -
- /* Check if we have found anything yet */ - /* Check if we have found anything yet */
- if (!m_filename || ((fp = fopen(m_filename, "r")) == NULL)) { - if (!m_filename || ((fp = fopen_for_read(m_filename)) == NULL)) {
- int r; - int r;
- char *module_dir; - char *module_dir;
- -
@ -494,7 +494,7 @@
- bb_error_msg_and_die("%s: module not found", m_fullName); - bb_error_msg_and_die("%s: module not found", m_fullName);
- free(module_dir); - free(module_dir);
- if (m_filename == NULL - if (m_filename == NULL
- || ((fp = fopen(m_filename, "r")) == NULL) - || ((fp = fopen_for_read(m_filename)) == NULL)
- ) { - ) {
- bb_error_msg_and_die("%s: module not found", m_fullName); - bb_error_msg_and_die("%s: module not found", m_fullName);
- } - }
@ -503,16 +503,16 @@
} }
- } else - } else
- m_filename = xstrdup(arg1); - m_filename = xstrdup(arg1);
-
- if (flag_verbose) - if (flag_verbose)
- printf("Using %s\n", m_filename); - printf("Using %s\n", m_filename);
-
-#if ENABLE_FEATURE_2_6_MODULES -#if ENABLE_FEATURE_2_6_MODULES
- if (k_version > 4) { - if (k_version > 4) {
- argv[optind] = m_filename; - argv[optind] = m_filename;
- optind--; - optind--;
- return insmod_ng_main(argc - optind, argv + optind); - return insmod_ng_main(argc - optind, argv + optind);
+ fp = fopen(g_filename, "r"); + fp = fopen_for_read(g_filename);
+ if (!fp) { + if (!fp) {
+ ret = errno; + ret = errno;
+ goto out; + goto out;
@ -521,7 +521,7 @@
f = obj_load(fp, LOADBITS); f = obj_load(fp, LOADBITS);
@@ -4075,7 +4046,7 @@ int insmod_main(int argc, char **argv) @@ -4087,7 +4058,7 @@ int insmod_main(int argc, char **argv)
"\t%s was compiled for kernel version %s\n" "\t%s was compiled for kernel version %s\n"
"\twhile this kernel is version %s", "\twhile this kernel is version %s",
flag_force_load ? "warning: " : "", flag_force_load ? "warning: " : "",
@ -530,7 +530,7 @@
if (!flag_force_load) if (!flag_force_load)
goto out; goto out;
} }
@@ -4117,7 +4088,7 @@ int insmod_main(int argc, char **argv) @@ -4129,7 +4100,7 @@ int insmod_main(int argc, char **argv)
hide_special_symbols(f); hide_special_symbols(f);
#if ENABLE_FEATURE_INSMOD_KSYMOOPS_SYMBOLS #if ENABLE_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
@ -539,7 +539,7 @@
#endif /* FEATURE_INSMOD_KSYMOOPS_SYMBOLS */ #endif /* FEATURE_INSMOD_KSYMOOPS_SYMBOLS */
new_create_module_ksymtab(f); new_create_module_ksymtab(f);
@@ -4126,7 +4097,7 @@ int insmod_main(int argc, char **argv) @@ -4138,7 +4109,7 @@ int insmod_main(int argc, char **argv)
m_size = obj_load_size(f); m_size = obj_load_size(f);
m_addr = create_module(m_name, m_size); m_addr = create_module(m_name, m_size);
@ -548,7 +548,7 @@
case EEXIST: case EEXIST:
bb_error_msg_and_die("a module named %s already exists", m_name); bb_error_msg_and_die("a module named %s already exists", m_name);
case ENOMEM: case ENOMEM:
@@ -4142,36 +4113,37 @@ int insmod_main(int argc, char **argv) @@ -4154,36 +4125,37 @@ int insmod_main(int argc, char **argv)
* now we can load them directly into the kernel memory * now we can load them directly into the kernel memory
*/ */
if (!obj_load_progbits(fp, f, (char*)m_addr)) { if (!obj_load_progbits(fp, f, (char*)m_addr)) {
@ -594,7 +594,7 @@
} }
#endif /* ENABLE_FEATURE_2_4_MODULES */ #endif /* ENABLE_FEATURE_2_4_MODULES */
@@ -4183,15 +4155,8 @@ int insmod_main(int argc, char **argv) @@ -4195,15 +4167,8 @@ int insmod_main(int argc, char **argv)
#if ENABLE_FEATURE_2_6_MODULES #if ENABLE_FEATURE_2_6_MODULES
#include <sys/mman.h> #include <sys/mman.h>
@ -610,15 +610,15 @@
/* We use error numbers in a loose translation... */ /* We use error numbers in a loose translation... */
static const char *moderror(int err) static const char *moderror(int err)
@@ -4210,22 +4175,32 @@ static const char *moderror(int err) @@ -4222,22 +4187,32 @@ static const char *moderror(int err)
} }
} }
-#if !ENABLE_FEATURE_2_4_MODULES -#if !ENABLE_FEATURE_2_4_MODULES
-int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int insmod_main(int argc ATTRIBUTE_UNUSED, char **argv) -int insmod_main(int argc UNUSED_PARAM, char **argv)
-#else -#else
-static int insmod_ng_main(int argc ATTRIBUTE_UNUSED, char **argv) -static int insmod_ng_main(int argc UNUSED_PARAM, char **argv)
-#endif -#endif
+int insmod_main_26(int argc, char **argv) +int insmod_main_26(int argc, char **argv)
{ {
@ -651,7 +651,7 @@
/* Rest is options */ /* Rest is options */
options = xzalloc(1); options = xzalloc(1);
optlen = 0; optlen = 0;
@@ -4235,41 +4210,47 @@ static int insmod_ng_main(int argc ATTRI @@ -4247,41 +4222,47 @@ static int insmod_ng_main(int argc UNUSE
optlen += sprintf(options + optlen, (strchr(*argv,' ') ? "\"%s\" " : "%s "), *argv); optlen += sprintf(options + optlen, (strchr(*argv,' ') ? "\"%s\" " : "%s "), *argv);
} }
@ -683,7 +683,7 @@
- } - }
-#else -#else
len = MAXINT(ssize_t); len = MAXINT(ssize_t);
- map = xmalloc_open_read_close(filename, &len); - map = xmalloc_xopen_read_close(filename, &len);
-#endif -#endif
+ map = xmalloc_open_read_close(g_filename, &len); + map = xmalloc_open_read_close(g_filename, &len);
+ ret = syscall(__NR_init_module, map, len, options); + ret = syscall(__NR_init_module, map, len, options);

View file

@ -1,15 +1,15 @@
--- a/editors/vi.c --- a/editors/vi.c
+++ b/editors/vi.c +++ b/editors/vi.c
@@ -3313,7 +3313,7 @@ static void do_cmd(char c) @@ -3317,7 +3317,7 @@ static void do_cmd(char c)
buf[1] = '\0'; buf[1] = '\0';
q = get_input_line(buf); // get input line- use "status line" q = get_input_line(buf); // get input line- use "status line"
if (q[0] && !q[1]) { if (q[0] && !q[1]) {
- if (last_search_pattern[0]) - if (last_search_pattern[0])
+ if (last_search_pattern) + if (last_search_pattern)
last_search_pattern[0] = c; last_search_pattern[0] = c;
goto dc3; // if no pat re-use old pat goto dc3; // if no pat re-use old pat
} }
@@ -3329,6 +3329,10 @@ static void do_cmd(char c) @@ -3333,6 +3333,10 @@ static void do_cmd(char c)
if (cmdcnt-- > 1) { if (cmdcnt-- > 1) {
do_cmd(c); do_cmd(c);
} // repeat cnt } // repeat cnt
@ -20,16 +20,3 @@
dir = BACK; // assume BACKWARD search dir = BACK; // assume BACKWARD search
p = dot - 1; p = dot - 1;
if (last_search_pattern[0] == '?') { if (last_search_pattern[0] == '?') {
@@ -3348,10 +3352,8 @@ static void do_cmd(char c)
msg = "No previous regular expression";
goto dc2;
}
- if (last_search_pattern[0] == '/') {
- dir = FORWARD; // assume FORWARD search
- p = dot + 1;
- }
+ dir = FORWARD; // assume FORWARD search
+ p = dot + 1;
if (last_search_pattern[0] == '?') {
dir = BACK;
p = dot - 1;

View file

@ -15,7 +15,7 @@
} func; } func;
/* I/O stream */ /* I/O stream */
@@ -1395,7 +1400,8 @@ static void parse_program(char *p) @@ -1400,7 +1405,8 @@ static void parse_program(char *p)
next_token(TC_FUNCTION); next_token(TC_FUNCTION);
g_pos++; g_pos++;
f = newfunc(t_string); f = newfunc(t_string);
@ -25,7 +25,7 @@
f->nargs = 0; f->nargs = 0;
while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) { while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) {
v = findvar(ahash, t_string); v = findvar(ahash, t_string);
@@ -1404,7 +1410,7 @@ static void parse_program(char *p) @@ -1409,7 +1415,7 @@ static void parse_program(char *p)
if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM) if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM)
break; break;
} }
@ -34,7 +34,7 @@
chain_group(); chain_group();
clear_array(ahash); clear_array(ahash);
@@ -2367,7 +2373,8 @@ static var *evaluate(node *op, var *res) @@ -2374,7 +2380,8 @@ static var *evaluate(node *op, var *res)
break; break;
case XC( OC_FUNC ): case XC( OC_FUNC ):
@ -44,7 +44,7 @@
syntax_error(EMSG_UNDEF_FUNC); syntax_error(EMSG_UNDEF_FUNC);
X.v = R.v = nvalloc(op->r.f->nargs+1); X.v = R.v = nvalloc(op->r.f->nargs+1);
@@ -2384,7 +2391,10 @@ static var *evaluate(node *op, var *res) @@ -2391,7 +2398,10 @@ static var *evaluate(node *op, var *res)
fnargs = X.v; fnargs = X.v;
L.s = g_progname; L.s = g_progname;
@ -56,7 +56,7 @@
g_progname = L.s; g_progname = L.s;
nvfree(fnargs); nvfree(fnargs);
@@ -2747,6 +2757,143 @@ static rstream *next_input_file(void) @@ -2754,6 +2764,143 @@ static rstream *next_input_file(void)
#undef files_happen #undef files_happen
} }
@ -200,7 +200,7 @@
int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int awk_main(int argc, char **argv) int awk_main(int argc, char **argv)
{ {
@@ -2812,6 +2959,9 @@ int awk_main(int argc, char **argv) @@ -2819,6 +2966,9 @@ int awk_main(int argc, char **argv)
*s1 = '='; *s1 = '=';
} }
} }

View file

@ -1,36 +0,0 @@
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2041,27 +2041,27 @@ static var *exec_builtin(node *op, var *
break;
case B_an:
- setvar_i(res, (long)getvar_i(av[0]) & (long)getvar_i(av[1]));
+ setvar_i(res, (unsigned long)getvar_i(av[0]) & (unsigned long)getvar_i(av[1]));
break;
case B_co:
- setvar_i(res, ~(long)getvar_i(av[0]));
+ setvar_i(res, ~(unsigned long)getvar_i(av[0]));
break;
case B_ls:
- setvar_i(res, (long)getvar_i(av[0]) << (long)getvar_i(av[1]));
+ setvar_i(res, (unsigned long)getvar_i(av[0]) << (unsigned long)getvar_i(av[1]));
break;
case B_or:
- setvar_i(res, (long)getvar_i(av[0]) | (long)getvar_i(av[1]));
+ setvar_i(res, (unsigned long)getvar_i(av[0]) | (unsigned long)getvar_i(av[1]));
break;
case B_rs:
- setvar_i(res, (long)((unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1])));
+ setvar_i(res, (unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1]));
break;
case B_xo:
- setvar_i(res, (long)getvar_i(av[0]) ^ (long)getvar_i(av[1]));
+ setvar_i(res, (unsigned long)getvar_i(av[0]) ^ (unsigned long)getvar_i(av[1]));
break;
case B_lo:

View file

@ -9,7 +9,7 @@
#endif #endif
/* Use internal number parsing and not the "exact" conversion. */ /* Use internal number parsing and not the "exact" conversion. */
@@ -155,6 +155,7 @@ int brctl_main(int argc ATTRIBUTE_UNUSED @@ -155,6 +155,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
printf(bi.stp_enabled ? "\tyes" : "\tno"); printf(bi.stp_enabled ? "\tyes" : "\tno");
/* print interface list */ /* print interface list */
@ -17,7 +17,7 @@
arm_ioctl(args, BRCTL_GET_PORT_LIST, arm_ioctl(args, BRCTL_GET_PORT_LIST,
(unsigned long) ifidx, MAX_PORTS); (unsigned long) ifidx, MAX_PORTS);
xioctl(fd, SIOCDEVPRIVATE, &ifr); xioctl(fd, SIOCDEVPRIVATE, &ifr);
@@ -183,9 +184,19 @@ int brctl_main(int argc ATTRIBUTE_UNUSED @@ -183,9 +184,19 @@ int brctl_main(int argc UNUSED_PARAM, ch
br = *argv++; br = *argv++;
if (key == ARG_addbr || key == ARG_delbr) { /* addbr or delbr */ if (key == ARG_addbr || key == ARG_delbr) { /* addbr or delbr */
@ -40,7 +40,7 @@
goto done; goto done;
} }
@@ -194,14 +205,27 @@ int brctl_main(int argc ATTRIBUTE_UNUSED @@ -194,14 +205,27 @@ int brctl_main(int argc UNUSED_PARAM, ch
strncpy(ifr.ifr_name, br, IFNAMSIZ); strncpy(ifr.ifr_name, br, IFNAMSIZ);
if (key == ARG_addif || key == ARG_delif) { /* addif or delif */ if (key == ARG_addif || key == ARG_delif) { /* addif or delif */

View file

@ -1,11 +1,14 @@
config BUSYBOX_CONFIG_FEATURE_DEVFS config BUSYBOX_CONFIG_FEATURE_DEVFS
bool
default y if LINUX_2_4 default y if LINUX_2_4
default n if LINUX_2_6 default n if LINUX_2_6
config BUSYBOX_CONFIG_FEATURE_2_4_MODULES config BUSYBOX_CONFIG_FEATURE_2_4_MODULES
bool
default y if LINUX_2_4 default y if LINUX_2_4
default n if LINUX_2_6 default n if LINUX_2_6
config BUSYBOX_CONFIG_FEATURE_2_6_MODULES config BUSYBOX_CONFIG_FEATURE_2_6_MODULES
bool
default n if LINUX_2_4 default n if LINUX_2_4
default y if LINUX_2_6 default y if LINUX_2_6