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 f7ee7b3..5dd3d1b 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
-       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
@@ -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.
 
-config BUSYBOX_CONFIG_FEATURE_ASSUME_UNICODE
+config BUSYBOX_CONFIG_UNICODE_SUPPORT
        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.
 
+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
-       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.
 
+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
@@ -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.
 
+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
index 403a631..1424c86 100644 (file)
@@ -5,6 +5,12 @@
 
 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
@@ -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.
 
+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
@@ -207,8 +220,6 @@ config BUSYBOX_CONFIG_TAR
          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
@@ -220,7 +231,7 @@ config BUSYBOX_CONFIG_FEATURE_TAR_CREATE
 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).
@@ -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
-       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
@@ -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
-       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
@@ -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
-       depends on BUSYBOX_CONFIG_TAR
+       depends on BUSYBOX_CONFIG_TAR || BUSYBOX_CONFIG_DPKG
        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
 
+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
@@ -284,7 +304,13 @@ config BUSYBOX_CONFIG_FEATURE_TAR_NOPRESERVE_TIME
          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"
@@ -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.
 
+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
index d1342ff..710bf97 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)
 
+config BUSYBOX_CONFIG_FGCONSOLE
+       bool "fgconsole"
+       default n
+       help
+         This program prints active (foreground) console number.
+
 config BUSYBOX_CONFIG_CLEAR
        bool "clear"
        default y
@@ -135,4 +141,21 @@ config BUSYBOX_CONFIG_SHOWKEY
        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
index 759d98d..e72ea6c 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.
-
-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_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"
@@ -100,37 +177,6 @@ config BUSYBOX_CONFIG_CUT
          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
@@ -183,6 +229,10 @@ config BUSYBOX_CONFIG_FEATURE_DF_FANCY
        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
@@ -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.
 
+           -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
@@ -696,21 +750,6 @@ config BUSYBOX_CONFIG_FEATURE_TEE_USE_BLOCK_IO
        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
@@ -718,32 +757,6 @@ config BUSYBOX_CONFIG_TOUCH
          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
@@ -817,7 +830,7 @@ config BUSYBOX_CONFIG_FEATURE_WC_LARGE
 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.
 
index e61c661..a9beb9b 100644 (file)
@@ -81,4 +81,3 @@ config BUSYBOX_CONFIG_WHICH
          print out their pathnames.
 
 endmenu
-
index e0e2c1e..08a1452 100644 (file)
@@ -13,7 +13,7 @@ config BUSYBOX_CONFIG_CHATTR
 
 ### 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).
@@ -36,21 +36,21 @@ config BUSYBOX_CONFIG_LSATTR
 
 ### 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.
 
-### 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"
-###    default n
+###    default y
 ###    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"
-###    default n
+###    default y
 ###    depends on TUNE2FS
 ###    help
 ###      findfs will search the disks in the system looking for a filesystem
index 6175df7..eeadfab 100644 (file)
@@ -168,6 +168,18 @@ config BUSYBOX_CONFIG_FEATURE_VI_WIN_RESIZE
        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
index 9498895..bdf181c 100644 (file)
@@ -5,6 +5,45 @@
 
 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
@@ -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
-         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
index 4498e4e..0a7d253 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.
 
-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
index 9d4a370..d3cf407 100644 (file)
@@ -5,6 +5,27 @@
 
 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
@@ -317,14 +338,14 @@ config BUSYBOX_CONFIG_INOTIFYD
 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
-       default BUSYBOX_CONFIG_FEATURE_LAST_SMALL
+       default BUSYBOX_CONFIG_FEATURE_LAST_FANCY
 
 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.
 
+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
index db515b5..ad5401f 100644 (file)
@@ -5,6 +5,12 @@
 
 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
@@ -226,7 +232,7 @@ config BUSYBOX_CONFIG_FEATURE_MODUTILS_SYMBOLS
 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"
@@ -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"
-       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"
index 99a8edd..481567c 100644 (file)
@@ -5,6 +5,39 @@
 
 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
@@ -122,8 +155,8 @@ config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
        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.
@@ -404,7 +437,7 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV6
 ### 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
@@ -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
 
-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_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
@@ -735,7 +745,7 @@ config BUSYBOX_CONFIG_SLATTACH
 
 #config TC
 #      bool "tc"
-#      default n
+#      default y
 #      help
 #        show / manipulate traffic control settings
 #
@@ -743,6 +753,13 @@ config BUSYBOX_CONFIG_SLATTACH
 #      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
@@ -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"
 
+comment "Common options for tftp/tftpd"
+       depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
+
 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
@@ -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.
 
+         Note: this option does _not_ make tftpd capable of download
+         (the usual operation people need from it)!
+
 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
@@ -935,6 +958,20 @@ config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP
        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
@@ -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...)
 
+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
@@ -992,32 +1036,4 @@ config BUSYBOX_CONFIG_ZCIP
          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
index 2597f72..e982787 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
-         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"
index 2bac038..3a95439 100644 (file)
@@ -5,6 +5,13 @@
 
 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
index 624d499..c1ee813 100644 (file)
@@ -61,22 +61,26 @@ config BUSYBOX_CONFIG_CHPST
 
 config BUSYBOX_CONFIG_SETUIDGID
        bool "setuidgid"
+       default n
        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"
+       default n
        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
 
index dbd9606..50f324a 100644 (file)
@@ -120,4 +120,3 @@ config BUSYBOX_CONFIG_SESTATUS
          Displays the status of SELinux.
 
 endmenu
-
index 5d492e2..d652dd3 100644 (file)
@@ -5,34 +5,7 @@
 
 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"
@@ -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.
 
+
+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
@@ -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
-       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
-       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
@@ -325,7 +353,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
 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
@@ -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.
-         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
 
+         Giving controlling tty to shell running with PID 1:
+
+         $ exec cttyhack sh
+
+         Starting an interactive shell from boot shell script:
+
+         setsid cttyhack sh
+
 endmenu
index b9e0db2..ea134b5 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.
 
+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
@@ -115,4 +125,3 @@ config BUSYBOX_CONFIG_LOGGER
            problems that occur within programs and scripts.
 
 endmenu
-
index a4fbc0c..3745528 100644 (file)
@@ -5,6 +5,12 @@
 
 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
@@ -191,6 +197,12 @@ config BUSYBOX_CONFIG_FINDFS
          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
@@ -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.
 
-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
@@ -244,6 +253,7 @@ config BUSYBOX_CONFIG_MKFS_REISER
        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"
@@ -289,7 +299,7 @@ config BUSYBOX_CONFIG_FEATURE_HEXDUMP_REVERSE
 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.
 
@@ -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.
 
-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
@@ -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
-       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
@@ -783,9 +578,9 @@ config BUSYBOX_CONFIG_RDATE
          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
@@ -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".)
 
+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
@@ -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
-         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.
 
+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
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 b810752..ef9e7f4 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,
-@@ -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;
        int fd;
        int result = -1;
        const char *msg;
 +      int p_len = udhcp_get_payload_len(dhcp_pkt);
-+
        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(&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 */
++      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);
-@@ -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;
  
        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:
-@@ -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;
        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);
+-
 -      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 48efdcf..9c23920 100644 (file)
@@ -1,6 +1,6 @@
 --- 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;
@@ -19,7 +19,7 @@
                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;
index 7e48930..b7dd5d9 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))
---- 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
@@ -30,7 +18,7 @@
 +      bool "netmsg"
 +      default n
 +      help
-+       simple program for sending udp broadcast messages
++        simple program for sending udp broadcast messages
 +
  config NETSTAT
        bool "netstat"
 +      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 24241c1..5faf6fa 100644 (file)
@@ -3,7 +3,7 @@
 
 --- 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;
index b974b04..473d1b9 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
-@@ -2319,6 +2319,9 @@ INSERT
+@@ -2320,6 +2320,9 @@ INSERT
  #define loadkmap_example_usage \
         "$ loadkmap < /etc/i18n/lang-keymap\n"
  
index 2bd569c..7437d89 100644 (file)
@@ -1,6 +1,6 @@
 --- 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" \
  #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 {
index ef170a2..8f52d98 100644 (file)
        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"
index 36dd080..07f28c9 100644 (file)
@@ -1,6 +1,11 @@
 --- 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 */
@@ -15,7 +20,7 @@
  } 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);
@@ -25,7 +30,7 @@
                        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;
                        }
@@ -34,7 +39,7 @@
                        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;
  
@@ -44,7 +49,7 @@
                                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;
  
@@ -56,7 +61,7 @@
  
                        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
  }
  
  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 = '=';
                }
        }
index 949ac9f..94cd3de 100644 (file)
@@ -1,34 +1,26 @@
 --- 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 send_err = 0;
  #if ENABLE_FEATURE_REMOTE_LOG
++      int send_err = 0;
        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;
                        }
-                       /* 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);
++                      /* Send message to remote logger */
 +                      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;
-+                      }
 +
 +                      /* 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:
-+                                      close(G.remoteFD);
-+                                      G.remoteFD = -1;
++                                      close(rh->remoteFD);
++                                      rh->remoteFD = -1;
 +                                      break;
 +                      }
                }
index 48aa57c..dd2dee6 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)
-@@ -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, " ");
                }
@@ -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) */
-@@ -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);
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) {