busybox: update to v1.12.4 (partially closes: #4279)
SVN-Revision: 16053
This commit is contained in:
parent
9e9ac96aeb
commit
9a16485900
40 changed files with 542 additions and 472 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
@ -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,8 +202,9 @@ 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"
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -410,7 +421,7 @@ config BUSYBOX_CONFIG_DEBUG
|
||||||
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
|
||||||
|
@ -444,9 +455,10 @@ choice
|
||||||
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:
|
||||||
-----------------------
|
-----------------------
|
||||||
|
@ -478,6 +490,9 @@ config BUSYBOX_CONFIG_INCLUDE_SUSv2
|
||||||
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
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,30 @@
|
||||||
|
|
||||||
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
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -53,7 +77,7 @@ 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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -168,7 +168,8 @@ config BUSYBOX_CONFIG_DEVFSD_FG_NP
|
||||||
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)"
|
||||||
|
@ -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"
|
||||||
|
@ -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,7 +350,7 @@ 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
|
||||||
|
@ -357,7 +359,7 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
|
||||||
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
|
||||||
|
@ -509,8 +511,9 @@ 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"
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
@ -93,12 +144,14 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL
|
||||||
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.
|
||||||
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
@ -178,9 +178,11 @@ config BUSYBOX_CONFIG_HUSH
|
||||||
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"
|
||||||
|
@ -249,7 +259,7 @@ config BUSYBOX_CONFIG_MSH
|
||||||
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
|
||||||
|
|
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
@ -266,7 +267,7 @@ config BUSYBOX_CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS
|
||||||
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"
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -773,10 +781,10 @@ 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
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
37
package/busybox/patches/003-brctl_show_fix.patch
Normal file
37
package/busybox/patches/003-brctl_show_fix.patch
Normal 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"
|
|
@ -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"
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- 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;
|
||||||
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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. */
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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,11 +310,11 @@
|
||||||
) {
|
) {
|
||||||
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;
|
||||||
|
@ -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);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- 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]) {
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
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;
|
|
||||||
|
|
|
@ -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 = '=';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue