- - 21 March 2008 -- BusyBox stable releases
-
- Bugfix-only releases for four past brances. Links to locations
- for future hot patches are in parentheses.
-
- 1.9.2
- (patches),
- 1.8.3
- (patches),
- 1.7.5
- (patches),
- 1.5.2
- (patches).
-
- How to add a patch.
-
- How to build static busybox against uclibc
-
- The email address gpl@busybox.net is the recommended way to contact
- the Software Freedom Law Center to report BusyBox license violations.
-
-
- - 12 February 2008 -- BusyBox 1.9.1 (stable)
-
BusyBox 1.9.1.
- (svn,
- patches,
- how to add a patch)
-
- This is a bugfix-only release, with fixes to fsck,
- iproute, mdev, mkswap, msh, nameif, stty, test, zcip.
- hush has `command` expansion re-enabled for NOMMU, although it is
- inherently unsafe (by virtue of NOMMU's use of vfork instead of fork).
- The plan is to make this less likely to bite people in future versions.
-
-
- - 24 December 2007 -- BusyBox 1.9.0 (unstable)
-
BusyBox 1.9.0.
- (svn,
- patches,
- how to add a patch)
- Sizes of busybox-1.8.2 and busybox-1.9.0 (with almost full config, static uclibc build):
- text data bss dec hex filename
- 792796 978 9724 803498 c42aa busybox-1.8.2
- 783803 683 7508 791994 c15ba busybox-1.9.0
-
- Top 10 stack users:
-busybox-1.8.2: busybox-1.9.0:
-input_tab 10428 echo_dg 4116
-umount_main 8252 bb_full_fd_action 4112
-rtnl_talk 8240 discard_dg 4096
-xrtnl_dump_filter 8240 echo_stream 4096
-sendMTFValues 5316 discard_stream 4096
-mainSort 4700 find_list_entry2 4096
-mkfs_minix_main 4288 readlink_main 4096
-grave 4260 ipaddr_list_or_flush 3900
-unix_do_one 4156 iproute_list_or_flush 3680
-parse_prompt 4132 insmod_main 3152
-
-
- lash is deleted from this release. hush can be configured down to almost
- the same size, but it is significantly less buggy. It even works
- on NOMMU machines (interactive mode and backticks are not working on NOMMU,
- though). "lash" applet is still available, but it runs hush.
-
-
init has some changes in this release, please report if it causes
- problems for you.
-
-
Changes since previous release:
+
-
+
We want to thank the following companies which are providing support for the BusyBox project:
- - Build system improvements
-
- Testsuite additions
-
- Stack size reductions, code size reductions, data/bss reductions
-
- An option to prefer IPv4 address if host has both
-
- New applets: hd, sestatus
-
- Removed applets: lash
-
- hush: fixed a few bugs, wired up echo and test to be builtins
-
- init: simplify forking of children
-
- getty: special handling of '#' and '@' is removed
-
- [su]login: sanitize environment if called by non-root
-
- udhcpc: support "bad" servers which send oversized packets
- (Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>)
-
- udhcpc: -O option allows to specify which options to ask for
- (Stefan Hellermann <stefan at the2masters.de>)
-
- udhcpc: optionally check whether given IP is really free (by ARP ping)
- (Jonas Danielsson <jonas.danielsson at axis.com>)
-
- vi: now handles files with unlimited line length
-
- vi: speedup for huge line lengths
-
- vi: Del key works
-
- sed: support GNUism '\t'
-
- cp/mv/install: optionally use bigger buffer for bulk copying
-
- line editing: don't eat stack like crazy
-
- passwd: follows symlinked /etc/passwd
-
- renice: accepts priority with +N too
-
- netstat: wide output mode
-
- nameif: extended matching (Nico Erfurth <masta at perlgolf.de>)
-
- test: become NOFORK applet
-
- find: -iname (Alexander Griesser <alexander.griesser at lkh-vil.or.at>)
-
- df: -i option (show inode info) (Pascal Bellard <pascal.bellard at ads-lu.com>)
-
- hexdump: -R option (Pascal Bellard <pascal.bellard at ads-lu.com>)
+
- AOE media, a
+ TYPO3 development agency contributes financially.
+ - Analog Devices, Inc. provided
+ a
+ Blackfin development board free of charge.
+ Blackfin
+ is a NOMMU processor, and its availability for testing is invaluable.
+ If you are an embedded device developer,
+ please note that Analog Devices has entire Linux distribution available
+ for download for this board. Visit
+ http://blackfin.uclinux.org/
+ for more information.
+
-
- - 23 November 2007 -- BusyBox 1.8.2 (stable), BusyBox 1.7.4 (stable)
-
BusyBox 1.8.2.
- (svn,
- patches,
- how to add a patch)
- BusyBox 1.7.4.
- (svn,
- patches,
- how to add a patch)
-
- These are bugfix-only releases.
- 1.8.2 contains fixes for inetd, lash, tar, tr, and build system.
- 1.7.4 contains a fix for inetd.
-
-
- - 9 November 2007 -- BusyBox 1.8.1 (stable)
-
BusyBox 1.8.1.
- (svn,
- patches,
- how to add a patch)
-
- This is a bugfix-only release, with fixes to login (PAM), modprobe, syslogd, telnetd, unzip.
- - 4 November 2007 -- BusyBox 1.8.0 (unstable)
-
BusyBox 1.8.0.
- (svn,
- patches,
- how to add a patch)
-
- Note: this is probably the very last release with lash. It will be dropped. Please migrate to hush.
-
-
Applets which had many changes since 1.7.x:
-
httpd:
-
- - does not clear environment, CGIs will see all environment variables which were set for httpd
-
- fix bug where we were trying to read more POSTDATA than content-length
-
- fix trivial bug (spotted by Alex Landau)
-
- optional support for partial downloads
-
- simplified CGI i/o loop (now it looks good to me)
-
- small auth and IPv6 fixes (Kim B. Heino <Kim.Heino at bluegiga.com>)
-
- support for proxying connection to other http server (by Alex Landau <landau_alex at yahoo.com>)
-
-
- top:
-
- - TOPMEM feature - 's(how sizes)' command
-
- don't wait before final bailout (try top -b -n1)
-
- fix for command line wrapping
-
-
- Build system improvements: libbusybox mode restored (it was lost in transition to new makefiles).
-
-
Code and data size in comparison with 1.7.3:
-Equivalent .config, i386 uclibc static builds:
+
- 15 April 2009 -- BusyBox 1.14.0 (unstable), BusyBox 1.13.4 (stable)
+
BusyBox 1.14.0.
+ (svn,
+ patches,
+ how to add a patch)
+ BusyBox 1.13.4.
+ (svn,
+ patches,
+ how to add a patch)
+
+ Sizes of busybox-1.13.4 and busybox-1.14.0 (with equivalent config, static uclibc build):
text data bss dec hex filename
- 768123 1055 10768 779946 be6aa busybox-1.7.3/busybox
- 759693 974 9420 770087 bc027 busybox-1.8.0/busybox
+ 785501 483 7036 793020 c19bc busybox.1.13.4/busybox
+ 788380 467 6960 795807 c249f busybox.1.14.0/busybox
+ 15361 0 0 15361 3c01 busybox.1.13.4/shell/hush.o
+ 20724 0 0 20724 50f4 busybox.1.14.0/shell/hush.o
+
+ Most of growth is in hush. The rest shrank a bit.
New applets:
- - microcom: new applet by Vladimir Dronnikov <dronnikov at gmail.ru>
-
- kbd_mode: new applet by Loic Grenie <loic.grenie at gmail.com>
-
- bzip2: port bzip2 1.0.4 to busybox, 9 kb of code
-
- pgrep, pkill: new applets by Loic Grenie <loic.grenie at gmail.com>
-
- setsebool: new applet (Yuichi Nakamura <ynakam at hitachisoft.jp>)
-
-
- Other changes since previous release (abridged):
-
- - cp: -r and -R imply -d (coreutils compat)
-
- cp: detect and prevent infinite recursion
-
- cp: make it a bit closer to POSIX, but still refuse to open and overwrite symbolic link
-
- hdparm: reduce possibility of numeric overflow in -T
-
- hdparm: simplify timing measurement
-
- wget: -O FILE is allowed to overwrite existing file (compat)
-
- wget: allow dots in header field names
-
- telnetd: add -K option to close sessions as soon as child exits
-
- telnetd: don't SIGKILL child when closing the session, kernel will send SIGHUP for us
-
- ed: large cleanup, add line editing
-
- hush: feeble attempt at making it more NOMMU-friendly
-
- hush: fix glob()
-
- hush: stop doing manual accounting of open fd's, kernel can do it for us
-
- adduser: implement -S and fix uid selection
-
- ash: fix prompt expansion (Natanael Copa <natanael.copa at gmail.com>)
-
- ash: revert "cat | jobs" fix, it causes more problems than good
-
- find: fix -xdev behavior in the presence of two or more nested mount points
-
- grep: fix grep -F -e str1 -e str2 (was matching str2 only)
-
- grep: optimization: stop on first -e match
-
- gunzip: support concatenated gz files
-
- inetd: fix bug 1562 "inetd does not set argv[0] properly" (fix by Ilya Panfilov)
-
- install: 'support' (by ignoring) -v and -b
-
- install: fix bug in "install -c file dir" (tried to copy dir into dir too)
-
- ip: tunnel parameter parsing fix by Jean Wolter <jw5 at os.inf.tu-dresden.de>
-
- isrv: use monotonic_sec
-
- less: make 'f' key page forward
-
- libiproute: add missing break statements
-
- load_policy: update (Yuichi Nakamura <ynakam at hitachisoft.jp>)
-
- logger: fix a problem of losing all argv except first
-
- login: do reject wrong passwords with PAM auth
-
- losetup: support -f (Loic Grenie <loic.grenie at gmail.com>)
-
- fdisk: make fdisk compile on libc without llseek64
-
- libbb: by popular request allow PATH to be customized at build time
-
- mkswap: selinux support by KaiGai Kohei <kaigai at ak.jp.nec.com>
-
- mount: allow (and ignore) -i
-
- mount: ignore NFS bg option on NOMMU machines
-
- mount: mount helpers support (by Vladimir Dronnikov <dronnikov at gmail.ru>)
-
- passwd: handle Ctrl-C, restore termios on Ctrl-C
-
- passwd: SELinux support by KaiGai Kohei <kaigai at ak.jp.nec.com>
-
- ping: make -I ethN work too (-I addr already worked)
-
- ps: fix RSS parsing (rss field in /proc/PID/stat is in pages, not bytes)
-
- read_line_input: fix it to not do any fancy editing if echoing is disabled
-
- run_parts: make it sort executables by name (required by API)
-
- runsv: do not use clock_gettime if !MONOTONIC_CLOCK
-
- runsvdir: fix "linear wait time" bug
-
- sulogin: remove alarm handling, it is redundant there
-
- svlogd: compat: svlogd -tt should timestamp stderr too
-
- syslogd: bail out if you see null read from Unix socket
-
- syslogd: do not need to poll(), we can just block in read()
-
- tail: work correctly on /proc files (Kazuo TAKADA <kztakada at sm.sony.co.jp>)
-
- tar + gzip/bzip2/etc: support NOMMU machines (by Alex Landau <landau_alex at yahoo.com>)
-
- tar: strip leading '/' BEFORE memorizing hardlink's name
-
- tftp: fix infinite retry bug
-
- umount: support (by ignoring) -i; style fixes
-
- unzip: fix endianness bugs
-
- vi: don't wait 50 ms before reading ESC sequences
-
- watchdog: allow millisecond spec (-t 250ms)
-
- zcip: fix unaligned trap on ARM
+
- flash_eraseall: by Sebastian Andrzej Siewior (bigeasy AT linutronix.de)
+ - acpid,mkdosfs (aka mkfs.vfat),tunctl: by Vladimir
+ - ftpd: by Adam Tkac
+ - timeout: by Roberto Foglietta
+ - ionice: adapted from Linux kernel' example by Walter Harms
+ - mkpasswd: synonym to cryptpw. mkpasswd is in Debian, OTOH cryptpw was added to busybox earlier. Trying to make both camps happy by making those two applets just aliases. They are command-line compatible
-
-
-
-
- - 4 November 2007 -- BusyBox 1.7.3 (stable)
-
BusyBox 1.7.3.
- (svn,
- patches,
- how to add a patch)
-
- This is a bugfix-only release, with fixes to ash, httpd, inetd, iptun, logger, login, tail.
-
-
- - 30 September 2007 -- BusyBox 1.7.2 (stable)
-
BusyBox 1.7.2.
- (svn,
- patches,
- how to add a patch)
-
- This is a bugfix-only release, with fixes to install, find, login, httpd, runsvdir, chcon, setfiles, fdisk and line editing.
-
- - 16 September 2007 -- BusyBox 1.7.1 (stable)
-
BusyBox 1.7.1.
- (svn,
- patches,
- how to add a patch)
-
- This is a bugfix-only release, with fixes to cp, runsv, tar, busybox --install and build system.
-
-
- - 24 August 2007 -- BusyBox 1.7.0 (unstable)
-
BusyBox 1.7.0.
- (svn,
- patches,
- how to add a patch)
-
- Applets which had many changes since 1.6.x:
-
httpd:
-
- - works in standalone mode on NOMMU machines now (partly by Alex Landau <landau_alex at yahoo.com>)
-
- indexer example is rewritten in C
-
- optional support for error pages (by Pierre Metras <genepi at sympatico.ca>)
-
- stop reading headers using 1-byte reads
-
- new option -v[v]: prints client addresses, HTTP codes returned, URLs
-
- extended -p PORT to -p [IP[v6]:]PORT
-
- sendfile support (by Pierre Metras <genepi at sympatico.ca>)
-
- add support for Status: CGI header
-
- fix CGI handling bug (we were closing wrong fd)
-
- CGI I/O loop still doesn't look 100% ok to me...
-
-
- udhcp[cd]:
-
- - add -f "foreground" and -S "syslog" options
-
- fixed "ifupdown + udhcpc_without_pidfile_creation" bug
-
- new config option "Rewrite the lease file at every new acknowledge" (Mats Erik Andersson <mats at blue2net.com> (Blue2Net AB))
-
- consistently treat server_config.start/end IPs as host-order
-
- fix IP parsing for 64bit machines
-
- fix unsafe hton macro usage in read_opt()
-
- do not chdir to / when daemonizing
-
-
- top, ps, killall, pidof:
-
- - simpler loadavg processing
-
- truncate usernames to 8 chars
-
- fix non-CONFIG_DESKTOP ps -ww (by rockeychu)
-
- improve /proc/PID/cmdinfo reading code
-
- use cmdline, not comm field (fixes problems with re-execed applets showing as processes with name "exe", and not being found by pidof/killall by applet name)
-
- reduce CPU usage in decimal conversion (optional) (corresponding speedup on kernel side is accepted in mainline Linux kernel, yay!)
-
- make percentile (0.1%) calculations configurable
-
- add config option and code for global CPU% display
-
- reorder columns, so that [P]PIDs are together and VSZ/%MEM are together - makes more sense
-
-
- Build system improvements: doesn't link against libraries we don't need,
- generates verbose link output and map file, allows for custom link
- scripts (useful for removing extra padding, among other things).
-
-
Code and data size in comparison with 1.6.1:
-Equivalent .config, i386 glibc dynamic builds:
- text data bss dec hex filename
- 672671 2768 16808 692247 a9017 busybox-1.6.1/busybox
- 662948 2660 13528 679136 a5ce0 busybox-1.7.0/busybox
- 662783 2631 13416 678830 a5bae busybox-1.7.0/busybox.customld
-
-Same .config built against static uclibc:
- 765021 1059 11020 777100 bdb8c busybox-1.7.0/busybox_uc
-
- Code/data shrink done in applets: crond, hdparm, dd, cal, od, nc, expr, uuencode,
- test, slattach, diff, ping, tr, syslogd, hwclock, zcip, find, pidof, ash, uudecode,
- runit/*, in libbb.
+
Changes since previous release:
-
New applets:
-
- - pscan, expand, unexpand (from Tito <farmatito at tiscali.it>)
-
- setfiles, restorecon (by Yuichi Nakamura <ynakam at hitachisoft.jp>)
-
- chpasswd (by Alexander Shishkin <virtuoso at slind.org>)
-
- slattach, ttysize
-
+ lash and msh are deprecated, please migrate to hush.
-
Unfortunately, not much work is done on shells. This was mostly stalled
- by lack of time (read: laziness) on my part to learn how to adapt existing
- qemu-runnable image for a NOMMU architechture (available on qemu website)
- for local testing of cross-compiled busybox on my machine.
+
hush had many, many fixes and features added: here documents, arithmetic evaluation, function support, and all this works on NOMMU too, safely: 100kb-sized `command` and heredocs. Here document support, arithmetic evaluation, improved ${var} ops, other fixes are by Mike Frysinger (vapier AT gentoo.org).
-
Other changes since previous release (abridged):
+
Other changes:
- - addgroup: disallow addgroup -g num user group; make -g 0 work (Tito <farmatito at tiscali.it>)
-
- adduser: close /etc/{passwd,shadow} before calling passwd etc. Spotted by Natanael Copa <natanael.copa at gmail.com>
-
- arping: -i should be -I, fixed
-
- ash: make "jobs | cat" work like in bash (was giving empty output)
-
- ash: recognize -l as --login equivalent; do not recognize +-login
-
- ash: fix buglet in DEBUG code (Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
-
- ash: fix SEGV if type has zero parameters
-
- awk: fix -F 'regex' bug (miscounted fields if last field is empty)
-
- catv: catv without arguments was trying to use environ as argv (Alex Landau <landau_alex at yahoo.com>)
-
- catv: don't die on open error (emit warning)
-
- chown/chgrp: completely match coreutils 6.8 wrt symlink handling
-
- correct_password: do not print "no shadow passwd..." message
-
- crond: don't start sendmail with absolute path, don't report obsolete version (report true bbox version)
-
- dd: fix bug where we assume count=INT_MAX when count is unspecified
-
- devfsd: sanitization by Tito <farmatito at tiscali.it>
-
- echo: fix non-fancy echo
-
- fdisk: make it work with big disks (read: typical today's disks) even if CONFIG_LFS is unset
-
- find: -context support for SELinux (KaiGai Kohei <kaigai at kaigai.gr.jp>)
-
- find: add conditional support for -maxdepth and -regex, make -size match GNU find
-
- find: fix build failure on certain configs (found by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>)
-
- fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one
-
- grep: implement -m MAX_MATCHES, fix buglets with context printing
-
- grep: fix selection done by FEATURE_GREP_EGREP_ALIAS (Maxime Bizon <mbizon at freebox.fr> (Freebox))
-
- hush: add missing dependencies (Maxime Bizon <mbizon at freebox.fr> (Freebox))
-
- hush: fix read builtin to not read ahead past EOL and to not use insane amounts of stack
-
- ifconfig: make it work with ifaces with interface no. > 255
-
- ifup/ifdown: make location of ifstate configurable
-
- ifupdown: make netmask parsing smaller and more strict (was accepting 255.0.255.0, 255.1234.0.0 etc...)
-
- install: fix -s (strip) option, fix install a b /a/link/to/dir
-
- libbb: consolidate ARRAY_SIZE macro (Walter Harms <wharms at bfs.de>)
-
- libbb: make /etc/network parsing configurable. -200 bytes when off
-
- libbb: nuke BB_GETOPT_ERROR, always die if there are mutually exclusive options
-
- libbb: xioctl and friends by Tito <farmatito at tiscali.it>
-
- login: optional support for PAM
-
- login: make /etc/nologin support configurable (-240 bytes)
-
- login: ask passwords even for wrong usernames
-
- md5_sha1_sum: fix mishandling when run as /bin/md5sum
-
- mdev: add support for firmware loading
-
- mdev: work even when CONFIG_SYSFS_DEPRECATED in kernel is off
-
- modprobe: add scanning of /lib/modules/`uname -r`/modules.symbols (by Yann E. MORIN <yann.morin.1998 at anciens.enib.fr>)
-
- more: fixes by Tristan Schmelcher <tpkschme at engmail.uwaterloo.ca>
-
- nc: make connecting to IPv4 from IPv6-enabled hosts easier (was requiring -s local_addr)
-
- passwd: fix bug "updating shadow even if user's record is in passwd"
-
- patch: fix -p -1 handling
-
- patch: fix bad line ending handling (Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
-
- ping: display roundtrip times with 1/1000th of ms, not 1/10 ms precision.
-
- ping: fix incorrect handling of -I (Iouri Kharon <bc-info at styx.cabel.net>)
-
- ping: fix non-fancy ping6
-
- printenv: fix "printenv VAR1 VAR2" bug (spotted by Kalyanatejaswi Balabhadrapatruni <kalyanatejaswi at yahoo.co.in>)
-
- ps: fix -Z (by Yuichi Nakamura <ynakam at hitachisoft.jp>)
-
- rpm: add optional support for bz2 data. +50 bytes of code
-
- rpm: fix bogus "package is not installed" case
-
- sed: fix 'q' command handling (by Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
-
- start_stop_daemon: NOMMU fixes by Alex Landau <landau_alex at yahoo.com>
-
- stat: fix option -Z SEGV
-
- strings: strings a b was processing a twice, fix that
-
- svlogd: fix timestamping, do not warn if config is missing
-
- syslogd, logread: get rid of head pointer, fix logread bug in the process
-
- syslogd: do not convert tabs to ^I, set syslog IPC buffer to mode 0644
-
- tar: improve OLDGNU compat, make old SUN compat configurable
-
- test: fix testing primary expressions like '"-u" = "-u"'
-
- uudecode: fix to base64 decode by Jorgen Cederlof <jcz at google.com>
-
- vi: multiple fixes by Natanael Copa <natanael.copa at gmail.com>
-
- wget: fix bug in base64 encoding (bug 1404). +10 bytes
-
- wget: lift 256 chars limitation on terminal width
-
- wget, zcip: use monotonic_sec instead of gettimeofday
+
- libbb: unify concurrent-safe update of /etc/{passwd,group,[g]shadow}. By Tito (farmatito AT tiscali.it)
+ - libbb/sha1/256/512: major code shrink
+ - libbb/lineedit: make history saving/loading concurrent-safe
+ - libbb: shrink linked list ops. By xmaks AT email.cz
+ - libbb: str2sockaddr shuld accept [IPv6] addr without port - wget 'ftp://[::1]/file' needs that to work
+ - libbb: make bb_info_msg do atomic, unbuffered writes
+ - adduser: allow adding to group 0; don't _create_ /etc/shadow, only append data if it exists
+ - ash: fix mishandled ^C
+ - ash: fix "ash -c 'exec 1>&0'" complaining that fd 0 is busy
+ - ash: fix $IFS handling in read. Closes bug 235
+ - ash: fix a case where we close wrong descriptor
+ - ash: fix bad interaction between ash -c '....&' and bash compat
+ - ash: fix miscalculation of memory needed for eval tree. Found by Timo Teras (timo.teras AT iki.fi)
+ - ash: in dotrap(), do not clear gotsig[] for SIGINT if there is no handler for it, otherwise raise interrupt gets confused later
+ - ash: make dot command search current directory first, as bash does
+ - ash: make evaltree save/restore int suppression depth. Hopefully this fixes bug 189
+ - ash: printf builtin with no arguments should not exit
+ - awk: fix long field separators case. By Ian Wienand (ianw AT vmware.com)
+ - awk: in BEGIN section $0 should be "", not "0"
+ - awk: make "struct global" hack more robust wrt alignment. Closes bug 131
+ - brctl: fix compilation on 2.4.x kernels
+ - chat: treat timeout more correctly
+ - chat: recognize RECORD directive
+ - cksum, printenv: report errors via exitcode
+ - cpio: add -p, -0 and -L options
+ - crond,crontab: make cron directory location configurable
+ - crond: correct more of logfile to 0666 (as usual, umask allows user to remove unwanted bits)
+ - crond: put tasks in separate process groups
+ - dc: fix the "base 2" patch omission of base not being set
+ - depmod: accept and ignore -r. Linux kernel build needs this
+ - depmod: fix -b option. By timo.teras AT iki.fi
+ - udhcpd,dumpleases: write and use 64-bit current time in lease file. without it, determination of remaining lease time is unreliable
+ - udhcpd: remember and record hostnames
+ - dhcprelay: fix usage text. Simplify and make code more readable
+ - dumpleases: fix -a option; show hostnames
+ - udhcpc: fix a problem where we don't open listening socket fast enough
+ - udhcpc: stop filtering environment passed to the script
+ - udhcpd: add code which rejects lease files with suspicious or old timestamp
+ - udhcpd: disable opton to have absolute lease times in lease file (that does not work with dumpleases)
+ - dnsd: fix a number of bugs. Ideas by Ming-Ching Tiew (mctiew AT yahoo.com)
+ - dpkg: better and shorter code to compare versions. Taken from "official" dpkg by Eugene T. Bordenkircher (eugebo AT gmail.com)
+ - du: fix "du /dir /dir" case
+ - env: support -uVAR=VAL
+ - expand: fix incorrect expansion exactly on tab boundary; shrink the code
+ - expr: a bit more robust handling of regexps with groups. Closes bug 87
+ - find: support --mindepth
+ - getty: fix handling of speed 0; stop using non-portable way of setting speeds
+ - grep: support -z
+ - gzip: fix gzip -dc bug caused by using stale getopt state
+ - head: report file open errors with exitcode 1 (was happily returning 0)
+ - httpd: set $HOST to Host: header value. By Tobias Poschwatta (tp AT fonz.de)
+ - ifupdown: allow options to udhcpc to be configurable from .config
+ - init: do not eat last char in messages; do not print duplicate "init:" prefix to syslog
+ - init: fix a bug where on reload order of entries might be wrong
+ - init: major improvement in documentation and signal handling. Lots of nasty, but hard to trip, races are fixed
+ - init: reinstate proper handling of !ENABLE_FEATURE_USE_INITTAB
+ - init: remove wait loop on restart, it may be dangerous
+ - init: test for vt terminal with VT_OPENQRY, assume that anything else is TERM=vt102, not TERM=linux. Closes bug 195
+ - inotifyd: add x, o, and u events
+ - inotifyd: fix buffer overflow and "unreaped zombies" problem
+ - inotifyd: exit if x event happened for all files
+ - inotifyd: conserve resourses by closing unused inotify descriptors
+ - insmod/modprobe: do not pass NULL to kernel as module parameter
+ - ip: in "ip rule add from all table 1", "all" is taken as 0.0.0.0/32, whereas "any" and "default" would be 0.0.0.0/0. They must be all 0.0.0.0/0. Closes bug 57
+ - iproute: fix ipXXX utilities trying to parse their applet name as their 1st parameter
+ - klogctl: fix a problem where we don't terminate read data with '\0' and then misinterpret it
+ - ls: do not follow links with -s. Closes bug 33
+ - ls: implement -Q and -g (-g was accepted but ignored)
+ - ls: make readlink error to not disrupt output (try ls -l /proc/self/fd)
+ - man: better check for duplicated MANPATH
+ - mdev: add support for - ("dont stop here") char
+ - mdev: if /sys/class/block exists, don't scan /sys/block
+ - mdev: ignore events with "$SUBSYSTEM" == "firmware" && "$ACTION" == "remove"
+ - mdev: provide $SUBSYSTEM. By Vladimir
+ - modprobe/insmod for 2.4: support compressed modules. By Guenter (lists AT gknw.net)
+ - modprobe: emit "can't open 'modules.dep': (errno)" instead of "module not found"
+ - modprobe: rework/speedup by Timo Teras (timo.teras AT iki.fi)
+ - modutils-24: fix bad interaction of xzalloc with xrealloc_vector
+ - mount: support "-O option"
+ - mount: stop trying to mount swap partitions
+ - mount: fix CIFS support
+ - mountpoint: add -n option. By Vladimir
+ - nslookup: allow usage of IPv6 addresses or hostnames for DNS server name; allow for port specification. Tested to work: "nslookup google.com [::1]:5353". glibc + IPv6 address of DNS server still does not work
+ - popmaildir: fix several grave bugs with using memory past end of malloc block
+ - printf: fix 1.12.0 breakage (from %*d fix), it was misinterpreting "*"
+ - printf: make integer format strings print long long-sized values
+ - rmmod: fix bug 263 "modutils/rmmod can't remove modules with dash in name on 2.4 kernels"
+ - sendmail: document and fix usage of fd #4, fix check for helper failure
+ - sendmail: update by Vladimir
+ - seq: add -w support. By Natanael Copa
+ - seq: add support for "-s separator"
+ - stat: make stat -f show filesystem "ID:" as coreutils does
+ - sysctl: fix another corner case with "dots and slashes"
+ - sysctl: fix broken -p [file]. Closes bug 231
+ - sysctl: support recursing if name is a directory: "sysctl net.ipv4.conf". Patch by xmaks AT email.cz
+ - syslogd: comment out file locking; make signal handling syncronous
+ - syslogd: create logfile with 0666 (affected by umask as usual), not 0600
+ - tail: fix tail +N syntax not working. Closes bug 221
+ - tar: do not change new tarfile's mode, GNU tar doesn't do it
+ - tar: support GNU tar's "base256" encoding
+ - telnetd: correctly output 0xff char
+ - telnetd: do not advertise TELNET_LFLOW, we do not support it properly
+ - tftp: when we infer local name from remote (-r [/]path/path/file), strip path. This mimics wget and is generally more intuitive
+ - timeout: fix parsing of -t NUM on MMU
+ - top: make it work again on 2.4 kernels. Closes bug 125
+ - tr: fix overflow in expand and complement, fix stop after [:class:]
+ - tr: support -C as synonym to -c
+ - tr: support [:xdigit:], fix handling of ranges and [x]'s
+ - traceroute: rewrite. Do not emit raw IP packets, instead send UDP or ICMP packets and rely on the kernel to form IP headers, select source IP and interface
+ - uname: add support for -i and -o, fix printing of unknown -p value with -a option
+ - uname: support long options
+ - unexpand: fix incorrect expansion
+ - unzip: fix thinko with le/be conv and size. Closes bug 129
+ - vi: fix several instances of major goof: when text grows, text[] might get reallocated! We were keeping around pointers to old place
+ - vi: speedup and code shrink. By Walter Harms
+ - volume_id: abort early on read failures. Should help with probing missing fdd's
+ - volumeid: fix bug 249 "findfs finds the wrong partition"
+ - wget: --post-data support. By Harald Kuthe (harald-tuxbox AT arcor.de)
+ - wget: fix --header handling
+ - wget: more robust EINTR detection
-
- - 30 June 2007 -- BusyBox 1.6.1 (stable)
-
BusyBox 1.6.1.
- (svn,
- patches,
- how to add a patch)
+ - 8 March 2009 -- BusyBox 1.13.3 (stable)
+
BusyBox 1.13.3.
+ (svn,
+ patches,
+ how to add a patch)
- This is a bugfix-only release, with fixes to echo, hush, and wget.
-
-
- - 1 June 2007 -- BusyBox 1.6.0 (unstable)
-
BusyBox 1.6.0.
- (svn,
- patches,
- how to add a patch)
-
- Since this is a x.x.0 release, it probably does not deserve "stable"
- label. Please help making 1.6.1 stable by testing 1.6.0.
- Note that hush shell had many changes and (hopefully) is much improved now,
- but there is a possibility that it regressed in some obscure cases. Please
- report any such cases.
- lash users please note: lash is going to be deprecated in busybox 1.7.0
- and removed in the more distant future. Please migrate to hush.
- Memory usage has decreased, but we can do better still
- Other changes since previous release:
-
-- NOFORK: audit small applets and mark some of them as NOFORK. Put big scary warnings in relevant places
-
- NOFORK: factor out NOFORK/NOEXEC code from find. Use NOFORK/NOEXEC in find and xargs
-
- NOFORK: remove potential xmalloc from NOFORK path in bb_full_fd_action
-
- NOMMU: random fixes; compressed --help now works for NOMMU
-
- SELinux: load_policy applet
-
- [u]mount: extend -t option (Roy Marples <uberlord at gentoo.org>)
-
- addgroup: clean up, fix adding users to existing groups and make it optional (Tito)
-
- adduser: don't bomb out if shadow password file doesn't exist (from Tito <farmatito at tiscali.it>)
-
- applet.c: do not even try to read config if run by real root; fix suid config handling
-
- ash: fix infinite loop on exit if tty is not there anymore
-
- ash: fix kill -l (by Mats Erik Andersson <mats.andersson64 at comhem.se>)
-
- ash: implement type -p, costs less than 10 bytes (patch by Mats Erik Andersson <mats.andersson64 at comhem.se>)
-
- awk: don't segfault on printf(%*s). Closes bug 1337
-
- awk: guard against empty environment
-
- awk: some 'lineno' vars were shorts, made them ints (code got smaller)
-
- cat: stop using stdio.h opens
-
- config system: clarify PREFER_APPLETS/SH_STANDALONE effects in help text
-
- cryptpw: new applet (by Thomas Lundquist <lists at zelow.no>)
-
- cttyhack: new applet
-
- dd: NOEXEC fix; fix skip= parse error (spotted by Dirk Clemens <develop at cle-mens.de>)
-
- deluser: add optional support for removing users from groups (by Tito <farmatito at tiscali.it>)
-
- diff: fix SEGV (NULL deref) in diff -N
-
- diff: fix segfault on empty dirs (Peter Korsgaard <peter.korsgaard at barco.com>)
-
- dnsd: fix several buglets, make smaller; openlog(), so that applet's name is logged
-
- dpkg: run_package_script() returns 0 if all ok and non-zero if failure. The result code was checked incorrectly in two places. (from Kim B. Heino <Kim.Heino at bluegiga.com>)
-
- dpkg: use bitfields which are a bit closer to typical short/char. Code size -800 bytes
-
- dumpleases: getopt32()-ization (from Mats Erik Andersson <mats.andersson64 at comhem.se>)
-
- e2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes)
-
- ether-wake: close bug 1317. Reorder fuctions to avoid forward refs while at it
-
- ether-wake: save a few more bytes of code
-
- find: -group, -depth (Natanael Copa <natanael.copa at gmail.com>)
-
- find: add support for -delete, -path (by Natanael Copa)
-
- find: fix -prune. Add big comment about it
-
- find: improve usage text (Natanael Copa <natanael.copa at gmail.com>)
-
- find: missed 'static' on const data; size and prune were mixed up; use index_in_str_array
-
- find: un-DESKTOPize (Kai Schwenzfeier <niteblade at gmx.net>)
-
- find_root_device: teach to deal with /dev/ subdirs (by Kirill K. Smirnov <lich at math.spbu.ru>)
-
- find_root_device: use lstat - don't follow links
-
- getopt32: fix llist_t options ordering. llist_rev is now unused
-
- getopt: use getopt32 for option parsing - inspired by patch by Mats Erik Andersson <mats.andersson64 at comhem.se>
-
- hdparm: fix multisector mode setting (from Toni Mirabete <amirabete at catix.cat>)
-
- hdparm: make -T -t code smaller (-194 bytes), and output prettier
-
- ifupdown: make it possible to use DHCP clients different from udhcp
-
- ifupdown: reread state file before rewriting it. Fixes "ifup started another ifup" state corruption bug. Patch by Natanael Copa <natanael.copa at gmail.com>
-
- ifupdown: small optimization (avoid doing useless work if we are not going to update state file)
-
- ip: fix compilation if FEATURE_TR_CLASSES is off
-
- ip: mv ip*_main into ip.c; use a dispatcher to save on needless duplication. Saves a minor 12b
-
- ip: rewrite the ip applet to be less bloaty. Convert to index_in_(sub)str_array()
-
- ip: set the scope properly. Thanks to Jean Wolter
-
- iplink: shrink iplink; sanitize libiproute a bit (-916 bytes)
-
- iproute: shrink a bit (-200 bytes)
-
- kill: know much more signals; make code smaller; use common code for kill applet and ash kill builtin
-
- klogd: remove dependency on syslogd
-
- lash: "forking" applets are actually can be treated the same way as "non-forked". Also save a bit of space on trailing NULL array elements.
-
- lash: fix kill buglet (didn't properly recognize ESRCH)
-
- lash: make -c work; crush buffer overrun and free of non-malloced ptr (from Mats Erik Andersson <mats.andersson64 at comhem.se>)
-
- lash: recognize and use NOFORK applets
-
- less: fix case when regex search finds nothing; fix very obscure memory corruption bug; fix less <HUGEFILE + [End] busy loop
-
- libbb: add xsendto, xunlink, xpipe
-
- libbb: fix segfault in reset_ino_dev_hashtable() when *hashtable was NULL
-
- libbb: make pidfile writing configurable
-
- libbb: make xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y)
-
- libbb: rework NOMMU helper API so that it makes more sense and easier to use
-
- libiproute: audit callgraph, shortcut error paths into die() functions
-
- lineedit: do not try to open NULL history file
-
- lineedit: nuke two unused variables and code which sets them
-
- login: remove setpgrp call (makes it work from shell prompt again); sanitize stdio descriptors (we are suid, need to be careful!)
-
- login: shrink login and set_environment by ~100 bytes
-
- mount: fix incorrect usage of strtok (inadvertently used NULL sometimes)
-
- mount: fix mounting of symlinks (mount from util-linux allows that)
-
- msh: data/bss reduction (more than 9k of it); fix "underscore bug" (a_b=1111 didn't work); fix obscure case with backticks and closed fd 1
-
- nc: port nc 1.10 to busybox
-
- netstat: fix for bogus state value for raw sockets
-
- netstat: introduce -W: wide, ipv6-friendly output; shrink by ~500 bytes
-
- nmeter: should die if stdout doesn't like him anymore
-
- patch: do not try to delete same file twice
-
- ping: fix wrong sign extension of packet id (bug 1373)
-
- ps: add -o tty and -o rss support; make a bit smaller; work around libc bug: printf("%.*s\n", MAX_INT, buffer)
-
- run_parts: rewrite
-
- run_parts: do not check path portion of a name for "bad chars". Needed for ifupdown. Patch by Gabriel L. Somlo <somlo at cmu.edu>
-
- sed: fix escaped newlines in -f
-
- split: new applet
-
- stat: remove superfluous bss user (flags) and manually unswitch some areas
-
- stty: fix option parsing bug (spotted by Sascha Hauer <s.hauer at pengutronix.de>)
-
- svlogd: fix 'SEGV on uninitialized data' and make it honor TERM
-
- tail: fix SEGV on "tail -N"
-
- ipsvd: tcpsvd,udpsvd are new applets, GPL-ed 'clones' of Dan Bernstein's tcpserver. Author: Gerrit Pape <pape at smarden.org>, http://smarden.sunsite.dk/ipsvd/
-
- test: close bug 1371; plug a memory leak; code size reduction
-
- tftp: code diet, and I think retransmits were broken
-
- tr: fix bug where we did not reject invalid classes like '[[:alpha'. debloat while at it
-
- udhcp: MAC_BCAST_ADDR and blank_chaddr are in fact constant, move to rodata; use pipe instead of socketpair
-
- udhcp[cd]: stop using atexit magic fir pidfile removal; stop deleting our own pidfile if we daemonize
-
- xargs: shrink code, ~80 bytes; simplify word list management
-
- zcip: make it work on NOMMU (+ improve NOMMU support machinery)
-
+ 1.13.3 is a bug fix release. It has fixes for awk, depmod, init, killall, mdev,
+ modprobe, printf, syslogd, tar, top, unzip, wget.
- - 20 May 2007 -- BusyBox 1.5.1 (stable)
-
BusyBox 1.5.1.
- (patches,
- how to add a patch)
-
- This is a bugfix-only release, with fixes to hdparm, hush, ifupdown, ps
- and sed.
+ - 31 December 2008 -- BusyBox 1.13.2 (stable), BusyBox 1.12.4 (stable)
+
BusyBox 1.13.2.
+ (svn,
+ patches,
+ how to add a patch)
+ BusyBox 1.12.4.
+ (svn,
+ patches,
+ how to add a patch)
+
+ Bug fix releases. 1.13.2 has fixes for crond, dc, init, ip, printf.
+ 1.12.4 has fixes for ip and printf.
+
- - 23 March 2007 -- BusyBox 1.5.0 (unstable)
-
BusyBox 1.5.0.
- (patches,
- how to add a patch)
-
- Since this is a x.x.0 release, it probably does not deserve "stable"
- label. Please help making 1.5.1 stable by testing 1.5.0.
- Notable changes since previous release:
-
- - find: added support for -user, -not, fixed -mtime, -mmin, -perm
-
- [de]archivers: merge common logic into one module
-
- ping[6]: unified code for both
-
- less: regex search improved
-
- ash: more readable code, testsuite added
-
- sed: several very obscure bugs fixed
-
- chown: -H, -L, -P support (required by POSIX)
-
- tar: handle (broken) checksums a-la Sun; tar restores mode again
-
- grep: implement -w, "implement" -a and -I by ignoring them
-
- cp: more sane behavior when overwriting existing files
-
- init: stop doing silly things with the console (-400 bytes)
-
- httpd: make httpd usable for NOMMU CPUs; fix POSTDATA handling bugs
-
- httpd: run interpreter for configured file extensions in any dir,
- not only in /cgi-bin/
-
- chrt: new applet
-
- SELinux: SELinux-related code and -Z option added to several applets,
- new SELinux-specific applets: chcon, runcon.
-
- Build system: produces link map, uses -Wwrite-strings to catch
- improper usage of string constants.
-
- Data and bss section usage audited and reduced - should help NOMMU
- targets.
-
- Applets with bug fixes: gunzip, vi, syslogd, dpkg, ls, adjtimex, resize,
- sv, printf, diff, awk, sort, dpkg, diff, tftp
-
- Applets with usability improvements: swapon, more, ifup/ifdown, hwclock,
- udhcpd, start_stop_daemon, cmp
-
- Applets with code cleaned up: telnet, fdisk, fsck_minix, mkfs_minix,
- syslogd, swapon, runsv, svlogd, klogd
-
+ - 29 November 2008 -- BusyBox 1.13.1 (stable), BusyBox 1.12.3 (stable)
+
BusyBox 1.13.1.
+ (svn,
+ patches,
+ how to add a patch)
+ BusyBox 1.12.3.
+ (svn,
+ patches,
+ how to add a patch)
+
+ Bug fix releases. 1.13.1 has fixes for ash, option parsing, id, init,
+ inotifyd, klogd, line editing and modprobe. 1.12.3 has fixes
+ for option parsing and line editing.
- - 18 March 2007 -- BusyBox 1.4.2 (stable)
-
BusyBox 1.4.2.
-
+ - 10 November 2008 -- BusyBox 1.13.0 (unstable), BusyBox 1.12.2 (stable)
+
BusyBox 1.13.0.
+ (svn,
+ patches,
+ how to add a patch)
+ BusyBox 1.12.2.
+ (svn,
+ patches,
+ how to add a patch)
+
+ Sizes of busybox-1.12.2 and busybox-1.13.0 (with equivalent config, static uclibc build):
+ text data bss dec hex filename
+ 778291 551 7856 786698 c010a busybox-1.12.2/busybox
+ 778981 551 7852 787384 c03b8 busybox-1.13.0/busybox
+
- This release includes only trivial fixes accumulated since 1.4.1.
+
New applets: blkid, devmem
+
+
Changes since previous release:
+
+ - mail applets: total overhaul. Vladimir as usual
+ - ash: fix "while kill -0 $child; do true; done" looping forever
+ - ash: fix NOEXEC mode - we were forgetting to pass environment
+ - ash: fix a bug in standalone mode (corrupted getopt state)
+ - ash: optionally support ">&file" and "&>file" redirections
+ - awk: bitwise ops cast oprands and results to unsigned long, not signed. closes bug 4774
+ - awk: fix typo in atan2 code. closes bug 5594
+ - awk: improve handling of negative numbers in bitwise ops; fix handling of octal costants
+ - awk: support hex constants
+ - basename: fix error code (again)
+ - cpio: emit TRAILER even when hard links were found. By Pascal Bellard (pascal.bellard AT ads-lu.com)
+ - crontab: do not destroy STDIN_FILENO, editor may need it (crontab -e)
+ - dc: support for bases 2 and 8, by Nate Case (ncase AT xes-inc.com)
+ - dhcpc: treat "discover...select...discover..." loop the same way as "discover...discover...discover..."
+ - dpkg: add dpkg -l PACKAGE_PATTERN. By Peter Korsgaard
+ - fbset: fix mode matching code: original code may trigger false positive.
+ - findfs: fix LUKS and FAT detection routines; do not exit if corrupted FAT fs makes us try to seek past the end
+ - grep: fix 'echo aaa | grep -o a' + ENABLE_EXTRA_COMPAT case. By Natanael Copa
+ - grep: fix EXTRA_COMPAT grep to honor -E and -i
+ - gunzip: restore mtime
+ - halt: reinstate -w even if !FEATURE_WTMP
+ - hexdump: fix SEGV in hexdump -e ""
+ - httpd: pass "Accept:" and "Accept-Language:" header to CGI scripts (Alina Friedrichsen)
+ - hush: fix environment and memory leaks
+ - hush: fix trashing of environment by local env vars: a=a; a=b cmd; - a was unset
+ - id: improve compatibility with coreutils. By Tito Ragusa
+ - inetd: fix a case when we have zero services
+ - inetd: use config parser. by Vladimir
+ - init: set stderr to NONBLOCK
+ - insmod: fix detection of open failure
+ - install: support -D
+ - ip: fix ip route rejecting dotted quads as prefix
+ - ip: route metric support (Natanael Copa)
+ - iplink: accept shorthands for "address" keyword: "ip link set address 00:11:22:33:44:55"
+ - kbd_mode: support -C TTY
+ - kill[all[5]]: accept -s SIG too. By Steve Bennett (steveb AT workware.net.au)
+ - klogd: handle many lines at once. By Steve Bennett (steveb AT workware.net.au)
+ - less: support -I to be able to search case-insensitively
+ - less: add optional line number toggle and resizing on window resize
+ - libbb: do not reject floating point strings like ".15"
+ - lineedit: fix bug 5824 "since rev 23530 fdisk and ed don't work any more"
+ - lineedit: fix problems with empty commands in history
+ - login: fix /etc/nologin handling
+ - man: fix inconsistencies in handling $MANPATH
+ - mdev: support match by major,minor. See bug 4714
+ - modprobe-small: make insmod command line compatible
+ - modprobe-small: support "blacklist" keyword in /etc/modules/MODULE_NAME
+ - modprobe: fix a segfault when modprobe is called with no arguments at all
+ - modutils/*: rewrite by Timo Teras (timo.teras AT iki.fi)
+ - mount: fix "-o parm1 -o parm2" not accumulating
+ - nmeter: 4k buffers are too small for /proc files, make them dynamically sized with 16k upper limit
+ - ping: SO_RCVBUF must be bigger than packet size, otherwise large ping packets might fail to be received
+ - route: fix for 64-bit BE machines by Seonghun Lim (wariua AT gmail.com)
+ - rpm: fix incompatibilities which prevented rpm -i foo.src.rpm
+ - runsvdir: support runsvdir-as-init
+ - setarch: do not try to use non-existent data in argv[]
+ - setfont: support -m and -C, support -m TEXTUAL_MAP (by Vladimir)
+ - setup_environment: cd $HOME regardless of clear_env value
+ - slattach: preserve speed in non-raw mode. By Matthieu Castet (matthieu.castet AT parrot.com)
+ - start_stop_daemon: accept (and ignore) -R PARAM
+ - sv: make default service dir configurable (Vladimir wants it)
+ - sysctl: fix bug 3894 (by Kryzhanovskyy Maksym)
+ - tar: fix bug 3844: non-root tar does not preserve perms
+ - telnetd: handle emacs M-DEL and IAC-NOP. by Jim Cathey (jcathey AT ciena.com)
+ - top: fix "top -d 1" (bug 5144)
+ - top: optional SMP support by Vineet Gupta (vineetg76 AT gmail.com)
+ - trylink: make messages less confusing
+ - unzip: handle "central directory". needed for OpenOffice, gmail attachment .zips etc
+ - vi: Rob's algorithm of reading and matching ESC sequences (nice work btw!)
+ - vi: deal with EOF/error on stdin and with input NULs
+ - vi: fix uninitialized last_search_pattern (bug 5794)
+ - vi: handle chars 0x80, 0x81 etc correctly
+ - volume identification: abolish /proc/partitions and /proc/cdroms scanning. It does not catch volume managers and such. Simply scan /dev/* for any block devices
+ - watchdog: WDIOC_SETTIMEOUT accepts seconds, not milliseconds
+ - watchdog: add -T option
+
+
+ The email address gpl@busybox.net is the recommended way to contact
+ the Software Freedom Law Center to report BusyBox license violations.
- - 25 January 2007 -- BusyBox 1.4.1 (stable)
-
BusyBox 1.4.1.
- (patches)
-
- This release includes only trivial fixes accumulated since 1.4.0.
+
- 28 September 2008 -- BusyBox 1.12.1 (stable), BusyBox 1.11.3 (stable)
+
BusyBox 1.12.1.
+ (svn,
+ patches,
+ how to add a patch)
+ BusyBox 1.11.3.
+ (svn,
+ patches,
+ how to add a patch)
+
+ Bugfix-only releases for 1.11.x and 1.12.x branches.
- - 20 January 2007 -- BusyBox 1.4.0 (stable)
-
BusyBox 1.4.0.
- (patches)
+ - 21 August 2008 -- BusyBox 1.12.0 (unstable), BusyBox 1.11.2 (stable)
+
BusyBox 1.12.0.
+ (svn,
+ patches,
+ how to add a patch)
+ BusyBox 1.11.2.
+ (svn,
+ patches,
+ how to add a patch)
+
+ Sizes of busybox-1.11.2 and busybox-1.12.0 (with equivalent config, static uclibc build):
+ text data bss dec hex filename
+ 829687 617 7052 837356 cc6ec busybox-1.11.2/busybox
+ 822961 594 6832 830387 cabb3 busybox-1.12.0/busybox
+
- Since this is a x.x.0 release, it probably is a bit less "stable"
- than usual.
- Changes since previous release:
-
- - e2fsprogs are mostly removed from busybox. Some smaller parts remain,
- the rest of it sits disabled in e2fsprogs/old_e2fsprogs/*, because
- it's too bloated. Really. I'm afraid it's about the only way we can
- ever get e2fsprogs cleaned up.
-
- less: many improvements. Now can display binary files
- (although I expect it to have trouble with displays where 8bit chars
- don't have 1-to-1 char/glyph relationship). Regexp search is not buggy
- anymore. Less does not read entire input up-front. Reads input
- as it appears (yay!). Works rather nice as man pager. I recommend it
- for general use now.
-
- IPv6: generic support is in place, many networking applets are
- upgraded to be IPv6 capable. Probably some work remains, but it is
- already much better than what we had previously.
-
- arp: new applet (thanks to Eric Spakman).
-
- fakeidentd: non-forking standalone server part was taking ~90%
- of the applet. Factored it out (in fact, rewrote it).
-
- syslogd: mostly rewritten.
-
- decompress_unzip, gzip: sanitized a bit.
-
- sed: better hadling of NULs
-
- httpd: stop adding our own "Content-type:" to CGI output
-
- chown: user.grp works again.
-
- minor bugfixes to: passwd, date, tftp, start_stop_daemon, tar,
- ps, ifupdown, time, su, stty, awk, ping[6], sort,...
-
-
-
+ New applets: rdev (Grant Erickson), setfont, showkey (both by Vladimir)
-
- 20 January 2007 -- BusyBox 1.3.2 (stable)
-
BusyBox 1.3.2.
+ Most significant changes since previous release (please report any regression):
+
+ - ash: bash compat: "shift $BIGNUM" is equivalent to "shift 1"
+ - ash: dont allow e.g. exec <&10 to attach to script's fd!
+ - ash: fix a bug where redirection fds were not closed afterwards. optimize close+fcntl(DUPFD) into dup2
+ - ash: fix segfault in "command -v"
+ - ash: fix very weak $RANDOM generator
+ - ash: prevent exec NN>&- from closing fd used for script reading
+ - ash: teach ash about 123>file. It could take only 0..9 before
+ - hush: fix a case where "$@" must expand to no word at all
+ - hush: fix mishandling of a'b'c=fff as assignments. They are not
+ - hush: fix non-detection of builtins and applets in "v=break; ...; $v; ..." case
+ - hush: fix "while false; ..." exitcode; add testsuites
+ - hush: support "case...esac" statements (~350 bytes of code)
+ - hush: support "break [N]" and "continue [N]" statements
+ - hush: support "for if in do done then; do echo $if; done" case
+ - hush: support "for v; do ... done" syntax (implied 'in "$@"')
+ - hush: support $_NUMBERS variable names
+ - libbb: unified config parser (by Vladimir). This change affected many applets
+
- This release includes only one trivial fix accumulated since 1.3.1
+
Other changes:
+
+ - libbb: dump: do not use uninitialized memory (closes bug 4364)
+ - libbb: fix bb_strtol[l]'s check for "-" (closes bug 4174)
+ - libbb: fix --help to not affect "test --help"
+ - libbb: fix mishandling of "all argv are opts" in getopt32()
+ - libbb: getopt32() should not ever touch argv[0] (even read)
+ - libbb: introduce and use xrealloc_vector
+ - libbb: [x]fopen_for_{read,write} introduced and used (by Vladimir)
+ - lineedit: fix use-after-free
+ - libunarchive: refactor handling of archived files. "tar f file.tar.lzma" now works too
+ - bb_strtoXXX: close bug 4174 (potential use of buf[-1])
+ - open_transformer: don't leak file descriptor
+ - open_transformer: fix bug of calling exit instead of _exit
+ - arp: without -H type, assume "ether" (closes bug 4564)
+ - ar: reuse existing ar unpacking code
+ - awk: fix a case with multiple -f options. Simplify -f file reading.
+ - build system: introduce and use FAST_FUNC: regparm on i386, otherwise no-op
+ - bunzip2: fix an uncompression error (by Rob Landley rob AT landley.net)
+ - b[un]zip2, g[un]zip: unlink destination if -f is given (closes bug 3854)
+ - comm: almost total rewrite
+ - cpio: fix -m to actually work as expected (by Pascal Bellard)
+ - cpio: internalize archive_xread_all_eof, add a few paranoia checks for corrupted cpio files
+ - cpio: make long opts depend only on ENABLE_GETOPT_LONG
+ - cpio: on unpack, limit filename length to 8k
+ - cpio: support some long options
+ - crond: use execlp instead of execl
+ - cut: fix buffer overflow (closes bug 4544)
+ - envdir: fix "envdir" (no params at all) and "envdir dir" cases
+ - findfs: make it use setuid-ness of busybox binary
+ - fsck: use getmntent_r instead of open-coded parsing (by Vladimir)
+ - fuser: a bit of safety in scanf
+ - grep: option to use GNU regex matching instead of POSIX one. This fixes problems with NULs in files being scanned, but costs +800 bytes
+ - halt: signal init regardless of ENABLE_INIT
+ - httpd: add homedir directive specially for (and by) Walter Harms wharms AT bfs.de
+ - ifupdown: /etc/network/interfaces can have comments with leading blanks
+ - ifupdown: fixes for custom MAC address (by Wade Berrier wberrier AT gmail.com)
+ - ifupdown: fixes for shutdown of DHCP-managed interfaces (by Wade Berrier wberrier AT gmail.com)
+ - inetd: do not trash errno in signal handlers; in CHLD handler, stop looping through services when pid is found
+ - insmod: users report that "|| defined(__powerpc__)" is missing
+ - install: do not chown intermediate directories with install -d (by Natanael Copa)
+ - install: fix long option not taking params (closes bug 4584)
+ - lpd,lpr: send/receive ACKs after filenames, not only after file bodies
+ - ls: fix a bug where we may use uninintialized variable
+ - man: add handling of "man links", by Ivana Varekova varekova AT redhat.com
+ - man: fix a case when a full pathname to manpage is given
+ - man: fix inverted cat/man bool variable
+ - man: fix missed NULL termination of an array
+ - man: mimic "no manual entry for 'bogus'" message and exitcode
+ - man: support cat pages too (by Jason Curl jcurlnews AT arcor.de)
+ - man: teach it to use .lzma if requested by .config
+ - mdev: check for "/block/" substring for block dev detection
+ - mdev: do not complain if mdev.conf does not exist
+ - mdev: if device was moved at creation, at removal correctly remove it from moved location and also remove symlinks to it
+ - mdev: support for serializing hotplug
+ - mdev, init: use shared code for fd sanitization
+ - mkdir: fix "uname 0222; mkdir -p foo/bar" case (by Doug Graham dgraham AT nortel.com)
+ - modprobe: support for /etc/modprobe.d (by Timo Teras)
+ - modprobe: use buffering line reads (fgets()) instead of reads()
+ - modutils: optional modprobe-small (by Vladimir), 15kb smaller than standard one
+ - mount: support for "-o mand" and "[no]relatime"
+ - mount: support nfs mount option "nordiplus" (by Octavian Purdila opurdila AT ixiacom.com)
+ - mount: support "relatime" / "norelatime"
+ - mount: testsuite for "-o mand"
+ - msh: fix "while... continue; ..." (closes bug 3884)
+ - mv: fix a case when we move dangling symlink across mountpoints
+ - netstat: optional -p support (by L. Gabriel Somlo somlo AT cmu.edu)
+ - nmeter: fix read past the end of a buffer (closes bug 4594)
+ - od, hexdump: fix bug where xrealloc may move pointer, leaving other pointers dangling (closes bug 4104)
+ - pidof/killall: allow find_pid_by_name to find running processes started as scripts_with_name_longer_than_15_bytes.sh (closes bug 4054)
+ - printf: do not print garbage on "%Ld" (closes bug 4214)
+ - printf: fix %b, fix several bugs in %*.*, fix compat issues with aborting too early, support %zd; expand testsuite
+ - printf: protect against bogus format specifiers (closes bug 4184)
+ - sendmail: updates from Vladimir:
+ - sendmail: do not discard all headers
+ - sendmail: do not ignore CC; accept to: and cc: case-insensitively. +20 bytes
+ - sendmail: fixed mail recipient address
+ - sendmail: fixed SEGV if sender address is missed
+ - sendmail: use HOSTNAME instead of HOST when no server is explicitly specified
+ - sleep: if FANCY && DESKTOP, support fractional seconds, minutes, hours and so on (coreutils compat)
+ - ssd: CLOSE_EXTRA_FDS in MMU case too
+ - ssd: do not stat -x EXECUTABLE, it is not needed anymore
+ - ssd: fix -a without -x case
+ - ssd: use $PATH
+ - tar: fix handling of tarballs with symlinks with size field != 0
+ - tar: handle autodetection for tiny .tar.gz files too, simplify autodetection
+ - taskset: fix some careless code in both fancy and non-fancy cases. -5 bytes for fancy, +5 for non-fancy
+ - tee: fix infinite looping on open error (echo asd | tee "")
+ - tee: "-" is a name for stdout, handle it that way
+ - telnetd: fix issue file printing
+ - test: fix parser to prefer binop over unop, as coreutils does
+ - testsuite: uniformly use $ECHO with -n -e
+ - time: don't segfault with no arguments
+ - touch: support -r REF_FILE if ENABLE_DESKTOP (needed for blackfin compile)
+ - tr: fix "access past the end of a string" bug 4354
+ - tr: fix "tr [=" case (closes bug 4374)
+ - tr: fix yet another access past the end of a string (closes bug 4374)
+ - unlzma: fix memory leak (by Pascal Bellard)
+ - vi: fix reversed checks for underflow
+ - vi: using array data after it fell out of scope is stupid
+ - xargs: fix -e default to match newer GNU xargs, add SUS mandated -E (closes bug 4414)
+ - other fixes and code size reductions in many applets
+
-
-
- - 27 December 2006 -- BusyBox 1.3.1 (stable)
-
BusyBox 1.3.1.
- (patches)
- Closing 2006 with new release. It includes only trivial fixes accumulated since 1.3.0
+
- 12 July 2008 -- BusyBox 1.11.1 (stable)
+
BusyBox 1.11.1.
+ (svn,
+ patches,
+ how to add a patch)
+
+ Bugfix-only release for 1.11.x branch. It contains fixes for awk,
+ bunzip2, cpio, ifupdown, ip, man, start-stop-daemon, uname and vi.
- - 14 December 2006 -- BusyBox 1.3.0 (stable)
-
BusyBox 1.3.0.
- (patches)
-
- This release has CONFIG_DESKTOP option which enables features
- needed for busybox usage on desktop machine. For example, find, chmod
- and chown get several less frequently used options, od is significantly
- bigger but matches GNU coreutils, etc. Intended to eventually make
- busybox a viable alternative for "standard" utilities for slightly
- adventurous desktop users.
-
Changes since previous release:
-
- - find: taking many more of standard options
-
- ps: POSIX-compliant -o implemented
-
- cp: added -s, -l
-
- grep: added -r, fixed -h
-
- watch: make it exec child like standard one does (was totally
- incompatible)
-
- tar: fix limitations which were preventing bbox tar usage
- on big directories: long names and linknames, pax headers
- (Linux kernel tarballs have that). Fixed a number of obscure bugs.
- Raised max file limit (now 64Gb). Security fixes (/../ attacks).
-
- httpd: added -i (inetd), -f (foreground), support for
- directory indexer CGI (example is included), bugfixes.
-
- telnetd: fixed/improved IPv6 support, inetd+standalone support,
- other fixes. Useful IPv6 stuff factored out into libbb.
-
- runit/*: new applets adapted from http://smarden.sunsite.dk/runit/
- (these are my personal favorite small-and-beautiful toys)
-
- minor bugfixes to: login, dd, mount, umount, chmod, chown, ln, udhcp,
- fdisk, ifconfig, sort, tee, mkswap, wget, insmod.
-
- Note that GnuPG key used to sign this release is different.
- 1.2.2.1 is also signed post-factum now. Sorry for the mess.
+
- 11 July 2008 -- HOWTO is updated
+
+
+ "How to build static busybox for i486-linux-uclibc" is updated
+ and tested on a fresh Fedora 9 install. Please report if it doesn't
+ work for you.
- - 29 October 2006 -- BusyBox 1.2.2.1 (fix)
-
BusyBox 1.2.2.1.
- Added compile-time warning that static linking against glibc
- produces buggy executables.
-
- - 24 October 2006 -- BusyBox 1.2.2 (stable)
-
It's a bit overdue, but
- here is
- BusyBox 1.2.2.
-
- This release has dozens of fixes backported from the ongoing development
- branch. There are a couple of bugfixes to sed, two fixes to documentation
- generation (BusyBox.html shouldn't have USE() macros in it anymore), fix
- umount to report the right errno on failure and to umount block devices by
- name with newer kernels, fix mount to handle symlinks properly, make mdev
- delete device nodes when called for hotplug remove, fix a segfault
- in traceroute, a minor portability fix to md5sum option parsing, a build
- fix for httpd with old gccs, an options parsing tweak to hdparm, make test
- fail gracefully when getgroups() returns -1, fix a race condition in
- modprobe when two instances run at once (hotplug does this), make "tar xf
- foo.tar dir/dir" extract all subdirectories, make our getty initialize the
- terminal more like mingetty, an selinux build fix, an endianness fix in
- ping6, fix for zcip defending addresses, clean up some global variables in
- gzip to save memory, fix sulogin -tNNN, a help text tweak, several warning
- fixes and build fixes, fixup dnsd a bit, and a partridge in a pear tree.
-
- As Linux Weekly News noted,
- this is my (Rob's) last release of BusyBox. The new maintainer is Denis
- Vlasenko, I'm off to do other things.
+
- Old News
+ Click here to read older news
- - 29 September 2006 -- New license email address.
-
The email address gpl@busybox.net is now the recommended way to contact
- the Software Freedom Law Center to report BusyBox license violations.
-
- - 31 July 2006 -- BusyBox 1.2.1 (stable)
-
Since nobody seems to have objected too loudly over the weekend, I
- might as well point you all at
- Busybox
- 1.2.1, a bugfix-only release with no new features.
-
- It has three shell fixes (two to lash: going "var=value" without
- saying "export" should now work, plus a missing null pointer check, and
- one to ash when redirecting output to a file that fills up.) Fix three
- embarassing thinkos in the new dmesg command. Two build tweaks
- (dependencies for the compressed usage messages and running make in the
- libbb subdirectory). One fix to tar so it can extract git-generated
- tarballs (rather than barfing on the pax extensions). And a partridge
- in a pear... Ahem.
-
- But wait, there's more! A passwd changing fix so an empty
- gecos field doesn't trigger a false objection that the new passwd contains
- the gecos field. Make all our setuid() and setgid() calls check the return
- value in case somebody's using per-process resource limits that prevent
- a user from having too many processes (and thus prevent a process from
- switching away from root, in which case the process will now _die_ rather
- than continue with root privileges). A fix to adduser to make sure that
- /etc/group gets updated. And a fix to modprobe to look for modules.conf
- in the right place on 2.6 kernels.
-
- - 30 June 2006 -- BusyBox 1.2.0
-
The -devel branch has been stabilized and the result is
- Busybox
- 1.2.0. Lots of stuff changed, I need to work up a decent changelog
- over the weekend.
-
- I'm still experimenting with how long is best for the development
- cycle, and since we've got some largeish projects queued up I'm going to
- try a longer one. Expect 1.3.0 in December. (Expect 1.2.1 any time
- we fix enough bugs. :)
-
- Update: Here are the first few bug fixes that will go into 1.2.1.
-
- - 17 May 2006 -- BusyBox 1.1.3 (stable)
-
BusyBox
- 1.1.3 is another bugfix release. It makes passwd use salt, fixes a
- memory freeing bug in ls, fixes "build all sources at once" mode, makes
- mount -a not abort on the first failure, fixes msh so ctrl-c doesn't kill
- background processes, makes patch work with patch hunks that don't have a
- timestamp, make less's text search a lot more robust (the old one could
- segfault), and fixes readlink -f when built against uClibc.
-
- Expect 1.2.0 sometime next month, which won't be a bugfix release.
-
- - 10 April 2006 -- BusyBox 1.1.2 (stable)
-
You can now download BusyBox 1.1.2, a bug fix release consisting of 11 patches
- backported from the development branch: Some build fixes, several fixes
- for mount and nfsmount, a fix for insmod on big endian systems, a fix for
- find -xdev, and a fix for comm. Check the file "changelog" in the tarball
- for more info.
-
- The next new development release (1.2.0) is slated for June. A 1.1.3
- will be released before then if more bug fixes crop up. (The new plan is
- to have a 1.x.0 new development release every 3 months, with 1.x.y stable
- bugfix only releases based on that as appropriate.)
-
- - 27 March 2006 -- Software Freedom Law Center representing BusyBox and uClibc
-
One issue Erik Andersen wanted to resolve when handing off BusyBox
- maintainership to Rob Landley was license enforcement. BusyBox and
- uClibc's existing license enforcement efforts (pro-bono representation
- by Erik's father's law firm, and the
- Hall of Shame), haven't
- scaled to match the popularity of the projects. So we put our heads
- together and did the obvious thing: ask Pamela Jones of
- Groklaw for suggestions. She
- referred us to the fine folks at softwarefreedom.org.
-
- As a result, we're pleased to announce that the
- Software Freedom Law Center
- has agreed to represent BusyBox and uClibc. We join a number of other
- free and open source software projects (such as
- X.org,
- Wine, and
- Plone
- in being represented by a fairly cool bunch of lawyers, which is not a
- phrase you get to use every day.
-
- - 22 March 2006 -- BusyBox 1.1.1
-
The new maintainer is Rob Landley, and the new release is BusyBox 1.1.1. Expect a "what's new" document in a few days. (Also, Erik and I have have another announcement pending...)
- Update: Rather than put out an endless stream of 1.1.1.x releases,
- the various small fixes have been collected together into a
- patch,
- and new fixes will be appended to that as needed. Expect 1.1.2 around
- June.
-
- - 11 January 2006 -- 1.1.0 is out
-
The new stable release is
- BusyBox
- 1.1.0. It has a number of improvements, including several new applets.
- (It also has a few rough spots,
- but we're trying out a "release early, release often" strategy to see how
- that works. Expect 1.1.1 sometime in March.)
-
- - Old News
- Click here to read older news
-
-
-
-