package/busybox: add missing bits from 1.17.1 update (mostly config stuff), rename...
authorNicolas Thill <nico@openwrt.org>
Sun, 15 Aug 2010 20:28:05 +0000 (20:28 +0000)
committerNicolas Thill <nico@openwrt.org>
Sun, 15 Aug 2010 20:28:05 +0000 (20:28 +0000)
SVN-Revision: 22665

36 files changed:
package/busybox/config/Config.in
package/busybox/config/archival/Config.in
package/busybox/config/console-tools/Config.in
package/busybox/config/coreutils/Config.in
package/busybox/config/debianutils/Config.in
package/busybox/config/e2fsprogs/Config.in
package/busybox/config/editors/Config.in
package/busybox/config/init/Config.in
package/busybox/config/loginutils/Config.in
package/busybox/config/miscutils/Config.in
package/busybox/config/modutils/Config.in
package/busybox/config/networking/Config.in
package/busybox/config/networking/udhcp/Config.in
package/busybox/config/procps/Config.in
package/busybox/config/runit/Config.in
package/busybox/config/selinux/Config.in
package/busybox/config/shell/Config.in
package/busybox/config/sysklogd/Config.in
package/busybox/config/util-linux/Config.in
package/busybox/patches/000-autoconf.patch [new file with mode: 0644]
package/busybox/patches/000-upstream-mktemp.patch [new file with mode: 0644]
package/busybox/patches/000-upstream-sed.patch [new file with mode: 0644]
package/busybox/patches/000-upstream-shell.patch [new file with mode: 0644]
package/busybox/patches/241-udhcpc-oversized_packets.patch
package/busybox/patches/250-ash_export-n.patch
package/busybox/patches/300-netmsg.patch
package/busybox/patches/310-passwd_access.patch
package/busybox/patches/340-lock_util.patch
package/busybox/patches/350-httpd_redir.patch
package/busybox/patches/470-insmod_search.patch
package/busybox/patches/510-awk_include.patch
package/busybox/patches/610-syslog-remote-retry-connection.patch
package/busybox/patches/803-id_getgrouplist.patch
package/busybox/patches/920-mktemp.patch [deleted file]
package/busybox/patches/921-sed.patch [deleted file]
package/busybox/patches/922-shell.patch [deleted file]

index f7ee7b3d412d75b0ed8f7475eb465c2487fdace5..5dd3d1b09a46b556d96bbc86830eded6bb243f81 100644 (file)
@@ -82,7 +82,7 @@ config BUSYBOX_CONFIG_SHOW_USAGE
 config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
        bool "Show verbose applet usage messages"
        default y
 config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
        bool "Show verbose applet usage messages"
        default y
-       select BUSYBOX_CONFIG_SHOW_USAGE
+       depends on BUSYBOX_CONFIG_SHOW_USAGE
        help
          All BusyBox applets will show more verbose help messages when
          busybox is invoked with --help. This will add a lot of text to the
        help
          All BusyBox applets will show more verbose help messages when
          busybox is invoked with --help. This will add a lot of text to the
@@ -118,7 +118,7 @@ config BUSYBOX_CONFIG_LOCALE_SUPPORT
          Enable this if your system has locale support and you would like
          busybox to support locale settings.
 
          Enable this if your system has locale support and you would like
          busybox to support locale settings.
 
-config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
+config BUSYBOX_CONFIG_UNICODE_SUPPORT
        bool "Support Unicode"
        default n
        help
        bool "Support Unicode"
        default n
        help
@@ -130,16 +130,109 @@ config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
          Probably by the time when busybox will be fully Unicode-clean,
          other encodings will be mainly of historic interest.
 
          Probably by the time when busybox will be fully Unicode-clean,
          other encodings will be mainly of historic interest.
 
+config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
+       bool "Use libc routines for Unicode (else uses internal ones)"
+       default n
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
+       help
+         With this option on, Unicode support is implemented using libc
+         routines. Otherwise, internal implementation is used.
+
 config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
        bool "Check $LANG environment variable"
        default n
 config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
        bool "Check $LANG environment variable"
        default n
-       depends on BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE && !BUSYBOX_CONFIG_LOCALE_SUPPORT
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        help
          With this option on, Unicode support is activated
          only if LANG variable has the value of the form "xxxx.utf8"
 
          Otherwise, Unicode support will be always enabled and active.
 
        help
          With this option on, Unicode support is activated
          only if LANG variable has the value of the form "xxxx.utf8"
 
          Otherwise, Unicode support will be always enabled and active.
 
+config BUSYBOX_CONFIG_SUBST_WCHAR
+       int "Character code to substitute unprintable characters with"
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       default 63
+       help
+         Typical values are 63 for '?' (works with any output device),
+         30 for ASCII substitute control code,
+         65533 (0xfffd) for Unicode replacement character.
+
+config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
+       int "Range of supported Unicode characters"
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       default 767
+       help
+         Any character with Unicode value bigger than this is assumed
+         to be non-printable on output device. Many applets replace
+         such chars with substitution character.
+
+         The idea is that many valid printable Unicode chars are
+         nevertheless are not displayed correctly. Think about
+         combining charachers, double-wide hieroglyphs, obscure
+         characters in dozens of ancient scripts...
+         Many terminals, terminal emulators, xterms etc will fail
+         to handle them correctly. Choose the smallest value
+         which suits your needs.
+
+         Typical values are:
+         126 - ASCII only
+         767 (0x2ff) - there are no combining chars in [0..767] range
+                       (the range includes Latin 1, Latin Ext. A and B),
+                       code is ~700 bytes smaller for this case.
+         4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+                       code is ~300 bytes smaller for this case.
+         12799 (0x31ff) - nearly all non-ideographic characters are
+                       available in [0..12799] range, including
+                       East Asian scripts like katakana, hiragana, hangul,
+                       bopomofo...
+         0 - off, any valid printable Unicode character will be printed.
+
+config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
+       bool "Allow zero-width Unicode characters on output"
+       default n
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       help
+         With this option off, any Unicode char with width of 0
+         is substituted on output.
+
+config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
+       bool "Allow wide Unicode characters on output"
+       default n
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       help
+         With this option off, any Unicode char with width > 1
+         is substituted on output.
+
+config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
+       bool "Bidirectional character-aware line input"
+       default n
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
+       help
+         With this option on, right-to-left Unicode characters
+         are treated differently on input (e.g. cursor movement).
+
+config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
+       bool "In bidi input, support non-ASCII neutral chars too"
+       default n
+       depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
+       help
+         In most cases it's enough to treat only ASCII non-letters
+         (i.e. punctuation, numbers and space) as characters
+         with neutral directionality.
+         With this option on, more extensive (and bigger) table
+         of neutral chars will be used.
+
+config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
+       bool "Make it possible to enter sequences of chars which are not Unicode"
+       default n
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       help
+         With this option on, invalid UTF-8 bytes are not substituted
+         with the selected substitution character.
+         For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+         at shell prompt will list file named 0xff (single char name
+         with char value 255), not file named '?'.
+
 config BUSYBOX_CONFIG_LONG_OPTS
        bool "Support for --long-options"
        default y
 config BUSYBOX_CONFIG_LONG_OPTS
        bool "Support for --long-options"
        default y
@@ -169,6 +262,26 @@ config BUSYBOX_CONFIG_FEATURE_CLEAN_UP
          Don't enable this unless you have a really good reason to clean
          things up manually.
 
          Don't enable this unless you have a really good reason to clean
          things up manually.
 
+config BUSYBOX_CONFIG_FEATURE_UTMP
+       bool "Support utmp file"
+       default n
+       help
+         The file /var/run/utmp is used to track who is currently logged in.
+         With this option on, certain applets (getty, login, telnetd etc)
+         will create and delete entries there.
+         "who" applet requires this option.
+
+config BUSYBOX_CONFIG_FEATURE_WTMP
+       bool "Support wtmp file"
+       default n
+       select BUSYBOX_CONFIG_FEATURE_UTMP
+       help
+         The file /var/run/wtmp is used to track when users have logged into
+         and logged out of the system.
+         With this option on, certain applets (getty, login, telnetd etc)
+         will append new entries there.
+         "last" applet requires this option.
+
 config BUSYBOX_CONFIG_FEATURE_PIDFILE
        bool "Support writing pidfiles"
        default y
 config BUSYBOX_CONFIG_FEATURE_PIDFILE
        bool "Support writing pidfiles"
        default y
index 403a631dd1feee443de433268d0b5871c14f37d7..1424c8673ccf8a23ab1760b695efed31e4068e18 100644 (file)
@@ -5,6 +5,12 @@
 
 menu "Archival Utilities"
 
 
 menu "Archival Utilities"
 
+config BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ
+       bool "Make tar, rpm, modprobe etc understand .xz data"
+       default n
+       help
+         Make tar, rpm, modprobe etc understand .xz data.
+
 config BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
        bool "Make tar, rpm, modprobe etc understand .lzma data"
        default n
 config BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
        bool "Make tar, rpm, modprobe etc understand .lzma data"
        default n
@@ -62,6 +68,13 @@ config BUSYBOX_CONFIG_FEATURE_AR_LONG_FILENAMES
          It supports the GNU ar long filename method which moves multiple long
          filenames into a the data section of a new ar entry.
 
          It supports the GNU ar long filename method which moves multiple long
          filenames into a the data section of a new ar entry.
 
+config BUSYBOX_CONFIG_FEATURE_AR_CREATE
+       bool "Support archive creation"
+       default n
+       depends on BUSYBOX_CONFIG_AR
+       help
+         This enables archive creation (-c and -r) with busybox ar.
+
 config BUSYBOX_CONFIG_BUNZIP2
        bool "bunzip2"
        default y
 config BUSYBOX_CONFIG_BUNZIP2
        bool "bunzip2"
        default y
@@ -207,8 +220,6 @@ config BUSYBOX_CONFIG_TAR
          create compressed archives. It's probably the most widely used
          UNIX archive program.
 
          create compressed archives. It's probably the most widely used
          UNIX archive program.
 
-if BUSYBOX_CONFIG_TAR
-
 config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
        bool "Enable archive creation"
        default y
 config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
        bool "Enable archive creation"
        default y
@@ -220,7 +231,7 @@ config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
 config BUSYBOX_CONFIG_FEATURE_TAR_AUTODETECT
        bool "Autodetect compressed tarballs"
        default n
 config BUSYBOX_CONFIG_FEATURE_TAR_AUTODETECT
        bool "Autodetect compressed tarballs"
        default n
-       depends on BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z || BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ || BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2 || BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA
+       depends on BUSYBOX_CONFIG_TAR && (BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z || BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ || BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2 || BUSYBOX_CONFIG_FEATURE_SEAMLESS_LZMA || BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ)
        help
          With this option tar can automatically detect compressed
          tarballs. Currently it works only on files (not pipes etc).
        help
          With this option tar can automatically detect compressed
          tarballs. Currently it works only on files (not pipes etc).
@@ -236,7 +247,7 @@ config BUSYBOX_CONFIG_FEATURE_TAR_FROM
 config BUSYBOX_CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY
        bool "Support for old tar header format"
        default n
 config BUSYBOX_CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY
        bool "Support for old tar header format"
        default n
-       depends on BUSYBOX_CONFIG_TAR
+       depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
        help
          This option is required to unpack archives created in
          the old GNU format; help to kill this old format by
        help
          This option is required to unpack archives created in
          the old GNU format; help to kill this old format by
@@ -245,7 +256,7 @@ config BUSYBOX_CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY
 config BUSYBOX_CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
        bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
        default n
 config BUSYBOX_CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
        bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
        default n
-       depends on BUSYBOX_CONFIG_TAR
+       depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
        help
          This option is required to unpack archives created by some old
          version of Sun's tar (it was calculating checksum using signed
        help
          This option is required to unpack archives created by some old
          version of Sun's tar (it was calculating checksum using signed
@@ -255,7 +266,7 @@ config BUSYBOX_CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY
 config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS
        bool "Support for GNU tar extensions (long filenames)"
        default y
 config BUSYBOX_CONFIG_FEATURE_TAR_GNU_EXTENSIONS
        bool "Support for GNU tar extensions (long filenames)"
        default y
-       depends on BUSYBOX_CONFIG_TAR
+       depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
        help
          With this option busybox supports GNU long filenames and
          linknames.
        help
          With this option busybox supports GNU long filenames and
          linknames.
@@ -267,6 +278,15 @@ config BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS
        help
          Enable use of long options, increases size by about 400 Bytes
 
        help
          Enable use of long options, increases size by about 400 Bytes
 
+config BUSYBOX_CONFIG_FEATURE_TAR_TO_COMMAND
+       bool "Support for writing to an external program"
+       default n
+       depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS
+       help
+         If you enable this option you'll be able to instruct tar to send
+         the contents of each extracted file to the standard input of an
+         external program.
+
 config BUSYBOX_CONFIG_FEATURE_TAR_UNAME_GNAME
        bool "Enable use of user and group names"
        default n
 config BUSYBOX_CONFIG_FEATURE_TAR_UNAME_GNAME
        bool "Enable use of user and group names"
        default n
@@ -284,7 +304,13 @@ config BUSYBOX_CONFIG_FEATURE_TAR_NOPRESERVE_TIME
          With this option busybox supports GNU tar -m
          (do not preserve time) option.
 
          With this option busybox supports GNU tar -m
          (do not preserve time) option.
 
-endif #tar
+config BUSYBOX_CONFIG_FEATURE_TAR_SELINUX
+       bool "Support for extracting SELinux labels"
+       default n
+       depends on BUSYBOX_CONFIG_TAR && BUSYBOX_CONFIG_SELINUX
+       help
+         With this option busybox supports restoring SELinux labels
+         when extracting files from tar archives.
 
 config BUSYBOX_CONFIG_UNCOMPRESS
        bool "uncompress"
 
 config BUSYBOX_CONFIG_UNCOMPRESS
        bool "uncompress"
@@ -316,6 +342,28 @@ config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
          This option reduces decompression time by about 25% at the cost of
          a 1K bigger binary.
 
          This option reduces decompression time by about 25% at the cost of
          a 1K bigger binary.
 
+config BUSYBOX_CONFIG_LZMA
+       bool "Provide lzma alias which supports only unpacking"
+       default n
+       depends on BUSYBOX_CONFIG_UNLZMA
+       help
+         Enable this option if you want commands like "lzma -d" to work.
+         IOW: you'll get lzma applet, but it will always require -d option.
+
+config BUSYBOX_CONFIG_UNXZ
+       bool "unxz"
+       default n
+       help
+         unxz is a unlzma successor.
+
+config BUSYBOX_CONFIG_XZ
+       bool "Provide xz alias which supports only unpacking"
+       default n
+       depends on BUSYBOX_CONFIG_UNXZ
+       help
+         Enable this option if you want commands like "xz -d" to work.
+         IOW: you'll get xz applet, but it will always require -d option.
+
 config BUSYBOX_CONFIG_UNZIP
        bool "unzip"
        default n
 config BUSYBOX_CONFIG_UNZIP
        bool "unzip"
        default n
index d1342ffd934a795178781a7e9d586ac8d6e652a3..710bf976fde11ea0c999a0fb3ea431ea60a47def 100644 (file)
@@ -12,6 +12,12 @@ config BUSYBOX_CONFIG_CHVT
          This program is used to change to another terminal.
          Example: chvt 4 (change to terminal /dev/tty4)
 
          This program is used to change to another terminal.
          Example: chvt 4 (change to terminal /dev/tty4)
 
+config BUSYBOX_CONFIG_FGCONSOLE
+       bool "fgconsole"
+       default n
+       help
+         This program prints active (foreground) console number.
+
 config BUSYBOX_CONFIG_CLEAR
        bool "clear"
        default y
 config BUSYBOX_CONFIG_CLEAR
        bool "clear"
        default y
@@ -135,4 +141,21 @@ config BUSYBOX_CONFIG_SHOWKEY
        help
          Shows keys pressed.
 
        help
          Shows keys pressed.
 
+comment "Common options for loadfont and setfont"
+       depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+
+config BUSYBOX_CONFIG_FEATURE_LOADFONT_PSF2
+       bool "Support for PSF2 console fonts"
+       default n
+       depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+       help
+         Support PSF2 console fonts.
+
+config BUSYBOX_CONFIG_FEATURE_LOADFONT_RAW
+       bool "Support for old (raw) console fonts"
+       default n
+       depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT
+       help
+         Support old (raw) console fonts.
+
 endmenu
 endmenu
index 759d98dab7d5edc3c8285593a55886b276d23d7f..e72ea6c4b74a9f26e6645893c1f462396d2e158b 100644 (file)
@@ -12,19 +12,96 @@ config BUSYBOX_CONFIG_BASENAME
          basename is used to strip the directory and suffix from filenames,
          leaving just the filename itself. Enable this option if you wish
          to enable the 'basename' utility.
          basename is used to strip the directory and suffix from filenames,
          leaving just the filename itself. Enable this option if you wish
          to enable the 'basename' utility.
-
-config BUSYBOX_CONFIG_CAL
-       bool "cal"
-       default n
-       help
-         cal is used to display a monthly calender.
-
 config BUSYBOX_CONFIG_CAT
        bool "cat"
        default y
        help
          cat is used to concatenate files and print them to the standard
          output. Enable this option if you wish to enable the 'cat' utility.
 config BUSYBOX_CONFIG_CAT
        bool "cat"
        default y
        help
          cat is used to concatenate files and print them to the standard
          output. Enable this option if you wish to enable the 'cat' utility.
+config BUSYBOX_CONFIG_DATE
+       bool "date"
+       default y
+       help
+         date is used to set the system date or display the
+         current time in the given format.
+
+config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT
+       bool "Enable ISO date format output (-I)"
+       default y
+       depends on BUSYBOX_CONFIG_DATE
+       help
+         Enable option (-I) to output an ISO-8601 compliant
+         date/time string.
+
+config BUSYBOX_CONFIG_FEATURE_DATE_NANO
+       bool "Support %[num]N nanosecond format specifier"
+       default n
+       depends on BUSYBOX_CONFIG_DATE
+       help
+         Support %[num]N format specifier. Adds ~250 bytes of code.
+
+config BUSYBOX_CONFIG_FEATURE_DATE_COMPAT
+       bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
+       default n
+       depends on BUSYBOX_CONFIG_DATE
+       help
+         System time can be set by 'date -s DATE' and simply 'date DATE',
+         but formats of DATE string are different. 'date DATE' accepts
+         a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
+         unnatural placement of year between minutes and seconds.
+         date -s (and other commands like touch -d) use more sensible
+         formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
+
+         With this option off, 'date DATE' is 'date -s DATE' support
+         the same format. With it on, 'date DATE' additionally supports
+         MMDDhhmm[[YY]YY][.ss] format.
+
+config BUSYBOX_CONFIG_TEST
+       bool "test"
+       default y
+       help
+         test is used to check file types and compare values,
+         returning an appropriate exit code. The bash shell
+         has test built in, ash can build it in optionally.
+
+config BUSYBOX_CONFIG_FEATURE_TEST_64
+       bool "Extend test to 64 bit"
+       default y
+       depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
+       help
+         Enable 64-bit support in test.
+
+config BUSYBOX_CONFIG_TR
+       bool "tr"
+       default y
+       help
+         tr is used to squeeze, and/or delete characters from standard
+         input, writing to standard output.
+
+config BUSYBOX_CONFIG_FEATURE_TR_CLASSES
+       bool "Enable character classes (such as [:upper:])"
+       default n
+       depends on BUSYBOX_CONFIG_TR
+       help
+         Enable character classes, enabling commands such as:
+         tr [:upper:] [:lower:] to convert input into lowercase.
+
+config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
+       bool "Enable equivalence classes"
+       default n
+       depends on BUSYBOX_CONFIG_TR
+       help
+         Enable equivalence classes, which essentially add the enclosed
+         character to the current set. For instance, tr [=a=] xyz would
+         replace all instances of 'a' with 'xyz'. This option is mainly
+         useful for cases when no other way of expressing a character
+         is possible.
+
+config BUSYBOX_CONFIG_CAL
+       bool "cal"
+       default n
+       help
+         cal is used to display a monthly calender.
 
 config BUSYBOX_CONFIG_CATV
        bool "catv"
 
 config BUSYBOX_CONFIG_CATV
        bool "catv"
@@ -100,37 +177,6 @@ config BUSYBOX_CONFIG_CUT
          cut is used to print selected parts of lines from
          each file to stdout.
 
          cut is used to print selected parts of lines from
          each file to stdout.
 
-config BUSYBOX_CONFIG_DATE
-       bool "date"
-       default y
-       help
-         date is used to set the system date or display the
-         current time in the given format.
-
-config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT
-       bool "Enable ISO date format output (-I)"
-       default y
-       depends on BUSYBOX_CONFIG_DATE
-       help
-         Enable option (-I) to output an ISO-8601 compliant
-         date/time string.
-
-config BUSYBOX_CONFIG_FEATURE_DATE_COMPAT
-       bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
-       default n
-       depends on BUSYBOX_CONFIG_DATE
-       help
-         System time can be set by 'date -s DATE' and simply 'date DATE',
-         but formats of DATE string are different. 'date DATE' accepts
-         a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
-         unnatural placement of year between minutes and seconds.
-         date -s (and other commands like touch -d) use more sensible
-         formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
-
-         With this option off, 'date DATE' is 'date -s DATE' support
-         the same format. With it on, 'date DATE' additionally supports
-         MMDDhhmm[[YY]YY][.ss] format.
-
 config BUSYBOX_CONFIG_DD
        bool "dd"
        default y
 config BUSYBOX_CONFIG_DD
        bool "dd"
        default y
@@ -183,6 +229,10 @@ config BUSYBOX_CONFIG_FEATURE_DF_FANCY
        help
          This option enables -a, -i and -B.
 
        help
          This option enables -a, -i and -B.
 
+           -a Show all filesystems
+           -i Inodes
+           -B <SIZE> Blocksize
+
 config BUSYBOX_CONFIG_DIRNAME
        bool "dirname"
        default y
 config BUSYBOX_CONFIG_DIRNAME
        bool "dirname"
        default y
@@ -682,6 +732,10 @@ config BUSYBOX_CONFIG_FEATURE_FANCY_TAIL
          The options (-q, -s, and -v) are provided by GNU tail, but
          are not specific in the SUSv3 standard.
 
          The options (-q, -s, and -v) are provided by GNU tail, but
          are not specific in the SUSv3 standard.
 
+           -q      Never output headers giving file names
+           -s SEC  Wait SEC seconds between reads with -f
+           -v      Always output headers giving file names
+
 config BUSYBOX_CONFIG_TEE
        bool "tee"
        default y
 config BUSYBOX_CONFIG_TEE
        bool "tee"
        default y
@@ -696,21 +750,6 @@ config BUSYBOX_CONFIG_FEATURE_TEE_USE_BLOCK_IO
        help
          Enable this option for a faster tee, at expense of size.
 
        help
          Enable this option for a faster tee, at expense of size.
 
-config BUSYBOX_CONFIG_TEST
-       bool "test"
-       default y
-       help
-         test is used to check file types and compare values,
-         returning an appropriate exit code. The bash shell
-         has test built in, ash can build it in optionally.
-
-config BUSYBOX_CONFIG_FEATURE_TEST_64
-       bool "Extend test to 64 bit"
-       default y
-       depends on BUSYBOX_CONFIG_TEST || BUSYBOX_CONFIG_ASH_BUILTIN_TEST || BUSYBOX_CONFIG_HUSH
-       help
-         Enable 64-bit support in test.
-
 config BUSYBOX_CONFIG_TOUCH
        bool "touch"
        default y
 config BUSYBOX_CONFIG_TOUCH
        bool "touch"
        default y
@@ -718,32 +757,6 @@ config BUSYBOX_CONFIG_TOUCH
          touch is used to create or change the access and/or
          modification timestamp of specified files.
 
          touch is used to create or change the access and/or
          modification timestamp of specified files.
 
-config BUSYBOX_CONFIG_TR
-       bool "tr"
-       default y
-       help
-         tr is used to squeeze, and/or delete characters from standard
-         input, writing to standard output.
-
-config BUSYBOX_CONFIG_FEATURE_TR_CLASSES
-       bool "Enable character classes (such as [:upper:])"
-       default n
-       depends on BUSYBOX_CONFIG_TR
-       help
-         Enable character classes, enabling commands such as:
-         tr [:upper:] [:lower:] to convert input into lowercase.
-
-config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
-       bool "Enable equivalence classes"
-       default n
-       depends on BUSYBOX_CONFIG_TR
-       help
-         Enable equivalence classes, which essentially add the enclosed
-         character to the current set. For instance, tr [=a=] xyz would
-         replace all instances of 'a' with 'xyz'. This option is mainly
-         useful for cases when no other way of expressing a character
-         is possible.
-
 config BUSYBOX_CONFIG_TRUE
        bool "true"
        default y
 config BUSYBOX_CONFIG_TRUE
        bool "true"
        default y
@@ -817,7 +830,7 @@ config BUSYBOX_CONFIG_FEATURE_WC_LARGE
 config BUSYBOX_CONFIG_WHO
        bool "who"
        default n
 config BUSYBOX_CONFIG_WHO
        bool "who"
        default n
-       select BUSYBOX_CONFIG_FEATURE_UTMP
+       depends on BUSYBOX_CONFIG_FEATURE_UTMP
        help
          who is used to show who is logged on.
 
        help
          who is used to show who is logged on.
 
index e61c661fc42ac12669080612310fa2d0f9aab2de..a9beb9b4b0820f332ff157bfc7aa5d11506f8058 100644 (file)
@@ -81,4 +81,3 @@ config BUSYBOX_CONFIG_WHICH
          print out their pathnames.
 
 endmenu
          print out their pathnames.
 
 endmenu
-
index e0e2c1ec387fc9c9c77750608a386122b4441113..08a1452c32b5af8042e64dd1ba266c4711d0a68b 100644 (file)
@@ -13,7 +13,7 @@ config BUSYBOX_CONFIG_CHATTR
 
 ### config E2FSCK
 ###    bool "e2fsck"
 
 ### config E2FSCK
 ###    bool "e2fsck"
-###    default n
+###    default y
 ###    help
 ###      e2fsck is used to check Linux second extended file systems (ext2fs).
 ###      e2fsck also supports ext2 filesystems countaining a journal (ext3).
 ###    help
 ###      e2fsck is used to check Linux second extended file systems (ext2fs).
 ###      e2fsck also supports ext2 filesystems countaining a journal (ext3).
@@ -36,21 +36,21 @@ config BUSYBOX_CONFIG_LSATTR
 
 ### config MKE2FS
 ###    bool "mke2fs"
 
 ### config MKE2FS
 ###    bool "mke2fs"
-###    default n
+###    default y
 ###    help
 ###      mke2fs is used to create an ext2/ext3 filesystem. The normal compat
 ###      symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
 
 ###    help
 ###      mke2fs is used to create an ext2/ext3 filesystem. The normal compat
 ###      symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
 
-### config TUNE2FS
-###    bool "tune2fs"
-###    default n
-###    help
-###      tune2fs allows the system administrator to adjust various tunable
-###      filesystem parameters on Linux ext2/ext3 filesystems.
+config BUSYBOX_CONFIG_TUNE2FS
+       bool "tune2fs"
+       default n
+       help
+         tune2fs allows the system administrator to adjust various tunable
+         filesystem parameters on Linux ext2/ext3 filesystems.
 
 ### config E2LABEL
 ###    bool "e2label"
 
 ### config E2LABEL
 ###    bool "e2label"
-###    default n
+###    default y
 ###    depends on TUNE2FS
 ###    help
 ###      e2label will display or change the filesystem label on the ext2
 ###    depends on TUNE2FS
 ###    help
 ###      e2label will display or change the filesystem label on the ext2
@@ -59,7 +59,7 @@ config BUSYBOX_CONFIG_LSATTR
 ### NB: this one is now provided by util-linux/volume_id/*
 ### config FINDFS
 ###    bool "findfs"
 ### NB: this one is now provided by util-linux/volume_id/*
 ### config FINDFS
 ###    bool "findfs"
-###    default n
+###    default y
 ###    depends on TUNE2FS
 ###    help
 ###      findfs will search the disks in the system looking for a filesystem
 ###    depends on TUNE2FS
 ###    help
 ###      findfs will search the disks in the system looking for a filesystem
index 6175df72fc66c5830aac193c9c9b519744cf0ca2..eeadfab7afa075277b3364c7f298c3a4963125b3 100644 (file)
@@ -168,6 +168,18 @@ config BUSYBOX_CONFIG_FEATURE_VI_WIN_RESIZE
        help
          Make busybox vi behave nicely with terminals that get resized.
 
        help
          Make busybox vi behave nicely with terminals that get resized.
 
+config BUSYBOX_CONFIG_FEATURE_VI_ASK_TERMINAL
+       bool "Use 'tell me cursor position' ESC sequence to measure window"
+       default y
+       depends on BUSYBOX_CONFIG_VI
+       help
+         If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+         this option makes vi perform a last-ditch effort to find it:
+         vi positions cursor to 999,999 and asks terminal to report real
+         cursor position using "ESC [ 6 n" escape sequence, then reads stdin.
+
+         This is not clean but helps a lot on serial lines and such.
+
 config BUSYBOX_CONFIG_FEATURE_VI_OPTIMIZE_CURSOR
        bool "Optimize cursor movement"
        default y
 config BUSYBOX_CONFIG_FEATURE_VI_OPTIMIZE_CURSOR
        bool "Optimize cursor movement"
        default y
index 94988956318eaa68de866c4df186aa06089923fb..bdf181c2f11e5f02e06e5f3b6348db4bd0e8759c 100644 (file)
@@ -5,6 +5,45 @@
 
 menu "Init Utilities"
 
 
 menu "Init Utilities"
 
+config BUSYBOX_CONFIG_BOOTCHARTD
+       bool "bootchartd"
+       default n
+       help
+         bootchartd is commonly used to profile the boot process
+         for the purpose of speeding it up. In this case, it is started
+         by the kernel as the init process. This is configured by adding
+         the init=/sbin/bootchartd option to the kernel command line.
+
+         It can also be used to monitor the resource usage of a specific
+         application or the running system in general. In this case,
+         bootchartd is started interactively by running bootchartd start
+         and stopped using bootchartd stop.
+
+config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER
+       bool "Compatible, bloated header"
+       default n
+       depends on BUSYBOX_CONFIG_BOOTCHARTD
+       help
+         Create extended header file compatible with "big" bootchartd.
+         "Big" bootchartd is a shell script and it dumps some
+         "convenient" info int the header, such as:
+           title = Boot chart for `hostname` (`date`)
+           system.uname = `uname -srvm`
+           system.release = `cat /etc/DISTRO-release`
+           system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount)
+           system.kernel.options = `cat /proc/cmdline`
+         This data is not mandatory for bootchart graph generation,
+         and is considered bloat. Nevertheless, this option
+         makes bootchartd applet to dump a subset of it.
+
+config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE
+       bool "Support bootchartd.conf"
+       default n
+       depends on BUSYBOX_CONFIG_BOOTCHARTD
+       help
+         Enable reading and parsing of $PWD/bootchartd.conf
+         and /etc/bootchartd.conf files.
+
 config BUSYBOX_CONFIG_INIT
        bool "init"
        default y
 config BUSYBOX_CONFIG_INIT
        bool "init"
        default y
@@ -25,8 +64,8 @@ config BUSYBOX_CONFIG_FEATURE_KILL_REMOVED
        depends on BUSYBOX_CONFIG_FEATURE_USE_INITTAB
        help
          When respawn entries are removed from inittab and a SIGHUP is
        depends on BUSYBOX_CONFIG_FEATURE_USE_INITTAB
        help
          When respawn entries are removed from inittab and a SIGHUP is
-         sent to init, this feature will kill the processes that have
-         been removed.
+         sent to init, this option will make init kill the processes
+         that have been removed.
 
 config BUSYBOX_CONFIG_FEATURE_KILL_DELAY
        int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED
 
 config BUSYBOX_CONFIG_FEATURE_KILL_DELAY
        int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED
index 4498e4e2d48efda4289d54c3da9993b9ebff5d2e..0a7d253d782a50651b21a59a2f41bb8f7826d172 100644 (file)
@@ -181,22 +181,6 @@ config BUSYBOX_CONFIG_GETTY
        help
          getty lets you log in on a tty, it is normally invoked by init.
 
        help
          getty lets you log in on a tty, it is normally invoked by init.
 
-config BUSYBOX_CONFIG_FEATURE_UTMP
-       bool "Support utmp file"
-       depends on BUSYBOX_CONFIG_GETTY || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU || BUSYBOX_CONFIG_WHO
-       default n
-       help
-         The file /var/run/utmp is used to track who is currently logged in.
-
-config BUSYBOX_CONFIG_FEATURE_WTMP
-       bool "Support wtmp file"
-       depends on BUSYBOX_CONFIG_GETTY || BUSYBOX_CONFIG_LOGIN || BUSYBOX_CONFIG_SU || BUSYBOX_CONFIG_LAST
-       default n
-       select BUSYBOX_CONFIG_FEATURE_UTMP
-       help
-         The file /var/run/wtmp is used to track when user's have logged into
-         and logged out of the system.
-
 config BUSYBOX_CONFIG_LOGIN
        bool "login"
        default n
 config BUSYBOX_CONFIG_LOGIN
        bool "login"
        default n
index 9d4a3700a1a11183efaf9ca2bf4e8eab4fcb782c..d3cf407b03de723dcaa0c6cd56228062c2d81ea0 100644 (file)
@@ -5,6 +5,27 @@
 
 menu "Miscellaneous Utilities"
 
 
 menu "Miscellaneous Utilities"
 
+config BUSYBOX_CONFIG_CONSPY
+       bool "conspy"
+       default n
+       help
+         A text-mode VNC like program for Linux virtual terminals.
+         example:  conspy NUM      shared access to console num
+         or        conspy -nd NUM  screenshot of console num
+         or        conspy -cs NUM  poor man's GNU screen like
+
+config BUSYBOX_CONFIG_UBIATTACH
+       bool "ubiattach"
+       default n
+       help
+         Attach MTD device to an UBI device.
+
+config BUSYBOX_CONFIG_UBIDETACH
+       bool "ubidetach"
+       default n
+       help
+         Detach MTD device from an UBI device.
+
 config BUSYBOX_CONFIG_ADJTIMEX
        bool "adjtimex"
        default n
 config BUSYBOX_CONFIG_ADJTIMEX
        bool "adjtimex"
        default n
@@ -317,14 +338,14 @@ config BUSYBOX_CONFIG_INOTIFYD
 config BUSYBOX_CONFIG_LAST
        bool "last"
        default n
 config BUSYBOX_CONFIG_LAST
        bool "last"
        default n
-       select BUSYBOX_CONFIG_FEATURE_WTMP
+       depends on BUSYBOX_CONFIG_FEATURE_WTMP
        help
          'last' displays a list of the last users that logged into the system.
 
 choice
        prompt "Choose last implementation"
        depends on BUSYBOX_CONFIG_LAST
        help
          'last' displays a list of the last users that logged into the system.
 
 choice
        prompt "Choose last implementation"
        depends on BUSYBOX_CONFIG_LAST
-       default BUSYBOX_CONFIG_FEATURE_LAST_SMALL
+       default BUSYBOX_CONFIG_FEATURE_LAST_FANCY
 
 config BUSYBOX_CONFIG_FEATURE_LAST_SMALL
        bool "small"
 
 config BUSYBOX_CONFIG_FEATURE_LAST_SMALL
        bool "small"
@@ -551,6 +572,17 @@ config BUSYBOX_CONFIG_READAHEAD
          As readahead(2) blocks until each file has been read, it is best to
          run this applet as a background job.
 
          As readahead(2) blocks until each file has been read, it is best to
          run this applet as a background job.
 
+config BUSYBOX_CONFIG_RFKILL
+       bool "rfkill"
+       default n
+       help
+         Enable/disable wireless devices.
+
+         rfkill list : list all wireless devices
+         rfkill list bluetooth : list all bluetooth devices
+         rfkill list 1 : list device corresponding to the given index
+         rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
+
 config BUSYBOX_CONFIG_RUNLEVEL
        bool "runlevel"
        default n
 config BUSYBOX_CONFIG_RUNLEVEL
        bool "runlevel"
        default n
index db515b547e646d9c1a03da09c9147b28744c2ee5..ad5401f953d1c4b428f80f5540b5f6e3ff8bf50f 100644 (file)
@@ -5,6 +5,12 @@
 
 menu "Linux Module Utilities"
 
 
 menu "Linux Module Utilities"
 
+config BUSYBOX_CONFIG_MODINFO
+       bool "modinfo"
+       default n
+       help
+         Show information about a Linux Kernel module
+
 config BUSYBOX_CONFIG_MODPROBE_SMALL
        bool "Simplified modutils"
        default n
 config BUSYBOX_CONFIG_MODPROBE_SMALL
        bool "Simplified modutils"
        default n
@@ -226,7 +232,7 @@ config BUSYBOX_CONFIG_FEATURE_MODUTILS_SYMBOLS
 config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
        string "Default directory containing modules"
        default "/lib/modules"
 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
+       depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_MODINFO
        help
          Directory that contains kernel modules.
          Defaults to "/lib/modules"
        help
          Directory that contains kernel modules.
          Defaults to "/lib/modules"
@@ -234,7 +240,7 @@ config BUSYBOX_CONFIG_DEFAULT_MODULES_DIR
 config BUSYBOX_CONFIG_DEFAULT_DEPMOD_FILE
        string "Default name of modules.dep"
        default "modules.dep"
 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
+       depends on BUSYBOX_CONFIG_DEPMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_MODPROBE_SMALL || BUSYBOX_CONFIG_MODINFO
        help
          Filename that contains kernel modules dependencies.
          Defaults to "modules.dep"
        help
          Filename that contains kernel modules dependencies.
          Defaults to "modules.dep"
index 99a8eddca2f35db7b3a6b737fbe4a3a39e076edd..481567c61a73f9210b4790d3c4d92d0483300769 100644 (file)
@@ -5,6 +5,39 @@
 
 menu "Networking Utilities"
 
 
 menu "Networking Utilities"
 
+config BUSYBOX_CONFIG_NC
+       bool "nc"
+       default y
+       help
+         A simple Unix utility which reads and writes data across network
+         connections.
+
+config BUSYBOX_CONFIG_NC_SERVER
+       bool "Netcat server options (-l)"
+       default n
+       depends on BUSYBOX_CONFIG_NC
+       help
+         Allow netcat to act as a server.
+
+config BUSYBOX_CONFIG_NC_EXTRA
+       bool "Netcat extensions (-eiw and filename)"
+       default n
+       depends on BUSYBOX_CONFIG_NC
+       help
+         Add -e (support for executing the rest of the command line after
+         making or receiving a successful connection), -i (delay interval for
+         lines sent), -w (timeout for initial connection).
+
+config BUSYBOX_CONFIG_NC_110_COMPAT
+       bool "Netcat 1.10 compatibility (+2.5k)"
+       default n
+       depends on BUSYBOX_CONFIG_NC
+       help
+         This option makes nc closely follow original nc-1.10.
+         The code is about 2.5k bigger. It enables
+         -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
+         busybox-specific extensions: -f FILE and -ll.
+
 config BUSYBOX_CONFIG_FEATURE_IPV6
        bool "Enable IPv6 support"
        default y
 config BUSYBOX_CONFIG_FEATURE_IPV6
        bool "Enable IPv6 support"
        default y
@@ -122,8 +155,8 @@ config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
        default n
        depends on BUSYBOX_CONFIG_FTPD
        help
        default n
        depends on BUSYBOX_CONFIG_FTPD
        help
-         Some ftp-clients (among them KDE's Konqueror) issue illegal
-         "LIST -la" requests. This option works around those problems.
+         Some ftp clients (among them KDE's Konqueror) issue illegal
+         "LIST -l" requests. This option works around such problems.
          It might prevent you from listing files starting with "-" and
          it increases the code size by ~40 bytes.
          Most other ftp servers seem to behave similar to this.
          It might prevent you from listing files starting with "-" and
          it increases the code size by ~40 bytes.
          Most other ftp servers seem to behave similar to this.
@@ -404,7 +437,7 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV6
 ### UNUSED
 ###config FEATURE_IFUPDOWN_IPX
 ###    bool "Support for IPX"
 ### UNUSED
 ###config FEATURE_IFUPDOWN_IPX
 ###    bool "Support for IPX"
-###    default n
+###    default y
 ###    depends on IFUPDOWN
 ###    help
 ###      If this option is selected you can use busybox to work with IPX
 ###    depends on IFUPDOWN
 ###    help
 ###      If this option is selected you can use busybox to work with IPX
@@ -621,35 +654,12 @@ config BUSYBOX_CONFIG_FEATURE_NAMEIF_EXTENDED
            new_interface_name  mac=00:80:C8:38:91:B5
            new_interface_name  00:80:C8:38:91:B5
 
            new_interface_name  mac=00:80:C8:38:91:B5
            new_interface_name  00:80:C8:38:91:B5
 
-config BUSYBOX_CONFIG_NC
-       bool "nc"
-       default y
-       help
-         A simple Unix utility which reads and writes data across network
-         connections.
-
 config BUSYBOX_CONFIG_NETMSG
        bool "netmsg"
        default y
        help
          simple program for sending udp broadcast messages
 
 config BUSYBOX_CONFIG_NETMSG
        bool "netmsg"
        default y
        help
          simple program for sending udp broadcast messages
 
-config BUSYBOX_CONFIG_NC_SERVER
-       bool "Netcat server options (-l)"
-       default n
-       depends on BUSYBOX_CONFIG_NC
-       help
-         Allow netcat to act as a server.
-
-config BUSYBOX_CONFIG_NC_EXTRA
-       bool "Netcat extensions (-eiw and filename)"
-       default n
-       depends on BUSYBOX_CONFIG_NC
-       help
-         Add -e (support for executing the rest of the command line after
-         making or receiving a successful connection), -i (delay interval for
-         lines sent), -w (timeout for initial connection).
-
 config BUSYBOX_CONFIG_NETSTAT
        bool "netstat"
        default y
 config BUSYBOX_CONFIG_NETSTAT
        bool "netstat"
        default y
@@ -735,7 +745,7 @@ config BUSYBOX_CONFIG_SLATTACH
 
 #config TC
 #      bool "tc"
 
 #config TC
 #      bool "tc"
-#      default n
+#      default y
 #      help
 #        show / manipulate traffic control settings
 #
 #      help
 #        show / manipulate traffic control settings
 #
@@ -743,6 +753,13 @@ config BUSYBOX_CONFIG_SLATTACH
 #      def_bool n
 #      depends on TC
 
 #      def_bool n
 #      depends on TC
 
+config BUSYBOX_CONFIG_TCPSVD
+       bool "tcpsvd"
+       default n
+       help
+         tcpsvd listens on a TCP port and runs a program for each new
+         connection.
+
 config BUSYBOX_CONFIG_TELNET
        bool "telnet"
        default y
 config BUSYBOX_CONFIG_TELNET
        bool "telnet"
        default y
@@ -858,8 +875,11 @@ config BUSYBOX_CONFIG_TFTPD
          In other words: it should be run from inetd in nowait mode,
          or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
 
          In other words: it should be run from inetd in nowait mode,
          or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
 
+comment "Common options for tftp/tftpd"
+       depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
+
 config BUSYBOX_CONFIG_FEATURE_TFTP_GET
 config BUSYBOX_CONFIG_FEATURE_TFTP_GET
-       bool "Enable \"get\" command"
+       bool "Enable 'tftp get' and/or tftpd upload code"
        default n
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
        default n
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
@@ -867,8 +887,11 @@ config BUSYBOX_CONFIG_FEATURE_TFTP_GET
          a client to retrieve a file from a TFTP server.
          Also enable upload support in tftpd, if tftpd is selected.
 
          a client to retrieve a file from a TFTP server.
          Also enable upload support in tftpd, if tftpd is selected.
 
+         Note: this option does _not_ make tftpd capable of download
+         (the usual operation people need from it)!
+
 config BUSYBOX_CONFIG_FEATURE_TFTP_PUT
 config BUSYBOX_CONFIG_FEATURE_TFTP_PUT
-       bool "Enable \"put\" command"
+       bool "Enable 'tftp put' and/or tftpd download code"
        default n
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
        default n
        depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
        help
@@ -935,6 +958,20 @@ config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP
        help
          Add option -I to use ICMP ECHO instead of UDP datagrams.
 
        help
          Add option -I to use ICMP ECHO instead of UDP datagrams.
 
+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.
+
 source package/busybox/config/networking/udhcp/Config.in
 
 config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
 source package/busybox/config/networking/udhcp/Config.in
 
 config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
@@ -946,6 +983,13 @@ config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
          Intended to alter options not available in /etc/network/interfaces.
          (IE: --syslog --background etc...)
 
          Intended to alter options not available in /etc/network/interfaces.
          (IE: --syslog --background etc...)
 
+config BUSYBOX_CONFIG_UDPSVD
+       bool "udpsvd"
+       default n
+       help
+         udpsvd listens on an UDP port and runs a program for each new
+         connection.
+
 config BUSYBOX_CONFIG_VCONFIG
        bool "vconfig"
        default y
 config BUSYBOX_CONFIG_VCONFIG
        bool "vconfig"
        default y
@@ -992,32 +1036,4 @@ config BUSYBOX_CONFIG_ZCIP
          See http://www.zeroconf.org for further details, and "zcip.script"
          in the busybox examples.
 
          See http://www.zeroconf.org for further details, and "zcip.script"
          in the busybox examples.
 
-config BUSYBOX_CONFIG_TCPSVD
-       bool "tcpsvd"
-       default n
-       help
-         tcpsvd listens on a TCP port and runs a program for each new
-         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
-       bool "udpsvd"
-       default n
-       help
-         udpsvd listens on an UDP port and runs a program for each new
-         connection.
-
 endmenu
 endmenu
index 2597f72ca89ee923e87c1193bf8216ad81e6097f..e9827870e47dcc6ca8aa2adb1ba46ef9cdcd724e 100644 (file)
@@ -92,7 +92,8 @@ config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397
        depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
        help
          If selected, both client and server will support passing of domain
        depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
        help
          If selected, both client and server will support passing of domain
-         search lists via option 119, specified in RFC3397.
+         search lists via option 119, specified in RFC 3397,
+         and SIP servers option 120, specified in RFC 3361.
 
 config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
        string "Absolute path to config script"
 
 config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
        string "Absolute path to config script"
index 2bac03891d23bc4fbf6e3bd00e0d3f5c5433f5eb..3a95439ce3f62ee0929145d44cc29baebee2c94f 100644 (file)
@@ -5,6 +5,13 @@
 
 menu "Process Utilities"
 
 
 menu "Process Utilities"
 
+config BUSYBOX_CONFIG_SMEMCAP
+       bool "smemcap"
+       default n
+       help
+         smemcap is a tool for capturing process data for smem,
+         a memory usage statistic tool.
+
 config BUSYBOX_CONFIG_FREE
        bool "free"
        default y
 config BUSYBOX_CONFIG_FREE
        bool "free"
        default y
index 624d4992e314b73ba0b6b02a863582ea89cb01f6..c1ee81362b77228ce50d1808aa3f7190de425cbf 100644 (file)
@@ -61,22 +61,26 @@ config BUSYBOX_CONFIG_CHPST
 
 config BUSYBOX_CONFIG_SETUIDGID
        bool "setuidgid"
 
 config BUSYBOX_CONFIG_SETUIDGID
        bool "setuidgid"
+       default n
        help
          Sets soft resource limits as specified by options
 
 config BUSYBOX_CONFIG_ENVUIDGID
        bool "envuidgid"
        help
          Sets soft resource limits as specified by options
 
 config BUSYBOX_CONFIG_ENVUIDGID
        bool "envuidgid"
+       default n
        help
          Sets $UID to account's uid and $GID to account's gid
 
 config BUSYBOX_CONFIG_ENVDIR
        bool "envdir"
        help
          Sets $UID to account's uid and $GID to account's gid
 
 config BUSYBOX_CONFIG_ENVDIR
        bool "envdir"
+       default n
        help
          Sets various environment variables as specified by files
          in the given directory
 
 config BUSYBOX_CONFIG_SOFTLIMIT
        bool "softlimit"
        help
          Sets various environment variables as specified by files
          in the given directory
 
 config BUSYBOX_CONFIG_SOFTLIMIT
        bool "softlimit"
+       default n
        help
          Sets soft resource limits as specified by options
 
        help
          Sets soft resource limits as specified by options
 
index dbd960630e02855a3dcb348232f0d55def5a5abd..50f324aaa1f329c84623965b3980817a468f8dfe 100644 (file)
@@ -120,4 +120,3 @@ config BUSYBOX_CONFIG_SESTATUS
          Displays the status of SELinux.
 
 endmenu
          Displays the status of SELinux.
 
 endmenu
-
index 5d492e239925ad85d6fbe861a66f30ea981e965a..d652dd30745a50ffbb2572a02cc4c08972b6cd7f 100644 (file)
@@ -5,34 +5,7 @@
 
 menu "Shells"
 
 
 menu "Shells"
 
-choice
-       prompt "Choose your default shell"
-       default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
-       help
-         Choose a shell. The ash shell is the most bash compatible
-         and full featured one.
-
-config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
-       select BUSYBOX_CONFIG_ASH
-       bool "ash"
-       depends on !BUSYBOX_CONFIG_NOMMU
 
 
-config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
-       select BUSYBOX_CONFIG_HUSH
-       bool "hush"
-
-####config FEATURE_SH_IS_LASH
-####   select LASH
-####   bool "lash"
-
-####config FEATURE_SH_IS_MSH
-####   select MSH
-####   bool "msh"
-
-config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
-       bool "none"
-
-endchoice
 
 config BUSYBOX_CONFIG_ASH
        bool "ash"
 
 config BUSYBOX_CONFIG_ASH
        bool "ash"
@@ -243,6 +216,61 @@ config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
          Enable pseudorandom generator and dynamic variable "$RANDOM".
          Each read of "$RANDOM" will generate a new pseudorandom value.
 
          Enable pseudorandom generator and dynamic variable "$RANDOM".
          Each read of "$RANDOM" will generate a new pseudorandom value.
 
+
+choice
+       prompt "Choose which shell is aliased to 'sh' name"
+       default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
+       help
+         Choose which shell you want to be executed by 'sh' alias.
+         The ash shell is the most bash compatible and full featured one.
+
+# note: cannot use "select ASH" here, it breaks "make allnoconfig"
+config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
+       depends on BUSYBOX_CONFIG_ASH
+       bool "ash"
+       depends on !BUSYBOX_CONFIG_NOMMU
+
+config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
+       depends on BUSYBOX_CONFIG_HUSH
+       bool "hush"
+
+config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
+       bool "none"
+
+endchoice
+
+choice
+       prompt "Choose which shell is aliased to 'bash' name"
+       default BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
+       help
+         Choose which shell you want to be executed by 'bash' alias.
+         The ash shell is the most bash compatible and full featured one.
+
+         Note that selecting this option does not switch on any bash
+         compatibility code. It merely makes it possible to install
+         /bin/bash (sym)link and run scripts which start with
+         #!/bin/bash line.
+
+         Many systems use it in scripts which use bash-specific features,
+         even simple ones like $RANDOM. Without this option, busybox
+         can't be used for running them because it won't recongnize
+         "bash" as a supported applet name.
+
+config BUSYBOX_CONFIG_FEATURE_BASH_IS_ASH
+       depends on BUSYBOX_CONFIG_ASH
+       bool "ash"
+       depends on !BUSYBOX_CONFIG_NOMMU
+
+config BUSYBOX_CONFIG_FEATURE_BASH_IS_HUSH
+       depends on BUSYBOX_CONFIG_HUSH
+       bool "hush"
+
+config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
+       bool "none"
+
+endchoice
+
+
 config BUSYBOX_CONFIG_LASH
        bool "lash (deprecated: aliased to hush)"
        default n
 config BUSYBOX_CONFIG_LASH
        bool "lash (deprecated: aliased to hush)"
        default n
@@ -285,14 +313,14 @@ config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
        bool "Hide message on interactive shell startup"
        default n
 config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
        bool "Hide message on interactive shell startup"
        default n
-       depends on BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
+       depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
        help
          Remove the busybox introduction when starting a shell.
 
 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
        bool "Standalone shell"
        default n
        help
          Remove the busybox introduction when starting a shell.
 
 config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
        bool "Standalone shell"
        default n
-       depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
+       depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
        help
          This option causes busybox shells to use busybox applets
          in preference to executables in the PATH whenever possible. For
        help
          This option causes busybox shells to use busybox applets
          in preference to executables in the PATH whenever possible. For
@@ -325,7 +353,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
        bool "Run 'nofork' applets directly"
        default n
 config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
        bool "Run 'nofork' applets directly"
        default n
-       depends on (BUSYBOX_CONFIG_MSH || BUSYBOX_CONFIG_LASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
+       depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
        help
          This option causes busybox shells [currently only ash]
          to not execute typical fork/exec/wait sequence, but call <applet>_main
        help
          This option causes busybox shells [currently only ash]
          to not execute typical fork/exec/wait sequence, but call <applet>_main
@@ -354,9 +382,20 @@ config BUSYBOX_CONFIG_CTTYHACK
          It analyzes stdin with various ioctls, trying to determine whether
          it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
          If it detects one, it closes stdin/out/err and reopens that device.
          It analyzes stdin with various ioctls, trying to determine whether
          it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
          If it detects one, it closes stdin/out/err and reopens that device.
-         Then it executes given program. Usage example for /etc/inittab
-         (for busybox init):
+         Then it executes given program. Opening the device will make
+         that device a controlling tty. This may require cttyhack
+         to be a session leader.
+
+         Example for /etc/inittab (for busybox init):
 
          ::respawn:/bin/cttyhack /bin/sh
 
 
          ::respawn:/bin/cttyhack /bin/sh
 
+         Giving controlling tty to shell running with PID 1:
+
+         $ exec cttyhack sh
+
+         Starting an interactive shell from boot shell script:
+
+         setsid cttyhack sh
+
 endmenu
 endmenu
index b9e0db2fad8cc2d70f6bd39259cdde521fbbe9ea..ea134b546ee53023e32261b5d61f7142165b71c7 100644 (file)
@@ -50,6 +50,16 @@ config BUSYBOX_CONFIG_FEATURE_SYSLOGD_DUP
          Option -D instructs syslogd to drop consecutive messages
          which are totally the same.
 
          Option -D instructs syslogd to drop consecutive messages
          which are totally the same.
 
+config BUSYBOX_CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE
+       int "Read buffer size in bytes"
+       default 256
+       range 256 20000
+       depends on BUSYBOX_CONFIG_SYSLOGD
+       help
+         This option sets the size of the syslog read buffer.
+         Actual memory usage increases around five times the
+         change done here.
+
 config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
        bool "Circular Buffer support"
        default y
 config BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG
        bool "Circular Buffer support"
        default y
@@ -115,4 +125,3 @@ config BUSYBOX_CONFIG_LOGGER
            problems that occur within programs and scripts.
 
 endmenu
            problems that occur within programs and scripts.
 
 endmenu
-
index a4fbc0ce6c664128af32e0fe1075a371fb2008c8..3745528da84de7ec921bc6f3326a3632c1a53f45 100644 (file)
@@ -5,6 +5,12 @@
 
 menu "Linux System Utilities"
 
 
 menu "Linux System Utilities"
 
+config BUSYBOX_CONFIG_REV
+       bool "rev"
+       default n
+       help
+         Reverse lines of a file or files.
+
 config BUSYBOX_CONFIG_ACPID
        bool "acpid"
        default n
 config BUSYBOX_CONFIG_ACPID
        bool "acpid"
        default n
@@ -191,6 +197,12 @@ config BUSYBOX_CONFIG_FINDFS
          WARNING:
          With all submodules selected, it will add ~8k to busybox.
 
          WARNING:
          With all submodules selected, it will add ~8k to busybox.
 
+config BUSYBOX_CONFIG_FLOCK
+       bool "flock"
+       default n
+       help
+         Manage locks from shell scripts
+
 config BUSYBOX_CONFIG_FREERAMDISK
        bool "freeramdisk"
        default n
 config BUSYBOX_CONFIG_FREERAMDISK
        bool "freeramdisk"
        default n
@@ -227,9 +239,6 @@ config BUSYBOX_CONFIG_MKFS_MINIX
          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
-
 config BUSYBOX_CONFIG_FEATURE_MINIX2
        bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
        default n
 config BUSYBOX_CONFIG_FEATURE_MINIX2
        bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
        default n
@@ -244,6 +253,7 @@ config BUSYBOX_CONFIG_MKFS_REISER
        default n
        help
          Utility to create ReiserFS filesystems.
        default n
        help
          Utility to create ReiserFS filesystems.
+         Note: this applet needs a lot of testing and polishing.
 
 config BUSYBOX_CONFIG_MKFS_VFAT
        bool "mkfs_vfat"
 
 config BUSYBOX_CONFIG_MKFS_VFAT
        bool "mkfs_vfat"
@@ -289,7 +299,7 @@ config BUSYBOX_CONFIG_FEATURE_HEXDUMP_REVERSE
 config BUSYBOX_CONFIG_HD
        bool "hd"
        default n
 config BUSYBOX_CONFIG_HD
        bool "hd"
        default n
-       select BUSYBOX_CONFIG_HEXDUMP
+       depends on BUSYBOX_CONFIG_HEXDUMP
        help
          hd is an alias to hexdump -C.
 
        help
          hd is an alias to hexdump -C.
 
@@ -464,221 +474,6 @@ config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
          will be unable to determine the current screen size, and will be
          unable to move the cursor.
 
          will be unable to determine the current screen size, and will be
          unable to move the cursor.
 
-config BUSYBOX_CONFIG_VOLUMEID
-       bool #No description makes it a hidden option
-       default n
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
-       bool "Ext filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
-       bool "btrfs filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
-       bool "Reiser filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
-       bool "fat filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
-       bool "hfs filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
-       bool "jfs filesystem"
-       default n
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-### config FEATURE_VOLUMEID_UFS
-###    bool "ufs filesystem"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
-       bool "xfs filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
-       bool "ntfs filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
-       bool "iso9660 filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
-       bool "udf filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
-       bool "luks filesystem"
-       default n
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
-       bool "linux swap filesystem"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-### config FEATURE_VOLUMEID_LVM
-###    bool "lvm"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_CRAMFS
-       bool "cramfs filesystem"
-       default n
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-### config FEATURE_VOLUMEID_HPFS
-###    bool "hpfs filesystem"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ROMFS
-       bool "romfs filesystem"
-       default n
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
-       bool "sysv filesystem"
-       default n
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-### config FEATURE_VOLUMEID_MINIX
-###    bool "minix filesystem"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-### These only detect partition tables - not used (yet?)
-### config FEATURE_VOLUMEID_MAC
-###    bool "mac filesystem"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-###
-### config FEATURE_VOLUMEID_MSDOS
-###    bool "msdos filesystem"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
-       bool "ocfs2 filesystem"
-       default n
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
-### config FEATURE_VOLUMEID_HIGHPOINTRAID
-###    bool "highpoint raid"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-### config FEATURE_VOLUMEID_ISWRAID
-###    bool "intel raid"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-### config FEATURE_VOLUMEID_LSIRAID
-###    bool "lsi raid"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-### config FEATURE_VOLUMEID_VIARAID
-###    bool "via raid"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-### config FEATURE_VOLUMEID_SILICONRAID
-###    bool "silicon raid"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-### config FEATURE_VOLUMEID_NVIDIARAID
-###    bool "nvidia raid"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-### config FEATURE_VOLUMEID_PROMISERAID
-###    bool "promise raid"
-###    default n
-###    depends on VOLUMEID
-###    help
-###      TODO
-
-config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
-       bool "linuxraid"
-       default y
-       depends on BUSYBOX_CONFIG_VOLUMEID
-       help
-         TODO
-
 config BUSYBOX_CONFIG_MOUNT
        bool "mount"
        default y
 config BUSYBOX_CONFIG_MOUNT
        bool "mount"
        default y
@@ -719,7 +514,7 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_HELPERS
          The idea is to use such virtual filesystems in /etc/fstab.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
          The idea is to use such virtual filesystems in /etc/fstab.
 
 config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
-       bool "Support specifiying devices by label or UUID"
+       bool "Support specifying devices by label or UUID"
        default n
        depends on BUSYBOX_CONFIG_MOUNT
        select BUSYBOX_CONFIG_VOLUMEID
        default n
        depends on BUSYBOX_CONFIG_MOUNT
        select BUSYBOX_CONFIG_VOLUMEID
@@ -783,9 +578,9 @@ config BUSYBOX_CONFIG_RDATE
          systems.
 
 config BUSYBOX_CONFIG_RDEV
          systems.
 
 config BUSYBOX_CONFIG_RDEV
-       bool "rdev"
-       default n
-       help
+       bool "rdev"
+       default n
+       help
          Print the device node associated with the filesystem mounted at '/'.
 
 config BUSYBOX_CONFIG_READPROFILE
          Print the device node associated with the filesystem mounted at '/'.
 
 config BUSYBOX_CONFIG_READPROFILE
@@ -895,6 +690,18 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP
          specify an offset or cryptographic options to the loopback device.
          (If you don't want umount to free the loop device, use "umount -D".)
 
          specify an offset or cryptographic options to the loopback device.
          (If you don't want umount to free the loop device, use "umount -D".)
 
+config BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP_CREATE
+       bool "Create new loopback devices if needed"
+       default n
+       depends on BUSYBOX_CONFIG_FEATURE_MOUNT_LOOP
+       help
+         Linux kernels >= 2.6.24 support unlimited loopback devices. They are
+         allocated for use when trying to use a loop device. The loop device
+         must however exist.
+
+         This feature lets mount to try to create next /dev/loopN device
+         if it does not find a free one.
+
 config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
        bool "Support for the old /etc/mtab file"
        default n
 config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
        bool "Support for the old /etc/mtab file"
        default n
@@ -912,11 +719,231 @@ config BUSYBOX_CONFIG_FEATURE_MTAB_SUPPORT
          If you must use this, keep in mind it's inherently brittle (for
          example a mount under chroot won't update it), can't handle modern
          features like separate per-process filesystem namespaces, requires
          If you must use this, keep in mind it's inherently brittle (for
          example a mount under chroot won't update it), can't handle modern
          features like separate per-process filesystem namespaces, requires
-         that your /etc directory be writeable, tends to get easily confused
+         that your /etc directory be writable, tends to get easily confused
          by --bind or --move mounts, won't update if you rename a directory
          that contains a mount point, and so on. (In brief: avoid.)
 
          About the only reason to use this is if you've removed /proc from
          your kernel.
 
          by --bind or --move mounts, won't update if you rename a directory
          that contains a mount point, and so on. (In brief: avoid.)
 
          About the only reason to use this is if you've removed /proc from
          your kernel.
 
+config BUSYBOX_CONFIG_VOLUMEID
+       bool #No description makes it a hidden option
+       default n
+
+menu "Filesystem/Volume identification"
+       depends on BUSYBOX_CONFIG_VOLUMEID
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
+       bool "Ext filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
+       bool "btrfs filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
+       bool "Reiser filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
+       bool "fat filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
+       bool "hfs filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
+       bool "jfs filesystem"
+       default n
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+### config FEATURE_VOLUMEID_UFS
+###    bool "ufs filesystem"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
+       bool "xfs filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
+       bool "ntfs filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
+       bool "iso9660 filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
+       bool "udf filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
+       bool "luks filesystem"
+       default n
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
+       bool "linux swap filesystem"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+### config FEATURE_VOLUMEID_LVM
+###    bool "lvm"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_CRAMFS
+       bool "cramfs filesystem"
+       default n
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+### config FEATURE_VOLUMEID_HPFS
+###    bool "hpfs filesystem"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ROMFS
+       bool "romfs filesystem"
+       default n
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
+       bool "sysv filesystem"
+       default n
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+### config FEATURE_VOLUMEID_MINIX
+###    bool "minix filesystem"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+### These only detect partition tables - not used (yet?)
+### config FEATURE_VOLUMEID_MAC
+###    bool "mac filesystem"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+###
+### config FEATURE_VOLUMEID_MSDOS
+###    bool "msdos filesystem"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
+       bool "ocfs2 filesystem"
+       default n
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+### config FEATURE_VOLUMEID_HIGHPOINTRAID
+###    bool "highpoint raid"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+### config FEATURE_VOLUMEID_ISWRAID
+###    bool "intel raid"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+### config FEATURE_VOLUMEID_LSIRAID
+###    bool "lsi raid"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+### config FEATURE_VOLUMEID_VIARAID
+###    bool "via raid"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+### config FEATURE_VOLUMEID_SILICONRAID
+###    bool "silicon raid"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+### config FEATURE_VOLUMEID_NVIDIARAID
+###    bool "nvidia raid"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+### config FEATURE_VOLUMEID_PROMISERAID
+###    bool "promise raid"
+###    default y
+###    depends on VOLUMEID
+###    help
+###      TODO
+
+config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
+       bool "linuxraid"
+       default y
+       depends on BUSYBOX_CONFIG_VOLUMEID
+       help
+         TODO
+
+endmenu
+
 endmenu
 endmenu
diff --git a/package/busybox/patches/000-autoconf.patch b/package/busybox/patches/000-autoconf.patch
new file mode 100644 (file)
index 0000000..d237457
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/applets/Kbuild.src
++++ b/applets/Kbuild.src
+@@ -28,7 +28,7 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla
+ applets/applets.o: include/usage_compressed.h include/applet_tables.h
+ applets/applet_tables: .config include/applets.h
+-applets/usage:         .config include/applets.h
++applets/usage:         .config include/applets.h include/autoconf.h
+ applets/usage_pod:     .config include/applet_tables.h include/applets.h
+ quiet_cmd_gen_usage_compressed = GEN     include/usage_compressed.h
diff --git a/package/busybox/patches/000-upstream-mktemp.patch b/package/busybox/patches/000-upstream-mktemp.patch
new file mode 100644 (file)
index 0000000..a7727ca
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/debianutils/mktemp.c
++++ b/debianutils/mktemp.c
+@@ -50,7 +50,7 @@ int mktemp_main(int argc UNUSED_PARAM, c
+       opts = getopt32(argv, "dqtp:", &path);
+       chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
+-      if (chp[0] != '/' || (opts & 8))
++      if (!strchr(chp, '/') || (opts & 8))
+               chp = concat_path_file(path, chp);
+       if (opts & 1) { /* -d */
diff --git a/package/busybox/patches/000-upstream-sed.patch b/package/busybox/patches/000-upstream-sed.patch
new file mode 100644 (file)
index 0000000..7693d62
--- /dev/null
@@ -0,0 +1,64 @@
+--- a/editors/sed.c
++++ b/editors/sed.c
+@@ -61,6 +61,10 @@
+ #include "libbb.h"
+ #include "xregex.h"
++enum {
++      OPT_in_place = 1 << 0,
++};
++
+ /* Each sed command turns into one of these structures. */
+ typedef struct sed_cmd_s {
+       /* Ordered by alignment requirements: currently 36 bytes on x86 */
+@@ -938,8 +942,11 @@ static void process_files(void)
+               if (matched) {
+                       /* once matched, "n,xxx" range is dead, disabling it */
+-                      if (sed_cmd->beg_line > 0)
++                      if (sed_cmd->beg_line > 0
++                       && !(option_mask32 & OPT_in_place) /* but not for -i */
++                      ) {
+                               sed_cmd->beg_line = -2;
++                      }
+                       sed_cmd->in_match = !(
+                               /* has the ending line come, or is this a single address command? */
+                               (sed_cmd->end_line ?
+@@ -1270,9 +1277,6 @@ static void add_cmd_block(char *cmdstr)
+ int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int sed_main(int argc UNUSED_PARAM, char **argv)
+ {
+-      enum {
+-              OPT_in_place = 1 << 0,
+-      };
+       unsigned opt;
+       llist_t *opt_e, *opt_f;
+       int status = EXIT_SUCCESS;
+@@ -1292,6 +1296,7 @@ int sed_main(int argc UNUSED_PARAM, char
+       opt_e = opt_f = NULL;
+       opt_complementary = "e::f::" /* can occur multiple times */
+                           "nn"; /* count -n */
++      /* -i must be first, to match OPT_in_place definition */
+       opt = getopt32(argv, "irne:f:", &opt_e, &opt_f,
+                           &G.be_quiet); /* counter for -n */
+       //argc -= optind;
+--- a/testsuite/sed.tests
++++ b/testsuite/sed.tests
+@@ -270,11 +270,16 @@ testing "sed a cmd ended by double backs
+       | two \\
+ '
+-# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
++# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
+ testing "sed with N skipping lines past ranges on next cmds" \
+       "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
+       "4\n4\n" "" "1\n2\n3\n4\n"
++testing "sed -i with address modifies all files, not only first" \
++      "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
++      "bar\nbar\n" "foo\n" ""
++
++
+ # testing "description" "arguments" "result" "infile" "stdin"
+ exit $FAILCOUNT
diff --git a/package/busybox/patches/000-upstream-shell.patch b/package/busybox/patches/000-upstream-shell.patch
new file mode 100644 (file)
index 0000000..4f0058e
--- /dev/null
@@ -0,0 +1,98 @@
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -4515,6 +4515,7 @@ clear_traps(void)
+                       INT_ON;
+               }
+       }
++      may_have_traps = 0;
+ }
+ /* Lives far away from here, needed for forkchild */
+--- /dev/null
++++ b/shell/ash_test/ash-signals/signal7.right
+@@ -0,0 +1 @@
++Bug detected: 0
+--- /dev/null
++++ b/shell/ash_test/ash-signals/signal7.tests
+@@ -0,0 +1,18 @@
++bug() {
++      trap : exit
++      # Bug was causing sh to be run in subshell,
++      # as if this line is replaced with (sh -c ...; exit $?) &
++      # here:
++      sh -c 'echo REAL_CHILD=$$' &
++      echo PARENTS_IDEA_OF_CHILD=$!
++      wait  # make sure bkgd shell completes
++}
++
++bug | {
++while read varval; do
++      eval $varval
++done
++test x"$REAL_CHILD" != x"" \
++&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
++echo "Bug detected: $?"
++}
+--- a/shell/hush.c
++++ b/shell/hush.c
+@@ -3901,8 +3901,6 @@ static void insert_bg_job(struct pipe *p
+       if (G_interactive_fd)
+               printf("[%d] %d %s\n", job->jobid, job->cmds[0].pid, job->cmdtext);
+-      /* Last command's pid goes to $! */
+-      G.last_bg_pid = job->cmds[job->num_cmds - 1].pid;
+       G.last_jobid = job->jobid;
+ }
+@@ -4825,6 +4823,8 @@ static int run_list(struct pipe *pi)
+                               if (G.run_list_level == 1)
+                                       insert_bg_job(pi);
+ #endif
++                              /* Last command's pid goes to $! */
++                              G.last_bg_pid = pi->cmds[pi->num_cmds - 1].pid;
+                               G.last_exitcode = rcode = EXIT_SUCCESS;
+                               debug_printf_exec(": cmd&: exitcode EXIT_SUCCESS\n");
+                       } else {
+--- /dev/null
++++ b/shell/hush_test/hush-trap/signal7.right
+@@ -0,0 +1 @@
++Bug detected: 0
+--- /dev/null
++++ b/shell/hush_test/hush-trap/signal7.tests
+@@ -0,0 +1,18 @@
++bug() {
++      trap : exit
++      # Bug was causing sh to be run in subshell,
++      # as if this line is replaced with (sh -c ...; exit $?) &
++      # here:
++      sh -c 'echo REAL_CHILD=$$' &
++      echo PARENTS_IDEA_OF_CHILD=$!
++      wait  # make sure bkgd shell completes
++}
++
++bug | {
++while read varval; do
++      eval $varval
++done
++test x"$REAL_CHILD" != x"" \
++&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
++echo "Bug detected: $?"
++}
+--- a/shell/shell_common.c
++++ b/shell/shell_common.c
+@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv)
+                                               val <<= l->factor_shift;
+                                       }
+ //bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val);
++                                      /* from man bash: "If neither -H nor -S
++                                       * is specified, both the soft and hard
++                                       * limits are set. */
++                                      if (!opts)
++                                              opts = OPT_hard + OPT_soft;
+                                       if (opts & OPT_hard)
+                                               limit.rlim_max = val;
+-                                      if ((opts & OPT_soft) || opts == 0)
++                                      if (opts & OPT_soft)
+                                               limit.rlim_cur = val;
+ //bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max);
+                                       if (setrlimit(l->cmd, &limit) < 0) {
index b810752fcbd32d746b5a23d152151ddbaf916a12..ef9e7f4be11ca5bd442c13b714e62255c047a3de 100644 (file)
@@ -12,7 +12,7 @@
  /* Construct a ip/udp header for a packet, send packet */
  int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
                uint32_t source_nip, int source_port,
  /* Construct a ip/udp header for a packet, send packet */
  int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
                uint32_t source_nip, int source_port,
-@@ -173,11 +178,12 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -173,10 +178,10 @@ int FAST_FUNC udhcp_send_raw_packet(stru
  {
        struct sockaddr_ll dest_sll;
        struct ip_udp_dhcp_packet packet;
  {
        struct sockaddr_ll dest_sll;
        struct ip_udp_dhcp_packet packet;
        int fd;
        int result = -1;
        const char *msg;
        int fd;
        int result = -1;
        const char *msg;
 +      int p_len = udhcp_get_payload_len(dhcp_pkt);
 +      int p_len = udhcp_get_payload_len(dhcp_pkt);
-+
        fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
        if (fd < 0) {
        fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
        if (fd < 0) {
-               msg = "socket(%s)";
-@@ -186,7 +192,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -185,8 +190,8 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+       }
  
        memset(&dest_sll, 0, sizeof(dest_sll));
  
        memset(&dest_sll, 0, sizeof(dest_sll));
-       memset(&packet, 0, offsetof(struct ip_udp_dhcp_packet, data));
+-      memset(&packet, 0, offsetof(struct ip_udp_dhcp_packet, data));
 -      packet.data = *dhcp_pkt; /* struct copy */
 -      packet.data = *dhcp_pkt; /* struct copy */
++      memset(&packet, 0, sizeof(packet));
 +      memcpy(&(packet.data), dhcp_pkt, p_len);
  
        dest_sll.sll_family = AF_PACKET;
        dest_sll.sll_protocol = htons(ETH_P_IP);
 +      memcpy(&(packet.data), dhcp_pkt, p_len);
  
        dest_sll.sll_family = AF_PACKET;
        dest_sll.sll_protocol = htons(ETH_P_IP);
-@@ -208,27 +214,25 @@ int FAST_FUNC udhcp_send_raw_packet(stru
-        * In order to work with those buggy servers,
-        * we truncate packets after end option byte.
-        */
--      padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(packet.data.options);
+@@ -199,36 +204,24 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+               goto ret_close;
+       }
  
  
+-      /* We were sending full-sized DHCP packets (zero padded),
+-       * but some badly configured servers were seen dropping them.
+-       * Apparently they drop all DHCP packets >576 *ethernet* octets big,
+-       * whereas they may only drop packets >576 *IP* octets big
+-       * (which for typical Ethernet II means 590 octets: 6+6+2 + 576).
+-       *
+-       * In order to work with those buggy servers,
+-       * we truncate packets after end option byte.
+-       */
+-      padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(packet.data.options);
+-
        packet.ip.protocol = IPPROTO_UDP;
        packet.ip.saddr = source_nip;
        packet.ip.daddr = dest_nip;
        packet.ip.protocol = IPPROTO_UDP;
        packet.ip.saddr = source_nip;
        packet.ip.daddr = dest_nip;
  
        udhcp_dump_packet(dhcp_pkt);
 -      result = sendto(fd, &packet, IP_UPD_DHCP_SIZE - padding, /*flags:*/ 0,
  
        udhcp_dump_packet(dhcp_pkt);
 -      result = sendto(fd, &packet, IP_UPD_DHCP_SIZE - padding, /*flags:*/ 0,
-+      result = sendto(fd, &packet, p_len, 0,
++      result = sendto(fd, &packet, p_len, /*flags:*/ 0,
                        (struct sockaddr *) &dest_sll, sizeof(dest_sll));
        msg = "sendto";
   ret_close:
                        (struct sockaddr *) &dest_sll, sizeof(dest_sll));
        msg = "sendto";
   ret_close:
-@@ -246,7 +250,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -246,7 +239,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
                uint32_t dest_nip, int dest_port)
  {
        struct sockaddr_in client;
                uint32_t dest_nip, int dest_port)
  {
        struct sockaddr_in client;
        int fd;
        int result = -1;
        const char *msg;
        int fd;
        int result = -1;
        const char *msg;
-@@ -278,8 +281,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -277,9 +269,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+       }
  
        udhcp_dump_packet(dhcp_pkt);
  
        udhcp_dump_packet(dhcp_pkt);
+-
 -      padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(dhcp_pkt->options);
 -      result = safe_write(fd, dhcp_pkt, DHCP_SIZE - padding);
 +      result = safe_write(fd, dhcp_pkt, udhcp_get_payload_len(dhcp_pkt));
 -      padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(dhcp_pkt->options);
 -      result = safe_write(fd, dhcp_pkt, DHCP_SIZE - padding);
 +      result = safe_write(fd, dhcp_pkt, udhcp_get_payload_len(dhcp_pkt));
index 48efdcf942805209e3e53cb9f823a6ff4c1d7307..9c23920b8848f48a7ea5d07272383aeb893546d5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/shell/ash.c
 +++ b/shell/ash.c
 --- a/shell/ash.c
 +++ b/shell/ash.c
-@@ -12428,8 +12428,17 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12429,8 +12429,17 @@ exportcmd(int argc UNUSED_PARAM, char **
        const char *p;
        char **aptr;
        int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
        const char *p;
        char **aptr;
        int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
@@ -19,7 +19,7 @@
                aptr = argptr;
                name = *aptr;
                if (name) {
                aptr = argptr;
                name = *aptr;
                if (name) {
-@@ -12441,10 +12450,12 @@ exportcmd(int argc UNUSED_PARAM, char **
+@@ -12442,10 +12451,12 @@ exportcmd(int argc UNUSED_PARAM, char **
                                        vp = *findvar(hashvar(name), name);
                                        if (vp) {
                                                vp->flags |= flag;
                                        vp = *findvar(hashvar(name), name);
                                        if (vp) {
                                                vp->flags |= flag;
index 7e48930bbc976cf851bca5697742de07d63f1682..b7dd5d9869159bfdb640286e055bf1fb6cf9a423 100644 (file)
@@ -8,18 +8,6 @@
  IF_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_DROP))
  IF_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_DROP))
  IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP))
  IF_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_DROP))
  IF_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_DROP))
  IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP))
---- a/include/usage.src.h
-+++ b/include/usage.src.h
-@@ -2961,6 +2961,9 @@ INSERT
-        " or\n" \
-        "$ nameif -c /etc/my_mactab_file\n" \
-+#define netmsg_trivial_usage NOUSAGE_STR
-+#define netmsg_full_usage ""
-+
- #define netstat_trivial_usage \
-        "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]"
- #define netstat_full_usage "\n\n" \
 --- a/networking/Config.src
 +++ b/networking/Config.src
 @@ -623,6 +623,12 @@ config FEATURE_NAMEIF_EXTENDED
 --- a/networking/Config.src
 +++ b/networking/Config.src
 @@ -623,6 +623,12 @@ config FEATURE_NAMEIF_EXTENDED
@@ -30,7 +18,7 @@
 +      bool "netmsg"
 +      default n
 +      help
 +      bool "netmsg"
 +      default n
 +      help
-+       simple program for sending udp broadcast messages
++        simple program for sending udp broadcast messages
 +
  config NETSTAT
        bool "netstat"
 +
  config NETSTAT
        bool "netstat"
 +      close(s);
 +      exit(1);
 +}
 +      close(s);
 +      exit(1);
 +}
+--- a/include/usage.src.h
++++ b/include/usage.src.h
+@@ -1,3 +1,4 @@
++
+ /* vi: set sw=8 ts=8: */
+ /*
+  * This file suffers from chronically incorrect tabification
+@@ -2961,6 +2962,9 @@ INSERT
+        " or\n" \
+        "$ nameif -c /etc/my_mactab_file\n" \
++#define netmsg_trivial_usage NOUSAGE_STR
++#define netmsg_full_usage ""
++
+ #define netstat_trivial_usage \
+        "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]"
+ #define netstat_full_usage "\n\n" \
index 24241c1260982eab24eb7ba9d0a84d4ea1bfd595..5faf6faf194e3e6be21299f1ed8099f954ed57d4 100644 (file)
@@ -3,7 +3,7 @@
 
 --- a/networking/httpd.c
 +++ b/networking/httpd.c
 
 --- a/networking/httpd.c
 +++ b/networking/httpd.c
-@@ -1717,21 +1717,32 @@ static int check_user_passwd(const char
+@@ -1717,21 +1717,32 @@ static int check_user_passwd(const char 
  
                if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
                        char *md5_passwd;
  
                if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
                        char *md5_passwd;
index b974b044694908cc9e637d48426c9e854f9d2501..473d1b9ac17acf38f25fc7214f64d2f712657e0c 100644 (file)
@@ -10,7 +10,7 @@
  IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname))
 --- a/include/usage.src.h
 +++ b/include/usage.src.h
  IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname))
 --- a/include/usage.src.h
 +++ b/include/usage.src.h
-@@ -2319,6 +2319,9 @@ INSERT
+@@ -2320,6 +2320,9 @@ INSERT
  #define loadkmap_example_usage \
         "$ loadkmap < /etc/i18n/lang-keymap\n"
  
  #define loadkmap_example_usage \
         "$ loadkmap < /etc/i18n/lang-keymap\n"
  
index 2bd569c296bac61b888594571dccd52870b2f79e..7437d898c28ed79401242ebf2bd568e9cbde8fb8 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/usage.src.h
 +++ b/include/usage.src.h
 --- a/include/usage.src.h
 +++ b/include/usage.src.h
-@@ -1718,7 +1718,8 @@ INSERT
+@@ -1719,7 +1719,8 @@ INSERT
        IF_FEATURE_HTTPD_SETUID(" [-u USER[:GRP]]") \
        IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \
         " [-h HOME]\n" \
        IF_FEATURE_HTTPD_SETUID(" [-u USER[:GRP]]") \
        IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \
         " [-h HOME]\n" \
  #define httpd_full_usage "\n\n" \
         "Listen for incoming HTTP requests\n" \
       "\nOptions:" \
  #define httpd_full_usage "\n\n" \
         "Listen for incoming HTTP requests\n" \
       "\nOptions:" \
-@@ -2321,6 +2322,9 @@ INSERT
+@@ -1737,6 +1738,8 @@ INSERT
+      "\n      -m STRING       MD5 crypt STRING") \
+      "\n      -e STRING       HTML encode STRING" \
+      "\n      -d STRING       URL decode STRING" \
++     "\n      -R PATH         Redirect target path" \
++     "\n      -H HOST         Redirect target host" \
  
  
- #define lock_trivial_usage NOUSAGE_STR
- #define lock_full_usage ""
-+
-+#define lock_trivial_usage NOUSAGE_STR
-+#define lock_full_usage ""
- #define logger_trivial_usage \
-        "[OPTIONS] [MESSAGE]"
+ #define hwclock_trivial_usage \
+       IF_FEATURE_HWCLOCK_LONG_OPTIONS( \
 --- a/networking/httpd.c
 +++ b/networking/httpd.c
 @@ -250,6 +250,8 @@ struct globals {
 --- a/networking/httpd.c
 +++ b/networking/httpd.c
 @@ -250,6 +250,8 @@ struct globals {
index ef170a20c8607f49b49fbfc3c596aeab0bc99e94..8f52d985f7d84154714cc5d3fec62779efc3e8c6 100644 (file)
        string "Default directory containing modules"
        default "/lib/modules"
 -      depends on DEPMOD || MODPROBE || MODPROBE_SMALL || MODINFO
        string "Default directory containing modules"
        default "/lib/modules"
 -      depends on DEPMOD || MODPROBE || MODPROBE_SMALL || MODINFO
-+      depends on DEPMOD || MODPROBE || MODPROBE_SMALL || MODINFO || INSMOD
++      depends on DEPMOD || INSMOD || MODPROBE || MODPROBE_SMALL || MODINFO
        help
          Directory that contains kernel modules.
          Defaults to "/lib/modules"
        help
          Directory that contains kernel modules.
          Defaults to "/lib/modules"
index 36dd080f978350a29e084088675ff49ca9c21f0f..07f28c9de163856cfc1769ad9d1d470137d85c70 100644 (file)
@@ -1,6 +1,11 @@
 --- a/editors/awk.c
 +++ b/editors/awk.c
 --- a/editors/awk.c
 +++ b/editors/awk.c
-@@ -70,9 +70,14 @@ typedef struct chain_s {
+@@ -1,3 +1,4 @@
++
+ /* vi: set sw=4 ts=4: */
+ /*
+  * awk implementation for busybox
+@@ -70,9 +71,14 @@ typedef struct chain_s {
  } chain;
  
  /* Function */
  } chain;
  
  /* Function */
@@ -15,7 +20,7 @@
  } func;
  
  /* I/O stream */
  } func;
  
  /* I/O stream */
-@@ -1453,7 +1458,8 @@ static void parse_program(char *p)
+@@ -1453,7 +1459,8 @@ static void parse_program(char *p)
                        next_token(TC_FUNCTION);
                        g_pos++;
                        f = newfunc(t_string);
                        next_token(TC_FUNCTION);
                        g_pos++;
                        f = newfunc(t_string);
@@ -25,7 +30,7 @@
                        f->nargs = 0;
                        while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) {
                                v = findvar(ahash, t_string);
                        f->nargs = 0;
                        while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) {
                                v = findvar(ahash, t_string);
-@@ -1462,7 +1468,7 @@ static void parse_program(char *p)
+@@ -1462,7 +1469,7 @@ static void parse_program(char *p)
                                if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM)
                                        break;
                        }
                                if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM)
                                        break;
                        }
@@ -34,7 +39,7 @@
                        chain_group();
                        clear_array(ahash);
  
                        chain_group();
                        clear_array(ahash);
  
-@@ -2547,7 +2553,8 @@ static var *evaluate(node *op, var *res)
+@@ -2547,7 +2554,8 @@ static var *evaluate(node *op, var *res)
                        var *vbeg, *v;
                        const char *sv_progname;
  
                        var *vbeg, *v;
                        const char *sv_progname;
  
@@ -44,7 +49,7 @@
                                syntax_error(EMSG_UNDEF_FUNC);
  
                        vbeg = v = nvalloc(op->r.f->nargs + 1);
                                syntax_error(EMSG_UNDEF_FUNC);
  
                        vbeg = v = nvalloc(op->r.f->nargs + 1);
-@@ -2564,7 +2571,10 @@ static var *evaluate(node *op, var *res)
+@@ -2564,7 +2572,10 @@ static var *evaluate(node *op, var *res)
                        fnargs = vbeg;
                        sv_progname = g_progname;
  
                        fnargs = vbeg;
                        sv_progname = g_progname;
  
@@ -56,7 +61,7 @@
  
                        g_progname = sv_progname;
                        nvfree(fnargs);
  
                        g_progname = sv_progname;
                        nvfree(fnargs);
-@@ -2942,6 +2952,143 @@ static rstream *next_input_file(void)
+@@ -2942,6 +2953,143 @@ static rstream *next_input_file(void)
  #undef files_happen
  }
  
  #undef files_happen
  }
  
  int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  int awk_main(int argc, char **argv)
  {
  int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  int awk_main(int argc, char **argv)
  {
-@@ -3007,6 +3154,9 @@ int awk_main(int argc, char **argv)
+@@ -3007,6 +3155,9 @@ int awk_main(int argc, char **argv)
                        *s1 = '=';
                }
        }
                        *s1 = '=';
                }
        }
index 949ac9fd479e06e49d216cf1dd64394ebc7e96ff..94cd3ded04ddf4d94713cb86d82b9ebcc43bcfbc 100644 (file)
@@ -1,34 +1,26 @@
 --- a/sysklogd/syslogd.c
 +++ b/sysklogd/syslogd.c
 --- a/sysklogd/syslogd.c
 +++ b/sysklogd/syslogd.c
-@@ -98,6 +98,8 @@ struct globals {
-       GLOBALS
- #if ENABLE_FEATURE_REMOTE_LOG
-+      len_and_sockaddr *remoteAddr;
-+      int remoteFD;
-       llist_t *remoteHosts;
- #endif
- #if ENABLE_FEATURE_IPC_SYSLOG
-@@ -554,6 +556,7 @@ static void do_syslogd(void) NORETURN;
- static void do_syslogd(void)
+@@ -555,6 +555,7 @@ static void do_syslogd(void)
  {
        int sock_fd;
  {
        int sock_fd;
-+      int send_err = 0;
  #if ENABLE_FEATURE_REMOTE_LOG
  #if ENABLE_FEATURE_REMOTE_LOG
++      int send_err = 0;
        llist_t *item;
  #endif
        llist_t *item;
  #endif
-@@ -637,10 +640,23 @@ static void do_syslogd(void)
+ #if ENABLE_FEATURE_SYSLOGD_DUP
+@@ -636,11 +637,23 @@ static void do_syslogd(void)
+                               if (rh->remoteFD == -1)
                                        continue;
                        }
                                        continue;
                        }
-                       /* Send message to remote logger, ignore possible error */
+-                      /* Send message to remote logger, ignore possible error */
 -                      /* TODO: on some errors, close and set G.remoteFD to -1
 -                       * so that DNS resolution and connect is retried? */
 -                      sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
 -                              &(rh->remoteAddr->u.sa), rh->remoteAddr->len);
 -                      /* TODO: on some errors, close and set G.remoteFD to -1
 -                       * so that DNS resolution and connect is retried? */
 -                      sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
 -                              &(rh->remoteAddr->u.sa), rh->remoteAddr->len);
++                      /* Send message to remote logger */
 +                      if (sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
 +                      if (sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
-+                              &G.remoteAddr->u.sa, G.remoteAddr->len)  == -1 ) {
++                              &(rh->remoteAddr->u.sa), rh->remoteAddr->len) == -1)
 +                              send_err = errno;
 +                              send_err = errno;
-+                      }
 +
 +                      /* On some errors, close and set G.remoteFD to -1
 +                       * so that DNS resolution and connect is retried */
 +
 +                      /* On some errors, close and set G.remoteFD to -1
 +                       * so that DNS resolution and connect is retried */
@@ -38,8 +30,8 @@
 +                              case EISCONN:
 +                              case ENOTCONN:
 +                              case EPIPE:
 +                              case EISCONN:
 +                              case ENOTCONN:
 +                              case EPIPE:
-+                                      close(G.remoteFD);
-+                                      G.remoteFD = -1;
++                                      close(rh->remoteFD);
++                                      rh->remoteFD = -1;
 +                                      break;
 +                      }
                }
 +                                      break;
 +                      }
                }
index 48aa57c04f931d94a595a016b6991f827965e929..dd2dee66f6323de61048b4b87cd9d30680104a0a 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Nicolas Thill <nico@openwrt.org>
                /* I guess *n < 0 might indicate error. Anyway,
                 * malloc'ing -1 bytes won't be good, so: */
                //if (*n < 0)
                /* I guess *n < 0 might indicate error. Anyway,
                 * malloc'ing -1 bytes won't be good, so: */
                //if (*n < 0)
-@@ -154,6 +160,7 @@ int id_main(int argc UNUSED_PARAM, char
+@@ -154,6 +160,7 @@ int id_main(int argc UNUSED_PARAM, char 
                        if (egid != rgid)
                                status |= print_group(egid, " ");
                }
                        if (egid != rgid)
                                status |= print_group(egid, " ");
                }
@@ -39,7 +39,7 @@ Signed-off-by: Nicolas Thill <nico@openwrt.org>
                /* We are supplying largish buffer, trying
                 * to not run get_groups() twice. That might be slow
                 * ("user database in remote SQL server" case) */
                /* We are supplying largish buffer, trying
                 * to not run get_groups() twice. That might be slow
                 * ("user database in remote SQL server" case) */
-@@ -181,6 +188,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)
                        free(groups);
                }
                if (ENABLE_FEATURE_CLEAN_UP)
                        free(groups);
diff --git a/package/busybox/patches/920-mktemp.patch b/package/busybox/patches/920-mktemp.patch
deleted file mode 100644 (file)
index a7727ca..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/debianutils/mktemp.c
-+++ b/debianutils/mktemp.c
-@@ -50,7 +50,7 @@ int mktemp_main(int argc UNUSED_PARAM, c
-       opts = getopt32(argv, "dqtp:", &path);
-       chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
--      if (chp[0] != '/' || (opts & 8))
-+      if (!strchr(chp, '/') || (opts & 8))
-               chp = concat_path_file(path, chp);
-       if (opts & 1) { /* -d */
diff --git a/package/busybox/patches/921-sed.patch b/package/busybox/patches/921-sed.patch
deleted file mode 100644 (file)
index 7693d62..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
---- a/editors/sed.c
-+++ b/editors/sed.c
-@@ -61,6 +61,10 @@
- #include "libbb.h"
- #include "xregex.h"
-+enum {
-+      OPT_in_place = 1 << 0,
-+};
-+
- /* Each sed command turns into one of these structures. */
- typedef struct sed_cmd_s {
-       /* Ordered by alignment requirements: currently 36 bytes on x86 */
-@@ -938,8 +942,11 @@ static void process_files(void)
-               if (matched) {
-                       /* once matched, "n,xxx" range is dead, disabling it */
--                      if (sed_cmd->beg_line > 0)
-+                      if (sed_cmd->beg_line > 0
-+                       && !(option_mask32 & OPT_in_place) /* but not for -i */
-+                      ) {
-                               sed_cmd->beg_line = -2;
-+                      }
-                       sed_cmd->in_match = !(
-                               /* has the ending line come, or is this a single address command? */
-                               (sed_cmd->end_line ?
-@@ -1270,9 +1277,6 @@ static void add_cmd_block(char *cmdstr)
- int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
- int sed_main(int argc UNUSED_PARAM, char **argv)
- {
--      enum {
--              OPT_in_place = 1 << 0,
--      };
-       unsigned opt;
-       llist_t *opt_e, *opt_f;
-       int status = EXIT_SUCCESS;
-@@ -1292,6 +1296,7 @@ int sed_main(int argc UNUSED_PARAM, char
-       opt_e = opt_f = NULL;
-       opt_complementary = "e::f::" /* can occur multiple times */
-                           "nn"; /* count -n */
-+      /* -i must be first, to match OPT_in_place definition */
-       opt = getopt32(argv, "irne:f:", &opt_e, &opt_f,
-                           &G.be_quiet); /* counter for -n */
-       //argc -= optind;
---- a/testsuite/sed.tests
-+++ b/testsuite/sed.tests
-@@ -270,11 +270,16 @@ testing "sed a cmd ended by double backs
-       | two \\
- '
--# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
-+# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
- testing "sed with N skipping lines past ranges on next cmds" \
-       "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
-       "4\n4\n" "" "1\n2\n3\n4\n"
-+testing "sed -i with address modifies all files, not only first" \
-+      "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
-+      "bar\nbar\n" "foo\n" ""
-+
-+
- # testing "description" "arguments" "result" "infile" "stdin"
- exit $FAILCOUNT
diff --git a/package/busybox/patches/922-shell.patch b/package/busybox/patches/922-shell.patch
deleted file mode 100644 (file)
index 4f0058e..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -4515,6 +4515,7 @@ clear_traps(void)
-                       INT_ON;
-               }
-       }
-+      may_have_traps = 0;
- }
- /* Lives far away from here, needed for forkchild */
---- /dev/null
-+++ b/shell/ash_test/ash-signals/signal7.right
-@@ -0,0 +1 @@
-+Bug detected: 0
---- /dev/null
-+++ b/shell/ash_test/ash-signals/signal7.tests
-@@ -0,0 +1,18 @@
-+bug() {
-+      trap : exit
-+      # Bug was causing sh to be run in subshell,
-+      # as if this line is replaced with (sh -c ...; exit $?) &
-+      # here:
-+      sh -c 'echo REAL_CHILD=$$' &
-+      echo PARENTS_IDEA_OF_CHILD=$!
-+      wait  # make sure bkgd shell completes
-+}
-+
-+bug | {
-+while read varval; do
-+      eval $varval
-+done
-+test x"$REAL_CHILD" != x"" \
-+&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
-+echo "Bug detected: $?"
-+}
---- a/shell/hush.c
-+++ b/shell/hush.c
-@@ -3901,8 +3901,6 @@ static void insert_bg_job(struct pipe *p
-       if (G_interactive_fd)
-               printf("[%d] %d %s\n", job->jobid, job->cmds[0].pid, job->cmdtext);
--      /* Last command's pid goes to $! */
--      G.last_bg_pid = job->cmds[job->num_cmds - 1].pid;
-       G.last_jobid = job->jobid;
- }
-@@ -4825,6 +4823,8 @@ static int run_list(struct pipe *pi)
-                               if (G.run_list_level == 1)
-                                       insert_bg_job(pi);
- #endif
-+                              /* Last command's pid goes to $! */
-+                              G.last_bg_pid = pi->cmds[pi->num_cmds - 1].pid;
-                               G.last_exitcode = rcode = EXIT_SUCCESS;
-                               debug_printf_exec(": cmd&: exitcode EXIT_SUCCESS\n");
-                       } else {
---- /dev/null
-+++ b/shell/hush_test/hush-trap/signal7.right
-@@ -0,0 +1 @@
-+Bug detected: 0
---- /dev/null
-+++ b/shell/hush_test/hush-trap/signal7.tests
-@@ -0,0 +1,18 @@
-+bug() {
-+      trap : exit
-+      # Bug was causing sh to be run in subshell,
-+      # as if this line is replaced with (sh -c ...; exit $?) &
-+      # here:
-+      sh -c 'echo REAL_CHILD=$$' &
-+      echo PARENTS_IDEA_OF_CHILD=$!
-+      wait  # make sure bkgd shell completes
-+}
-+
-+bug | {
-+while read varval; do
-+      eval $varval
-+done
-+test x"$REAL_CHILD" != x"" \
-+&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
-+echo "Bug detected: $?"
-+}
---- a/shell/shell_common.c
-+++ b/shell/shell_common.c
-@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv)
-                                               val <<= l->factor_shift;
-                                       }
- //bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val);
-+                                      /* from man bash: "If neither -H nor -S
-+                                       * is specified, both the soft and hard
-+                                       * limits are set. */
-+                                      if (!opts)
-+                                              opts = OPT_hard + OPT_soft;
-                                       if (opts & OPT_hard)
-                                               limit.rlim_max = val;
--                                      if ((opts & OPT_soft) || opts == 0)
-+                                      if (opts & OPT_soft)
-                                               limit.rlim_cur = val;
- //bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max);
-                                       if (setrlimit(l->cmd, &limit) < 0) {