diff options
authorDenys Vlasenko <>2011-08-13 07:24:33 (GMT)
committerDenys Vlasenko <>2011-08-13 07:24:33 (GMT)
commit688261b45f3c4b9a2cbbdeb29d460e93aad0f225 (patch)
parentd7fa9eab0400c9d6292b56bc5d03726cddb38f1c (diff)
Announce 1.19.0
Signed-off-by: Denys Vlasenko <>
2 files changed, 373 insertions, 5 deletions
diff --git a/FAQ.html b/FAQ.html
index a0b036d..70c10b2 100644
--- a/FAQ.html
+++ b/FAQ.html
@@ -761,7 +761,7 @@ int main(int argc, char *argv)
Job control will be turned off since your shell can not obtain a controlling
terminal. This typically happens when you run your shell on /dev/console.
The kernel will not provide a controlling terminal on the /dev/console
- device. You should run your shell on a normal tty such as tty1 or ttyS0
+ device. Your should run your shell on a normal tty such as tty1 or ttyS0
and everything will work.
diff --git a/news.html b/news.html
index 6130c5a..d134198 100644
--- a/news.html
+++ b/news.html
@@ -30,6 +30,374 @@
+ <li><b>13 August 2011 -- BusyBox 1.19.0 (unstable)</b>
+ <p><a href="">BusyBox 1.19.0</a>.
+ (<a href="">git</a>,
+ <a href="">patches</a>,
+ <a href="">how to add a patch</a>)</p>
+ <p>Sizes of busybox-1.18.5 and busybox-1.19.0 (with equivalent config, static uclibc build):<pre>
+ text data bss dec hex filename
+ 837577 493 7516 845586 ce712 busybox-1.18.5/busybox
+ 839598 493 7508 847599 ceeef busybox-1.19.0/busybox</pre>
+ </p>
+ <p>Changes since previous release:
+Alexander Shishkin:
+ diff: return 1 when skipping directories with -r, but without -N
+Alexey Fomenko:
+ libbb: remove dead code in getopt32
+ lineedit: fix rare SEGV
+ route: add missing fclose's
+ ifupdown: don't leak malloced variables in the loop; remove double alloc
+ md5/sha1sum: fix small resource leak
+Alexey Soloviev:
+ date: preserve isdst value if date is in time_t (unix time) format
+Bernhard Reutner-Fischer:
+ mount: for NFS use tcp per default rather than udp
+ inetd: check if RPC is available
+Bogdan Harjoc:
+ find: implement -ipath
+Chris Rees:
+ build system: do not use GNU-isms in find
+ FreeBSD compat patches
+Dan Fandrich:
+ simplify Ethernet header includes
+ use the built-in getline on more systems that don't have it
+ hush: support set -o xtrace/noexec alternates for set -x/-n
+ fbsplash: display images even when a second buffer is active
+ blockdev: add --getsz to replace --getsize
+ platform.h: support for build under Android
+Daniel Fandrich:
+ replaced __u32 etc with standard uint32_t style types
+ support configuring Busybox from _defconfig files
+ add defconfig files for Android, Cygwin and FreeBSD
+Davide Cavalca:
+ hwclock: implement --systz
+ syslogd: add and use CONFIG_FEATURE_SYSTEMD
+Denys Vlasenko:
+ use net/ethernet.h instead of linux/if_ether.h in more cases. Closes 3619
+ improve --install operation in chroot jails
+ incorporate header fixes proposed in bug 3097
+ remove erroneous dependencies on INSTALLER
+ remove old "define lchown chown"
+ replace "depends on PLATFORM_LINUX" with "select PLATFORM_LINUX"
+ use user's shell instead of hardwired "/bin/sh" (android needs this)
+ disable automatic selection of FEATURE_SUID
+ if only one applet is enabled, make "busybox applet [params]" work as expected
+ scripts/kconfig/mconf.c: stop-gap fix for buffer overflow
+ libbb/login/su: do not sanitize shell name twice
+ libbb/progress.c: make sure we never get negative ETA
+ libbb/progress.c: use unicode support funcs instead of open-coding it
+ libbb/progress.c: better overflow protection; more precise bar
+ libbb/progress.c: display &gt;999 hours ETA correctly
+ libbb/progress.c: fix bugs found in stall detection and unknown size logic
+ libbb/read_cmdline: prepend {comm} if different from argv0. Closes 3835
+ libbb: make BB_EXECVP/LP try to exec real binary if there's no /proc/self/exe
+ libbb: make set_nport accept pointer to sockaddr, not to len_and_sockaddr
+ libbb: make user/group name cache strings longer (~27 chars)
+ libbb: optionally support RTMIN[+n] and RTMAX[-n] signal names
+ libbb: spawn should remove child which failed to exec
+ libbb: use _unlocked variants of stdio I/O
+ lineedit: implement optional Ctrl-R history search
+ lineedit: fixes for CONFIG_UNICODE_USING_LOCALE=y
+ main: free suid_config list after use
+ main: make busybox.conf mode handling less obscure
+ ash: fix ash-signals/signal8 testcase failure
+ ash: fix execution of shell scripts without shebang
+ ash: optional support for $TMOUT variable
+ ash,hush: add ulimit -e -r (RLIMIT_NICE, RLIMIT_RTPRIO)
+ ash,hush: optional support for $HISTFILESIZE
+ ash,hush: recheck LANG before every line input
+ hush: do not print killer signal's name for SIGPIPE
+ hush: fix "cmd &amp; &lt;newline&gt;" problem
+ hush: fix FEATURE_CLEAN_UP code (was freeing unallocated memory)
+ hush: fix a case where return in sourced file has no effect
+ hush: fix a corner case of empty "do \n done" structure
+ hush: fix incorrect PS2 display and trap handling while reading command
+ hush: fix login shell's signal handling; add -l option so that it's easier to test
+ hush: fix misparsing of "... do eval a= ...". Closes 3721
+ hush: fix bugs with IFS expansion. Closes 4027
+ hush: fix source1.tests
+ hush: fix wrong prompt problem on empty interactive commands
+ hush: fixes and small shrink for HUSH_JOB!=y
+ hush: improve prompt in nested {}s
+ hush: make parse errors in sourced file non-fatal in interactive script
+ hush: make read builtin interruptible
+ hush: replace signal handling machinery
+ hush: use FEATURE_SH_NOFORK to enable NOFORK trick
+ adduser: better logic for choosing addgroup -g/--gid
+ adduser: prefer to call addgroup --gid, not non-std addgroup -g
+ adduser: safe username passing to passwd/addgroup
+ adduser: use better argv passing to addgroup
+ basename,dirname,freeramdisk,rx,raidautorun,runsv,chvt: skip "--" argument
+ blkid: optional support for TYPE="fstype"
+ busybox.conf: USER.GROUP is _optional_
+ busybox: fail if --install is not given an absolute path
+ bzip2: plug memory leak on every processed file
+ chrt: -m can be used without any arguments. Closes 2989
+ chrt: correct opt_complementary. Closes 2977
+ cpio: allow cpio -i to take params - names of files to extract
+ date,touch: treat 2-digit years better (fit them into +-50 yrs around today)
+ date: add a comment about _SVID_SOURCE
+ dc: fix a case where we can run off malloced space
+ die_if_bad_username: tighten up a bit
+ echo: do not retry on write errors
+ echo: fix ENOSPC detection and some iffy code in \NNN handling
+ echo: fix SEGV when run with no args
+ fbset: abort on unknown options. Closes 3121
+ fbset: apply modelines. Closes 3823
+ fdisk: make FDISK_SUPPORT_LARGE_DISKS redundant when LFS=y
+ fdisk: reinstate a short sleep between sync() and ioctl(BLKRRPART)
+ fdisk_osf: simplify ifdef (incidentally, adds support for Microblaze)
+ find: cater for libc w/o FNM_CASEFOLD
+ find: fix a bug in !ENABLE_FEATURE_FIND_XDEV config
+ find: print/print0/prune _can_ be inverted, fix it
+ find: remove the hack we use to parse options first, replace with simpler code
+ fix !ENABLE_FEATURE_GETOPT_LONG build. Closes 3775
+ fix parameter loading problem for 2.4 kernels. Closes 3223
+ fuser: fix inverted access() check. Closes 3799
+ do not use "sed --" for now
+ getty: add ECHOE explanation
+ getty: add sleep before initial tcdrain; reduce another sleep from 1 to 0.1s
+ getty: do clear CLOCAL and CRTSCTS unless told otherwise
+ getty: do not clear all c_cflag's (we were clearing baud bits!)
+ getty: document bits we don't set - maybe we should set some of them?
+ getty: fix -i (was ignored)
+ getty: flush _only_ input after switching to the next baud rate
+ getty: simplify macros; improve VSWTC[H] compat
+ getty: use cfsetspeed to save some bytes
+ groups: make it NOEXEC
+ halt/reboot: better message if /sbin/telinit is not found
+ httpd: send correct mtime for .gz files
+ hwclock: use locale-specific date output format
+ id: correct getgroups usage
+ id: fix inverted if (!ENABLE_DESKTOP)
+ init: fix a case where execv's 1st arg was wrong
+ init: simpler handling of leading dash in commands
+ insmod: check for module read errors
+ iplink: tweak includes to work on android
+ iproute: fix handling of "dev IFACE" selector
+ iproute: fix parsing and matching of "short" IP addrs like 10/8
+ kill[all[5]],pkill: make signal list show signal numbers, and show RTMIN/MAX
+ klogd: fix the problem of delayed handling of ^C and SIGTERM
+ length: disable this applet
+ less: optionally query terminal size via "ESC [ 6 n". Closes 2659
+ ls: -g implies -l
+ ls: add support for -H
+ ls: fix HAVE_STRVERSCMP check; add check for older uclibc versions
+ ls: fix bits for -T, -w and --color; make -n imply -l
+ ls: fix handling of symlinks by option -1
+ ls: fix one-bit-off which caused -H to behave as -h
+ ls: for some options, only last takes effect. Closes 2959
+ ls: make -F not follow symlinks of the command line
+ ls: make -v and -X actually work as intended
+ ls: make -x force columnar output
+ ls: print a space after each column. Closes 2941
+ ls: reduce memory consumption and speed up (don't do redundant [l]stat)
+ ls: widen -s (1k blocks) column from 4 to 6
+ lsmod: fix unsafe usage of strlen()-1
+ mailutils/*: add verbose option to sendmail; remove -m and -j from makemime
+ mesg: make group/all writability configurable
+ mesg: operate on stdin, not on stderr (compat)
+ mktemp: make it more compatible with GNU coreutils 8.4
+ modprobe-small: support compressed modules in insmod
+ modprobe/insmod: fix parameter quoting
+ modprobe: fix "modprobe -l name-with-dash"
+ more: exit if write to stdout errors out
+ more: fix tabs handling
+ mount: strip multiple trailing slashes, not just one
+ move nofork_save_area from libbb.h to vfork_daemon_rexec.c
+ nmeter: deprecate %NNNd specified, use -d MSEC instead
+ ntpd: decrease ntpd -q "no response" timeout to 10 sec
+ od: another fix for --strings
+ od: fix "od --traditional FILE"
+ od: fix -S NUM to not print chars &gt;0x80
+ parse_config: make test applet easier to enable; fix its code
+ ping: fix IPv6 pinging. Closes 3187
+ ping: set not only IP_TTL, but also IP_MULTICAST_TTL
+ printenv: fix environ == NULL segfault
+ procps: remove PSSCAN_STAT define, users were using it incorrectly
+ ps: implement -o stat
+ pstree: use stdin for screen size detection
+ reformime: do not require \r\n
+ reset: "ESC(K" selects German, why did we use that? Change to "ESC(B" (US)
+ sed: support \r in s command
+ start-stop-daemon: fix "-K --test --pidfile PIDFILE" exit code
+ stty: enable line discipline display and change code if __linix__
+ stty: make swtch and iutf8 visible/settable
+ su: document -l in --help text. Closes 2761
+ tail: optimize "tail -c HUGENUM REGULAR_FILE". Closes 3763
+ tar: fix a bug where autodetection messes up -z on extract
+ tar: on extract, everything up to and including last ".." is stripped
+ tar: skip leading / and handle names like abc/..////def -&gt; def (not ///def)
+ tar: store negative mtime as 0; pack very large files using base-256 encoding
+ tar: support "-T -" and "-X -"
+ telnetd: write utmp record with correct pid
+ tftp: fix bad interaction between poll() and alarm(). Closes 3061
+ tftp: fix progress bar for large (&gt;32M) files. Closes 3499
+ tftpd: add -l "log to syslog" option. Needed for inetd mode
+ top: better indicator of selected field in mem view
+ top: display sort indicator in memory display
+ top: make it possible to feed commands via pipe
+ top: replace %MEM with %VSZ in header text
+ traceroute: properly reduce poll timeout
+ udhcp: fix some default values from "" to NULL
+ udhcpc: allow -O OPT take numeric params
+ udhcpc: emit "correct" secs field
+ udhcpc: fix a problem with binary-encoded options
+ udhcpd: reply with NAK to clients in INIT-REBOOT state w/o existing lease
+ udhcpd: smaller code: do not look for REQUESTED_IP twice
+ uptime: more compatible output
+ wc: fix swapped -c and -m
+ wget: check for final write errors for -O FILE too
+ wget: chunked mode fix. Closes 3229
+ wget: correctly handle rare case when we get EAGAIN _on first_ read
+ wget: display 100% at the _end_ of chunked download
+ wget: fix fname_out usage wrt redirects
+ wget: make "wget -O FILE URL1 URL2" concatenate output
+ wget: remove functions which retry on EINTR
+ wget: support multiple URLs on command line
+ wget: use FEATURE_COPYBUF_KB-sized buffer. Much faster for local transfers
+ wget: use closed HTTP/1.1 connection, stop when we dl'ed $content_len bytes
+ xargs: support --no-run-if-empty (synonym to -r)
+Eric Lammerts:
+ runsvdir: do not miss closely spaced service dir changes
+Harald Becker:
+ showkey: make -a work on any stdin
+Ian Wienand:
+ login: apply PAM environment
+ ash: clear sa_flags always
+ tar: ignore file size (assume 0) for hardlinks
+James Youngman:
+ ls: remove redundant constants LIST_FILENAME and LIST_SHORT
+Joachim Nilsson:
+ ping: add -t TTL option
+ build system: fix "make install" to skip /usr when configured so
+Keith Young:
+ udhcpc: add -B option
+Kevin Cernekee:
+ cttyhack: check sysfs for the name of the active console
+ cttyhack: fail gracefully if the device node is missing
+Lauri Kasanen:
+ pstree: new applet
+ df,find_mount_point: optionally don't ignore rootfs
+ modinfo: show firmware and depends fields
+ fdisk: backport disk check from util-linux
+ md5/shaNsum: make -c support a list of files
+Macpaul Lin:
+ scripts: fix fixdep.c to let it work in Cygwin
+Maksym Kryzhanovskyy:
+ iostat: code shrink ~0.5k
+ fuser: code shrink
+ iostat: code shrink
+Marek Bečka:
+ setserial: new applet
+Nigel Hathaway:
+ udhcp: add FEATURE_UDHCP_8021Q option
+ udhcpc: export unrecognized options in "optNN=XXXXXXXXX" form
+Nuno Lucas:
+ fbsplash: add support for 24 and 32 bit color depth
+Pascal Bellard:
+ chsum: fix
+ conspy: fix lost ESC key
+Pere Orga:
+ whois: new applet
+ pwdx: new applet
+ move help text from include/usage.src.h to *.c files
+ wget: fix SEGV with multiple urls and redirection
+ kill: fix infinite loop when passed PIDs are not valid numbers
+ uptime: add config flag to allow displaying the number of users currently logged on
+Peter Korsgaard:
+ getty: wait up to 5 seconds for the output buffer to drain
+ mount: ignore unknown mount options when remounting NFS mounts
+ httpd: don't send error messages with gzip encoding
+ setconsole: open console for writing rather than reading
+Phil Sutter:
+ nameif: fix parsing of /proc/net/dev
+ nameif: add matching by phy_address=NUM
+Ralf Friedl:
+ df: more compatible -P behavior
+Reuben Dowle:
+ ubimkvol,ubirmvol,ubirsvol,ubiupdatevol: new applets
+Rob Landley:
+ patch: fix "patch at the beginning" testcase failure
+Roman Borisov:
+ mount: fix wrong long option names
+ mount: properly update /etc/mtab on mount --move
+ mount: rprivate option fix
+ mount: add --rbind option support
+ diff: optimize diffing of files with the same metadata
+Ryan Phillips:
+ login: set PAM RHOST
+Sergey Naumov:
+ syslogd: optional support for /etc/syslog.conf
+Serj Kalichev:
+ modprobe: add support for --show-depends
+ modprobe: add -D option (synonym of --show-depends)
+Steve Iribarne:
+ pam link error with SHARED_BUSYBOX and LIBBUSYBOX enabled
+Timo Teras:
+ modprobe: use hash table. speeds up significantly if modprobe.dep is large
+ parse_config: use getline. BIG speedup with glibc (~40%)
+ platform.c: provide getline implementation
+Tito Ragusa:
+ passwd,chpasswd: reset password in /etc/passwd to "x" if /etc/shadow was updated
+ groups: new applet
+ users: new applet
+Vitaly Magerya:
+ wget: --post-data=STR should not encode STR, should send it verbatim
+Vladislav Grishenko:
+ udhcpc: use more correct, and more importantly, more understandable BPF code
+ udhcpd: optional IP selection based on MAC hash
+Wade Berrier:
+ pkill/pgrep: support extended regular expressions
+Walter Harms:
+ vi: fix regex search, make it selectable in config</pre>
+ </p>
+ </li>
<li><b>12 June 2011 -- BusyBox 1.18.5 (stable)</b>
<p><a href="">BusyBox 1.18.5</a>.
(<a href="">git</a>,
@@ -65,7 +433,7 @@
<a href="">how to add a patch</a>)</p>
<p>Bug fix release. 1.18.3 has fixes for
- hush (fix for "cmd & [Enter]" behavior),
+ hush (fix for "cmd &amp; [Enter]" behavior),
modprobe-small (better handling of "insmod BAD_MODULE_NAME"),
modprobe (reverted bad change affecting module parameters with spaces),
ping (IPv6 fix),
@@ -1047,14 +1415,14 @@ Wolfram Sang:
<li>grep: fix -E + {range}; fix -o not printing all matches. Fixes bug 489</li>
<li>gzip: fix gzip with many files corrupting some files after first</li>
<li>halt/reboot/poweroff: add a CONFIG_xxx to act SysV compatibly</li>
- <li>hdparm: correct (t & 1) ? '0' : '5' thinko; wrap 80+ col lines</li>
+ <li>hdparm: correct (t &amp; 1) ? '0' : '5' thinko; wrap 80+ col lines</li>
<li>hostname: support --fqdn, --domain, --file</li>
<li>httpd: allow empty lines in conf file</li>
<li>httpd: speed up httpd.conf parsing at the cost of 49 bytes of code</li>
<li>hush: add HUSH_BASH_COMPAT, make [[ special handling depend on it</li>
<li>hush: add support for local builtin</li>
<li>hush: allow umask to take symbolic modes</li>
- <li>hush: disallow "{echo hi; }" (require whitespace) and "{ echo hi }" (require semicolon or &)</li>
+ <li>hush: disallow "{echo hi; }" (require whitespace) and "{ echo hi }" (require semicolon or &amp;)</li>
<li>hush: do not process options after non-option args</li>
<li>hush: "export -n" support</li>
<li>hush: fix "export not_yet_defined_var", fix parsing of "cmd | }" corner case</li>
@@ -1080,7 +1448,7 @@ Wolfram Sang:
<li>hush: make it possible to have interactive shell on non-ctty. init=/bin/hush: shows prompt, history works, etc</li>
<li>hush: return builtin by Bayram Kurumahmut (kbayram AT</li>
<li>hush: set $n properly for "source" builtin</li>
- <li>hush: specially handle [[ - suppress globbing & multiword expansion</li>
+ <li>hush: specially handle [[ - suppress globbing &amp; multiword expansion</li>
<li>hush: stop ignoring ^Z in child shells</li>
<li>hush: unblock TERM, INT, HUP in child shells too</li>
<li>ifupdown: if $PATH is not set, do not set it to "" in children</li>