busybox: update to v1.14.4 (closes: #5619)

SVN-Revision: 17782
This commit is contained in:
Nicolas Thill 2009-09-28 12:38:46 +00:00
parent 6fa03d63d4
commit 91750d01a7
36 changed files with 336 additions and 227 deletions

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=busybox PKG_NAME:=busybox
PKG_VERSION:=1.13.4 PKG_VERSION:=1.14.4
PKG_RELEASE:=1 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:=8a5eb7f15d4077d18fa97bda7a4e5412 PKG_MD5SUM:=ad6d0b271e60783a3c767c4ccbc7f98e
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View File

@ -410,6 +410,12 @@ config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX
Native builds leave this empty. Native builds leave this empty.
config BUSYBOX_CONFIG_EXTRA_CFLAGS
string "Additional CFLAGS"
default ""
help
Additional CFLAGS to pass to the compiler verbatim.
endmenu endmenu
menu 'Debugging Options' menu 'Debugging Options'

View File

@ -110,6 +110,13 @@ config BUSYBOX_CONFIG_FEATURE_CPIO_O
This implementation of cpio can create cpio archives in the "newc" This implementation of cpio can create cpio archives in the "newc"
format only. format only.
config BUSYBOX_CONFIG_FEATURE_CPIO_P
bool "Support for passthrough mode"
default n
depends on BUSYBOX_CONFIG_FEATURE_CPIO_O
help
Passthrough mode. Rarely used.
config BUSYBOX_CONFIG_DPKG config BUSYBOX_CONFIG_DPKG
bool "dpkg" bool "dpkg"
default n default n

View File

@ -189,7 +189,7 @@ config BUSYBOX_CONFIG_ECHO
config BUSYBOX_CONFIG_FEATURE_FANCY_ECHO config BUSYBOX_CONFIG_FEATURE_FANCY_ECHO
bool "Enable echo options (-n and -e)" bool "Enable echo options (-n and -e)"
default y default y
depends on BUSYBOX_CONFIG_ECHO || BUSYBOX_CONFIG_ASH_BUILTIN_ECHO depends on BUSYBOX_CONFIG_ECHO || BUSYBOX_CONFIG_ASH_BUILTIN_ECHO || BUSYBOX_CONFIG_HUSH
help help
This adds options (-n and -e) to echo. This adds options (-n and -e) to echo.
@ -509,6 +509,18 @@ config BUSYBOX_CONFIG_SHA1SUM
help help
Compute and check SHA1 message digest Compute and check SHA1 message digest
config BUSYBOX_CONFIG_SHA256SUM
bool "sha256sum"
default n
help
Compute and check SHA256 message digest
config BUSYBOX_CONFIG_SHA512SUM
bool "sha512sum"
default n
help
Compute and check SHA512 message digest
config BUSYBOX_CONFIG_SLEEP config BUSYBOX_CONFIG_SLEEP
bool "sleep" bool "sleep"
default y default y
@ -754,7 +766,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 counter variables.
config BUSYBOX_CONFIG_WHO config BUSYBOX_CONFIG_WHO
bool "who" bool "who"

View File

@ -32,11 +32,12 @@ config BUSYBOX_CONFIG_FEATURE_KILL_DELAY
int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED
range 0 1024 range 0 1024
default 0 default 0
depends on BUSYBOX_CONFIG_FEATURE_KILL_REMOVED
help help
With nonzero setting, init sends TERM, forks, child waits N With nonzero setting, init sends TERM, forks, child waits N
seconds, sends KILL and exits. Setting it too high is unwise seconds, sends KILL and exits. Setting it too high is unwise
(child will hang around for too long and can actually kill (child will hang around for too long and could actually kill
wrong process!) the wrong process!)
config BUSYBOX_CONFIG_FEATURE_INIT_SCTTY config BUSYBOX_CONFIG_FEATURE_INIT_SCTTY
bool "Run commands with leading dash with controlling tty" bool "Run commands with leading dash with controlling tty"

View File

@ -58,7 +58,7 @@ config BUSYBOX_CONFIG_USE_BB_SHADOW
password servers and whatnot. password servers and whatnot.
config BUSYBOX_CONFIG_USE_BB_CRYPT config BUSYBOX_CONFIG_USE_BB_CRYPT
bool "Use internal DES and MD5 crypt functions" bool "Use internal crypt functions"
default n default n
help help
Busybox has internal DES and MD5 crypt functions. Busybox has internal DES and MD5 crypt functions.
@ -79,6 +79,18 @@ config BUSYBOX_CONFIG_USE_BB_CRYPT
In static build, it makes code _smaller_ by about 1.2k, In static build, it makes code _smaller_ by about 1.2k,
and likely many kilobytes less of bss. and likely many kilobytes less of bss.
config BUSYBOX_CONFIG_USE_BB_CRYPT_SHA
bool "Enable SHA256/512 crypt functions"
default n
depends on BUSYBOX_CONFIG_USE_BB_CRYPT
help
Enable this if you have passwords starting with "$5$" or "$6$"
in your /etc/passwd or /etc/shadow files. These passwords
are hashed using SHA256 and SHA512 algorithms. Support for them
was added to glibc in 2008.
With this option off, login will fail password check for any
user which has password encrypted with these algorithms.
config BUSYBOX_CONFIG_ADDGROUP config BUSYBOX_CONFIG_ADDGROUP
bool "addgroup" bool "addgroup"
default n default n
@ -230,15 +242,16 @@ config BUSYBOX_CONFIG_CRYPTPW
bool "cryptpw" bool "cryptpw"
default n default n
help help
Applet for crypting a string. Encrypts the given password with the crypt(3) libc function
using the given salt. Debian has this utility under mkpasswd
name. Busybox provides mkpasswd as an alias for cryptpw.
config BUSYBOX_CONFIG_CHPASSWD config BUSYBOX_CONFIG_CHPASSWD
bool "chpasswd" bool "chpasswd"
default n default n
help help
chpasswd reads a file of user name and password pairs from Reads a file of user name and password pairs from standard input
standard input and uses this information to update a group of and uses this information to update a group of existing users.
existing users.
config BUSYBOX_CONFIG_SU config BUSYBOX_CONFIG_SU
bool "su" bool "su"

View File

@ -50,20 +50,4 @@ config BUSYBOX_CONFIG_SENDMAIL
help help
Barebones sendmail. Barebones sendmail.
config BUSYBOX_CONFIG_FEATURE_SENDMAIL_MAILX
bool "Allow to specify subject, attachments, their charset etc"
default n
depends on BUSYBOX_CONFIG_SENDMAIL
help
Allow to specify subject, attachments and their charset.
Allow to use custom connection helper.
config BUSYBOX_CONFIG_FEATURE_SENDMAIL_MAILXX
bool "Allow to specify Cc: addresses and some additional headers"
default n
depends on BUSYBOX_CONFIG_FEATURE_SENDMAIL_MAILX
help
Allow to specify Cc: addresses and some additional headers:
Errors-To:
endmenu endmenu

View File

@ -121,6 +121,13 @@ config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
help help
Support calling /usr/sbin/sendmail for send cmd outputs. Support calling /usr/sbin/sendmail for send cmd outputs.
config BUSYBOX_CONFIG_FEATURE_CROND_DIR
string "crond spool directory"
default "/var/spool/cron"
depends on BUSYBOX_CONFIG_CROND || BUSYBOX_CONFIG_CRONTAB
help
Location of crond spool.
config BUSYBOX_CONFIG_CRONTAB config BUSYBOX_CONFIG_CRONTAB
bool "crontab" bool "crontab"
default y default y
@ -151,7 +158,10 @@ config BUSYBOX_CONFIG_DEVFSD
default n default n
select BUSYBOX_CONFIG_FEATURE_SYSLOG select BUSYBOX_CONFIG_FEATURE_SYSLOG
help help
This is deprecated, and will be removed at the end of 2008. This is deprecated and should NOT be used anymore.
Use linux >= 2.6 (optionally with hotplug) and mdev instead!
See docs/mdev.txt for detailed instructions on how to use mdev
instead.
Provides compatibility with old device names on a devfs systems. Provides compatibility with old device names on a devfs systems.
You should set it to true if you have devfs enabled. You should set it to true if you have devfs enabled.
@ -160,7 +170,7 @@ config BUSYBOX_CONFIG_DEVFSD
"PERMISSIONS", "EXECUTE", "COPY", "IGNORE", "PERMISSIONS", "EXECUTE", "COPY", "IGNORE",
"MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT". "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT".
But only if they are written UPPERCASE!!!!!!!! But only if they are written UPPERCASE!!!!!!!!
config BUSYBOX_CONFIG_DEVFSD_MODLOAD config BUSYBOX_CONFIG_DEVFSD_MODLOAD
bool "Adds support for MODLOAD keyword in devsfd.conf" bool "Adds support for MODLOAD keyword in devsfd.conf"
@ -190,9 +200,11 @@ config BUSYBOX_CONFIG_FEATURE_DEVFS
bool "Use devfs names for all devices (obsolete)" bool "Use devfs names for all devices (obsolete)"
default n default n
help help
This is obsolete and will be going away at the end of 2008.. This is obsolete and should NOT be used anymore.
Use linux >= 2.6 (optionally with hotplug) and mdev instead!
This tells busybox to look for names like /dev/loop/0 instead of For legacy systems -- if there is no way around devfsd -- this
tells busybox to look for names like /dev/loop/0 instead of
/dev/loop0. If your /dev directory has normal names instead of /dev/loop0. If your /dev directory has normal names instead of
devfs names, you don't want this. devfs names, you don't want this.
@ -238,6 +250,20 @@ config BUSYBOX_CONFIG_FBSPLASH
"NN" (ASCII decimal number) - percentage to show on progress bar "NN" (ASCII decimal number) - percentage to show on progress bar
"exit" - well you guessed it "exit" - well you guessed it
config BUSYBOX_CONFIG_FLASH_ERASEALL
bool "flash_eraseall"
default n
help
The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
This utility is used to erase the whole MTD device.
config BUSYBOX_CONFIG_IONICE
bool "ionice"
default n
help
Set/set program io scheduling class and priority
Requires kernel >= 2.6.13
config BUSYBOX_CONFIG_INOTIFYD config BUSYBOX_CONFIG_INOTIFYD
bool "inotifyd" bool "inotifyd"
default n default n
@ -300,14 +326,6 @@ config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
The -M flag enables a more sophisticated status line. The -M flag enables a more sophisticated status line.
The -m flag enables a simpler status line with a percentage. The -m flag enables a simpler status line with a percentage.
config BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
bool "Enable flag changes ('-' command)"
default n
depends on BUSYBOX_CONFIG_LESS
help
This enables the ability to change command-line flags within
less itself ('-' keyboard command).
config BUSYBOX_CONFIG_FEATURE_LESS_MARKS config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
bool "Enable marks" bool "Enable marks"
default n default n
@ -322,13 +340,6 @@ config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
help help
Enable regular expressions, allowing complex file searches. Enable regular expressions, allowing complex file searches.
config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS
bool "Enable dynamic switching of line numbers"
default n
depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
help
Enable "-N" command.
config BUSYBOX_CONFIG_FEATURE_LESS_WINCH config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
bool "Enable automatic resizing on window size changes" bool "Enable automatic resizing on window size changes"
default n default n
@ -336,6 +347,21 @@ config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
help help
Makes less track window size changes. Makes less track window size changes.
config BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
bool "Enable flag changes ('-' command)"
default n
depends on BUSYBOX_CONFIG_LESS
help
This enables the ability to change command-line flags within
less itself ('-' keyboard command).
config BUSYBOX_CONFIG_FEATURE_LESS_LINENUMS
bool "Enable dynamic switching of line numbers"
default n
depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
help
Enable "-N" command.
config BUSYBOX_CONFIG_HDPARM config BUSYBOX_CONFIG_HDPARM
bool "hdparm" bool "hdparm"
default n default n
@ -388,12 +414,11 @@ 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"
default n default n
depends on BUSYBOX_CONFIG_HDPARM depends on BUSYBOX_CONFIG_HDPARM
help help
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.
config BUSYBOX_CONFIG_LOCK config BUSYBOX_CONFIG_LOCK
bool "lock" bool "lock"
@ -535,6 +560,13 @@ config BUSYBOX_CONFIG_TIME
When the command finishes, time writes a message to standard output When the command finishes, time writes a message to standard output
giving timing statistics about this program run. giving timing statistics about this program run.
config BUSYBOX_CONFIG_TIMEOUT
bool "timeout"
default n
help
Runs a program and watches it. If it does not terminate in
specified number of seconds, it is sent a signal.
config BUSYBOX_CONFIG_TTYSIZE config BUSYBOX_CONFIG_TTYSIZE
bool "ttysize" bool "ttysize"
default n default n

View File

@ -5,20 +5,6 @@
menu "Linux Module Utilities" menu "Linux Module Utilities"
config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"
help
Directory that contains kernel modules.
Defaults to "/lib/modules"
config BUSYBOX_CONFIG_DEFAULT_DEPMOD_FILE
string "Default name of modules.dep"
default "modules.dep"
help
Filename that contains kernel modules dependencies.
Defaults to "modules.dep"
config BUSYBOX_CONFIG_MODPROBE_SMALL config BUSYBOX_CONFIG_MODPROBE_SMALL
bool "Simplified modutils" bool "Simplified modutils"
default n default n
@ -58,7 +44,6 @@ config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
depends on BUSYBOX_CONFIG_MODPROBE_SMALL depends on BUSYBOX_CONFIG_MODPROBE_SMALL
help help
Allow insmod and modprobe take module options from command line. Allow insmod and modprobe take module options from command line.
N.B. Very bloaty.
config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
bool "Skip loading of already loaded modules" bool "Skip loading of already loaded modules"
@ -66,7 +51,6 @@ config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
depends on BUSYBOX_CONFIG_MODPROBE_SMALL depends on BUSYBOX_CONFIG_MODPROBE_SMALL
help help
Check if the module is already loaded. Check if the module is already loaded.
N.B. It's racy.
config BUSYBOX_CONFIG_INSMOD config BUSYBOX_CONFIG_INSMOD
bool "insmod" bool "insmod"
@ -157,7 +141,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
By adding module symbols to the kernel symbol table, Oops messages By adding module symbols to the kernel symbol table, Oops messages
occuring within kernel modules can be properly debugged. By enabling occuring within kernel modules can be properly debugged. By enabling
this feature, module symbols will always be added to the kernel symbol this feature, module symbols will always be added to the kernel symbol
table for properly debugging support. If you are not interested in table for proper debugging support. If you are not interested in
Oops messages from kernel modules, say N. Oops messages from kernel modules, say N.
config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM
@ -193,7 +177,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL
config BUSYBOX_CONFIG_FEATURE_CHECK_TAINTED_MODULE config BUSYBOX_CONFIG_FEATURE_CHECK_TAINTED_MODULE
bool "Support tainted module checking with new kernels" bool "Support tainted module checking with new kernels"
default y default y
depends on !BUSYBOX_CONFIG_MODPROBE_SMALL depends on (BUSYBOX_CONFIG_LSMOD || BUSYBOX_CONFIG_FEATURE_2_4_MODULES) && !BUSYBOX_CONFIG_MODPROBE_SMALL
help help
Support checking for tainted modules. These are usually binary Support checking for tainted modules. These are usually binary
only modules that will make the linux-kernel list ignore your only modules that will make the linux-kernel list ignore your
@ -227,4 +211,20 @@ config BUSYBOX_CONFIG_FEATURE_MODUTILS_SYMBOLS
Say Y if unsure. Say Y if unsure.
config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"
depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL
help
Directory that contains kernel modules.
Defaults to "/lib/modules"
config BUSYBOX_CONFIG_DEFAULT_DEPMOD_FILE
string "Default name of modules.dep"
default "modules.dep"
depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL
help
Filename that contains kernel modules dependencies.
Defaults to "modules.dep"
endmenu endmenu

View File

@ -13,7 +13,7 @@ config BUSYBOX_CONFIG_FEATURE_IPV6
This adds IPv6 support in the networking applets. This adds IPv6 support in the networking applets.
config BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS config BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS
bool "Preferentially use IPv4 addresses from DNS queries" bool "Prefer IPv4 addresses from DNS queries"
default y default y
depends on BUSYBOX_CONFIG_FEATURE_IPV6 depends on BUSYBOX_CONFIG_FEATURE_IPV6
help help
@ -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, showmac and showstp" bool "Support show"
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:
showmacs, showstp, show show
config BUSYBOX_CONFIG_DNSD config BUSYBOX_CONFIG_DNSD
bool "dnsd" bool "dnsd"
@ -93,6 +93,19 @@ config BUSYBOX_CONFIG_FAKEIDENTD
fakeidentd listens on the ident port and returns a predefined fakeidentd listens on the ident port and returns a predefined
fake value on any query. fake value on any query.
config BUSYBOX_CONFIG_FTPD
bool "ftpd"
default n
help
simple FTP daemon. You have to run it via inetd.
config BUSYBOX_CONFIG_FEATURE_FTP_WRITE
bool "Enable upload commands"
default n
depends on BUSYBOX_CONFIG_FTPD
help
Enable all kinds of FTP upload commands (-w option)
config BUSYBOX_CONFIG_FTPGET config BUSYBOX_CONFIG_FTPGET
bool "ftpget" bool "ftpget"
default n default n
@ -827,7 +840,7 @@ config BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE
config BUSYBOX_CONFIG_TFTP_DEBUG config BUSYBOX_CONFIG_TFTP_DEBUG
bool "Enable debug" bool "Enable debug"
default n default n
depends on BUSYBOX_CONFIG_TFTP depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help help
Enable debug settings for tftp. This is useful if you're running Enable debug settings for tftp. This is useful if you're running
into problems with tftp as the protocol doesn't help you much when into problems with tftp as the protocol doesn't help you much when
@ -844,7 +857,7 @@ config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
default y default y
depends on BUSYBOX_CONFIG_TRACEROUTE depends on BUSYBOX_CONFIG_TRACEROUTE
help help
Add some verbosity to traceroute. This includes amongst other things Add some verbosity to traceroute. This includes among other things
hostnames and ICMP response types. hostnames and ICMP response types.
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
@ -860,10 +873,19 @@ config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP
default n default n
depends on BUSYBOX_CONFIG_TRACEROUTE depends on BUSYBOX_CONFIG_TRACEROUTE
help help
Add feature to allow for ICMP ECHO instead of UDP datagrams. Add option -I to use ICMP ECHO instead of UDP datagrams.
source package/busybox/config/networking/udhcp/Config.in source package/busybox/config/networking/udhcp/Config.in
config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
string "ifup udhcpc command line options"
default "-R -n"
depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_APP_UDHCPC
help
Command line options to pass to udhcpc from ifup.
Intended to alter options not available in /etc/network/interfaces.
(IE: --syslog --background etc...)
config BUSYBOX_CONFIG_VCONFIG config BUSYBOX_CONFIG_VCONFIG
bool "vconfig" bool "vconfig"
default y default y
@ -917,6 +939,20 @@ config BUSYBOX_CONFIG_TCPSVD
tcpsvd listens on a TCP port and runs a program for each new tcpsvd listens on a TCP port and runs a program for each new
connection. connection.
config BUSYBOX_CONFIG_TUNCTL
bool "tunctl"
default n
help
tunctl creates or deletes tun devices.
config BUSYBOX_CONFIG_FEATURE_TUNCTL_UG
bool "Support owner:group assignment"
default n
depends on BUSYBOX_CONFIG_TUNCTL
help
Allow to specify owner and group of newly created interface.
340 bytes of pure bloat. Say no here.
config BUSYBOX_CONFIG_UDPSVD config BUSYBOX_CONFIG_UDPSVD
bool "udpsvd" bool "udpsvd"
default n default n

View File

@ -84,22 +84,6 @@ config BUSYBOX_CONFIG_ASH_ALIAS
help help
Enable alias support in the ash shell. Enable alias support in the ash shell.
config BUSYBOX_CONFIG_ASH_MATH_SUPPORT
bool "Posix math support"
default y
depends on BUSYBOX_CONFIG_ASH
help
Enable math support in the ash shell.
config BUSYBOX_CONFIG_ASH_MATH_SUPPORT_64
bool "Extend Posix math support to 64 bit"
default y
depends on BUSYBOX_CONFIG_ASH_MATH_SUPPORT
help
Enable 64-bit math support in the ash shell. This will make
the shell slightly larger, but will allow computation with very
large numbers.
config BUSYBOX_CONFIG_ASH_GETOPTS config BUSYBOX_CONFIG_ASH_GETOPTS
bool "Builtin getopt to parse positional parameters" bool "Builtin getopt to parse positional parameters"
default y default y
@ -152,14 +136,14 @@ config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
Compile ash for reduced size at the price of speed. Compile ash for reduced size at the price of speed.
config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
bool "Pseudorandom generator and variable $RANDOM" bool "Pseudorandom generator and $RANDOM variable"
default n default n
depends on BUSYBOX_CONFIG_ASH depends on BUSYBOX_CONFIG_ASH
help help
Enable pseudorandom generator and dynamic variable "$RANDOM". Enable pseudorandom generator and dynamic variable "$RANDOM".
Each read of "$RANDOM" will generate a new pseudorandom value. Each read of "$RANDOM" will generate a new pseudorandom value.
You can reset the generator by using a specified start value. You can reset the generator by using a specified start value.
After "unset RANDOM" then generator will switch off and this After "unset RANDOM" the generator will switch off and this
variable will no longer have special treatment. variable will no longer have special treatment.
config BUSYBOX_CONFIG_ASH_EXPAND_PRMT config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
@ -167,7 +151,7 @@ config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
default y default y
depends on BUSYBOX_CONFIG_ASH depends on BUSYBOX_CONFIG_ASH
help help
"PS#" may be contain volatile content, such as backquote commands. "PS#" may contain volatile content, such as backquote commands.
This option recreates the prompt string from the environment This option recreates the prompt string from the environment
variable each time it is displayed. variable each time it is displayed.
@ -175,16 +159,15 @@ config BUSYBOX_CONFIG_HUSH
bool "hush" bool "hush"
default n default n
help help
hush is a very small shell (just 18k) and it has fairly complete hush is a small shell (22k). It handles the normal flow control
Bourne shell grammar. It even handles all the normal flow control constructs 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, case/esac. Redirections, here documents, $((arithmetic))
case/esac. and functions are supported.
It uses only vfork, so it can be used on uClinux systems. It will compile and work on no-mmu systems.
It does not handle select, functions, here documents ( << It does not handle select, aliases, brace expansion,
word ), arithmetic expansion, aliases, brace expansion, tilde tilde expansion, &>file and >&file redirection of stdout+stderr.
expansion, &> and >& redirection of stdout+stderr, etc.
config BUSYBOX_CONFIG_HUSH_HELP config BUSYBOX_CONFIG_HUSH_HELP
bool "help builtin" bool "help builtin"
@ -234,7 +217,6 @@ 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 config BUSYBOX_CONFIG_HUSH_CASE
bool "Support case ... esac statement" bool "Support case ... esac statement"
@ -243,27 +225,54 @@ config BUSYBOX_CONFIG_HUSH_CASE
help help
Enable case ... esac statement in hush. +400 bytes. Enable case ... esac statement in hush. +400 bytes.
config BUSYBOX_CONFIG_HUSH_FUNCTIONS
bool "Support funcname() { commands; } syntax"
default n
depends on BUSYBOX_CONFIG_HUSH
help
Enable support for shell functions in hush. +800 bytes.
config BUSYBOX_CONFIG_LASH config BUSYBOX_CONFIG_LASH
bool "lash" bool "lash (deprecated: aliased to hush)"
default n default n
select BUSYBOX_CONFIG_HUSH select BUSYBOX_CONFIG_HUSH
help help
lash is deprecated and will be removed, please migrate to hush. lash is deprecated and will be removed, please migrate to hush.
config BUSYBOX_CONFIG_MSH config BUSYBOX_CONFIG_MSH
bool "msh" bool "msh (deprecated: please use hush)"
default n default n
help help
The minix shell (adds just 30k) is quite complete and handles things msh is deprecated and will be removed, please migrate to hush.
like for/do/done, case/esac and all the things you expect a Bourne If there is a feature msh has but hush does not, please let us know.
shell to do. It is not always pedantically correct about Bourne
shell grammar (try running the shell testscript "tests/sh.testcases" # The minix shell (adds just 30k) is quite complete and handles things
on it and compare vs bash) but for most things it works quite well. # like for/do/done, case/esac and all the things you expect a Bourne
It uses only vfork, so it can be used on uClinux systems. # 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 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
config BUSYBOX_CONFIG_SH_MATH_SUPPORT
bool "POSIX math support"
default y
depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH
help
Enable math support in the shell via $((...)) syntax.
config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
bool "Extend POSIX math support to 64 bit"
default y
depends on BUSYBOX_CONFIG_SH_MATH_SUPPORT
help
Enable 64-bit math support in the shell. This will make the shell
slightly larger, but will allow computation with very large numbers.
This is not in POSIX, so do not rely on this in portable code.
config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
bool "Hide message on interactive shell startup" bool "Hide message on interactive shell startup"
default n default n

View File

@ -5,6 +5,28 @@
menu "Linux System Utilities" menu "Linux System Utilities"
config BUSYBOX_CONFIG_ACPID
bool "acpid"
default n
help
acpid listens to ACPI events coming either in textual form from
/proc/acpi/event (though it is marked deprecated it is still widely
used and _is_ a standard) or in binary form from specified evdevs
(just use /dev/input/event*).
It parses the event to retrieve ACTION and a possible PARAMETER.
It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts
(if the resulting path is a directory) or directly as an executable.
N.B. acpid relies on run-parts so have the latter installed.
config BUSYBOX_CONFIG_FEATURE_ACPID_COMPAT
bool "Accept and ignore redundant options"
default n
depends on BUSYBOX_CONFIG_ACPID
help
Accept and ignore compatibility options -g -m -s -S -v.
config BUSYBOX_CONFIG_BLKID config BUSYBOX_CONFIG_BLKID
bool "blkid" bool "blkid"
default n default n
@ -211,6 +233,12 @@ config BUSYBOX_CONFIG_FEATURE_MINIX2
this. If you enabled 'mkfs_minix' then you almost certainly want to this. If you enabled 'mkfs_minix' then you almost certainly want to
be using the version 2 filesystem support. be using the version 2 filesystem support.
config BUSYBOX_CONFIG_MKFS_VFAT
bool "mkfs_vfat"
default n
help
Utility to create FAT32 filesystems.
config BUSYBOX_CONFIG_GETOPT config BUSYBOX_CONFIG_GETOPT
bool "getopt" bool "getopt"
default n default n

View File

@ -1,20 +1,15 @@
--- a/init/init.c --- a/init/init.c
+++ b/init/init.c +++ b/init/init.c
@@ -497,12 +497,11 @@ static void run_actions(int action_type) @@ -451,8 +451,11 @@ static void run_actions(int action_type)
for (a = init_action_list; a; a = tmp) { /* Only run stuff with pid == 0. If pid != 0,
tmp = a->next; * it is already running
if (a->action_type & action_type) { */
- // Pointless: run() will error out if open of device fails. - if (a->pid == 0)
- ///* a->terminal of "" means "init's console" */ + if (a->pid == 0) {
- //if (a->terminal[0] && access(a->terminal, R_OK | W_OK)) { + if (a->terminal && access(a->terminal, R_OK | W_OK))
- // //message(L_LOG | L_CONSOLE, "Device %s cannot be opened in RW mode", a->terminal /*, strerror(errno)*/); + continue;
- // delete_init_action(a); a->pid = run(a);
- //} else + }
+ /* a->terminal of "" means "init's console" */ }
+ if (a->terminal[0] && access(a->terminal, R_OK | W_OK)) { }
+ //message(L_LOG | L_CONSOLE, "Device %s cannot be opened in RW mode", a->terminal /*, strerror(errno)*/); }
+ delete_init_action(a);
+ } else
if (a->action_type & (SYSINIT | WAIT | CTRLALTDEL | SHUTDOWN | RESTART)) {
waitfor(run(a));
delete_init_action(a);

View File

@ -1,6 +1,6 @@
--- a/networking/brctl.c --- a/networking/brctl.c
+++ b/networking/brctl.c +++ b/networking/brctl.c
@@ -90,7 +90,7 @@ int brctl_main(int argc UNUSED_PARAM, ch @@ -104,7 +104,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
"setageing\0" "setfd\0" "sethello\0" "setmaxage\0" "setageing\0" "setfd\0" "sethello\0" "setmaxage\0"
"setpathcost\0" "setportprio\0" "setbridgeprio\0" "setpathcost\0" "setportprio\0" "setbridgeprio\0"
) )
@ -9,7 +9,7 @@
enum { ARG_addbr = 0, ARG_delbr, ARG_addif, ARG_delif enum { ARG_addbr = 0, ARG_delbr, ARG_addif, ARG_delif
USE_FEATURE_BRCTL_FANCY(, USE_FEATURE_BRCTL_FANCY(,
@@ -98,7 +98,7 @@ int brctl_main(int argc UNUSED_PARAM, ch @@ -112,7 +112,7 @@ int brctl_main(int argc UNUSED_PARAM, ch
ARG_setageing, ARG_setfd, ARG_sethello, ARG_setmaxage, ARG_setageing, ARG_setfd, ARG_sethello, ARG_setmaxage,
ARG_setpathcost, ARG_setportprio, ARG_setbridgeprio ARG_setpathcost, ARG_setportprio, ARG_setbridgeprio
) )

View File

@ -1,11 +1,11 @@
--- a/networking/wget.c --- a/networking/wget.c
+++ b/networking/wget.c +++ b/networking/wget.c
@@ -443,7 +443,7 @@ int wget_main(int argc UNUSED_PARAM, cha @@ -485,7 +485,7 @@ int wget_main(int argc UNUSED_PARAM, cha
// "tries\0" Required_argument "t" // "tries\0" Required_argument "t"
// "timeout\0" Required_argument "T" // "timeout\0" Required_argument "T"
/* Ignored (we always use PASV): */ /* Ignored (we always use PASV): */
- "passive-ftp\0" No_argument "\xff" - "passive-ftp\0" No_argument "\xff"
+ "passive-ftp\0" No_argument "\xfd" + "passive-ftp\0" No_argument "\xfd"
"header\0" Required_argument "\xfe" "header\0" Required_argument "\xfe"
"post-data\0" Required_argument "\xfd"
; ;
#endif

View File

@ -3,20 +3,20 @@
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
#ifndef CRONTABS #define TMPDIR CONFIG_FEATURE_CROND_DIR
-#define CRONTABS "/var/spool/cron/crontabs" -#define CRONTABS CONFIG_FEATURE_CROND_DIR "/crontabs"
+#define CRONTABS "/etc/crontabs" +#define CRONTABS "/etc/crontabs"
#ifndef SENDMAIL
#define SENDMAIL "sendmail"
#endif #endif
#ifndef TMPDIR
#define TMPDIR "/var/spool/cron"
--- a/miscutils/crontab.c --- a/miscutils/crontab.c
+++ b/miscutils/crontab.c +++ b/miscutils/crontab.c
@@ -13,7 +13,7 @@ @@ -12,7 +12,7 @@
#include "libbb.h" #include "libbb.h"
#ifndef CRONTABS -#define CRONTABS CONFIG_FEATURE_CROND_DIR "/crontabs"
-#define CRONTABS "/var/spool/cron/crontabs"
+#define CRONTABS "/etc/crontabs" +#define CRONTABS "/etc/crontabs"
#endif
#ifndef CRONUPDATE #ifndef CRONUPDATE
#define CRONUPDATE "cron.update" #define CRONUPDATE "cron.update"
#endif

View File

@ -1,6 +1,6 @@
--- a/networking/udhcp/dhcpc.c --- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c
@@ -353,7 +353,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c @@ -363,7 +363,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();
@@ -384,7 +384,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c @@ -394,7 +394,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
continue; continue;
case RENEW_REQUESTED: case RENEW_REQUESTED:
case REQUESTING: case REQUESTING:

View File

@ -1,6 +1,6 @@
--- a/networking/udhcp/packet.c --- a/networking/udhcp/packet.c
+++ b/networking/udhcp/packet.c +++ b/networking/udhcp/packet.c
@@ -114,6 +114,10 @@ uint16_t FAST_FUNC udhcp_checksum(void * @@ -120,6 +120,10 @@ uint16_t FAST_FUNC udhcp_checksum(void *
return ~sum; return ~sum;
} }
@ -11,7 +11,7 @@
/* Construct a ip/udp header for a packet, send packet */ /* Construct a ip/udp header for a packet, send packet */
int FAST_FUNC udhcp_send_raw_packet(struct dhcpMessage *payload, int FAST_FUNC udhcp_send_raw_packet(struct dhcpMessage *payload,
@@ -126,11 +130,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru @@ -132,11 +136,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
int fd; int fd;
int result = -1; int result = -1;
const char *msg; const char *msg;
@ -24,7 +24,7 @@
fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP)); fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
if (fd < 0) { if (fd < 0) {
@@ -140,7 +140,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru @@ -146,7 +146,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
memset(&dest, 0, sizeof(dest)); memset(&dest, 0, sizeof(dest));
memset(&packet, 0, sizeof(packet)); memset(&packet, 0, sizeof(packet));
@ -33,7 +33,7 @@
dest.sll_family = AF_PACKET; dest.sll_family = AF_PACKET;
dest.sll_protocol = htons(ETH_P_IP); dest.sll_protocol = htons(ETH_P_IP);
@@ -157,23 +157,18 @@ int FAST_FUNC udhcp_send_raw_packet(stru @@ -163,23 +163,18 @@ int FAST_FUNC udhcp_send_raw_packet(stru
packet.ip.daddr = dest_ip; packet.ip.daddr = dest_ip;
packet.udp.source = htons(source_port); packet.udp.source = htons(source_port);
packet.udp.dest = htons(dest_port); packet.udp.dest = htons(dest_port);
@ -63,7 +63,7 @@
(struct sockaddr *) &dest, sizeof(dest)); (struct sockaddr *) &dest, sizeof(dest));
msg = "sendto"; msg = "sendto";
ret_close: ret_close:
@@ -225,8 +220,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s @@ -231,8 +226,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
goto ret_close; goto ret_close;
} }

View File

@ -1,8 +1,8 @@
--- a/networking/udhcp/dhcpc.c --- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c
@@ -320,6 +320,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c @@ -327,6 +327,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
for (;;) { /* silence "uninitialized!" warning */
unsigned timestamp_before_wait; unsigned timestamp_before_wait = timestamp_before_wait;
+ /* When running on a bridge, the ifindex may have changed (e.g. if + /* When running on a bridge, the ifindex may have changed (e.g. if
+ * member interfaces were added/removed or if the status of the + * member interfaces were added/removed or if the status of the
@ -10,6 +10,6 @@
+ * Workaround: refresh it here before processing the next packet */ + * Workaround: refresh it here before processing the next packet */
+ udhcp_read_interface(client_config.interface, &client_config.ifindex, NULL, client_config.arp); + udhcp_read_interface(client_config.interface, &client_config.ifindex, NULL, client_config.arp);
+ +
if (listen_mode != LISTEN_NONE && sockfd < 0) { //bb_error_msg("sockfd:%d, listen_mode:%d", sockfd, listen_mode);
if (listen_mode == LISTEN_KERNEL)
sockfd = udhcp_listen_socket(/*INADDR_ANY,*/ CLIENT_PORT, client_config.interface); /* Was opening raw or udp socket here

View File

@ -1,6 +1,6 @@
--- a/networking/udhcp/options.c --- a/networking/udhcp/options.c
+++ b/networking/udhcp/options.c +++ b/networking/udhcp/options.c
@@ -46,6 +46,7 @@ const struct dhcp_option dhcp_options[] @@ -48,6 +48,7 @@ const struct dhcp_option dhcp_options[]
#if ENABLE_FEATURE_UDHCP_RFC3397 #if ENABLE_FEATURE_UDHCP_RFC3397
{ OPTION_STR1035 | OPTION_LIST , 0x77 }, /* search */ { OPTION_STR1035 | OPTION_LIST , 0x77 }, /* search */
#endif #endif
@ -8,7 +8,7 @@
/* MSIE's "Web Proxy Autodiscovery Protocol" support */ /* MSIE's "Web Proxy Autodiscovery Protocol" support */
{ OPTION_STRING , 0xfc }, /* wpad */ { OPTION_STRING , 0xfc }, /* wpad */
@@ -95,6 +96,7 @@ const char dhcp_option_strings[] ALIGN1 @@ -97,6 +98,7 @@ const char dhcp_option_strings[] ALIGN1
#if ENABLE_FEATURE_UDHCP_RFC3397 #if ENABLE_FEATURE_UDHCP_RFC3397
"search" "\0" "search" "\0"
#endif #endif

View File

@ -1,6 +1,6 @@
--- a/shell/ash.c --- a/shell/ash.c
+++ b/shell/ash.c +++ b/shell/ash.c
@@ -12159,8 +12159,17 @@ exportcmd(int argc UNUSED_PARAM, char ** @@ -12273,8 +12273,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) {
@@ -12172,10 +12181,12 @@ exportcmd(int argc UNUSED_PARAM, char ** @@ -12286,10 +12295,12 @@ exportcmd(int argc UNUSED_PARAM, char **
vp = *findvar(hashvar(name), name); vp = *findvar(hashvar(name), name);
if (vp) { if (vp) {
vp->flags |= flag; vp->flags |= flag;

View File

@ -1,6 +1,6 @@
--- a/include/applets.h --- a/include/applets.h
+++ b/include/applets.h +++ b/include/applets.h
@@ -263,6 +263,7 @@ USE_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_ @@ -271,6 +271,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
@@ -2849,6 +2849,9 @@ @@ -3010,6 +3010,9 @@
#endif #endif
@ -22,7 +22,7 @@
#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
@@ -603,6 +603,12 @@ config NC @@ -600,6 +600,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.
@ -37,7 +37,7 @@
default n default n
--- a/networking/Kbuild --- a/networking/Kbuild
+++ b/networking/Kbuild +++ b/networking/Kbuild
@@ -23,6 +23,7 @@ lib-$(CONFIG_IP) += ip.o @@ -24,6 +24,7 @@ lib-$(CONFIG_IP) += ip.o
lib-$(CONFIG_IPCALC) += ipcalc.o lib-$(CONFIG_IPCALC) += ipcalc.o
lib-$(CONFIG_NAMEIF) += nameif.o lib-$(CONFIG_NAMEIF) += nameif.o
lib-$(CONFIG_NC) += nc.o lib-$(CONFIG_NC) += nc.o

View File

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

View File

@ -1,6 +1,6 @@
--- a/include/applets.h --- a/include/applets.h
+++ b/include/applets.h +++ b/include/applets.h
@@ -223,6 +223,7 @@ USE_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN @@ -228,6 +228,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_SBIN, _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))
@ -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
@@ -2150,6 +2150,9 @@ @@ -2246,6 +2246,9 @@
#define loadkmap_example_usage \ #define loadkmap_example_usage \
"$ loadkmap < /etc/i18n/lang-keymap\n" "$ loadkmap < /etc/i18n/lang-keymap\n"
@ -22,9 +22,9 @@
#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
@@ -395,6 +395,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA @@ -420,6 +420,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
help
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.
+config LOCK +config LOCK
+ bool "lock" + bool "lock"
@ -37,7 +37,7 @@
default n default n
--- a/miscutils/Kbuild --- a/miscutils/Kbuild
+++ b/miscutils/Kbuild +++ b/miscutils/Kbuild
@@ -21,6 +21,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o @@ -23,6 +23,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o
lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
lib-$(CONFIG_LESS) += less.o lib-$(CONFIG_LESS) += less.o

View File

@ -1,6 +1,6 @@
--- a/include/usage.h --- a/include/usage.h
+++ b/include/usage.h +++ b/include/usage.h
@@ -1558,7 +1558,8 @@ @@ -1638,7 +1638,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 @@ @@ -1656,6 +1657,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" \
@ -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;)
@@ -295,6 +297,8 @@ struct globals { @@ -294,6 +296,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 )
@@ -1003,8 +1007,11 @@ static void send_headers(int responseNum @@ -993,8 +997,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 : ""));
} }
@@ -1939,8 +1946,12 @@ static void handle_incoming_and_exit(con @@ -1924,8 +1931,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,8 +66,8 @@
if (is_directory(urlcopy + 1, 1, &sb)) { if (is_directory(urlcopy + 1, 1, &sb)) {
found_moved_temporarily = urlcopy; found_moved_temporarily = urlcopy;
} }
@@ -2293,7 +2304,9 @@ static void sighup_handler(int sig) @@ -2266,7 +2277,9 @@ static void sighup_handler(int sig UNUSE
#endif }
enum { enum {
- c_opt_config_file = 0, - c_opt_config_file = 0,
@ -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,)
@@ -2342,12 +2355,13 @@ int httpd_main(int argc UNUSED_PARAM, ch @@ -2315,12 +2328,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. */
@ -89,6 +89,6 @@
USE_FEATURE_HTTPD_SETUID("u:") USE_FEATURE_HTTPD_SETUID("u:")
"p:ifv", "p:ifv",
+ &redirect_path, &redirect_host, + &redirect_path, &redirect_host,
&configFile, &url_for_decode, &home_httpd &opt_c_configFile, &url_for_decode, &home_httpd
USE_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode) USE_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode)
USE_FEATURE_HTTPD_BASIC_AUTH(, &g_realm) USE_FEATURE_HTTPD_BASIC_AUTH(, &g_realm)

View File

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

View File

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

View File

@ -100,7 +100,7 @@
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 UNUSED_PARAM, char **argv) int insmod_main(int argc UNUSED_PARAM, char **argv)
@@ -25,9 +118,14 @@ int insmod_main(int argc UNUSED_PARAM, c @@ -33,9 +126,15 @@ int insmod_main(int argc UNUSED_PARAM, c
if (!filename) if (!filename)
bb_show_usage(); bb_show_usage();
@ -111,9 +111,20 @@
+ +
+ rc = bb_init_module(g_filename, parse_cmdline_module_options(argv)); + rc = bb_init_module(g_filename, parse_cmdline_module_options(argv));
if (rc) if (rc)
bb_error_msg("cannot insert '%s': %s", filename, moderror(rc)); bb_error_msg("can't insert '%s': %s", filename, moderror(rc));
-
+ free (g_filename); + free (g_filename);
+done: +done:
return rc; return rc;
} }
--- a/modutils/Config.in
+++ b/modutils/Config.in
@@ -211,7 +211,7 @@ config FEATURE_MODUTILS_SYMBOLS
config DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"
- depends on DEPMOD || MODPROBE || MODPROBE_SMALL
+ depends on DEPMOD || INSMOD || MODPROBE || MODPROBE_SMALL
help
Directory that contains kernel modules.
Defaults to "/lib/modules"

View File

@ -1,7 +1,7 @@
--- a/util-linux/mount.c --- a/util-linux/mount.c
+++ b/util-linux/mount.c +++ b/util-linux/mount.c
@@ -42,6 +42,10 @@ @@ -42,6 +42,10 @@
#define MS_DIRSYNC 128 /* Directory modifications are synchronous */ #define MS_DIRSYNC 128 // Directory modifications are synchronous
#endif #endif
+#ifndef MS_UNION +#ifndef MS_UNION
@ -10,8 +10,8 @@
+ +
#if defined(__dietlibc__) #if defined(__dietlibc__)
/* 16.12.2006, Sampo Kellomaki (sampo@iki.fi) // 16.12.2006, Sampo Kellomaki (sampo@iki.fi)
@@ -152,6 +156,7 @@ @@ -152,6 +156,7 @@ static const int32_t mount_options[] = {
/* "rslave" */ MS_SLAVE|MS_RECURSIVE, /* "rslave" */ MS_SLAVE|MS_RECURSIVE,
/* "rprivate" */ MS_SLAVE|MS_RECURSIVE, /* "rprivate" */ MS_SLAVE|MS_RECURSIVE,
/* "runbindable" */ MS_UNBINDABLE|MS_RECURSIVE, /* "runbindable" */ MS_UNBINDABLE|MS_RECURSIVE,
@ -19,10 +19,10 @@
) )
// Always understood. // Always understood.
@@ -206,6 +211,7 @@ @@ -206,6 +211,7 @@ static const char mount_option_str[] =
"rslave" "\0" "rslave\0"
"rprivate" "\0" "rprivate\0"
"runbindable" "\0" "runbindable\0"
+ "union" "\0" + "union" "\0"
) )

View File

@ -15,7 +15,7 @@
} func; } func;
/* I/O stream */ /* I/O stream */
@@ -1423,7 +1428,8 @@ static void parse_program(char *p) @@ -1420,7 +1425,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);
@@ -1432,7 +1438,7 @@ static void parse_program(char *p) @@ -1429,7 +1435,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);
@@ -2397,7 +2403,8 @@ static var *evaluate(node *op, var *res) @@ -2408,7 +2414,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);
@@ -2414,7 +2421,10 @@ static var *evaluate(node *op, var *res) @@ -2425,7 +2432,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);
@@ -2777,6 +2787,143 @@ static rstream *next_input_file(void) @@ -2788,6 +2798,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)
{ {
@@ -2842,6 +2989,9 @@ int awk_main(int argc, char **argv) @@ -2853,6 +3000,9 @@ int awk_main(int argc, char **argv)
*s1 = '='; *s1 = '=';
} }
} }

View File

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

View File

@ -1,12 +0,0 @@
--- a/miscutils/watchdog.c
+++ b/miscutils/watchdog.c
@@ -10,7 +10,8 @@
*/
#include "libbb.h"
-#include "linux/watchdog.h"
+#include <linux/types.h>
+#include <linux/watchdog.h>
#define OPT_FOREGROUND (1 << 0)
#define OPT_STIMER (1 << 1)

View File

@ -1,6 +1,6 @@
--- a/networking/brctl.c --- a/networking/brctl.c
+++ b/networking/brctl.c +++ b/networking/brctl.c
@@ -34,8 +34,9 @@ static ALWAYS_INLINE void strtotimeval(s @@ -48,8 +48,9 @@ static ALWAYS_INLINE void strtotimeval(s
{ {
double secs; double secs;
#if BRCTL_USE_INTERNAL #if BRCTL_USE_INTERNAL

View File

@ -1,6 +1,6 @@
--- a/networking/brctl.c --- a/networking/brctl.c
+++ b/networking/brctl.c +++ b/networking/brctl.c
@@ -18,7 +18,7 @@ @@ -32,7 +32,7 @@
/* Maximum number of ports supported per bridge interface. */ /* Maximum number of ports supported per bridge interface. */
#ifndef MAX_PORTS #ifndef MAX_PORTS
@ -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 UNUSED_PARAM, ch @@ -169,6 +169,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 UNUSED_PARAM, ch @@ -197,9 +198,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,9 +40,9 @@
goto done; goto done;
} }
@@ -194,14 +205,27 @@ int brctl_main(int argc UNUSED_PARAM, ch @@ -208,14 +219,27 @@ int brctl_main(int argc UNUSED_PARAM, ch
strncpy(ifr.ifr_name, br, IFNAMSIZ); strncpy_IFNAMSIZ(ifr.ifr_name, br);
if (key == ARG_addif || key == ARG_delif) { /* addif or delif */ if (key == ARG_addif || key == ARG_delif) { /* addif or delif */
+ int ret; + int ret;
+ int if_index; + int if_index;

View File

@ -19,7 +19,7 @@ Signed-off-by: Nicolas Thill <nico@openwrt.org>
#endif #endif
#endif #endif
#endif #endif
@@ -86,7 +88,11 @@ static int get_groups(const char *userna @@ -82,7 +84,11 @@ static int get_groups(const char *userna
/* If the user is a member of more than /* If the user is a member of more than
* *n groups, then -1 is returned. Otherwise >= 0. * *n groups, then -1 is returned. Otherwise >= 0.
* (and no defined way of detecting errors?!) */ * (and no defined way of detecting errors?!) */
@ -31,7 +31,7 @@ Signed-off-by: Nicolas Thill <nico@openwrt.org>
/* I guess *n < 0 might indicate error. Anyway, /* I guess *n < 0 might indicate error. Anyway,
* malloc'ing -1 bytes won't be good, so: */ * malloc'ing -1 bytes won't be good, so: */
//if (*n < 0) //if (*n < 0)
@@ -160,6 +166,7 @@ int id_main(int argc UNUSED_PARAM, char @@ -154,6 +160,7 @@ int id_main(int argc UNUSED_PARAM, char
if (egid != rgid) if (egid != rgid)
status |= print_group(egid, " "); status |= print_group(egid, " ");
} }
@ -39,7 +39,7 @@ Signed-off-by: Nicolas Thill <nico@openwrt.org>
/* We are supplying largish buffer, trying /* We are supplying largish buffer, trying
* to not run get_groups() twice. That might be slow * to not run get_groups() twice. That might be slow
* ("user database in remote SQL server" case) */ * ("user database in remote SQL server" case) */
@@ -187,6 +194,7 @@ int id_main(int argc UNUSED_PARAM, char @@ -181,6 +188,7 @@ int id_main(int argc UNUSED_PARAM, char
} }
if (ENABLE_FEATURE_CLEAN_UP) if (ENABLE_FEATURE_CLEAN_UP)
free(groups); free(groups);

View File

@ -1,13 +0,0 @@
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -53,8 +53,8 @@ int df_main(int argc, char **argv)
OPT_ALL = (1 << 2) * ENABLE_FEATURE_DF_FANCY,
OPT_INODE = (1 << 3) * ENABLE_FEATURE_DF_FANCY,
OPT_BSIZE = (1 << 4) * ENABLE_FEATURE_DF_FANCY,
- OPT_HUMAN = (1 << 5) * ENABLE_FEATURE_HUMAN_READABLE,
- OPT_MEGA = (1 << 6) * ENABLE_FEATURE_HUMAN_READABLE,
+ OPT_HUMAN = (1 << (2 + 3*ENABLE_FEATURE_DF_FANCY)) * ENABLE_FEATURE_HUMAN_READABLE,
+ OPT_MEGA = (1 << (3 + 3*ENABLE_FEATURE_DF_FANCY)) * ENABLE_FEATURE_HUMAN_READABLE,
};
const char *disp_units_hdr = NULL;
char *chp;