busybox: update to version 1.23.2
authorFelix Fietkau <nbd@openwrt.org>
Sat, 4 Apr 2015 17:52:02 +0000 (17:52 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 4 Apr 2015 17:52:02 +0000 (17:52 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 45272

28 files changed:
package/utils/busybox/Config-defaults.in
package/utils/busybox/Makefile
package/utils/busybox/config/Config.in
package/utils/busybox/config/coreutils/Config.in
package/utils/busybox/config/editors/Config.in
package/utils/busybox/config/findutils/Config.in
package/utils/busybox/config/loginutils/Config.in
package/utils/busybox/config/miscutils/Config.in
package/utils/busybox/config/networking/Config.in
package/utils/busybox/config/networking/udhcp/Config.in
package/utils/busybox/config/shell/Config.in
package/utils/busybox/config/util-linux/Config.in
package/utils/busybox/convert_menuconfig.pl
package/utils/busybox/patches/001-resource_h_include.patch
package/utils/busybox/patches/002-upstream_ash_fix.patch [deleted file]
package/utils/busybox/patches/003-upstream_date_fix.patch [deleted file]
package/utils/busybox/patches/004-upstream_iplink_fix.patch [deleted file]
package/utils/busybox/patches/005-upstream_nc_fix.patch [deleted file]
package/utils/busybox/patches/006-upstream_lzop_fix.patch [deleted file]
package/utils/busybox/patches/007-upstream_zcat_no_ext_fix.patch [deleted file]
package/utils/busybox/patches/102-freebsd-compat.patch [deleted file]
package/utils/busybox/patches/200-udhcpc_reduce_msgs.patch
package/utils/busybox/patches/201-udhcpc_changed_ifindex.patch
package/utils/busybox/patches/203-udhcpc_renew_no_deconfig.patch
package/utils/busybox/patches/204-udhcpc_src_ip_rebind.patch
package/utils/busybox/patches/210-add_netmsg_util.patch
package/utils/busybox/patches/220-add_lock_util.patch
package/utils/busybox/patches/230-ntpd_delayed_resolve.patch

index 5797243a04b1bb122428d75fbd7cf59d39b2c2fb..380ede73002aadf85760ff65a091c6b7a57b7d3a 100644 (file)
@@ -73,6 +73,12 @@ config BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
 config BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
        bool
        default n
 config BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
        bool
        default n
+config BUSYBOX_DEFAULT_PAM
+       bool
+       default n
+config BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
+       bool
+       default n
 config BUSYBOX_DEFAULT_LONG_OPTS
        bool
        default y
 config BUSYBOX_DEFAULT_LONG_OPTS
        bool
        default y
@@ -160,6 +166,9 @@ config BUSYBOX_DEFAULT_DEBUG
 config BUSYBOX_DEFAULT_DEBUG_PESSIMIZE
        bool
        default n
 config BUSYBOX_DEFAULT_DEBUG_PESSIMIZE
        bool
        default n
+config BUSYBOX_DEFAULT_UNIT_TEST
+       bool
+       default n
 config BUSYBOX_DEFAULT_WERROR
        bool
        default n
 config BUSYBOX_DEFAULT_WERROR
        bool
        default n
@@ -430,6 +439,9 @@ config BUSYBOX_DEFAULT_ID
 config BUSYBOX_DEFAULT_GROUPS
        bool
        default n
 config BUSYBOX_DEFAULT_GROUPS
        bool
        default n
+config BUSYBOX_DEFAULT_SHUF
+       bool
+       default n
 config BUSYBOX_DEFAULT_TEST
        bool
        default y
 config BUSYBOX_DEFAULT_TEST
        bool
        default y
@@ -454,6 +466,9 @@ config BUSYBOX_DEFAULT_FEATURE_TR_CLASSES
 config BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_TR_EQUIV
        bool
        default n
+config BUSYBOX_DEFAULT_UNLINK
+       bool
+       default n
 config BUSYBOX_DEFAULT_BASE64
        bool
        default n
 config BUSYBOX_DEFAULT_BASE64
        bool
        default n
@@ -772,6 +787,9 @@ config BUSYBOX_DEFAULT_WHOAMI
 config BUSYBOX_DEFAULT_YES
        bool
        default y
 config BUSYBOX_DEFAULT_YES
        bool
        default y
+config BUSYBOX_DEFAULT_FEATURE_VERBOSE
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_PRESERVE_HARDLINKS
        bool
        default y
@@ -949,6 +967,15 @@ config BUSYBOX_DEFAULT_FEATURE_VI_WIN_RESIZE
 config BUSYBOX_DEFAULT_FEATURE_VI_ASK_TERMINAL
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_VI_ASK_TERMINAL
        bool
        default y
+config BUSYBOX_DEFAULT_FEATURE_VI_UNDO
+       bool
+       default n
+config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE
+       bool
+       default n
+config BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE_MAX
+       int
+       default 0
 config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_ALLOW_EXEC
        bool
        default y
@@ -985,6 +1012,9 @@ config BUSYBOX_DEFAULT_FEATURE_FIND_INUM
 config BUSYBOX_DEFAULT_FEATURE_FIND_EXEC
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_FIND_EXEC
        bool
        default y
+config BUSYBOX_DEFAULT_FEATURE_FIND_EXEC_PLUS
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_FIND_USER
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_FIND_USER
        bool
        default y
@@ -1048,6 +1078,9 @@ config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_TERMOPT
 config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_ZERO_TERM
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_ZERO_TERM
        bool
        default y
+config BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_REPL_STR
+       bool
+       default n
 config BUSYBOX_DEFAULT_BOOTCHARTD
        bool
        default n
 config BUSYBOX_DEFAULT_BOOTCHARTD
        bool
        default n
@@ -1132,6 +1165,9 @@ config BUSYBOX_DEFAULT_FEATURE_ADDUSER_LONG_OPTIONS
 config BUSYBOX_DEFAULT_FEATURE_CHECK_NAMES
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_CHECK_NAMES
        bool
        default n
+config BUSYBOX_DEFAULT_LAST_ID
+       int
+       default 0
 config BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
        int
        default 0
 config BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
        int
        default 0
@@ -1165,9 +1201,6 @@ config BUSYBOX_DEFAULT_LOGIN
 config BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD
        bool
        default n
 config BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD
        bool
        default n
-config BUSYBOX_DEFAULT_PAM
-       bool
-       default n
 config BUSYBOX_DEFAULT_LOGIN_SCRIPTS
        bool
        default n
 config BUSYBOX_DEFAULT_LOGIN_SCRIPTS
        bool
        default n
@@ -1291,6 +1324,9 @@ config BUSYBOX_DEFAULT_DEFAULT_DEPMOD_FILE
 config BUSYBOX_DEFAULT_BLOCKDEV
        bool
        default n
 config BUSYBOX_DEFAULT_BLOCKDEV
        bool
        default n
+config BUSYBOX_DEFAULT_FATATTR
+       bool
+       default n
 config BUSYBOX_DEFAULT_FSTRIM
        bool
        default n
 config BUSYBOX_DEFAULT_FSTRIM
        bool
        default n
@@ -1504,6 +1540,9 @@ config BUSYBOX_DEFAULT_SETARCH
 config BUSYBOX_DEFAULT_SWAPONOFF
        bool
        default n
 config BUSYBOX_DEFAULT_SWAPONOFF
        bool
        default n
+config BUSYBOX_DEFAULT_FEATURE_SWAPON_DISCARD
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
        bool
        default n
@@ -1594,6 +1633,18 @@ config BUSYBOX_DEFAULT_FEATURE_VOLUMEID_XFS
 config BUSYBOX_DEFAULT_CONSPY
        bool
        default n
 config BUSYBOX_DEFAULT_CONSPY
        bool
        default n
+config BUSYBOX_DEFAULT_CROND
+       bool
+       default y
+config BUSYBOX_DEFAULT_FEATURE_CROND_D
+       bool
+       default n
+config BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
+       bool
+       default n
+config BUSYBOX_DEFAULT_FEATURE_CROND_DIR
+       string
+       default "/etc"
 config BUSYBOX_DEFAULT_LESS
        bool
        default y
 config BUSYBOX_DEFAULT_LESS
        bool
        default y
@@ -1636,6 +1687,12 @@ config BUSYBOX_DEFAULT_RFKILL
 config BUSYBOX_DEFAULT_SETSERIAL
        bool
        default n
 config BUSYBOX_DEFAULT_SETSERIAL
        bool
        default n
+config BUSYBOX_DEFAULT_TASKSET
+       bool
+       default n
+config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
+       bool
+       default n
 config BUSYBOX_DEFAULT_UBIATTACH
        bool
        default n
 config BUSYBOX_DEFAULT_UBIATTACH
        bool
        default n
@@ -1702,18 +1759,6 @@ config BUSYBOX_DEFAULT_FEATURE_CHAT_CLR_ABORT
 config BUSYBOX_DEFAULT_CHRT
        bool
        default n
 config BUSYBOX_DEFAULT_CHRT
        bool
        default n
-config BUSYBOX_DEFAULT_CROND
-       bool
-       default y
-config BUSYBOX_DEFAULT_FEATURE_CROND_D
-       bool
-       default n
-config BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
-       bool
-       default n
-config BUSYBOX_DEFAULT_FEATURE_CROND_DIR
-       string
-       default "/etc"
 config BUSYBOX_DEFAULT_CRONTAB
        bool
        default y
 config BUSYBOX_DEFAULT_CRONTAB
        bool
        default y
@@ -1840,12 +1885,6 @@ config BUSYBOX_DEFAULT_SETSID
 config BUSYBOX_DEFAULT_STRINGS
        bool
        default y
 config BUSYBOX_DEFAULT_STRINGS
        bool
        default y
-config BUSYBOX_DEFAULT_TASKSET
-       bool
-       default n
-config BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
-       bool
-       default n
 config BUSYBOX_DEFAULT_TIME
        bool
        default y
 config BUSYBOX_DEFAULT_TIME
        bool
        default y
@@ -1939,6 +1978,9 @@ config BUSYBOX_DEFAULT_FEATURE_FTP_WRITE
 config BUSYBOX_DEFAULT_FEATURE_FTPD_ACCEPT_BROKEN_LIST
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_FTPD_ACCEPT_BROKEN_LIST
        bool
        default n
+config BUSYBOX_DEFAULT_FEATURE_FTP_AUTHENTICATION
+       bool
+       default n
 config BUSYBOX_DEFAULT_FTPGET
        bool
        default n
 config BUSYBOX_DEFAULT_FTPGET
        bool
        default n
@@ -1957,9 +1999,6 @@ config BUSYBOX_DEFAULT_HTTPD
 config BUSYBOX_DEFAULT_FEATURE_HTTPD_RANGES
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_HTTPD_RANGES
        bool
        default n
-config BUSYBOX_DEFAULT_FEATURE_HTTPD_USE_SENDFILE
-       bool
-       default n
 config BUSYBOX_DEFAULT_FEATURE_HTTPD_SETUID
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_HTTPD_SETUID
        bool
        default n
@@ -2131,6 +2170,9 @@ config BUSYBOX_DEFAULT_NTPD
 config BUSYBOX_DEFAULT_FEATURE_NTPD_SERVER
        bool
        default y
 config BUSYBOX_DEFAULT_FEATURE_NTPD_SERVER
        bool
        default y
+config BUSYBOX_DEFAULT_FEATURE_NTPD_CONF
+       bool
+       default n
 config BUSYBOX_DEFAULT_PSCAN
        bool
        default n
 config BUSYBOX_DEFAULT_PSCAN
        bool
        default n
@@ -2230,6 +2272,9 @@ config BUSYBOX_DEFAULT_UDHCPC
 config BUSYBOX_DEFAULT_FEATURE_UDHCPC_ARPING
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_UDHCPC_ARPING
        bool
        default n
+config BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
+       bool
+       default n
 config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
        bool
        default n
 config BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
        bool
        default n
@@ -2524,6 +2569,9 @@ config BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
 config BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
        bool
        default y
 config BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
        bool
        default y
+config BUSYBOX_DEFAULT_ASH_HELP
+       bool
+       default n
 config BUSYBOX_DEFAULT_ASH_CMDCMD
        bool
        default y
 config BUSYBOX_DEFAULT_ASH_CMDCMD
        bool
        default y
index 7c9bca530ea4ab2f7430a7c9a93954b0d22b8b7d..9571d48bec25713ba345024e657ad92781018464 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
-PKG_VERSION:=1.22.1
-PKG_RELEASE:=6
+PKG_VERSION:=1.23.2
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.busybox.net/downloads \
                http://distfiles.gentoo.org/distfiles/
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.busybox.net/downloads \
                http://distfiles.gentoo.org/distfiles/
-PKG_MD5SUM:=337d1a15ab1cb1d4ed423168b1eb7d7e
+PKG_MD5SUM:=7925683d7dd105aabe9b6b618d48cc73
 
 PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
 
 PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
index 71ba45b9b617a2f76caa5277306389036480159e..6a205f6c0c9dd453d255cd6176d2d19c5e4d214a 100644 (file)
@@ -256,6 +256,26 @@ config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
          at shell prompt will list file named 0xff (single char name
          with char value 255), not file named '?'.
 
          at shell prompt will list file named 0xff (single char name
          with char value 255), not file named '?'.
 
+config BUSYBOX_CONFIG_PAM
+       bool "Support for PAM (Pluggable Authentication Modules)"
+       default BUSYBOX_DEFAULT_PAM
+       help
+         Use PAM in some busybox applets (currently login and httpd) instead
+         of direct access to password database.
+
+config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
+       bool "Use sendfile system call"
+       default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
+       select BUSYBOX_CONFIG_PLATFORM_LINUX
+       help
+         When enabled, busybox will use the kernel sendfile() function
+         instead of read/write loops to copy data between file descriptors
+         (for example, cp command does this a lot).
+         If sendfile() doesn't work, copying code falls back to read/write
+         loop. sendfile() was originally implemented for faster I/O
+         from files to sockets, but since Linux 2.6.33 it was extended
+         to work for many more file types.
+
 config BUSYBOX_CONFIG_LONG_OPTS
        bool "Support for --long-options"
        default BUSYBOX_DEFAULT_LONG_OPTS
 config BUSYBOX_CONFIG_LONG_OPTS
        bool "Support for --long-options"
        default BUSYBOX_DEFAULT_LONG_OPTS
@@ -415,10 +435,7 @@ config BUSYBOX_CONFIG_SELINUX
          the option of compiling in SELinux applets.
 
          If you do not have a complete SELinux userland installed, this stuff
          the option of compiling in SELinux applets.
 
          If you do not have a complete SELinux userland installed, this stuff
-         will not compile. Go visit
-               http://www.nsa.gov/selinux/index.html
-         to download the necessary stuff to allow busybox to compile with
-         this option enabled. Specifially, libselinux 1.28 or better is
+         will not compile.  Specifially, libselinux 1.28 or better is
          directly required by busybox. If the installation is located in a
          non-standard directory, provide it by invoking make as follows:
                CFLAGS=-I<libselinux-include-path> \
          directly required by busybox. If the installation is located in a
          non-standard directory, provide it by invoking make as follows:
                CFLAGS=-I<libselinux-include-path> \
@@ -670,6 +687,14 @@ config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
          in a much bigger executable that more closely matches the source
          code.
 
          in a much bigger executable that more closely matches the source
          code.
 
+config BUSYBOX_CONFIG_UNIT_TEST
+       bool "Build unit tests"
+       default BUSYBOX_DEFAULT_UNIT_TEST
+       help
+         Say Y here if you want to build unit tests (both the framework and
+         test cases) as a Busybox applet. This results in bigger code, so you
+         probably don't want this option in production builds.
+
 config BUSYBOX_CONFIG_WERROR
        bool "Abort compilation on any warning"
        default BUSYBOX_DEFAULT_WERROR
 config BUSYBOX_CONFIG_WERROR
        bool "Abort compilation on any warning"
        default BUSYBOX_DEFAULT_WERROR
index c00eca9534813665479250fec20a00b4bf3aa0bd..f50823f012dee6947217091643f6452301e530bd 100644 (file)
@@ -74,6 +74,11 @@ config BUSYBOX_CONFIG_GROUPS
        default BUSYBOX_DEFAULT_GROUPS
        help
          Print the group names associated with current user id.
        default BUSYBOX_DEFAULT_GROUPS
        help
          Print the group names associated with current user id.
+config BUSYBOX_CONFIG_SHUF
+       bool "shuf"
+       default BUSYBOX_DEFAULT_SHUF
+       help
+         Generate random permutations
 config BUSYBOX_CONFIG_TEST
        bool "test"
        default BUSYBOX_DEFAULT_TEST
 config BUSYBOX_CONFIG_TEST
        bool "test"
        default BUSYBOX_DEFAULT_TEST
@@ -134,6 +139,11 @@ config BUSYBOX_CONFIG_FEATURE_TR_EQUIV
          replace all instances of 'a' with 'xyz'. This option is mainly
          useful for cases when no other way of expressing a character
          is possible.
          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_UNLINK
+       bool "unlink"
+       default BUSYBOX_DEFAULT_UNLINK
+       help
+         unlink deletes a file by calling unlink()
 config BUSYBOX_CONFIG_BASE64
        bool "base64"
        default BUSYBOX_DEFAULT_BASE64
 config BUSYBOX_CONFIG_BASE64
        bool "base64"
        default BUSYBOX_DEFAULT_BASE64
@@ -778,12 +788,13 @@ config BUSYBOX_CONFIG_FEATURE_FANCY_TAIL
        default BUSYBOX_DEFAULT_FEATURE_FANCY_TAIL
        depends on BUSYBOX_CONFIG_TAIL
        help
        default BUSYBOX_DEFAULT_FEATURE_FANCY_TAIL
        depends on BUSYBOX_CONFIG_TAIL
        help
-         The options (-q, -s, and -v) are provided by GNU tail, but
+         The options (-q, -s, -v and -F) 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
          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
+           -F      Same as -f, but keep retrying
 
 config BUSYBOX_CONFIG_TEE
        bool "tee"
 
 config BUSYBOX_CONFIG_TEE
        bool "tee"
@@ -883,6 +894,16 @@ config BUSYBOX_CONFIG_YES
          yes is used to repeatedly output a specific string, or
          the default string `y'.
 
          yes is used to repeatedly output a specific string, or
          the default string `y'.
 
+comment "Common options"
+
+config BUSYBOX_CONFIG_FEATURE_VERBOSE
+       bool "Support verbose options (usually -v) for various applets"
+       default BUSYBOX_DEFAULT_FEATURE_VERBOSE
+       help
+         Enable cp -v, rm -v and similar messages.
+         Also enables long option (--verbose) if it exists.
+         Without this option, -v is accepted but ignored.
+
 comment "Common options for cp and mv"
        depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
 
 comment "Common options for cp and mv"
        depends on BUSYBOX_CONFIG_CP || BUSYBOX_CONFIG_MV
 
index 90f9f0086e3b6704aeefe03b0d1aea277bac601f..6ae361f7ff70c36d1fda0fac016e2fe493a360e2 100644 (file)
@@ -192,6 +192,36 @@ config BUSYBOX_CONFIG_FEATURE_VI_ASK_TERMINAL
          cursor position using "ESC [ 6 n" escape sequence, then read stdin.
 
          This is not clean but helps a lot on serial lines and such.
          cursor position using "ESC [ 6 n" escape sequence, then read stdin.
 
          This is not clean but helps a lot on serial lines and such.
+config BUSYBOX_CONFIG_FEATURE_VI_UNDO
+       bool "Support undo command 'u'"
+       default BUSYBOX_DEFAULT_FEATURE_VI_UNDO
+       depends on BUSYBOX_CONFIG_VI
+       help
+         Support the 'u' command to undo insertion, deletion, and replacement
+         of text.
+config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE
+       bool "Enable undo operation queuing"
+       default BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE
+       depends on BUSYBOX_CONFIG_FEATURE_VI_UNDO
+       help
+         The vi undo functions can use an intermediate queue to greatly lower
+         malloc() calls and overhead. When the maximum size of this queue is
+         reached, the contents of the queue are committed to the undo stack.
+         This increases the size of the undo code and allows some undo
+         operations (especially un-typing/backspacing) to be far more useful.
+config BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX
+       int "Maximum undo character queue size"
+       default BUSYBOX_DEFAULT_FEATURE_VI_UNDO_QUEUE_MAX
+       range 32 65536
+       depends on BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE
+       help
+         This option sets the number of bytes used at runtime for the queue.
+         Smaller values will create more undo objects and reduce the amount
+         of typed or backspaced characters that are grouped into one undo
+         operation; larger values increase the potential size of each undo
+         and will generally malloc() larger objects and less frequently.
+         Unless you want more (or less) frequent "undo points" while typing,
+         you should probably leave this unchanged.
 
 config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
        bool "Allow vi and awk to execute shell commands"
 
 config BUSYBOX_CONFIG_FEATURE_ALLOW_EXEC
        bool "Allow vi and awk to execute shell commands"
index 55929d2846cf0cea14ba31516ba9537acffac3e0..85ee1db2c3a154c86571baccee5975270b36a5ff 100644 (file)
@@ -90,6 +90,16 @@ config BUSYBOX_CONFIG_FEATURE_FIND_EXEC
          Support the 'find -exec' option for executing commands based upon
          the files matched.
 
          Support the 'find -exec' option for executing commands based upon
          the files matched.
 
+config BUSYBOX_CONFIG_FEATURE_FIND_EXEC_PLUS
+       bool "Enable -exec ... {} +"
+       default BUSYBOX_DEFAULT_FEATURE_FIND_EXEC_PLUS
+       depends on BUSYBOX_CONFIG_FEATURE_FIND_EXEC
+       help
+         Support the 'find -exec ... {} +' option for executing commands
+         for all matched files at once.
+         Without this option, -exec + is a synonym for -exec ;
+         (IOW: it works correctly, but without expected speedup)
+
 config BUSYBOX_CONFIG_FEATURE_FIND_USER
        bool "Enable -user: username/uid matching"
        default BUSYBOX_DEFAULT_FEATURE_FIND_USER
 config BUSYBOX_CONFIG_FEATURE_FIND_USER
        bool "Enable -user: username/uid matching"
        default BUSYBOX_DEFAULT_FEATURE_FIND_USER
@@ -249,4 +259,11 @@ config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
          instead of whitespace, and the quotes and backslash
          are not special.
 
          instead of whitespace, and the quotes and backslash
          are not special.
 
+config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR
+       bool "Enable -I STR: string to replace"
+       default BUSYBOX_DEFAULT_FEATURE_XARGS_SUPPORT_REPL_STR
+       depends on BUSYBOX_CONFIG_XARGS
+       help
+         Support -I STR and -i[STR] options.
+
 endmenu
 endmenu
index 7fbe6a0aec1bded211df74acbf1a71e082ad1c60..f5ecf6f23b5e4cc51618fa937bf5898e9b5602f7 100644 (file)
@@ -129,10 +129,17 @@ config BUSYBOX_CONFIG_FEATURE_CHECK_NAMES
          For compatibility with Samba machine accounts "$" is also supported
          at the end of the user or group name.
 
          For compatibility with Samba machine accounts "$" is also supported
          at the end of the user or group name.
 
+config BUSYBOX_CONFIG_LAST_ID
+       int "Last valid uid or gid for adduser and addgroup"
+       depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
+       default BUSYBOX_DEFAULT_LAST_ID
+       help
+         Last valid uid or gid for adduser and addgroup
+
 config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
        int "First valid system uid or gid for adduser and addgroup"
        depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
 config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
        int "First valid system uid or gid for adduser and addgroup"
        depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
-       range 0 64900
+       range 0 BUSYBOX_CONFIG_LAST_ID
        default BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
        help
          First valid system uid or gid for adduser and addgroup
        default BUSYBOX_DEFAULT_FIRST_SYSTEM_ID
        help
          First valid system uid or gid for adduser and addgroup
@@ -140,7 +147,7 @@ config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
 config BUSYBOX_CONFIG_LAST_SYSTEM_ID
        int "Last valid system uid or gid for adduser and addgroup"
        depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
 config BUSYBOX_CONFIG_LAST_SYSTEM_ID
        int "Last valid system uid or gid for adduser and addgroup"
        depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
-       range 0 64900
+       range BUSYBOX_CONFIG_FIRST_SYSTEM_ID BUSYBOX_CONFIG_LAST_ID
        default BUSYBOX_DEFAULT_LAST_SYSTEM_ID
        help
          Last valid system uid or gid for adduser and addgroup
        default BUSYBOX_DEFAULT_LAST_SYSTEM_ID
        help
          Last valid system uid or gid for adduser and addgroup
@@ -227,13 +234,6 @@ config BUSYBOX_CONFIG_LOGIN_SESSION_AS_CHILD
          almost always would want this to be set to Y, else PAM session
          will not be cleaned up.
 
          almost always would want this to be set to Y, else PAM session
          will not be cleaned up.
 
-config BUSYBOX_CONFIG_PAM
-       bool "Support for PAM (Pluggable Authentication Modules)"
-       default BUSYBOX_DEFAULT_PAM
-       depends on BUSYBOX_CONFIG_LOGIN
-       help
-         Use PAM in login(1) instead of direct access to password database.
-
 config BUSYBOX_CONFIG_LOGIN_SCRIPTS
        bool "Support for login scripts"
        depends on BUSYBOX_CONFIG_LOGIN
 config BUSYBOX_CONFIG_LOGIN_SCRIPTS
        bool "Support for login scripts"
        depends on BUSYBOX_CONFIG_LOGIN
index 0e0e459a2310f2a6418f3d39ec0e873a01fb80f0..7819e30583b14f6acf91681728ff3204691d2db9 100644 (file)
@@ -15,6 +15,39 @@ config BUSYBOX_CONFIG_CONSPY
          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
          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_CROND
+       bool "crond"
+       default BUSYBOX_DEFAULT_CROND
+       select BUSYBOX_CONFIG_FEATURE_SYSLOG
+       help
+         Crond is a background daemon that parses individual crontab
+         files and executes commands on behalf of the users in question.
+         This is a port of dcron from slackware. It uses files of the
+         format /var/spool/cron/crontabs/<username> files, for example:
+             $ cat /var/spool/cron/crontabs/root
+             # Run daily cron jobs at 4:40 every day:
+             40 4 * * * /etc/cron/daily > /dev/null 2>&1
+
+config BUSYBOX_CONFIG_FEATURE_CROND_D
+       bool "Support option -d to redirect output to stderr"
+       depends on BUSYBOX_CONFIG_CROND
+       default BUSYBOX_DEFAULT_FEATURE_CROND_D
+       help
+         -d N sets loglevel (0:most verbose) and directs all output to stderr.
+
+config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
+       bool "Report command output via email (using sendmail)"
+       default BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
+       depends on BUSYBOX_CONFIG_CROND
+       help
+         Command output will be sent to corresponding user via email.
+
+config BUSYBOX_CONFIG_FEATURE_CROND_DIR
+       string "crond spool directory"
+       default BUSYBOX_DEFAULT_FEATURE_CROND_DIR
+       depends on BUSYBOX_CONFIG_CROND || BUSYBOX_CONFIG_CRONTAB
+       help
+         Location of crond spool.
 config BUSYBOX_CONFIG_LESS
        bool "less"
        default BUSYBOX_DEFAULT_LESS
 config BUSYBOX_CONFIG_LESS
        bool "less"
        default BUSYBOX_DEFAULT_LESS
@@ -121,6 +154,21 @@ config BUSYBOX_CONFIG_SETSERIAL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
          Retrieve or set Linux serial port.
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
          Retrieve or set Linux serial port.
+config BUSYBOX_CONFIG_TASKSET
+       bool "taskset"
+       default BUSYBOX_DEFAULT_TASKSET  # doesn't build on some non-x86 targets (m68k)
+       help
+         Retrieve or set a processes's CPU affinity.
+         This requires sched_{g,s}etaffinity support in your libc.
+
+config BUSYBOX_CONFIG_FEATURE_TASKSET_FANCY
+       bool "Fancy output"
+       default BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
+       depends on BUSYBOX_CONFIG_TASKSET
+       help
+         Add code for fancy output. This merely silences a compiler-warning
+         and adds about 135 Bytes. May be needed for machines with alot
+         of CPUs.
 config BUSYBOX_CONFIG_UBIATTACH
        bool "ubiattach"
        default BUSYBOX_DEFAULT_UBIATTACH
 config BUSYBOX_CONFIG_UBIATTACH
        bool "ubiattach"
        default BUSYBOX_DEFAULT_UBIATTACH
@@ -295,40 +343,6 @@ config BUSYBOX_CONFIG_CHRT
          manipulate real-time attributes of a process.
          This requires sched_{g,s}etparam support in your libc.
 
          manipulate real-time attributes of a process.
          This requires sched_{g,s}etparam support in your libc.
 
-config BUSYBOX_CONFIG_CROND
-       bool "crond"
-       default BUSYBOX_DEFAULT_CROND
-       select BUSYBOX_CONFIG_FEATURE_SYSLOG
-       help
-         Crond is a background daemon that parses individual crontab
-         files and executes commands on behalf of the users in question.
-         This is a port of dcron from slackware. It uses files of the
-         format /var/spool/cron/crontabs/<username> files, for example:
-             $ cat /var/spool/cron/crontabs/root
-             # Run daily cron jobs at 4:40 every day:
-             40 4 * * * /etc/cron/daily > /dev/null 2>&1
-
-config BUSYBOX_CONFIG_FEATURE_CROND_D
-       bool "Support option -d to redirect output to stderr"
-       depends on BUSYBOX_CONFIG_CROND
-       default BUSYBOX_DEFAULT_FEATURE_CROND_D
-       help
-         -d sets loglevel to 0 (most verbose) and directs all output to stderr.
-
-config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
-       bool "Report command output via email (using sendmail)"
-       default BUSYBOX_DEFAULT_FEATURE_CROND_CALL_SENDMAIL
-       depends on BUSYBOX_CONFIG_CROND
-       help
-         Command output will be sent to corresponding user via email.
-
-config BUSYBOX_CONFIG_FEATURE_CROND_DIR
-       string "crond spool directory"
-       default BUSYBOX_DEFAULT_FEATURE_CROND_DIR
-       depends on BUSYBOX_CONFIG_CROND || BUSYBOX_CONFIG_CRONTAB
-       help
-         Location of crond spool.
-
 config BUSYBOX_CONFIG_CRONTAB
        bool "crontab"
        default BUSYBOX_DEFAULT_CRONTAB
 config BUSYBOX_CONFIG_CRONTAB
        bool "crontab"
        default BUSYBOX_DEFAULT_CRONTAB
@@ -701,22 +715,6 @@ config BUSYBOX_CONFIG_STRINGS
          strings prints the printable character sequences for each file
          specified.
 
          strings prints the printable character sequences for each file
          specified.
 
-config BUSYBOX_CONFIG_TASKSET
-       bool "taskset"
-       default BUSYBOX_DEFAULT_TASKSET  # doesn't build on some non-x86 targets (m68k)
-       help
-         Retrieve or set a processes's CPU affinity.
-         This requires sched_{g,s}etaffinity support in your libc.
-
-config BUSYBOX_CONFIG_FEATURE_TASKSET_FANCY
-       bool "Fancy output"
-       default BUSYBOX_DEFAULT_FEATURE_TASKSET_FANCY
-       depends on BUSYBOX_CONFIG_TASKSET
-       help
-         Add code for fancy output. This merely silences a compiler-warning
-         and adds about 135 Bytes. May be needed for machines with alot
-         of CPUs.
-
 config BUSYBOX_CONFIG_TIME
        bool "time"
        default BUSYBOX_DEFAULT_TIME
 config BUSYBOX_CONFIG_TIME
        bool "time"
        default BUSYBOX_DEFAULT_TIME
index 52e38a3f0020701767f71e814c7d5f177ed18a2e..b3dd8c8b895c1d31f2cca977585dd0d751bf09c8 100644 (file)
@@ -67,7 +67,6 @@ config BUSYBOX_CONFIG_NC_110_COMPAT
        bool "Netcat 1.10 compatibility (+2.5k)"
        default BUSYBOX_DEFAULT_NC_110_COMPAT  # off specially for Rob
        depends on BUSYBOX_CONFIG_NC
        bool "Netcat 1.10 compatibility (+2.5k)"
        default BUSYBOX_DEFAULT_NC_110_COMPAT  # off specially for Rob
        depends on BUSYBOX_CONFIG_NC
-       select BUSYBOX_CONFIG_NC_SERVER
        help
          This option makes nc closely follow original nc-1.10.
          The code is about 2.5k bigger. It enables
        help
          This option makes nc closely follow original nc-1.10.
          The code is about 2.5k bigger. It enables
@@ -228,6 +227,13 @@ config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
          it increases the code size by ~40 bytes.
          Most other ftp servers seem to behave similar to this.
 
          it increases the code size by ~40 bytes.
          Most other ftp servers seem to behave similar to this.
 
+config BUSYBOX_CONFIG_FEATURE_FTP_AUTHENTICATION
+       bool "Enable authentication"
+       default BUSYBOX_DEFAULT_FEATURE_FTP_AUTHENTICATION
+       depends on BUSYBOX_CONFIG_FTPD
+       help
+         Enable basic system login as seen in telnet etc.
+
 config BUSYBOX_CONFIG_FTPGET
        bool "ftpget"
        default BUSYBOX_DEFAULT_FTPGET
 config BUSYBOX_CONFIG_FTPGET
        bool "ftpget"
        default BUSYBOX_DEFAULT_FTPGET
@@ -268,14 +274,6 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_RANGES
          "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
          downloads, seeking in multimedia players etc.
 
          "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
          downloads, seeking in multimedia players etc.
 
-config BUSYBOX_CONFIG_FEATURE_HTTPD_USE_SENDFILE
-       bool "Use sendfile system call"
-       default BUSYBOX_DEFAULT_FEATURE_HTTPD_USE_SENDFILE
-       depends on BUSYBOX_CONFIG_HTTPD
-       help
-         When enabled, httpd will use the kernel sendfile() function
-         instead of read/write loop.
-
 config BUSYBOX_CONFIG_FEATURE_HTTPD_SETUID
        bool "Enable -u <user> option"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_SETUID
 config BUSYBOX_CONFIG_FEATURE_HTTPD_SETUID
        bool "Enable -u <user> option"
        default BUSYBOX_DEFAULT_FEATURE_HTTPD_SETUID
@@ -764,6 +762,14 @@ config BUSYBOX_CONFIG_FEATURE_NTPD_SERVER
          Make ntpd usable as a NTP server. If you disable this option
          ntpd will be usable only as a NTP client.
 
          Make ntpd usable as a NTP server. If you disable this option
          ntpd will be usable only as a NTP client.
 
+config BUSYBOX_CONFIG_FEATURE_NTPD_CONF
+       bool "Make ntpd understand /etc/ntp.conf"
+       default BUSYBOX_DEFAULT_FEATURE_NTPD_CONF
+       depends on BUSYBOX_CONFIG_NTPD
+       help
+         Make ntpd look in /etc/ntp.conf for peers. Only "server address"
+         is supported.
+
 config BUSYBOX_CONFIG_PSCAN
        bool "pscan"
        default BUSYBOX_DEFAULT_PSCAN
 config BUSYBOX_CONFIG_PSCAN
        bool "pscan"
        default BUSYBOX_DEFAULT_PSCAN
index 576a01a25f4b598f1b06ec457fa938f7e165e8b1..4f484002259369ae9b140ec3dfb10e6eb9a87f1b 100644 (file)
@@ -90,6 +90,17 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING
          will DHCPDECLINE the offer if the address is in use,
          and restart the discover process.
 
          will DHCPDECLINE the offer if the address is in use,
          and restart the discover process.
 
+config BUSYBOX_CONFIG_FEATURE_UDHCPC_SANITIZEOPT
+       bool "Do not pass malformed host and domain names"
+       default BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
+       depends on BUSYBOX_CONFIG_UDHCPC
+       help
+         If selected, udhcpc will check some options (such as option 12 -
+         hostname) and if they don't look like valid hostnames
+         (for example, if they start with dash or contain spaces),
+         they will be replaced with string "bad" when exporting
+         to the environment.
+
 config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
        bool "Enable '-P port' option for udhcpd and udhcpc"
        default BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
 config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
        bool "Enable '-P port' option for udhcpd and udhcpc"
        default BUSYBOX_DEFAULT_FEATURE_UDHCP_PORT
index c375f0c26e9ad85a0384d7d36a3880196c261597..69ecf145e1b2ef889c610d2918f24bfa90c0f6e9 100644 (file)
@@ -73,6 +73,13 @@ config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
        help
          Enable support for test builtin in ash.
 
        help
          Enable support for test builtin in ash.
 
+config BUSYBOX_CONFIG_ASH_HELP
+       bool "help builtin"
+       default BUSYBOX_DEFAULT_ASH_HELP
+       depends on BUSYBOX_CONFIG_ASH
+       help
+         Enable help builtin in ash.
+
 config BUSYBOX_CONFIG_ASH_CMDCMD
        bool "'command' command to override shell builtins"
        default BUSYBOX_DEFAULT_ASH_CMDCMD
 config BUSYBOX_CONFIG_ASH_CMDCMD
        bool "'command' command to override shell builtins"
        default BUSYBOX_DEFAULT_ASH_CMDCMD
index f78234de82b0bd8ba7b3327aa2d928f486062c5a..8d1464dc0c4187ef60a250084e798807e47159bb 100644 (file)
@@ -11,6 +11,12 @@ config BUSYBOX_CONFIG_BLOCKDEV
        default BUSYBOX_DEFAULT_BLOCKDEV
        help
          Performs some ioctls with block devices.
        default BUSYBOX_DEFAULT_BLOCKDEV
        help
          Performs some ioctls with block devices.
+config BUSYBOX_CONFIG_FATATTR
+       bool "fatattr"
+       default BUSYBOX_DEFAULT_FATATTR
+       select BUSYBOX_CONFIG_PLATFORM_LINUX
+       help
+         fatattr lists or changes the file attributes on a fat file system.
 config BUSYBOX_CONFIG_FSTRIM
        bool "fstrim"
        default BUSYBOX_DEFAULT_FSTRIM
 config BUSYBOX_CONFIG_FSTRIM
        bool "fstrim"
        default BUSYBOX_DEFAULT_FSTRIM
@@ -672,6 +678,15 @@ config BUSYBOX_CONFIG_SWAPONOFF
          space. If you are not using any swap space, you can leave this
          option disabled.
 
          space. If you are not using any swap space, you can leave this
          option disabled.
 
+config BUSYBOX_CONFIG_FEATURE_SWAPON_DISCARD
+       bool "Support discard option -d"
+       default BUSYBOX_DEFAULT_FEATURE_SWAPON_DISCARD
+       depends on BUSYBOX_CONFIG_SWAPONOFF
+       help
+         Enable support for discarding swap area blocks at swapon and/or as
+         the kernel frees them. This option enables both the -d option on
+         'swapon' and the 'discard' option for swap entries in /etc/fstab.
+
 config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI
        bool "Support priority option -p"
        default BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
 config BUSYBOX_CONFIG_FEATURE_SWAPON_PRI
        bool "Support priority option -p"
        default BUSYBOX_DEFAULT_FEATURE_SWAPON_PRI
index cc4802a61c1bf1e3a6dc3f37d70197c69b5142e4..fd99349b65c8910dc3b87d1d06cb1dc6df7037fb 100755 (executable)
@@ -41,6 +41,14 @@ while (<FIND>) {
                        undef $default_set;
                }
                $line =~ s/^(\s*source\s+)/$1package\/utils\/busybox\/config\//;
                        undef $default_set;
                }
                $line =~ s/^(\s*source\s+)/$1package\/utils\/busybox\/config\//;
+               if ($line =~ /^(\s*range\s*)(\w+)(\s+)(\w+)\s*$/) {
+                       my $prefix = $1;
+                       my $r1 = $2;
+                       my $r2 = $4;
+                       $r1 =~ s/^([a-zA-Z]+)/BUSYBOX_CONFIG_$1/;
+                       $r2 =~ s/^([a-zA-Z]+)/BUSYBOX_CONFIG_$1/;
+                       $line = "$prefix$r1 $r2\n";
+               }
 
                $line =~ s/^(\s*(prompt "[^"]+" if|config|depends|depends on|select|default|default \w if)\s+\!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
                $line =~ s/(( \|\| | \&\& | \( )!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
 
                $line =~ s/^(\s*(prompt "[^"]+" if|config|depends|depends on|select|default|default \w if)\s+\!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
                $line =~ s/(( \|\| | \&\& | \( )!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
index d66d66d67eb7895432270ba9566125596f47608e..5e2f1721c40f23f6c67a6c928bcb4fd7c85e32ac 100644 (file)
@@ -1,7 +1,7 @@
 --- a/include/libbb.h
 +++ b/include/libbb.h
 --- a/include/libbb.h
 +++ b/include/libbb.h
-@@ -35,6 +35,7 @@
- #include <sys/poll.h>
+@@ -40,6 +40,7 @@
+ #include <poll.h>
  #include <sys/ioctl.h>
  #include <sys/mman.h>
 +#include <sys/resource.h>
  #include <sys/ioctl.h>
  #include <sys/mman.h>
 +#include <sys/resource.h>
diff --git a/package/utils/busybox/patches/002-upstream_ash_fix.patch b/package/utils/busybox/patches/002-upstream_ash_fix.patch
deleted file mode 100644 (file)
index 46fd7f8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -13014,7 +13014,7 @@ init(void)
-               setvar2("PPID", utoa(getppid()));
- #if ENABLE_ASH_BASH_COMPAT
-               p = lookupvar("SHLVL");
--              setvar2("SHLVL", utoa(p ? atoi(p) + 1 : 1));
-+              setvar("SHLVL", utoa((p ? atoi(p) : 0) + 1), VEXPORT);
- #endif
-               p = lookupvar("PWD");
-               if (p) {
diff --git a/package/utils/busybox/patches/003-upstream_date_fix.patch b/package/utils/busybox/patches/003-upstream_date_fix.patch
deleted file mode 100644 (file)
index 5b389c4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/libbb/time.c
-+++ b/libbb/time.c
-@@ -68,15 +68,23 @@ void FAST_FUNC parse_datestr(const char 
-                       /* else end != NUL and we error out */
-               }
-       } else
--      /* yyyy-mm-dd HH */
--      if (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
-+      if (strchr(date_str, '-')
-+          /* Why strchr('-') check?
-+           * sscanf below will trash ptm->tm_year, this breaks
-+           * if parse_str is "10101010" (iow, "MMddhhmm" form)
-+           * because we destroy year. Do these sscanf
-+           * only if we saw a dash in parse_str.
-+           */
-+              /* yyyy-mm-dd HH */
-+       && (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year,
-                               &ptm->tm_mon, &ptm->tm_mday,
-                               &ptm->tm_hour,
-                               &end) >= 4
--      /* yyyy-mm-dd */
--       || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
-+              /* yyyy-mm-dd */
-+           || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year,
-                               &ptm->tm_mon, &ptm->tm_mday,
-                               &end) >= 3
-+          )
-       ) {
-               ptm->tm_year -= 1900; /* Adjust years */
-               ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */
diff --git a/package/utils/busybox/patches/004-upstream_iplink_fix.patch b/package/utils/busybox/patches/004-upstream_iplink_fix.patch
deleted file mode 100644 (file)
index 0e25356..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/networking/libiproute/iplink.c
-+++ b/networking/libiproute/iplink.c
-@@ -31,6 +31,16 @@
- #ifndef IFLA_LINKINFO
- # define IFLA_LINKINFO 18
- # define IFLA_INFO_KIND 1
-+# define IFLA_INFO_DATA 2
-+#endif
-+
-+#ifndef IFLA_VLAN_MAX
-+# define IFLA_VLAN_ID 1
-+# define IFLA_VLAN_FLAGS 2
-+struct ifla_vlan_flags {
-+      uint32_t        flags;
-+      uint32_t        mask;
-+};
- #endif
- /* taken from linux/sockios.h */
diff --git a/package/utils/busybox/patches/005-upstream_nc_fix.patch b/package/utils/busybox/patches/005-upstream_nc_fix.patch
deleted file mode 100644 (file)
index 1bd2359..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/networking/nc_bloaty.c
-+++ b/networking/nc_bloaty.c
-@@ -175,9 +175,9 @@ enum {
-       OPT_w = (1 << 5),
-       OPT_l = (1 << 6) * ENABLE_NC_SERVER,
-       OPT_k = (1 << 7) * ENABLE_NC_SERVER,
--      OPT_i = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
--      OPT_o = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
--      OPT_z = (1 << (9+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+      OPT_i = (1 << (6+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+      OPT_o = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
-+      OPT_z = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
- };
- #define o_nflag   (option_mask32 & OPT_n)
diff --git a/package/utils/busybox/patches/006-upstream_lzop_fix.patch b/package/utils/busybox/patches/006-upstream_lzop_fix.patch
deleted file mode 100644 (file)
index 6e453eb..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From a9dc7c2f59dc5e92870d2d46316ea5c1f14740e3 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Mon, 30 Jun 2014 10:14:34 +0200
-Subject: [PATCH] lzop: add overflow check
-
-See CVE-2014-4607
-http://www.openwall.com/lists/oss-security/2014/06/26/20
-
-function                                             old     new   delta
-lzo1x_decompress_safe                               1010    1031     +21
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- archival/libarchive/liblzo.h  | 2 ++
- archival/libarchive/lzo1x_d.c | 3 +++
- 2 files changed, 5 insertions(+)
-
---- a/archival/libarchive/liblzo.h
-+++ b/archival/libarchive/liblzo.h
-@@ -76,11 +76,13 @@
- #    define TEST_IP             (ip < ip_end)
- #    define NEED_IP(x) \
-             if ((unsigned)(ip_end - ip) < (unsigned)(x))  goto input_overrun
-+#    define TEST_IV(x)          if ((x) > (unsigned)0 - (511)) goto input_overrun
- #    undef TEST_OP              /* don't need both of the tests here */
- #    define TEST_OP             1
- #    define NEED_OP(x) \
-             if ((unsigned)(op_end - op) < (unsigned)(x))  goto output_overrun
-+#    define TEST_OV(x)          if ((x) > (unsigned)0 - (511)) goto output_overrun
- #define HAVE_ANY_OP 1
---- a/archival/libarchive/lzo1x_d.c
-+++ b/archival/libarchive/lzo1x_d.c
-@@ -92,6 +92,7 @@ int lzo1x_decompress_safe(const uint8_t*
-                               ip++;
-                               NEED_IP(1);
-                       }
-+                      TEST_IV(t);
-                       t += 15 + *ip++;
-               }
-               /* copy literals */
-@@ -224,6 +225,7 @@ int lzo1x_decompress_safe(const uint8_t*
-                                               ip++;
-                                               NEED_IP(1);
-                                       }
-+                                      TEST_IV(t);
-                                       t += 31 + *ip++;
-                               }
- #if defined(COPY_DICT)
-@@ -265,6 +267,7 @@ int lzo1x_decompress_safe(const uint8_t*
-                                               ip++;
-                                               NEED_IP(1);
-                                       }
-+                                      TEST_IV(t);
-                                       t += 7 + *ip++;
-                               }
- #if defined(COPY_DICT)
diff --git a/package/utils/busybox/patches/007-upstream_zcat_no_ext_fix.patch b/package/utils/busybox/patches/007-upstream_zcat_no_ext_fix.patch
deleted file mode 100644 (file)
index 2483800..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From 28dd64a0e1a9cffcde7799f2849b66c0e16bb9cc Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Fri, 10 Jan 2014 14:06:57 +0100
-Subject: [PATCH] libarchive: open_zipped() does not need to check extensions
- for e.g. gzip
-
-We only need to check for signature-less extensions,
-currently only .lzma. The rest can be happily autodetected.
-
-This fixes "zcat FILE_WITHOUT_GZ_EXT" case, among others.
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-(cherry picked from commit 7c47b560a8fc97956dd8132bd7f1863d83c19866)
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- archival/libarchive/open_transformer.c | 23 +++++++++++------------
- 1 file changed, 11 insertions(+), 12 deletions(-)
-
---- a/archival/libarchive/open_transformer.c
-+++ b/archival/libarchive/open_transformer.c
-@@ -182,27 +182,26 @@ int FAST_FUNC setup_unzip_on_fd(int fd,
- int FAST_FUNC open_zipped(const char *fname)
- {
--      char *sfx;
-       int fd;
-       fd = open(fname, O_RDONLY);
-       if (fd < 0)
-               return fd;
--      sfx = strrchr(fname, '.');
--      if (sfx) {
--              sfx++;
--              if (ENABLE_FEATURE_SEAMLESS_LZMA && strcmp(sfx, "lzma") == 0)
--                      /* .lzma has no header/signature, just trust it */
-+      if (ENABLE_FEATURE_SEAMLESS_LZMA) {
-+              /* .lzma has no header/signature, can only detect it by extension */
-+              char *sfx = strrchr(fname, '.');
-+              if (sfx && strcmp(sfx+1, "lzma") == 0) {
-                       open_transformer_with_sig(fd, unpack_lzma_stream, "unlzma");
--              else
--              if ((ENABLE_FEATURE_SEAMLESS_GZ && strcmp(sfx, "gz") == 0)
--               || (ENABLE_FEATURE_SEAMLESS_BZ2 && strcmp(sfx, "bz2") == 0)
--               || (ENABLE_FEATURE_SEAMLESS_XZ && strcmp(sfx, "xz") == 0)
--              ) {
--                      setup_unzip_on_fd(fd, /*fail_if_not_detected:*/ 1);
-+                      return fd;
-               }
-       }
-+      if ((ENABLE_FEATURE_SEAMLESS_GZ)
-+       || (ENABLE_FEATURE_SEAMLESS_BZ2)
-+       || (ENABLE_FEATURE_SEAMLESS_XZ)
-+      ) {
-+              setup_unzip_on_fd(fd, /*fail_if_not_detected:*/ 1);
-+      }
-       return fd;
- }
diff --git a/package/utils/busybox/patches/102-freebsd-compat.patch b/package/utils/busybox/patches/102-freebsd-compat.patch
deleted file mode 100644 (file)
index 26d1ec6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/scripts/basic/docproc.c
-+++ b/scripts/basic/docproc.c
-@@ -39,7 +39,10 @@
- #include <limits.h>
- #include <sys/types.h>
- #include <sys/wait.h>
-+
-+#ifndef __FreeBSD__
- #include <alloca.h>
-+#endif
- /* exitstatus is used to keep track of any failing calls to kernel-doc,
-  * but execution continues. */
---- a/scripts/basic/fixdep.c
-+++ b/scripts/basic/fixdep.c
-@@ -113,7 +113,10 @@
- #include <limits.h>
- #include <ctype.h>
- #include <arpa/inet.h>
-+
-+#ifndef __FreeBSD__
- #include <alloca.h>
-+#endif
- /* bbox: not needed
- #define INT_CONF ntohl(0x434f4e46)
index f3470fdc167a38dffc74b3f55186e5d65d74dc3a..c3de9783b4c6a521ec11a2b17dd2ec080693fd37 100644 (file)
@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -681,6 +681,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -685,6 +685,7 @@ static int bcast_or_ucast(struct dhcp_pa
  static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
  {
        struct dhcp_packet packet;
  static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
  {
        struct dhcp_packet packet;
@@ -8,7 +8,7 @@
  
        /* Fill in: op, htype, hlen, cookie, chaddr fields,
         * random xid field (we override it below),
  
        /* Fill in: op, htype, hlen, cookie, chaddr fields,
         * random xid field (we override it below),
-@@ -698,6 +699,7 @@ static NOINLINE int send_discover(uint32
+@@ -702,6 +703,7 @@ static NOINLINE int send_discover(uint32
         */
        add_client_options(&packet);
  
         */
        add_client_options(&packet);
  
index 3e4e049684b2b5585c9e048da67f8a3bbdd7babb..e7e2fce309bf200a054825bd951edd16b2dda868 100644 (file)
@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -1400,6 +1400,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
+@@ -1410,6 +1410,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c
                /* silence "uninitialized!" warning */
                unsigned timestamp_before_wait = timestamp_before_wait;
  
                /* silence "uninitialized!" warning */
                unsigned timestamp_before_wait = timestamp_before_wait;
  
index 4bb64b8ad03e037fe17af495fe9daf9d9ef66208..471f12f72873f0066d23d6f3ce8120bafeb2aeb1 100644 (file)
@@ -1,6 +1,6 @@
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
 --- a/networking/udhcp/dhcpc.c
 +++ b/networking/udhcp/dhcpc.c
-@@ -1087,7 +1087,6 @@ static void perform_renew(void)
+@@ -1093,7 +1093,6 @@ static void perform_renew(void)
                state = RENEW_REQUESTED;
                break;
        case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
                state = RENEW_REQUESTED;
                break;
        case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
index 6da568a91449c06ef4dd20da5a6b873df3f29df4..b6d8b6f1a9708183b1f6db0e4937e27c965fa8cc 100644 (file)
@@ -1,8 +1,6 @@
-Index: busybox-1.22.1/networking/udhcp/dhcpc.c
-===================================================================
---- busybox-1.22.1.orig/networking/udhcp/dhcpc.c
-+++ busybox-1.22.1/networking/udhcp/dhcpc.c
-@@ -659,10 +659,10 @@ static void add_client_options(struct dh
+--- a/networking/udhcp/dhcpc.c
++++ b/networking/udhcp/dhcpc.c
+@@ -663,10 +663,10 @@ static void add_client_options(struct dh
   * client reverts to using the IP broadcast address.
   */
  
   * client reverts to using the IP broadcast address.
   */
  
@@ -15,7 +13,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
                /*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR,
                client_config.ifindex);
  }
                /*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR,
                client_config.ifindex);
  }
-@@ -673,7 +673,7 @@ static int bcast_or_ucast(struct dhcp_pa
+@@ -677,7 +677,7 @@ static int bcast_or_ucast(struct dhcp_pa
                return udhcp_send_kernel_packet(packet,
                        ciaddr, CLIENT_PORT,
                        server, SERVER_PORT);
                return udhcp_send_kernel_packet(packet,
                        ciaddr, CLIENT_PORT,
                        server, SERVER_PORT);
@@ -24,7 +22,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
  }
  
  /* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
  }
  
  /* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
-@@ -701,7 +701,7 @@ static NOINLINE int send_discover(uint32
+@@ -705,7 +705,7 @@ static NOINLINE int send_discover(uint32
  
        if (msgs++ < 3)
        bb_info_msg("Sending discover...");
  
        if (msgs++ < 3)
        bb_info_msg("Sending discover...");
@@ -33,7 +31,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
  }
  
  /* Broadcast a DHCP request message */
  }
  
  /* Broadcast a DHCP request message */
-@@ -745,7 +745,7 @@ static NOINLINE int send_select(uint32_t
+@@ -749,7 +749,7 @@ static NOINLINE int send_select(uint32_t
  
        addr.s_addr = requested;
        bb_info_msg("Sending select for %s...", inet_ntoa(addr));
  
        addr.s_addr = requested;
        bb_info_msg("Sending select for %s...", inet_ntoa(addr));
@@ -42,7 +40,7 @@ Index: busybox-1.22.1/networking/udhcp/dhcpc.c
  }
  
  /* Unicast or broadcast a DHCP renew message */
  }
  
  /* Unicast or broadcast a DHCP renew message */
-@@ -813,7 +813,7 @@ static NOINLINE int send_decline(/*uint3
+@@ -817,7 +817,7 @@ static NOINLINE int send_decline(/*uint3
        udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server);
  
        bb_info_msg("Sending decline...");
        udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server);
  
        bb_info_msg("Sending decline...");
index 1f6c92edadd1e8edf797d8953857cdc036c923c5..4da61447fed75c8f0d35db324e282976980c3fb5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/applets.src.h
 +++ b/include/applets.src.h
 --- a/include/applets.src.h
 +++ b/include/applets.src.h
-@@ -255,6 +255,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO
+@@ -254,6 +254,7 @@ IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DRO
  IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
  IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
  IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
  IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
  IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
  IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -10,7 +10,7 @@
  IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
 --- a/networking/Config.src
 +++ b/networking/Config.src
  IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
 --- a/networking/Config.src
 +++ b/networking/Config.src
-@@ -620,6 +620,12 @@ config FEATURE_IPCALC_LONG_OPTIONS
+@@ -619,6 +619,12 @@ config FEATURE_IPCALC_LONG_OPTIONS
        help
          Support long options for the ipcalc applet.
  
        help
          Support long options for the ipcalc applet.
  
index ce663b61f51247f4bf16697d0fa377b9246967a0..f42edcb0dee6222cae8a811cb05c5fb5a45ea178 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/applets.src.h
 +++ b/include/applets.src.h
 --- a/include/applets.src.h
 +++ b/include/applets.src.h
-@@ -212,6 +212,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, 
+@@ -211,6 +211,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, 
  IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
  IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
  IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
  IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
  IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP))
  IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
@@ -10,7 +10,7 @@
  IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
 --- a/miscutils/Config.src
 +++ b/miscutils/Config.src
  IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
 --- a/miscutils/Config.src
 +++ b/miscutils/Config.src
-@@ -419,6 +419,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
+@@ -385,6 +385,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
        help
          Enables the 'hdparm -d' option to get/set using_dma flag.
  
        help
          Enables the 'hdparm -d' option to get/set using_dma flag.
  
@@ -25,7 +25,7 @@
        default y
 --- a/miscutils/Kbuild.src
 +++ b/miscutils/Kbuild.src
        default y
 --- a/miscutils/Kbuild.src
 +++ b/miscutils/Kbuild.src
-@@ -29,6 +29,7 @@ lib-$(CONFIG_INOTIFYD)    += inotifyd.o
+@@ -28,6 +28,7 @@ lib-$(CONFIG_INOTIFYD)    += inotifyd.o
  lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
  lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
  lib-$(CONFIG_LESS)        += less.o
  lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
  lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
  lib-$(CONFIG_LESS)        += less.o
index d46a0e3f24b5c643289252ddc3eedd5db0eb71d7..1543e531733a56b5c025c319d208b4018f4407c0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/networking/ntpd.c
 +++ b/networking/ntpd.c
 --- a/networking/ntpd.c
 +++ b/networking/ntpd.c
-@@ -238,6 +238,7 @@ typedef struct {
+@@ -251,6 +251,7 @@ typedef struct {
  typedef struct {
        len_and_sockaddr *p_lsa;
        char             *p_dotted;
  typedef struct {
        len_and_sockaddr *p_lsa;
        char             *p_dotted;
@@ -8,7 +8,7 @@
        int              p_fd;
        int              datapoint_idx;
        uint32_t         lastpkt_refid;
        int              p_fd;
        int              datapoint_idx;
        uint32_t         lastpkt_refid;
-@@ -738,8 +739,9 @@ add_peers(char *s)
+@@ -756,8 +757,9 @@ add_peers(const char *s)
        peer_t *p;
  
        p = xzalloc(sizeof(*p));
        peer_t *p;
  
        p = xzalloc(sizeof(*p));
@@ -20,7 +20,7 @@
        p->p_fd = -1;
        p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3);
        p->next_action_time = G.cur_time; /* = set_next(p, 0); */
        p->p_fd = -1;
        p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3);
        p->next_action_time = G.cur_time; /* = set_next(p, 0); */
-@@ -788,6 +790,25 @@ send_query_to_peer(peer_t *p)
+@@ -806,6 +808,25 @@ send_query_to_peer(peer_t *p)
         *
         * Uncomment this and use strace to see it in action:
         */
         *
         * Uncomment this and use strace to see it in action:
         */