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
|
||||
|
||||
PKG_NAME:=busybox
|
||||
PKG_VERSION:=1.11.3
|
||||
PKG_RELEASE:=6
|
||||
PKG_VERSION:=1.12.4
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
|
||||
http://distfiles.gentoo.org/distfiles/
|
||||
PKG_MD5SUM:=4355ad8bb57ce3b39ad827566c1a6da3
|
||||
PKG_MD5SUM:=5b8c427bf596732d6b6156672e6e093f
|
||||
|
||||
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
|
||||
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
|
||||
bool "Assume that 1:1 char/glyph correspondence is not true"
|
||||
default n
|
||||
|
@ -169,11 +178,12 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
|
|||
An example might help:
|
||||
|
||||
[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
|
||||
|
||||
mount = sx- root.disk # applet mount can be run by root and members of group disk
|
||||
# and runs with euid=0
|
||||
mount = sx- root.disk # applet mount can be run by root and members
|
||||
# of group disk and runs with euid=0
|
||||
|
||||
cp = --- # disable applet cp for everyone
|
||||
|
||||
|
@ -192,8 +202,9 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
|
|||
default n
|
||||
depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
|
||||
help
|
||||
/etc/busybox.conf should be readable by the user needing the SUID, check
|
||||
this option to avoid users to be notified about missing permissions.
|
||||
/etc/busybox.conf should be readable by the user needing the SUID,
|
||||
check this option to avoid users to be notified about missing
|
||||
permissions.
|
||||
|
||||
config BUSYBOX_CONFIG_SELINUX
|
||||
bool "Support NSA Security Enhanced Linux"
|
||||
|
@ -329,7 +340,7 @@ config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
|
|||
config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
|
||||
bool "Produce a binary for each applet, linked against libbusybox"
|
||||
default n
|
||||
depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
|
||||
depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
|
||||
help
|
||||
If your CPU architecture doesn't allow for sharing text/rodata
|
||||
sections of running binaries, but allows for runtime dynamic
|
||||
|
@ -347,7 +358,7 @@ config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
|
|||
config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
|
||||
bool "Produce additional busybox binary linked against libbusybox"
|
||||
default n
|
||||
depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
|
||||
depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
|
||||
help
|
||||
Build busybox, dynamically linked against libbusybox.so.N.N.N.
|
||||
|
||||
|
@ -410,7 +421,7 @@ config BUSYBOX_CONFIG_DEBUG
|
|||
Most people should answer N.
|
||||
|
||||
config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
|
||||
bool "Disable compiler optimizations."
|
||||
bool "Disable compiler optimizations"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_DEBUG
|
||||
help
|
||||
|
@ -444,9 +455,10 @@ choice
|
|||
want to properly set your environment, for example:
|
||||
export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
|
||||
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 \
|
||||
-p check-fence -p check-heap -p check-lists -p check-blank \
|
||||
-p check-funcs -p realloc-copy -p allow-free-null
|
||||
dmalloc -p log-stats -p log-non-free -p log-bad-space \
|
||||
-p log-elapsed-time -p check-fence -p check-heap \
|
||||
-p check-lists -p check-blank -p check-funcs -p realloc-copy \
|
||||
-p allow-free-null
|
||||
|
||||
Electric-fence support:
|
||||
-----------------------
|
||||
|
@ -478,6 +490,9 @@ config BUSYBOX_CONFIG_INCLUDE_SUSv2
|
|||
will be supported in head, tail, and fold. (Note: should
|
||||
affect renice too.)
|
||||
|
||||
config BUSYBOX_CONFIG_PARSE
|
||||
bool "Uniform config file parser debugging applet: parse"
|
||||
|
||||
endmenu
|
||||
|
||||
menu 'Installation Options'
|
||||
|
@ -505,8 +520,8 @@ config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
|
|||
config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
|
||||
bool "as hard-links"
|
||||
help
|
||||
Install applets as hard-links to the busybox binary. This might count
|
||||
on a filesystem with few inodes.
|
||||
Install applets as hard-links to the busybox binary. This might
|
||||
count on a filesystem with few inodes.
|
||||
|
||||
config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
|
||||
bool "as script wrappers"
|
||||
|
@ -542,7 +557,8 @@ config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
|
|||
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
|
||||
bool "as script wrapper"
|
||||
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
|
||||
|
||||
|
|
|
@ -5,6 +5,30 @@
|
|||
|
||||
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
|
||||
bool "ar"
|
||||
default n
|
||||
|
@ -33,8 +57,8 @@ config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES
|
|||
default n
|
||||
depends on BUSYBOX_CONFIG_AR
|
||||
help
|
||||
By default the ar format can only store the first 15 characters of the
|
||||
filename, this option removes that limitation.
|
||||
By default the ar format can only store the first 15 characters of
|
||||
the filename, this option removes that limitation.
|
||||
It supports the GNU ar long filename method which moves multiple long
|
||||
filenames into a the data section of a new ar entry.
|
||||
|
||||
|
@ -53,7 +77,7 @@ config BUSYBOX_CONFIG_BUNZIP2
|
|||
|
||||
config BUSYBOX_CONFIG_BZIP2
|
||||
bool "bzip2"
|
||||
default n
|
||||
default y
|
||||
help
|
||||
bzip2 is a compression utility using the Burrows-Wheeler block
|
||||
sorting text compression algorithm, and Huffman coding. Compression
|
||||
|
@ -68,15 +92,15 @@ config BUSYBOX_CONFIG_CPIO
|
|||
bool "cpio"
|
||||
default n
|
||||
help
|
||||
cpio is an archival utility program used to create, modify, and extract
|
||||
contents from archives.
|
||||
cpio is an archival utility program used to create, modify, and
|
||||
extract contents from archives.
|
||||
cpio has 110 bytes of overheads for every stored file.
|
||||
|
||||
This implementation of cpio can extract cpio archives created in the
|
||||
"newc" or "crc" format, it cannot create or modify them.
|
||||
|
||||
Unless you have a specific application which requires cpio, you should
|
||||
probably say N here.
|
||||
Unless you have a specific application which requires cpio, you
|
||||
should probably say N here.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_CPIO_O
|
||||
bool "Support for archive creation"
|
||||
|
@ -90,30 +114,33 @@ config BUSYBOX_CONFIG_DPKG
|
|||
bool "dpkg"
|
||||
default n
|
||||
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
|
||||
official dpkg if possible.
|
||||
This implementation of dpkg has a number of limitations,
|
||||
you should use the official dpkg if possible.
|
||||
|
||||
config BUSYBOX_CONFIG_DPKG_DEB
|
||||
bool "dpkg_deb"
|
||||
default n
|
||||
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.
|
||||
|
||||
Unless you have a specific application which requires dpkg-deb, you should
|
||||
probably say N here.
|
||||
Unless you have a specific application which requires dpkg-deb,
|
||||
say N here.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
|
||||
bool "Extract only (-x)"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_DPKG_DEB
|
||||
help
|
||||
This reduces dpkg-deb to the equivalent of "ar -p <deb> data.tar.gz | tar -zx".
|
||||
However it saves space as none of the extra dpkg-deb, ar or tar options are
|
||||
needed, they are linked to internally.
|
||||
This reduces dpkg-deb to the equivalent of
|
||||
"ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
|
||||
of the extra dpkg-deb, ar or tar options are needed, they are linked
|
||||
to internally.
|
||||
|
||||
config BUSYBOX_CONFIG_GUNZIP
|
||||
bool "gunzip"
|
||||
|
@ -123,15 +150,6 @@ config BUSYBOX_CONFIG_GUNZIP
|
|||
You can use the `-t' option to test the integrity of
|
||||
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
|
||||
bool "gzip"
|
||||
default y
|
||||
|
@ -151,13 +169,6 @@ config BUSYBOX_CONFIG_RPM
|
|||
help
|
||||
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
|
||||
bool "tar"
|
||||
default y
|
||||
|
@ -166,6 +177,8 @@ config BUSYBOX_CONFIG_TAR
|
|||
create compressed archives. It's probably the most widely used
|
||||
UNIX archive program.
|
||||
|
||||
if TAR
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
|
||||
bool "Enable archive creation"
|
||||
default y
|
||||
|
@ -174,45 +187,13 @@ config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
|
|||
If you enable this option you'll be able to create
|
||||
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
|
||||
bool "Let tar autodetect gz/bz2 compresses tarballs"
|
||||
bool "Autodetect gz/bz2 compressed tarballs"
|
||||
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
|
||||
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
|
||||
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
|
||||
help
|
||||
This option is required to unpack archives created by some old
|
||||
version of Sun's tar (it was calculating checksum using signed arithmetic).
|
||||
It is said to be fixed in newer Sun tar, but "old" tarballs still exist.
|
||||
version of Sun's tar (it was calculating checksum using signed
|
||||
arithmetic). It is said to be fixed in newer Sun tar, but "old"
|
||||
tarballs still exist.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS
|
||||
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).
|
||||
+200 bytes.
|
||||
|
||||
endif #tar
|
||||
|
||||
config BUSYBOX_CONFIG_UNCOMPRESS
|
||||
bool "uncompress"
|
||||
default n
|
||||
|
@ -304,41 +288,4 @@ config BUSYBOX_CONFIG_UNZIP
|
|||
current directory. Use the `-d' option to extract to a
|
||||
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
|
||||
|
|
|
@ -95,6 +95,12 @@ config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS
|
|||
help
|
||||
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
|
||||
bool "setkeycodes"
|
||||
default n
|
||||
|
@ -108,4 +114,10 @@ config BUSYBOX_CONFIG_SETLOGCONS
|
|||
help
|
||||
This program redirects the output console of kernel messages.
|
||||
|
||||
config BUSYBOX_CONFIG_SHOWKEY
|
||||
bool "showkey"
|
||||
default n
|
||||
help
|
||||
Shows keys pressed.
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -117,7 +117,8 @@ config BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
|
|||
print to standard error the number of records read and written
|
||||
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
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS
|
||||
|
@ -509,18 +510,33 @@ config BUSYBOX_CONFIG_SHA1SUM
|
|||
Compute and check SHA1 message digest
|
||||
|
||||
config BUSYBOX_CONFIG_SLEEP
|
||||
bool "sleep (single integer arg with no suffix)"
|
||||
bool "sleep"
|
||||
default y
|
||||
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
|
||||
bool "Enable multiple integer args and optional time suffixes"
|
||||
bool "Enable multiple arguments and s/m/h/d suffixes"
|
||||
default y
|
||||
depends on BUSYBOX_CONFIG_SLEEP
|
||||
help
|
||||
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
|
||||
bool "sort"
|
||||
default y
|
||||
|
@ -738,7 +754,7 @@ config BUSYBOX_CONFIG_FEATURE_WC_LARGE
|
|||
default n
|
||||
depends on BUSYBOX_CONFIG_WC
|
||||
help
|
||||
Use "unsigned long long" in wc for count variables
|
||||
Use "unsigned long long" in wc for count variables.
|
||||
|
||||
config BUSYBOX_CONFIG_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
|
||||
execute all the scripts in that directory.
|
||||
|
||||
In this implementation of run-parts some features (such as report mode)
|
||||
are not implemented.
|
||||
In this implementation of run-parts some features (such as report
|
||||
mode) are not implemented.
|
||||
|
||||
Unless you know that run-parts is used in some of your scripts
|
||||
you can safely say N here.
|
||||
|
|
|
@ -101,7 +101,7 @@ config BUSYBOX_CONFIG_DELGROUP
|
|||
Utility for deleting a group account.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP
|
||||
bool "Support for removing users from groups."
|
||||
bool "Support for removing users from groups"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_DELGROUP
|
||||
help
|
||||
|
|
|
@ -168,7 +168,8 @@ config BUSYBOX_CONFIG_DEVFSD_FG_NP
|
|||
depends on BUSYBOX_CONFIG_DEVFSD
|
||||
help
|
||||
-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
|
||||
bool "Increases logging (and size)"
|
||||
|
@ -226,7 +227,8 @@ config BUSYBOX_CONFIG_INOTIFYD
|
|||
bool "inotifyd"
|
||||
default n
|
||||
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
|
||||
bool "last"
|
||||
|
@ -340,7 +342,7 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
|
|||
This is dangerous stuff, so you should probably say N.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
|
||||
bool "perform device reset (DANGEROUS)"
|
||||
bool "Perform device reset (DANGEROUS)"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_HDPARM
|
||||
help
|
||||
|
@ -348,7 +350,7 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
|
|||
This is dangerous stuff, so you should probably say N.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
|
||||
bool "tristate device for hotswap (DANGEROUS)"
|
||||
bool "Tristate device for hotswap (DANGEROUS)"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_HDPARM
|
||||
help
|
||||
|
@ -357,7 +359,7 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
|
|||
stuff, so you should probably say N.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
|
||||
bool "get/set using_dma flag (DANGEROUS)"
|
||||
bool "Get/set using_dma flag (DANGEROUS)"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_HDPARM
|
||||
help
|
||||
|
@ -509,8 +511,9 @@ config BUSYBOX_CONFIG_TTYSIZE
|
|||
default n
|
||||
help
|
||||
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,
|
||||
but returns default 80x24. Usage in shell scripts: width=`ttysize w`.
|
||||
only height, or both, in any order. It also does not complain on
|
||||
error, but returns default 80x24.
|
||||
Usage in shell scripts: width=`ttysize w`.
|
||||
|
||||
config BUSYBOX_CONFIG_WATCHDOG
|
||||
bool "watchdog"
|
||||
|
|
|
@ -5,14 +5,64 @@
|
|||
|
||||
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
|
||||
bool "depmod"
|
||||
default n
|
||||
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
|
||||
help
|
||||
depmod generates modules.dep (FIXME: elaborate)
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_DEPMOD_PRUNE_FANCY
|
||||
bool "fancy dependency pruning"
|
||||
bool "Fancy dependency pruning"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_DEPMOD
|
||||
help
|
||||
|
@ -26,7 +76,7 @@ config BUSYBOX_CONFIG_FEATURE_DEPMOD_PRUNE_FANCY
|
|||
If unsure, say N.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_DEPMOD_ALIAS
|
||||
bool "alias support"
|
||||
bool "Alias support"
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_DEPMOD
|
||||
help
|
||||
|
@ -38,6 +88,7 @@ config BUSYBOX_CONFIG_FEATURE_DEPMOD_ALIAS
|
|||
config BUSYBOX_CONFIG_INSMOD
|
||||
bool "insmod"
|
||||
default y
|
||||
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
|
||||
help
|
||||
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
|
||||
bool "rmmod"
|
||||
default y
|
||||
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
|
||||
help
|
||||
rmmod is used to unload specified modules from the kernel.
|
||||
|
||||
config BUSYBOX_CONFIG_LSMOD
|
||||
bool "lsmod"
|
||||
default y
|
||||
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
|
||||
help
|
||||
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
|
||||
bool "modprobe"
|
||||
default n
|
||||
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL
|
||||
help
|
||||
Handle the loading of modules, and their dependencies on a high
|
||||
level.
|
||||
|
@ -196,7 +250,7 @@ config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
|
|||
# Simulate indentation
|
||||
string "Default directory containing 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
|
||||
Directory that contains kernel modules.
|
||||
Defaults to "/lib/modules"
|
||||
|
@ -205,7 +259,7 @@ config BUSYBOX_CONFIG_DEFAULT_DEPMOD_FILE
|
|||
# Simulate indentation
|
||||
string "Default name of 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
|
||||
Filename that contains kernel modules dependencies.
|
||||
Defaults to "modules.dep"
|
||||
|
|
|
@ -66,12 +66,12 @@ config BUSYBOX_CONFIG_FEATURE_BRCTL_FANCY
|
|||
This adds about 600 bytes.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_BRCTL_SHOW
|
||||
bool "Support show"
|
||||
bool "Support show, showmac and showstp"
|
||||
default y
|
||||
depends on BUSYBOX_CONFIG_BRCTL && BUSYBOX_CONFIG_FEATURE_BRCTL_FANCY
|
||||
help
|
||||
Add support for option which prints the current config:
|
||||
show
|
||||
showmacs, showstp, show
|
||||
|
||||
config BUSYBOX_CONFIG_DNSD
|
||||
bool "dnsd"
|
||||
|
@ -558,7 +558,8 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_FANCY
|
|||
default n
|
||||
depends on BUSYBOX_CONFIG_IPCALC
|
||||
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
|
||||
bool "Enable long options"
|
||||
|
@ -638,6 +639,14 @@ config BUSYBOX_CONFIG_FEATURE_NETSTAT_WIDE
|
|||
Add support for wide columns. Useful when displaying IPv6 addresses
|
||||
(-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
|
||||
bool "nslookup"
|
||||
default y
|
||||
|
@ -694,7 +703,8 @@ config BUSYBOX_CONFIG_SLATTACH
|
|||
bool "slattach"
|
||||
default n
|
||||
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
|
||||
bool "telnet"
|
||||
|
@ -906,12 +916,14 @@ config BUSYBOX_CONFIG_TCPSVD
|
|||
bool "tcpsvd"
|
||||
default n
|
||||
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
|
||||
bool "udpsvd"
|
||||
default n
|
||||
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
|
||||
|
|
|
@ -51,7 +51,7 @@ config BUSYBOX_CONFIG_ASH_BASH_COMPAT
|
|||
default y
|
||||
depends on BUSYBOX_CONFIG_ASH
|
||||
help
|
||||
Enable bash-conpatible extensions.
|
||||
Enable bash-compatible extensions.
|
||||
|
||||
config BUSYBOX_CONFIG_ASH_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.
|
||||
|
||||
config BUSYBOX_CONFIG_ASH_READ_TIMEOUT
|
||||
bool "'read -t S' support."
|
||||
bool "'read -t S' support"
|
||||
default y
|
||||
depends on BUSYBOX_CONFIG_ASH
|
||||
help
|
||||
|
@ -178,9 +178,11 @@ config BUSYBOX_CONFIG_HUSH
|
|||
hush is a very small shell (just 18k) and it has fairly complete
|
||||
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,
|
||||
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
|
||||
expansion, &> and >& redirection of stdout+stderr, etc.
|
||||
|
||||
|
@ -232,6 +234,14 @@ config BUSYBOX_CONFIG_HUSH_LOOPS
|
|||
depends on BUSYBOX_CONFIG_HUSH
|
||||
help
|
||||
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
|
||||
bool "lash"
|
||||
|
@ -249,7 +259,7 @@ config BUSYBOX_CONFIG_MSH
|
|||
shell to do. It is not always pedantically correct about Bourne
|
||||
shell grammar (try running the shell testscript "tests/sh.testcases"
|
||||
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"
|
||||
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
|
||||
help
|
||||
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:
|
||||
# dmesg
|
||||
|
@ -188,8 +189,8 @@ config BUSYBOX_CONFIG_MKFS_MINIX
|
|||
default n
|
||||
help
|
||||
The minix filesystem is a nice, small, compact, read-write filesystem
|
||||
with little overhead. If you wish to be able to create minix filesystems
|
||||
this utility will do the job for you.
|
||||
with little overhead. If you wish to be able to create minix
|
||||
filesystems this utility will do the job for you.
|
||||
|
||||
comment "Minix filesystem support"
|
||||
depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX
|
||||
|
@ -199,9 +200,9 @@ config BUSYBOX_CONFIG_FEATURE_MINIX2
|
|||
default n
|
||||
depends on BUSYBOX_CONFIG_FSCK_MINIX || BUSYBOX_CONFIG_MKFS_MINIX
|
||||
help
|
||||
If you wish to be able to create version 2 minix filesystems, enable this.
|
||||
If you enabled 'mkfs_minix' then you almost certainly want to be using the
|
||||
version 2 filesystem support.
|
||||
If you wish to be able to create version 2 minix filesystems, enable
|
||||
this. If you enabled 'mkfs_minix' then you almost certainly want to
|
||||
be using the version 2 filesystem support.
|
||||
|
||||
config BUSYBOX_CONFIG_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
|
||||
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
|
||||
bool "ipcrm"
|
||||
|
@ -326,7 +327,8 @@ config BUSYBOX_CONFIG_FEATURE_MDEV_RENAME_REGEXP
|
|||
default n
|
||||
depends on BUSYBOX_CONFIG_FEATURE_MDEV_RENAME
|
||||
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
|
||||
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
|
||||
systems.
|
||||
|
||||
config BUSYBOX_CONFIG_RDEV
|
||||
bool "rdev"
|
||||
default n
|
||||
help
|
||||
Print the device node associated with the filesystem mounted at '/'.
|
||||
|
||||
config BUSYBOX_CONFIG_READPROFILE
|
||||
bool "readprofile"
|
||||
default n
|
||||
|
@ -773,10 +781,10 @@ config BUSYBOX_CONFIG_UMOUNT
|
|||
bool "umount"
|
||||
default y
|
||||
help
|
||||
When you want to remove a mounted filesystem from its current mount point,
|
||||
for example when you are shutting down the system, the 'umount' utility is
|
||||
the tool to use. If you enabled the 'mount' utility, you almost certainly
|
||||
also want to enable 'umount'.
|
||||
When you want to remove a mounted filesystem from its current mount
|
||||
point, for example when you are shutting down the system, the
|
||||
'umount' utility is the tool to use. If you enabled the 'mount'
|
||||
utility, you almost certainly also want to enable 'umount'.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_UMOUNT_ALL
|
||||
bool "Support option -a"
|
||||
|
@ -794,10 +802,11 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP
|
|||
depends on BUSYBOX_CONFIG_MOUNT || BUSYBOX_CONFIG_UMOUNT
|
||||
help
|
||||
Enabling this feature allows automatic mounting of files (containing
|
||||
filesystem images) via the linux kernel's loopback devices. The mount
|
||||
command will detect you are trying to mount a file instead of a block
|
||||
device, and transparently associate the file with a loopback device.
|
||||
The umount command will also free that loopback device.
|
||||
filesystem images) via the linux kernel's loopback devices.
|
||||
The mount command will detect you are trying to mount a file instead
|
||||
of a block device, and transparently associate the file with a
|
||||
loopback device. The umount command will also free that loopback
|
||||
device.
|
||||
|
||||
You can still use the 'losetup' utility (to manually associate files
|
||||
with loop devices) if you need to do something advanced, such as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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) {
|
||||
tmp = a->next;
|
||||
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
|
||||
+++ 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"
|
||||
"proxy\0" Required_argument "Y"
|
||||
"user-agent\0" Required_argument "U"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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) {
|
||||
case INIT_SELECTING:
|
||||
|
@ -9,7 +9,7 @@
|
|||
if (packet_num == 0)
|
||||
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;
|
||||
case RENEW_REQUESTED:
|
||||
case REQUESTING:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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 (;;) {
|
||||
unsigned timestamp_before_wait;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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;
|
||||
char **aptr;
|
||||
int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
|
||||
|
@ -19,7 +19,7 @@
|
|||
aptr = argptr;
|
||||
name = *aptr;
|
||||
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);
|
||||
if (vp) {
|
||||
vp->flags |= flag;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _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))
|
||||
--- a/include/usage.h
|
||||
+++ b/include/usage.h
|
||||
@@ -2815,6 +2815,9 @@
|
||||
@@ -2816,6 +2816,9 @@
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -18,11 +18,11 @@
|
|||
+#define netmsg_full_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" \
|
||||
--- a/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
|
||||
connections.
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
--- a/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) {
|
||||
char *md5_passwd;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
--- a/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_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_LOCK(APPLET(lock, _BB_DIR_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))
|
||||
--- a/include/usage.h
|
||||
+++ b/include/usage.h
|
||||
@@ -2138,6 +2138,9 @@
|
||||
@@ -2132,6 +2132,9 @@
|
||||
#define loadkmap_example_usage \
|
||||
"$ loadkmap < /etc/i18n/lang-keymap\n"
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
|||
#define logger_full_usage "\n\n" \
|
||||
--- a/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.
|
||||
This is dangerous stuff, so you should probably say N.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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_AUTH_MD5(" [-m pass]") \
|
||||
" [-h home]" \
|
||||
|
@ -10,7 +10,7 @@
|
|||
#define httpd_full_usage "\n\n" \
|
||||
"Listen for incoming HTTP requests\n" \
|
||||
"\nOptions:" \
|
||||
@@ -1576,6 +1577,8 @@
|
||||
@@ -1570,6 +1571,8 @@
|
||||
"\n -h HOME Home directory (default .)" \
|
||||
"\n -e STRING HTML encode STRING" \
|
||||
"\n -d STRING URL decode STRING" \
|
||||
|
@ -21,7 +21,7 @@
|
|||
USE_GETOPT_LONG( \
|
||||
--- a/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_moved_temporarily;
|
||||
|
@ -30,7 +30,7 @@
|
|||
Htaccess_IP *ip_a_d; /* config allow/deny lines */
|
||||
|
||||
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 found_mime_type (G.found_mime_type )
|
||||
#define found_moved_temporarily (G.found_moved_temporarily)
|
||||
|
@ -39,7 +39,7 @@
|
|||
#define last_mod (G.last_mod )
|
||||
#define ip_a_d (G.ip_a_d )
|
||||
#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
|
||||
if (responseNum == HTTP_MOVED_TEMPORARILY) {
|
||||
|
@ -52,7 +52,7 @@
|
|||
(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);
|
||||
*++urlp = '\0'; /* terminate after last character */
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
|||
if (is_directory(urlcopy + 1, 1, &sb)) {
|
||||
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
|
||||
|
||||
enum {
|
||||
|
@ -77,7 +77,7 @@
|
|||
d_opt_decode_url,
|
||||
h_opt_home_httpd,
|
||||
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.
|
||||
* If user gives relative path in -h,
|
||||
* $SCRIPT_FILENAME will not be set. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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)
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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)) {
|
||||
break;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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;
|
||||
Htaccess_Proxy *proxy_entry;
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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_CGI(char *referer;)
|
||||
USE_FEATURE_HTTPD_CGI(char *user_agent;)
|
||||
|
@ -9,7 +9,7 @@
|
|||
|
||||
off_t file_size; /* -1 - unknown */
|
||||
#if ENABLE_FEATURE_HTTPD_RANGES
|
||||
@@ -302,6 +304,8 @@ struct globals {
|
||||
@@ -303,6 +305,8 @@ struct globals {
|
||||
#define remoteuser (G.remoteuser )
|
||||
#define referer (G.referer )
|
||||
#define user_agent (G.user_agent )
|
||||
|
@ -18,7 +18,7 @@
|
|||
#define file_size (G.file_size )
|
||||
#if ENABLE_FEATURE_HTTPD_RANGES
|
||||
#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);
|
||||
|
@ -29,7 +29,7 @@
|
|||
if (post_len)
|
||||
putenv(xasprintf("CONTENT_LENGTH=%d", post_len));
|
||||
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));
|
||||
} else if (STRNCASECMP(iobuf, "User-Agent:") == 0) {
|
||||
user_agent = xstrdup(skip_whitespace(iobuf + sizeof("User-Agent:")-1));
|
||||
|
|
|
@ -27,11 +27,11 @@
|
|||
+int insmod_main_26(int argc, char **argv);
|
||||
#endif
|
||||
+int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
|
||||
+
|
||||
+static char *g_filename = NULL;
|
||||
+#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)
|
||||
+{
|
||||
+ char *fullname = (char *) userdata;
|
||||
|
@ -112,7 +112,7 @@
|
|||
+
|
||||
+done:
|
||||
+ free(filename);
|
||||
+
|
||||
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
|
@ -164,9 +164,9 @@
|
|||
-/*======================================================================*/
|
||||
-
|
||||
-
|
||||
-static int check_module_name_match(const char *filename,
|
||||
- struct stat *statbuf ATTRIBUTE_UNUSED,
|
||||
- void *userdata, int depth ATTRIBUTE_UNUSED)
|
||||
-static int FAST_FUNC check_module_name_match(const char *filename,
|
||||
- struct stat *statbuf UNUSED_PARAM,
|
||||
- void *userdata, int depth UNUSED_PARAM)
|
||||
-{
|
||||
- char *fullname = (char *) userdata;
|
||||
- char *tmp;
|
||||
|
@ -238,7 +238,7 @@
|
|||
break;
|
||||
|
||||
#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)
|
||||
|
||||
|
@ -247,7 +247,7 @@
|
|||
int offset, int size)
|
||||
{
|
||||
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 (got_allocate) {
|
||||
got_offset += arch_single_init(
|
||||
|
@ -256,7 +256,7 @@
|
|||
got_offset, GOT_ENTRY_SIZE);
|
||||
|
||||
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);
|
||||
#else
|
||||
plt_offset += arch_single_init(
|
||||
|
@ -265,7 +265,7 @@
|
|||
plt_offset, PLT_ENTRY_SIZE);
|
||||
#endif
|
||||
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) {
|
||||
ch = *name++;
|
||||
h = (h << 4) + ch;
|
||||
|
@ -275,7 +275,7 @@
|
|||
h ^= g >> 24;
|
||||
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_binding = ELF_ST_BIND(info);
|
||||
|
||||
|
@ -284,7 +284,7 @@
|
|||
if (f->symbol_cmp(sym->name, name) == 0) {
|
||||
int o_secidx = sym->secidx;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -301,7 +301,7 @@
|
|||
if (symidx >= f->local_symtab_size)
|
||||
bb_error_msg("local symbol %s with index %ld exceeds local_symtab_size %ld",
|
||||
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! */
|
||||
switch (arch_apply_relocation
|
||||
|
@ -310,11 +310,11 @@
|
|||
) {
|
||||
case obj_reloc_ok:
|
||||
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)
|
||||
{
|
||||
struct obj_file *f;
|
||||
|
@ -324,7 +324,7 @@
|
|||
char *shstrtab;
|
||||
|
||||
/* 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) {
|
||||
value = strchr(ptr, '=');
|
||||
if (value && strncmp(ptr, "license", value-ptr) == 0) {
|
||||
|
@ -333,7 +333,7 @@
|
|||
if (license)
|
||||
*license = value+1;
|
||||
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
|
||||
* debugging.
|
||||
*/
|
||||
|
@ -343,7 +343,7 @@
|
|||
static int
|
||||
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;
|
||||
char *name, *absolute_filename;
|
||||
char str[STRVERSIONLEN];
|
||||
|
@ -353,7 +353,7 @@
|
|||
struct stat statbuf;
|
||||
|
||||
/* 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);
|
||||
#endif
|
||||
|
||||
|
@ -408,7 +408,7 @@
|
|||
+ if (arg1 == NULL)
|
||||
bb_show_usage();
|
||||
- }
|
||||
|
||||
-
|
||||
- /* Grab the module name */
|
||||
- tmp1 = xstrdup(arg1);
|
||||
- tmp = basename(tmp1);
|
||||
|
@ -419,7 +419,7 @@
|
|||
- k_version = myuname.release[2] - '0';
|
||||
- }
|
||||
- }
|
||||
-
|
||||
|
||||
-#if ENABLE_FEATURE_2_6_MODULES
|
||||
- if (k_version > 4 && len > 3 && tmp[len - 3] == '.'
|
||||
- && 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 */
|
||||
- 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`,
|
||||
- * but do not error out yet if we fail to find it... */
|
||||
|
@ -477,7 +477,7 @@
|
|||
- }
|
||||
-
|
||||
- /* 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;
|
||||
- char *module_dir;
|
||||
-
|
||||
|
@ -494,7 +494,7 @@
|
|||
- bb_error_msg_and_die("%s: module not found", m_fullName);
|
||||
- free(module_dir);
|
||||
- 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);
|
||||
- }
|
||||
|
@ -503,16 +503,16 @@
|
|||
}
|
||||
- } else
|
||||
- m_filename = xstrdup(arg1);
|
||||
|
||||
-
|
||||
- if (flag_verbose)
|
||||
- printf("Using %s\n", m_filename);
|
||||
-
|
||||
|
||||
-#if ENABLE_FEATURE_2_6_MODULES
|
||||
- if (k_version > 4) {
|
||||
- argv[optind] = m_filename;
|
||||
- optind--;
|
||||
- return insmod_ng_main(argc - optind, argv + optind);
|
||||
+ fp = fopen(g_filename, "r");
|
||||
+ fp = fopen_for_read(g_filename);
|
||||
+ if (!fp) {
|
||||
+ ret = errno;
|
||||
+ goto out;
|
||||
|
@ -521,7 +521,7 @@
|
|||
|
||||
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"
|
||||
"\twhile this kernel is version %s",
|
||||
flag_force_load ? "warning: " : "",
|
||||
|
@ -530,7 +530,7 @@
|
|||
if (!flag_force_load)
|
||||
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);
|
||||
|
||||
#if ENABLE_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
|
||||
|
@ -539,7 +539,7 @@
|
|||
#endif /* FEATURE_INSMOD_KSYMOOPS_SYMBOLS */
|
||||
|
||||
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_addr = create_module(m_name, m_size);
|
||||
|
@ -548,7 +548,7 @@
|
|||
case EEXIST:
|
||||
bb_error_msg_and_die("a module named %s already exists", m_name);
|
||||
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
|
||||
*/
|
||||
if (!obj_load_progbits(fp, f, (char*)m_addr)) {
|
||||
|
@ -594,7 +594,7 @@
|
|||
}
|
||||
|
||||
#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
|
||||
|
||||
#include <sys/mman.h>
|
||||
|
@ -610,15 +610,15 @@
|
|||
|
||||
/* We use error numbers in a loose translation... */
|
||||
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
|
||||
-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
|
||||
-static int insmod_ng_main(int argc ATTRIBUTE_UNUSED, char **argv)
|
||||
-static int insmod_ng_main(int argc UNUSED_PARAM, char **argv)
|
||||
-#endif
|
||||
+int insmod_main_26(int argc, char **argv)
|
||||
{
|
||||
|
@ -651,7 +651,7 @@
|
|||
/* Rest is options */
|
||||
options = xzalloc(1);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -683,7 +683,7 @@
|
|||
- }
|
||||
-#else
|
||||
len = MAXINT(ssize_t);
|
||||
- map = xmalloc_open_read_close(filename, &len);
|
||||
- map = xmalloc_xopen_read_close(filename, &len);
|
||||
-#endif
|
||||
+ map = xmalloc_open_read_close(g_filename, &len);
|
||||
+ ret = syscall(__NR_init_module, map, len, options);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/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';
|
||||
q = get_input_line(buf); // get input line- use "status line"
|
||||
if (q[0] && !q[1]) {
|
||||
|
@ -9,7 +9,7 @@
|
|||
last_search_pattern[0] = c;
|
||||
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) {
|
||||
do_cmd(c);
|
||||
} // repeat cnt
|
||||
|
@ -20,16 +20,3 @@
|
|||
dir = BACK; // assume BACKWARD search
|
||||
p = dot - 1;
|
||||
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;
|
||||
|
||||
/* 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);
|
||||
g_pos++;
|
||||
f = newfunc(t_string);
|
||||
|
@ -25,7 +25,7 @@
|
|||
f->nargs = 0;
|
||||
while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) {
|
||||
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)
|
||||
break;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@
|
|||
chain_group();
|
||||
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;
|
||||
|
||||
case XC( OC_FUNC ):
|
||||
|
@ -44,7 +44,7 @@
|
|||
syntax_error(EMSG_UNDEF_FUNC);
|
||||
|
||||
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;
|
||||
|
||||
L.s = g_progname;
|
||||
|
@ -56,7 +56,7 @@
|
|||
g_progname = L.s;
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -200,7 +200,7 @@
|
|||
int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
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 = '=';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
/* 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");
|
||||
|
||||
/* print interface list */
|
||||
|
@ -17,7 +17,7 @@
|
|||
arm_ioctl(args, BRCTL_GET_PORT_LIST,
|
||||
(unsigned long) ifidx, MAX_PORTS);
|
||||
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++;
|
||||
|
||||
if (key == ARG_addbr || key == ARG_delbr) { /* addbr or delbr */
|
||||
|
@ -40,7 +40,7 @@
|
|||
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);
|
||||
if (key == ARG_addif || key == ARG_delif) { /* addif or delif */
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
config BUSYBOX_CONFIG_FEATURE_DEVFS
|
||||
bool
|
||||
default y if LINUX_2_4
|
||||
default n if LINUX_2_6
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_2_4_MODULES
|
||||
bool
|
||||
default y if LINUX_2_4
|
||||
default n if LINUX_2_6
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_2_6_MODULES
|
||||
bool
|
||||
default n if LINUX_2_4
|
||||
default y if LINUX_2_6
|
||||
|
|
Loading…
Reference in a new issue