- We want to thank the following companies which are providing support for the BusyBox project:

  - 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.
- 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.

- 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

  New applets: rdev (Grant Erickson), setfont, showkey (both by Vladimir)

  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

  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

  The email address gpl@busybox.net is the recommended way to contact the Software Freedom Law Center to report BusyBox license violations.

- 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.

- 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.

- Old News

  Click here to read older news