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_DEBUG_PESSIMIZE
bool
default n
+config BUSYBOX_DEFAULT_UNIT_TEST
+ bool
+ default n
config BUSYBOX_DEFAULT_WERROR
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_FEATURE_TR_EQUIV
bool
default n
+config BUSYBOX_DEFAULT_UNLINK
+ bool
+ default n
config BUSYBOX_DEFAULT_BASE64
bool
default n
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_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_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_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_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_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_BLOCKDEV
bool
default n
+config BUSYBOX_DEFAULT_FATATTR
+ bool
+ default n
config BUSYBOX_DEFAULT_FSTRIM
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_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_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_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_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_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_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_NTPD_SERVER
bool
default y
+config BUSYBOX_DEFAULT_FEATURE_NTPD_CONF
+ bool
+ default n
config BUSYBOX_DEFAULT_PSCAN
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_ASH_BUILTIN_TEST
bool
default y
+config BUSYBOX_DEFAULT_ASH_HELP
+ bool
+ default n
config BUSYBOX_DEFAULT_ASH_CMDCMD
bool
default y
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_MD5SUM:=337d1a15ab1cb1d4ed423168b1eb7d7e
+PKG_MD5SUM:=7925683d7dd105aabe9b6b618d48cc73
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam
PKG_BUILD_PARALLEL:=1
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
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> \
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
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
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
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
+ -F Same as -f, but keep retrying
config BUSYBOX_CONFIG_TEE
bool "tee"
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
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"
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
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
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
- 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
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
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
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
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
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
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
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
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
"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
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
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
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
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
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
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;
--- 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>
+++ /dev/null
---- 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) {
+++ /dev/null
---- 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 */
+++ /dev/null
---- 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 */
+++ /dev/null
---- 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)
+++ /dev/null
-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)
+++ /dev/null
-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;
- }
+++ /dev/null
---- 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)
--- 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;
/* 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);
--- 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;
--- 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 */
-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.
*/
/*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);
}
/* 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...");
}
/* 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));
}
/* 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...");
--- 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_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.
--- 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_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.
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
--- 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;
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));
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:
*/