diff options
28 files changed, 302 insertions, 116 deletions
diff --git a/package/busybox/Makefile b/package/busybox/Makefile index 97235fce72..823a6774a6 100644 --- a/package/busybox/Makefile +++ b/package/busybox/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=busybox -PKG_VERSION:=1.15.3 +PKG_VERSION:=1.16.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://www.busybox.net/downloads \ http://distfiles.gentoo.org/distfiles/ -PKG_MD5SUM:=6059ac9456de6fb18dc8ee4cd0ec9240 +PKG_MD5SUM:=319486ec65078d07fde26eb620fecde7 include $(INCLUDE_DIR)/package.mk diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in index 3beb0d12a0..f7ee7b3d41 100644 --- a/package/busybox/config/Config.in +++ b/package/busybox/config/Config.in @@ -29,6 +29,23 @@ config BUSYBOX_CONFIG_EXTRA_COMPAT some GNU extensions in libc. You probably only need this option if you plan to run busybox on desktop. +config BUSYBOX_CONFIG_INCLUDE_SUSv2 + bool "Enable obsolete features removed before SUSv3" + default y + help + This option will enable backwards compatibility with SuSv2, + specifically, old-style numeric options ('command -1 <file>') + will be supported in head, tail, and fold. (Note: should + affect renice too.) + +config BUSYBOX_CONFIG_USE_PORTABLE_CODE + bool "Avoid using GCC-specific code constructs" + default n + help + Use this option if you are trying to compile busybox with + compiler other than gcc. + If you do use gcc, this option may needlessly increase code size. + choice prompt "Buffer allocation policy" default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK @@ -502,17 +519,8 @@ config BUSYBOX_CONFIG_EFENCE endchoice -config BUSYBOX_CONFIG_INCLUDE_SUSv2 - bool "Enable obsolete features removed before SUSv3?" - default y - help - This option will enable backwards compatibility with SuSv2, - specifically, old-style numeric options ('command -1 <file>') - will be supported in head, tail, and fold. (Note: should - affect renice too.) - ### config PARSE -### bool "Uniform config file parser debugging applet: parse" +### bool "Uniform config file parser debugging applet: parse" endmenu diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in index 5103be4848..403a631dd1 100644 --- a/package/busybox/config/archival/Config.in +++ b/package/busybox/config/archival/Config.in @@ -165,6 +165,13 @@ config BUSYBOX_CONFIG_GZIP gzip is used to compress files. It's probably the most widely used UNIX compression program. +config BUSYBOX_CONFIG_FEATURE_GZIP_LONG_OPTIONS + bool "Enable long options" + default n + depends on BUSYBOX_CONFIG_GZIP && BUSYBOX_CONFIG_LONG_OPTS + help + Enable use of long options, increases size by about 106 Bytes + config BUSYBOX_CONFIG_LZOP bool "lzop" default n @@ -269,6 +276,14 @@ config BUSYBOX_CONFIG_FEATURE_TAR_UNAME_GNAME listings (-t) and preserving permissions when unpacking (-p). +200 bytes. +config BUSYBOX_CONFIG_FEATURE_TAR_NOPRESERVE_TIME + bool "Enable -m (do not preserve time) option" + default n + depends on BUSYBOX_CONFIG_TAR + help + With this option busybox supports GNU tar -m + (do not preserve time) option. + endif #tar config BUSYBOX_CONFIG_UNCOMPRESS diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in index 06e7874e2e..759d98dab7 100644 --- a/package/busybox/config/coreutils/Config.in +++ b/package/busybox/config/coreutils/Config.in @@ -52,6 +52,13 @@ config BUSYBOX_CONFIG_CHOWN chown is used to change the user and/or group ownership of files. +config BUSYBOX_CONFIG_FEATURE_CHOWN_LONG_OPTIONS + bool "Enable long options" + default n + depends on BUSYBOX_CONFIG_CHOWN && BUSYBOX_CONFIG_LONG_OPTS + help + Enable use of long options + config BUSYBOX_CONFIG_CHROOT bool "chroot" default y @@ -78,6 +85,14 @@ config BUSYBOX_CONFIG_CP help cp is used to copy files and directories. +config BUSYBOX_CONFIG_FEATURE_CP_LONG_OPTIONS + bool "Enable long options for cp" + default n + depends on BUSYBOX_CONFIG_CP && BUSYBOX_CONFIG_LONG_OPTS + help + Enable long options for cp. + Also add support for --parents option. + config BUSYBOX_CONFIG_CUT bool "cut" default y @@ -100,6 +115,22 @@ config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT 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 @@ -113,13 +144,22 @@ config BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING default y depends on BUSYBOX_CONFIG_DD help - sending a SIGUSR1 signal to a running `dd' process makes it + Sending a SIGUSR1 signal to a running `dd' process makes it print to standard error the number of records read and written so far, then to resume copying. $ dd if=/dev/zero of=/dev/null& $ pid=$! kill -USR1 $pid; sleep 1; kill $pid - 10899206+0 records in 10899206+0 records out + 10899206+0 records in + 10899206+0 records out + +config BUSYBOX_CONFIG_FEATURE_DD_THIRD_STATUS_LINE + bool "Enable the third status line upon signal" + default n + depends on BUSYBOX_CONFIG_DD && BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING + help + Displays a coreutils-like third status line with transferred bytes, + elapsed time and speed. config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS bool "Enable ibs, obs and conv options" @@ -829,13 +869,13 @@ config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE help Allow df, du, and ls to have human readable output. -comment "Common options for md5sum, sha1sum" - depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM +comment "Common options for md5sum, sha1sum, sha256sum, sha512sum" + depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK bool "Enable -c, -s and -w options" default y - depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM + depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM help Enabling the -c options allows files to be checked against pre-calculated hash values. diff --git a/package/busybox/config/editors/Config.in b/package/busybox/config/editors/Config.in index 9eb85bbb87..6175df72fc 100644 --- a/package/busybox/config/editors/Config.in +++ b/package/busybox/config/editors/Config.in @@ -35,13 +35,12 @@ config BUSYBOX_CONFIG_DIFF differences between them in a form that can be given to the patch command. -config BUSYBOX_CONFIG_FEATURE_DIFF_BINARY - bool "Enable checks for binary files" +config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS + bool "Enable long options" default n - depends on BUSYBOX_CONFIG_DIFF + depends on BUSYBOX_CONFIG_DIFF && BUSYBOX_CONFIG_LONG_OPTS help - This option enables support for checking for binary files - before a comparison is carried out. + Enable use of long options. config BUSYBOX_CONFIG_FEATURE_DIFF_DIR bool "Enable directory support" @@ -51,14 +50,6 @@ config BUSYBOX_CONFIG_FEATURE_DIFF_DIR This option enables support for directory and subdirectory comparison. -config BUSYBOX_CONFIG_FEATURE_DIFF_MINIMAL - bool "Enable -d option to find smaller sets of changes" - default n - depends on BUSYBOX_CONFIG_DIFF - help - Enabling this option allows the use of -d to make diff - try hard to find the smallest possible set of changes. - config BUSYBOX_CONFIG_ED bool "ed" default n diff --git a/package/busybox/config/findutils/Config.in b/package/busybox/config/findutils/Config.in index 32a213b468..80de398cd5 100644 --- a/package/busybox/config/findutils/Config.in +++ b/package/busybox/config/findutils/Config.in @@ -171,6 +171,13 @@ config BUSYBOX_CONFIG_FEATURE_FIND_CONTEXT help Support the 'find -context' option for matching security context. +config BUSYBOX_CONFIG_FEATURE_FIND_LINKS + bool "Enable -links: link count matching" + default n + depends on BUSYBOX_CONFIG_FIND + help + Support the 'find -links' option for matching number of links. + config BUSYBOX_CONFIG_GREP bool "grep" default y diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in index 8016ef0800..ec10715653 100644 --- a/package/busybox/config/libbb/Config.in +++ b/package/busybox/config/libbb/Config.in @@ -111,7 +111,7 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL current cursor position. This information is used to make line editing more robust in some cases. If you are not sure whether your terminals respond to this code - correctly, or want to save on code size (about 300 bytes), + correctly, or want to save on code size (about 400 bytes), then do not turn this option on. config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP @@ -134,9 +134,8 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE $ cp file /vmlinuz/file cp: cannot stat '/vmlinuz/file': Path has non-directory component If this feature is not enabled, they will be, respectively: - cp: cannot remove '/does_not_exist/file': No such file or directory + cp: cannot create '/does_not_exist/file': No such file or directory cp: cannot stat '/vmlinuz/file': Not a directory - respectively. This will cost you ~60 bytes. config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in index 9dce72ebd5..9d4a3700a1 100644 --- a/package/busybox/config/miscutils/Config.in +++ b/package/busybox/config/miscutils/Config.in @@ -137,11 +137,11 @@ config BUSYBOX_CONFIG_FEATURE_CROND_D -d sets loglevel to 0 (most verbose) and directs all output to stderr. config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL - bool "Using /usr/sbin/sendmail?" + bool "Report command output via email (using sendmail)" default n depends on BUSYBOX_CONFIG_CROND help - Support calling /usr/sbin/sendmail for send cmd outputs. + Command output will be sent to corresponding user via email. config BUSYBOX_CONFIG_FEATURE_CROND_DIR string "crond spool directory" @@ -272,6 +272,13 @@ config BUSYBOX_CONFIG_FBSPLASH "NN" (ASCII decimal number) - percentage to show on progress bar "exit" - well you guessed it +config BUSYBOX_CONFIG_FLASHCP + bool "flashcp" + default n + help + The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7. + This utility is used to copy images into a MTD device. + config BUSYBOX_CONFIG_FLASH_LOCK bool "flash_lock" default n @@ -618,6 +625,12 @@ config BUSYBOX_CONFIG_VOLNAME help Prints a CD-ROM volume name. +config BUSYBOX_CONFIG_WALL + bool "wall" + default n + help + Write a message to all users that are logged in. + config BUSYBOX_CONFIG_WATCHDOG bool "watchdog" default y diff --git a/package/busybox/config/modutils/Config.in b/package/busybox/config/modutils/Config.in index 9ec54b1e92..db515b547e 100644 --- a/package/busybox/config/modutils/Config.in +++ b/package/busybox/config/modutils/Config.in @@ -121,6 +121,22 @@ config BUSYBOX_CONFIG_FEATURE_2_4_MODULES This increases size considerably. Say N unless you plan to run ancient kernels. +config BUSYBOX_CONFIG_FEATURE_INSMOD_TRY_MMAP + bool "Try to load module from a mmap'ed area" + default n + depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE_SMALL + help + This option causes module loading code to try to mmap + module first. If it does not work (for example, + it does not work for compressed modules), module will be read + (and unpacked if needed) into a memory block allocated by malloc. + + The only case when mmap works but malloc does not is when + you are trying to load a big module on a very memory-constrained + machine. Malloc will momentarily need 2x as much memory as mmap. + + Choosing N saves about 250 bytes of code (on 32-bit x86). + config BUSYBOX_CONFIG_FEATURE_INSMOD_VERSION_CHECKING bool "Enable module version checking" default n diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in index 77a7b07c31..99a8eddca2 100644 --- a/package/busybox/config/networking/Config.in +++ b/package/busybox/config/networking/Config.in @@ -117,6 +117,17 @@ config BUSYBOX_CONFIG_FEATURE_FTP_WRITE help Enable all kinds of FTP upload commands (-w option) +config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST + bool "Enable workaround for RFC-violating clients" + 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. + 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. + config BUSYBOX_CONFIG_FTPGET bool "ftpget" default n @@ -667,6 +678,20 @@ config BUSYBOX_CONFIG_NSLOOKUP help nslookup is a tool to query Internet name servers. +config BUSYBOX_CONFIG_NTPD + bool "ntpd" + default n + help + The NTP client/server daemon. + +config BUSYBOX_CONFIG_FEATURE_NTPD_SERVER + bool "Make ntpd usable as a NTP server" + default n + depends on BUSYBOX_CONFIG_NTPD + help + Make ntpd usable as a NTP server. If you disable this option + ntpd will be usable only as a NTP client. + config BUSYBOX_CONFIG_PING bool "ping" default y @@ -794,6 +819,27 @@ config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE help Selecting this will make telnetd able to run standalone. +config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD_WAIT + bool "Support -w SEC option (inetd wait mode)" + default n + depends on BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE + help + This option allows you to run telnetd in "inet wait" mode. + Example inetd.conf line (note "wait", not usual "nowait"): + + telnet stream tcp wait root /bin/telnetd telnetd -w10 + + In this example, inetd passes _listening_ socket_ as fd 0 + to telnetd when connection appears. + telnetd will wait for connections until all existing + connections are closed, and no new connections + appear during 10 seconds. Then it exits, and inetd continues + to listen for new connections. + + This option is rarely used. "tcp nowait" is much more usual + way of running tcp services, including telnetd. + You most probably want to say N here. + config BUSYBOX_CONFIG_TFTP bool "tftp" default n @@ -831,12 +877,19 @@ config BUSYBOX_CONFIG_FEATURE_TFTP_PUT Also enable download support in tftpd, if tftpd is selected. config BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE - bool "Enable \"blksize\" protocol option" + bool "Enable 'blksize' and 'tsize' protocol options" default n depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD help Allow tftp to specify block size, and tftpd to understand - "blksize" option. + "blksize" and "tsize" options. + +config BUSYBOX_CONFIG_FEATURE_TFTP_PROGRESS_BAR + bool "Enable tftp progress meter" + default n + depends on BUSYBOX_CONFIG_TFTP && BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE + help + Show progress bar. config BUSYBOX_CONFIG_TFTP_DEBUG bool "Enable debug" @@ -852,6 +905,13 @@ config BUSYBOX_CONFIG_TRACEROUTE help Utility to trace the route of IP packets. +config BUSYBOX_CONFIG_TRACEROUTE6 + bool "traceroute6" + default n + depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_TRACEROUTE + help + Utility to trace the route of IPv6 packets. + config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE bool "Enable verbose output" default y @@ -880,7 +940,7 @@ source package/busybox/config/networking/udhcp/Config.in config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS string "ifup udhcpc command line options" default "-R -n" - depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_APP_UDHCPC + depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC help Command line options to pass to udhcpc from ifup. Intended to alter options not available in /etc/network/interfaces. diff --git a/package/busybox/config/networking/udhcp/Config.in b/package/busybox/config/networking/udhcp/Config.in index 22156232f9..2597f72ca8 100644 --- a/package/busybox/config/networking/udhcp/Config.in +++ b/package/busybox/config/networking/udhcp/Config.in @@ -3,26 +3,26 @@ # see scripts/kbuild/config-language.txt. # -config BUSYBOX_CONFIG_APP_UDHCPD +config BUSYBOX_CONFIG_UDHCPD bool "udhcp server (udhcpd)" default n help udhcpd is a DHCP server geared primarily toward embedded systems, while striving to be fully functional and RFC compliant. -config BUSYBOX_CONFIG_APP_DHCPRELAY +config BUSYBOX_CONFIG_DHCPRELAY bool "dhcprelay" default n - depends on BUSYBOX_CONFIG_APP_UDHCPD + depends on BUSYBOX_CONFIG_UDHCPD help dhcprelay listens for dhcp requests on one or more interfaces and forwards these requests to a different interface or dhcp server. -config BUSYBOX_CONFIG_APP_DUMPLEASES +config BUSYBOX_CONFIG_DUMPLEASES bool "Lease display utility (dumpleases)" default n - depends on BUSYBOX_CONFIG_APP_UDHCPD + depends on BUSYBOX_CONFIG_UDHCPD help dumpleases displays the leases written out by the udhcpd server. Lease times are stored in the file by time remaining in lease, or @@ -31,7 +31,7 @@ config BUSYBOX_CONFIG_APP_DUMPLEASES config BUSYBOX_CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY bool "Rewrite the lease file at every new acknowledge" default n - depends on BUSYBOX_CONFIG_APP_UDHCPD + depends on BUSYBOX_CONFIG_UDHCPD help If selected, udhcpd will write a new file with leases every time a new lease has been accepted, thus eliminating the need @@ -41,12 +41,12 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY config BUSYBOX_CONFIG_DHCPD_LEASES_FILE string "Absolute path to lease file" default "/var/run/udhcpd.leases" - depends on BUSYBOX_CONFIG_APP_UDHCPD + depends on BUSYBOX_CONFIG_UDHCPD help udhcpd stores addresses in a lease file. This is the absolute path of the file. Normally it is safe to leave it untouched. -config BUSYBOX_CONFIG_APP_UDHCPC +config BUSYBOX_CONFIG_UDHCPC bool "udhcp client (udhcpc)" default y help @@ -59,7 +59,7 @@ config BUSYBOX_CONFIG_APP_UDHCPC config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING bool "Verify that the offered address is free, using ARP ping" default n - depends on BUSYBOX_CONFIG_APP_UDHCPC + depends on BUSYBOX_CONFIG_UDHCPC help If selected, udhcpc will send ARP probes and make sure the offered address is really not in use by anyone. The client @@ -69,7 +69,7 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT bool "Enable '-P port' option for udhcpd and udhcpc" default n - depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC + depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC help At the cost of ~300 bytes, enables -P port option. This feature is typically not needed. @@ -78,7 +78,7 @@ config BUSYBOX_CONFIG_UDHCP_DEBUG int "Maximum verbosity level for udhcp applets (0..9)" default 0 range 0 9 - depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC || BUSYBOX_CONFIG_APP_DHCPRELAY + depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_DHCPRELAY help Verbosity can be increased with multiple -v options. This options controls how high it can be cranked up. @@ -89,7 +89,7 @@ config BUSYBOX_CONFIG_UDHCP_DEBUG config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397 bool "Support for RFC3397 domain search (experimental)" default y - depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC + 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. @@ -97,7 +97,7 @@ config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397 config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT string "Absolute path to config script" default "/usr/share/udhcpc/default.script" - depends on BUSYBOX_CONFIG_APP_UDHCPC + depends on BUSYBOX_CONFIG_UDHCPC help This script is called after udhcpc receives an answer. See examples/udhcp for a working example. Normally it is safe @@ -107,7 +107,7 @@ config BUSYBOX_CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS int "DHCP options slack buffer size" default 80 range 0 924 - depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC + depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC help Some buggy DHCP servers send DHCP offer packets with option field larger than we expect (which might also be considered a diff --git a/package/busybox/config/procps/Config.in b/package/busybox/config/procps/Config.in index bd21cb377f..2bac03891d 100644 --- a/package/busybox/config/procps/Config.in +++ b/package/busybox/config/procps/Config.in @@ -188,6 +188,13 @@ config BUSYBOX_CONFIG_FEATURE_TOPMEM help Enable 's' in top (gives lots of memory info). +config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS + bool "Support for showing threads in ps/top" + default n + depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP + help + Enables ps -T option and 'h' command in top + config BUSYBOX_CONFIG_UPTIME bool "uptime" default y @@ -203,5 +210,4 @@ config BUSYBOX_CONFIG_WATCH watch is used to execute a program periodically, showing output to the screen. - endmenu diff --git a/package/busybox/config/shell/Config.in b/package/busybox/config/shell/Config.in index 6ff3e3df41..5d492e2399 100644 --- a/package/busybox/config/shell/Config.in +++ b/package/busybox/config/shell/Config.in @@ -15,6 +15,7 @@ choice 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 @@ -36,6 +37,7 @@ endchoice config BUSYBOX_CONFIG_ASH bool "ash" default y + depends on !BUSYBOX_CONFIG_NOMMU help Tha 'ash' shell adds about 60k in the default configuration and is the most complete and most pedantically correct shell included with @@ -57,23 +59,6 @@ config BUSYBOX_CONFIG_ASH_JOB_CONTROL help Enable job control in the ash shell. -config BUSYBOX_CONFIG_ASH_READ_NCHARS - bool "'read -n N' and 'read -s' support" - default n - depends on BUSYBOX_CONFIG_ASH - help - 'read -n N' will return a value after N characters have been read. - 'read -s' will read without echoing the user's input. - -config BUSYBOX_CONFIG_ASH_READ_TIMEOUT - bool "'read -t S' support" - default y - depends on BUSYBOX_CONFIG_ASH - help - 'read -t S' will return a value after S seconds have passed. - This implementation will allow fractional seconds, expressed - as a decimal fraction, e.g. 'read -t 2.5 foo'. - config BUSYBOX_CONFIG_ASH_ALIAS bool "alias support" default y @@ -187,7 +172,7 @@ config BUSYBOX_CONFIG_HUSH_INTERACTIVE help Enable interactive mode (prompt and command editing). Without this, hush simply reads and executes commands - from stdin just like a shell script from the file. + from stdin just like a shell script from a file. No prompt, no PS1/PS2 magic shell variables. config BUSYBOX_CONFIG_HUSH_JOB @@ -250,6 +235,14 @@ config BUSYBOX_CONFIG_HUSH_EXPORT_N help Enable support for export '-n' option in hush. It is a bash extension. +config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT + bool "Pseudorandom generator and $RANDOM variable" + default n + depends on BUSYBOX_CONFIG_HUSH + help + Enable pseudorandom generator and dynamic variable "$RANDOM". + Each read of "$RANDOM" will generate a new pseudorandom value. + config BUSYBOX_CONFIG_LASH bool "lash (deprecated: aliased to hush)" default n diff --git a/package/busybox/config/util-linux/Config.in b/package/busybox/config/util-linux/Config.in index 9d5462b26a..ef3c1c3e1f 100644 --- a/package/busybox/config/util-linux/Config.in +++ b/package/busybox/config/util-linux/Config.in @@ -213,6 +213,12 @@ config BUSYBOX_CONFIG_FSCK_MINIX check for and attempt to repair any corruption that occurs to a minix filesystem. +config BUSYBOX_CONFIG_MKFS_EXT2 + bool "mkfs_ext2" + default n + help + Utility to create EXT2 filesystems. + config BUSYBOX_CONFIG_MKFS_MINIX bool "mkfs_minix" default n @@ -233,6 +239,12 @@ config BUSYBOX_CONFIG_FEATURE_MINIX2 this. If you enabled 'mkfs_minix' then you almost certainly want to be using the version 2 filesystem support. +config BUSYBOX_CONFIG_MKFS_REISER + bool "mkfs_reiser" + default n + help + Utility to create ReiserFS filesystems. + config BUSYBOX_CONFIG_MKFS_VFAT bool "mkfs_vfat" default n @@ -336,6 +348,24 @@ config BUSYBOX_CONFIG_LOSETUP file or block device, and to query the status of a loop device. This version does not currently support enabling data encryption. +config BUSYBOX_CONFIG_LSPCI + bool "lspci" + default n + help + lspci is a utility for displaying information about PCI buses in the + system and devices connected to them. + + This version uses sysfs (/sys/bus/pci/devices) only. + +config BUSYBOX_CONFIG_LSUSB + bool "lsusb" + default n + help + lsusb is a utility for displaying information about USB buses in the + system and devices connected to them. + + This version uses sysfs (/sys/bus/usb/devices) only. + config BUSYBOX_CONFIG_MDEV bool "mdev" default n @@ -445,6 +475,13 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT help TODO +config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS + bool "btrfs filesystem" + default n + depends on BUSYBOX_CONFIG_VOLUMEID + help + TODO + config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS bool "Reiser filesystem" default n @@ -689,6 +726,7 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL help This allows for specifying a device by label or uuid, rather than by name. This feature utilizes the same functionality as blkid/findfs. + This also enables label or uuid support for swapon. config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS bool "Support mounting NFS file systems" diff --git a/package/busybox/patches/000-autoconf.patch b/package/busybox/patches/000-autoconf.patch index d0a6f61270..54f61c4323 100644 --- a/package/busybox/patches/000-autoconf.patch +++ b/package/busybox/patches/000-autoconf.patch @@ -1,12 +1,12 @@ --- a/applets/Kbuild +++ b/applets/Kbuild -@@ -27,13 +27,13 @@ HOSTCFLAGS_usage.o = -I$(srctree_slash)i - +@@ -28,13 +28,13 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla applets/applets.o: include/usage_compressed.h include/applet_tables.h --applets/usage: .config $(srctree_slash)applets/usage_compressed -+applets/usage: .config $(srctree_slash)applets/usage_compressed include/autoconf.h - applets/applet_tables: .config + applets/applet_tables: .config $(srctree_slash)include/applets.h +-applets/usage: .config $(srctree_slash)include/applets.h ++applets/usage: .config $(srctree_slash)include/applets.h include/autoconf.h + applets/usage_pod: .config include/applet_tables.h $(srctree_slash)include/applets.h quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets diff --git a/package/busybox/patches/001-init_avoid_loop_opening_tty.patch b/package/busybox/patches/001-init_avoid_loop_opening_tty.patch index 8f0ef1fc0a..6cf410df08 100644 --- a/package/busybox/patches/001-init_avoid_loop_opening_tty.patch +++ b/package/busybox/patches/001-init_avoid_loop_opening_tty.patch @@ -1,6 +1,6 @@ --- a/init/init.c +++ b/init/init.c -@@ -451,8 +451,11 @@ static void run_actions(int action_type) +@@ -456,8 +456,11 @@ static void run_actions(int action_type) /* Only run stuff with pid == 0. If pid != 0, * it is already running */ diff --git a/package/busybox/patches/110-wget_getopt_fix.patch b/package/busybox/patches/110-wget_getopt_fix.patch index 617679eab3..501f608484 100644 --- a/package/busybox/patches/110-wget_getopt_fix.patch +++ b/package/busybox/patches/110-wget_getopt_fix.patch @@ -1,6 +1,6 @@ --- a/networking/wget.c +++ b/networking/wget.c -@@ -653,7 +653,7 @@ int wget_main(int argc UNUSED_PARAM, cha +@@ -543,7 +543,7 @@ int wget_main(int argc UNUSED_PARAM, cha // "tries\0" Required_argument "t" // "timeout\0" Required_argument "T" /* Ignored (we always use PASV): */ @@ -8,4 +8,4 @@ + "passive-ftp\0" No_argument "\xfd" "header\0" Required_argument "\xfe" "post-data\0" Required_argument "\xfd" - ; + /* Ignored (we don't do ssl) */ diff --git a/package/busybox/patches/250-ash_export-n.patch b/package/busybox/patches/250-ash_export-n.patch index 92b198ce57..c4bac4166e 100644 --- a/package/busybox/patches/250-ash_export-n.patch +++ b/package/busybox/patches/250-ash_export-n.patch @@ -1,6 +1,6 @@ --- a/shell/ash.c +++ b/shell/ash.c -@@ -12351,8 +12351,17 @@ exportcmd(int argc UNUSED_PARAM, char ** +@@ -12340,8 +12340,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) { -@@ -12364,10 +12373,12 @@ exportcmd(int argc UNUSED_PARAM, char ** +@@ -12353,10 +12362,12 @@ exportcmd(int argc UNUSED_PARAM, char ** vp = *findvar(hashvar(name), name); if (vp) { vp->flags |= flag; diff --git a/package/busybox/patches/300-netmsg.patch b/package/busybox/patches/300-netmsg.patch index aba146872c..08e77ab471 100644 --- a/package/busybox/patches/300-netmsg.patch +++ b/package/busybox/patches/300-netmsg.patch @@ -1,6 +1,6 @@ --- a/include/applets.h +++ b/include/applets.h -@@ -278,6 +278,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D +@@ -282,6 +282,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D 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_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP)) --- a/include/usage.h +++ b/include/usage.h -@@ -3101,6 +3101,9 @@ +@@ -3166,6 +3166,9 @@ #endif @@ -22,7 +22,7 @@ #define netstat_full_usage "\n\n" \ --- a/networking/Config.in +++ b/networking/Config.in -@@ -617,6 +617,12 @@ config NC +@@ -628,6 +628,12 @@ config NC A simple Unix utility which reads and writes data across network connections. @@ -44,7 +44,7 @@ +lib-$(CONFIG_NETMSG) += netmsg.o lib-$(CONFIG_NETSTAT) += netstat.o lib-$(CONFIG_NSLOOKUP) += nslookup.o - lib-$(CONFIG_PING) += ping.o + lib-$(CONFIG_NTPD) += ntpd.o --- /dev/null +++ b/networking/netmsg.c @@ -0,0 +1,63 @@ diff --git a/package/busybox/patches/310-passwd_access.patch b/package/busybox/patches/310-passwd_access.patch index 6ab6d4b8c4..fef9d3a7a8 100644 --- a/package/busybox/patches/310-passwd_access.patch +++ b/package/busybox/patches/310-passwd_access.patch @@ -3,7 +3,7 @@ --- a/networking/httpd.c +++ b/networking/httpd.c -@@ -1699,21 +1699,32 @@ static int check_user_passwd(const char +@@ -1716,21 +1716,32 @@ static int check_user_passwd(const char if (ENABLE_FEATURE_HTTPD_AUTH_MD5) { char *md5_passwd; diff --git a/package/busybox/patches/340-lock_util.patch b/package/busybox/patches/340-lock_util.patch index 3e90558622..05cf7e09a3 100644 --- a/package/busybox/patches/340-lock_util.patch +++ b/package/busybox/patches/340-lock_util.patch @@ -1,6 +1,6 @@ --- a/include/applets.h +++ b/include/applets.h -@@ -233,6 +233,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN, +@@ -234,6 +234,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)) @@ -10,7 +10,7 @@ IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname)) --- a/include/usage.h +++ b/include/usage.h -@@ -2325,6 +2325,9 @@ +@@ -2357,6 +2357,9 @@ #define loadkmap_example_usage \ "$ loadkmap < /etc/i18n/lang-keymap\n" @@ -22,7 +22,7 @@ #define logger_full_usage "\n\n" \ --- a/miscutils/Config.in +++ b/miscutils/Config.in -@@ -456,6 +456,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA +@@ -463,6 +463,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA help Enables the 'hdparm -d' option to get/set using_dma flag. @@ -36,7 +36,7 @@ default n --- a/miscutils/Kbuild +++ b/miscutils/Kbuild -@@ -26,6 +26,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o +@@ -27,6 +27,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 diff --git a/package/busybox/patches/350-httpd_redir.patch b/package/busybox/patches/350-httpd_redir.patch index 3d3e041ce8..bbb8eb4aab 100644 --- a/package/busybox/patches/350-httpd_redir.patch +++ b/package/busybox/patches/350-httpd_redir.patch @@ -1,6 +1,6 @@ --- a/include/usage.h +++ b/include/usage.h -@@ -1693,6 +1693,7 @@ +@@ -1727,6 +1727,7 @@ IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \ " [-h HOME]\n" \ "or httpd -d/-e" IF_FEATURE_HTTPD_AUTH_MD5("/-m") " STRING" @@ -8,18 +8,18 @@ #define httpd_full_usage "\n\n" \ "Listen for incoming HTTP requests\n" \ "\nOptions:" \ -@@ -1710,6 +1711,8 @@ +@@ -1744,6 +1745,8 @@ "\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" \ ++ "\n -R PATH Redirect target path" \ ++ "\n -H HOST Redirect target host" \ #define hwclock_trivial_usage \ IF_FEATURE_HWCLOCK_LONG_OPTIONS( \ --- a/networking/httpd.c +++ b/networking/httpd.c -@@ -248,6 +248,8 @@ struct globals { +@@ -250,6 +250,8 @@ struct globals { const char *found_mime_type; const char *found_moved_temporarily; @@ -28,7 +28,7 @@ Htaccess_IP *ip_a_d; /* config allow/deny lines */ IF_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;) -@@ -294,6 +296,8 @@ struct globals { +@@ -296,6 +298,8 @@ struct globals { #define index_page (G.index_page ) #define found_mime_type (G.found_mime_type ) #define found_moved_temporarily (G.found_moved_temporarily) @@ -37,7 +37,7 @@ #define last_mod (G.last_mod ) #define ip_a_d (G.ip_a_d ) #define g_realm (G.g_realm ) -@@ -993,8 +997,11 @@ static void send_headers(int responseNum +@@ -997,8 +1001,11 @@ static void send_headers(int responseNum } #endif if (responseNum == HTTP_MOVED_TEMPORARILY) { @@ -50,7 +50,7 @@ (g_query ? "?" : ""), (g_query ? g_query : "")); } -@@ -1924,8 +1931,12 @@ static void handle_incoming_and_exit(con +@@ -1941,8 +1948,12 @@ static void handle_incoming_and_exit(con } while (*++tptr); *++urlp = '\0'; /* terminate after last character */ @@ -61,10 +61,10 @@ /* If URL is a directory, add '/' */ - if (urlp[-1] != '/') { + if (!redirect_path && (urlp[-1] != '/')) { - if (is_directory(urlcopy + 1, 1, &sb)) { + if (is_directory(urlcopy + 1, 1, NULL)) { found_moved_temporarily = urlcopy; } -@@ -2266,7 +2277,9 @@ static void sighup_handler(int sig UNUSE +@@ -2283,7 +2294,9 @@ static void sighup_handler(int sig UNUSE } enum { @@ -75,7 +75,7 @@ d_opt_decode_url, h_opt_home_httpd, IF_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,) -@@ -2315,12 +2328,13 @@ int httpd_main(int argc UNUSED_PARAM, ch +@@ -2332,12 +2345,13 @@ int httpd_main(int argc UNUSED_PARAM, ch /* We do not "absolutize" path given by -h (home) opt. * If user gives relative path in -h, * $SCRIPT_FILENAME will not be set. */ diff --git a/package/busybox/patches/410-httpd_cgi_headers.patch b/package/busybox/patches/410-httpd_cgi_headers.patch index 2f464608f1..74baa7ab92 100644 --- a/package/busybox/patches/410-httpd_cgi_headers.patch +++ b/package/busybox/patches/410-httpd_cgi_headers.patch @@ -1,6 +1,6 @@ --- a/networking/httpd.c +++ b/networking/httpd.c -@@ -1250,10 +1250,10 @@ static NOINLINE void cgi_io_loop_and_exi +@@ -1254,10 +1254,10 @@ static NOINLINE void cgi_io_loop_and_exi if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1) break; } diff --git a/package/busybox/patches/440-httpd_chdir.patch b/package/busybox/patches/440-httpd_chdir.patch index 0abea5dc3b..56f5bb68c5 100644 --- a/package/busybox/patches/440-httpd_chdir.patch +++ b/package/busybox/patches/440-httpd_chdir.patch @@ -1,6 +1,6 @@ --- a/networking/httpd.c +++ b/networking/httpd.c -@@ -1810,6 +1810,7 @@ static void handle_incoming_and_exit(con +@@ -1827,6 +1827,7 @@ static void handle_incoming_and_exit(con char *header_ptr = header_ptr; Htaccess_Proxy *proxy_entry; #endif diff --git a/package/busybox/patches/470-insmod_search.patch b/package/busybox/patches/470-insmod_search.patch index 022ca24e6a..6f2da661bf 100644 --- a/package/busybox/patches/470-insmod_search.patch +++ b/package/busybox/patches/470-insmod_search.patch @@ -119,7 +119,7 @@ } --- a/modutils/Config.in +++ b/modutils/Config.in -@@ -210,7 +210,7 @@ config FEATURE_MODUTILS_SYMBOLS +@@ -226,7 +226,7 @@ config FEATURE_MODUTILS_SYMBOLS config DEFAULT_MODULES_DIR string "Default directory containing modules" default "/lib/modules" diff --git a/package/busybox/patches/480-mount_union.patch b/package/busybox/patches/480-mount_union.patch index e520d781b2..b9eee8cb63 100644 --- a/package/busybox/patches/480-mount_union.patch +++ b/package/busybox/patches/480-mount_union.patch @@ -1,7 +1,7 @@ --- a/util-linux/mount.c +++ b/util-linux/mount.c -@@ -69,6 +69,10 @@ - #define MS_DIRSYNC 128 // Directory modifications are synchronous +@@ -77,6 +77,10 @@ + # include <rpc/pmap_clnt.h> #endif +#ifndef MS_UNION @@ -11,7 +11,7 @@ #if defined(__dietlibc__) // 16.12.2006, Sampo Kellomaki (sampo@iki.fi) -@@ -185,6 +189,7 @@ static const int32_t mount_options[] = { +@@ -194,6 +198,7 @@ static const int32_t mount_options[] = { /* "rslave" */ MS_SLAVE|MS_RECURSIVE, /* "rprivate" */ MS_SLAVE|MS_RECURSIVE, /* "runbindable" */ MS_UNBINDABLE|MS_RECURSIVE, @@ -19,7 +19,7 @@ ) // Always understood. -@@ -239,6 +244,7 @@ static const char mount_option_str[] = +@@ -249,6 +254,7 @@ static const char mount_option_str[] = "rslave\0" "rprivate\0" "runbindable\0" diff --git a/package/busybox/patches/510-awk_include.patch b/package/busybox/patches/510-awk_include.patch index b9d7d7137e..eda5beee9d 100644 --- a/package/busybox/patches/510-awk_include.patch +++ b/package/busybox/patches/510-awk_include.patch @@ -15,7 +15,7 @@ } func; /* I/O stream */ -@@ -1420,7 +1425,8 @@ static void parse_program(char *p) +@@ -1424,7 +1429,8 @@ static void parse_program(char *p) next_token(TC_FUNCTION); g_pos++; f = newfunc(t_string); @@ -25,7 +25,7 @@ f->nargs = 0; while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) { v = findvar(ahash, t_string); -@@ -1429,7 +1435,7 @@ static void parse_program(char *p) +@@ -1433,7 +1439,7 @@ static void parse_program(char *p) if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM) break; } @@ -34,7 +34,7 @@ chain_group(); clear_array(ahash); -@@ -2410,7 +2416,8 @@ static var *evaluate(node *op, var *res) +@@ -2446,7 +2452,8 @@ static var *evaluate(node *op, var *res) break; case XC( OC_FUNC ): @@ -43,8 +43,8 @@ + !op->r.f->x.body.first) syntax_error(EMSG_UNDEF_FUNC); - X.v = R.v = nvalloc(op->r.f->nargs+1); -@@ -2427,7 +2434,10 @@ static var *evaluate(node *op, var *res) + X.v = R.v = nvalloc(op->r.f->nargs + 1); +@@ -2463,7 +2470,10 @@ static var *evaluate(node *op, var *res) fnargs = X.v; L.s = g_progname; @@ -56,7 +56,7 @@ g_progname = L.s; nvfree(fnargs); -@@ -2790,6 +2800,143 @@ static rstream *next_input_file(void) +@@ -2829,6 +2839,143 @@ static rstream *next_input_file(void) #undef files_happen } @@ -200,7 +200,7 @@ int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int awk_main(int argc, char **argv) { -@@ -2855,6 +3002,9 @@ int awk_main(int argc, char **argv) +@@ -2894,6 +3041,9 @@ int awk_main(int argc, char **argv) *s1 = '='; } } diff --git a/package/busybox/patches/902-telnetd_intr.patch b/package/busybox/patches/902-telnetd_intr.patch index 92a2d4725c..1e3e6bf2fc 100644 --- a/package/busybox/patches/902-telnetd_intr.patch +++ b/package/busybox/patches/902-telnetd_intr.patch @@ -1,6 +1,6 @@ --- a/networking/telnetd.c +++ b/networking/telnetd.c -@@ -306,6 +306,7 @@ make_new_session( +@@ -308,6 +308,7 @@ make_new_session( /* Restore default signal handling ASAP */ bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL); |