About Documentation Get BusyBox Development


Developer Pages

  • The Software Freedom Conservancy acts as the GPL enforcement agent for various BusyBox copyright holders. If you wish to report a GPL violation on BusyBox, please write to gpl@busybox.net.

  • I want to thank the following companies which are providing support for the BusyBox project:

  • 23 March 2015 -- BusyBox 1.23.2 (stable)

    BusyBox 1.23.2. (git, patches, how to add a patch)

    Bug fix release. 1.23.2 has fixes for dc (more tolerant to lack of whitespace), modinfo (was not ignoring directory component of path names in a few places), modprobe (better compatibility for "rmmod" alias), wget (--header now overrides built-in headers, not appends to).

  • 27 January 2015 -- BusyBox 1.23.1 (stable)

    BusyBox 1.23.1. (git, patches, how to add a patch)

    Bug fix release. 1.23.1 has fixes for ash (fixed a problem with ${#N} expansion), ftpd (fixed "zombie apocalypse"), modprobe (was not ignoring directory component of path names in a few places), vi.

  • 23 December 2014 -- BusyBox 1.23.0 (unstable)

    BusyBox 1.23.0. (git, patches, how to add a patch)

    Sizes of busybox-1.22.1 and busybox-1.23.0 (with equivalent config, static uclibc build):

       text	   data	    bss	    dec	    hex	filename
     873357	    489	   7072	 880918	  d7116	busybox-1.22.1
     876323	    490	   7072	 883885	  d7cad	busybox-1.23.0

    Changes since previous release:

    Aaro Koskinen (2):
          less: make -E work
          install: implement -t DIR
    Ari Sundholm (2):
          df: implement -T option
          df: fix -T option when ENABLE_FEATURE_HUMAN_READABLE=0
    Bartosz Golaszewski (17):
          gitignore: ignore files generated by 'make test'
          sort: remove a magic number from compare_keys()
          sort: check global flags on fallback sort
          ntpd: fix compilation warnings
          top: fix compilation warnings
          grep: properly handle grep -w "^str" in !EXTRA_COMPAT case too
          Kbuild: move CONFIG_PAM to general configuration
          shuf: fix a segfault on 'shuf -e'
          shuf: improve help text
          docs: update new-applet-HOWTO.txt
          find: add optional support for '-exec ... {} +'
          libbb: use a wrapper around sysconf(_SC_CLK_TCK) to save a few bytes
          unit-tests: implement the unit-testing framework
          Rename INIT_LAST to INIT_FUNC to avoid confusion
          gitignore: add testsuite/echo-ne
          libbb: use sendfile() to copy data between file descriptors
          Config: select PLATFORM_LINUX if using sendfile()
    Baruch Siach (2):
          nandwrite: fix build when long options are disabled
          nanddump: don't show --bb in usage when disabled
    Bernhard Reutner-Fischer (1):
          libbb: provide usleep() fallback implementation
    Cristian Ionescu-Idbohrn (1):
          tail: adjust help/usage texts
    David Marchand (1):
          modinfo: fix module parsing with kernel >= 2.6.37
    Denys Vlasenko:
          *: add conditional support for -v / --verbose
          *: exit with 127 if applet name wasn't found - it's more POSIXy
          ash,hush: do not segfault on $((2**63 / -1))
          ash,hush: fix a thinko about 2^64-1 factorization
          ash,hush: improve randomness of $RANDOM, add easy-ish way to test it
          ash,hush: run reinit_unicode() only if makes sense
          ash,hush: set $HOSTNAME is bash compat. Closes 7028
          ash: factor out ASH_HELP config option
          ash: fix handling of negative start value in ${v:start:len}
          ash: fix off-by-one in "jobs %4" handling. Closes 7310
          ash: in bash compat mode, always export $SHLVL
          ash: make "local VAR" unset VAR (bash does that)
          ash: make ${#var} unicode-aware
          awk: fix handling of "if ... break ; else ..." - closes 7226
          crond: implement "SHELL=prog" in crontab. Export LOGNAME as POSIX wants
          crond: simplify logging code
          du, copy_file: fix file matching on cramfs. Closes 5456
          fakeidentd: simplify ndelay manipulations
          false: make "false --help" exit with 1
          find: exit code fixes for find -exec
          find: fix a regression introduced with -HLP support
          find: support -perm /BITS. Closes 7340
          find: use sysconf(_SC_ARG_MAX) to determine the command-line size limit
          ftpd: do not use root_fd if we are not in chroot
          ftpd: escape chroot prior to re-executing ls helper
          ftpd: for LIST, open current directory *in the child*
          ftpd: make LIST command show dotfiles too
          ftpd: support deprecated XPWD command
          getty: set tty attrs so that control chars are shown as ^c
          grep: fix "grep -r PATTRN SYMLINK_TO_DIR"
          grep: fix -w match if first match isn't a word, but second is. Closes 4520
          grep: fix two bugs with -w
          hush: make "true" built-in
          hush: make ${#var} unicode-aware
          hwclock: fix setting of tz_minuteswest. Closes 5414
          init: do not run shutdown/reexec actions from signal handler
          init: if libc-based Unicode support is on, run setlocale(LC_ALL, "") at startup
          ip link: add support for "address ETHADDR". Closes 4862
          less: accept and ignore -s
          less: disable "suppress empty wraparound" optimization
          less: fix bugs discovered with "git log -p | less -m" on kernel tree
          less: move "retry-on-EAGAIN" logic closer to read ops
          libarchive: add capability to unpack to mem.buffer
          libarchive: open_zipped() does not need to check extensions for e.g. gzip
          libbb/obscure.c: code shrink. Suggested by Tito.
          libbb: FreeBSD fix for B<num> baud rate constants not fitting into a short
          libbb: don't die if crypt() returns NULL
          libbb: fix a bad check for uclibc >= 0.9.31
          libbb: fix bb_ask() to flush input before prompt, not after. Closes 7190
          libbb: fix compile failure if both ARG_MAX and _SC_ARG_MAX are defined
          libbb: fix empty PATH components handling
          libbb: fix parsing of "10101010" date/time form
          libbb: fix thinko in rtc_xopen()
          libbb: if opening /dev/loopN returns ENXIO, don't try N++
          libbb: make rtc_xopen try harder on EBUSY
          libbb: make syslog level for bb_error_msg's configurable. use it in crond
          libbb: open_zipped() should not fail on non-compressed files
          libbb: use ARG_MAX for bb_arg_max() only if it's 60k+
          lineedit: don't fall back to simple line input if tty is in raw mode
          ls: make "ls -s DIR" show total too. Closes 4946
          lzop: add overflow check
          make xmalloc_open_zipped_read_close result NUL terminated
          man: accept a list of dirs in $MANPATH
          man: default to ascii
          man: do not mangle $MANPATH in memory
          mdev: treat zero-length /dev/mdev.seq the same as "\n" one. Closes 7334
          modprobe,rmmod: reject module names with slashes
          modprobe-small: (un)load all modules which match the alias, not only first one
          modprobe-small: fix help messages for aliased module-related applets
          modprobe-small: fix safe_strncpy truncating last char of module name
          modprobe-small: remove redundant aliases from modules.dep.bb
          nc: fix option bit positions. Closes 6926
          networking/ssl_helper: experimental matrixssl-based ssl helper
          networking: explain isrv_run() API
          ntpd: add optional support for /etc/ntp.conf
          ntpd: add support for -I IFACE
          ntpd: adjust last packet's recv time after a step
          ntpd: be less eager to use shorter poll intervals
          ntpd: fix wrong delay value in one of the printed messages
          ntpd: remove now unnecessary check for IP_PKTINFO definition
          ntpd: truly ignore high delay packet
          ping: revert "try SOCK_DGRAM if no root privileges"
          platform.h: undef HAVE_STRCHRNUL only on correct versions of FreeBSD
          rtcwake: fix incorrect (reversed) rtc/sys adjuestment; code shrink
          script: make it work even if fd 0 is closed
          sed: fix "sed CMD -i nonexistent_file". Closes 7484
          sed: fix a buglet in s///NUM handling
          sendmail: make -f optional, document its default value
          sha3: add 32-bit optimized bit-sliced implementation
          sha3: code shrink (and speedup for SHA3_SMALL=0)
          shuf: new applet
          sysctl: do not error out showing write-only data. Closes 6386
          syslogd: make "-O -" log to stdout
          tar: fix "tar -cJ" ignoring -J option. Closes 7706
          tar: tighten up pax header validity check
          taskset: fix logic error in "if it doesn't start with 0x..."
          taskset: support CPU masks for more than 64 CPUs
          test: fix mishandling of "test '(' = '('" and similar
          tftpd: support full 512-byte requests
          tftpd: tweak HP PA-RISC firmware bug compatibility
          top: fix memset length (sizeof(ptr) vs sizeof(array) problem)
          trylink: emit names of linked executables
          ubiupdatevol: fix -t to not require an option. Closes 7466
          udhcpc: account for script run time
          udhcpc: don't use BPF filter, users report problems (bugs 4598, 6746)
          udhcpc: fix BPF filter. Hopefully fixes the root cause of 4598 and 6746
          udhcpc: ignore NAKs from "wrong" servers. Closes 4267
          udhcpc: in comments, explain the kind of raw socket we create
          udhcpc: make hostname sanitization optional. Closes 3979
          udhcpd: if a lease from lease file coincides with a static one, ignore it
          vi: clear undo buffer when we change to another file
          vi: fix incorrect memory access on brace matching. Closes 7256
          wget: add commented-out code to use ssl_helper instead of openssl
          wget: add support for https using "openssl s_client" as a helper
          wget: fix a case where progress bar isn't updated if writes are very slow
          wget: fix use-after-free of ->user. Closes 6836
          xargs: add support for -I and -i. Closes 493
          zcat: complain if input is not compressed
    Drew Moseley (1):
          build system: specify '-nostldlib' when linking to .o files
    Eugene Rudoy (1):
          iplink: fix build with kernel versions prior to 2.6.23
    Florian Fainelli (1):
          ping: add -p to specify data pattern
    Isaac Dunham (1):
          unlink: new applet
    Jacob Kjaergaard (1):
          flashcp: change BUFSIZE to 4k
    Jeremy Kerr (1):
          udhcp: add PXELINUX path prefix option (code 210) definition
    Jody Bruchon (1):
          vi: undo support for vi with intermediate queuing
    John Spencer (1):
          man: parse "DEFINE pager" in config
    Joshua Judson Rosen (5):
          syslogd: avoid spurious ftrunctate() calls for "-b 0"
          syslogd: remember to un-writelock log-files even when called with "-b 0"
          syslogd: Unify unlink/truncate + unlock log-rotation logic
          syslogd: syslogd: don't *decrement* log_file->size on write failures
          syslogd: make "reopen log file every second" logic work for multiple logs
    Kaarle Ritvanen (2):
          ifupdown: support 'link' address family
          sendmail: use FQDN in default envelope sender
    Ken Sharp (1):
          zcip: fix link-local IP conflict detection
    Matt Whitlock (3):
          avoid calling bb_strtou twice in MIN macro expansion
          fix interaction of -a and -p options in swapon
          add discard option -d to swapon
    Matthias Andree (1):
          build system: fix non-portable sed constructs.
    Michael Gernoth (1):
          stat: fix printing selinux context and null-dereference
    Michael Tokarev (3):
          testsuite: fix last "which" change
          init: do not fail build if SIGPWR is not defined
          iproute: support onelink route option and print route flags
    Michel Stam (3):
          udhcpd: add option for tweaking arpping
          zcip: allow our own class B range to be used for ZeroConf
          zcip: Add environment variable for overriding log functionality
    Mike Frysinger (2):
          uname: fix up usage documentation
          appletlib: fix set-but-unused warning
    Miroslav Lichvar (4):
          ntpd: don't wait for good offset before disabling burst mode
          ntpd: split out poll adjusting code
          ntpd: don't stay at short polling interval
          ntpd: calculate offset to jitter ratio before updating jitter
    Morten Kvistgaard (1):
          ftpd: add optional support for authentication
    Pascal Bellard (1):
          fatattr: new applet
    Peter Kümmel (1):
          Make it possible to override LOGIN_FAIL_DELAY in CONFIG_EXTRA_CFLAGS
    Richard Genoud (4):
          nanddump: correct rounding to next page (lead to infinite loop)
          nanddump: add options --bb=skipbad and padbad
          nanddump: kill -b Omit bad block
          nanddump: change default to --bb=skipbad
    Romain Naour (1):
          su: add a delay if the password is incorrect
    Ron Yorston (1):
          lineedit: don't block when looking for escape sequence in vi-mode
    Ryan Mallon (1):
          fakeidentd: fix use-after-free
    Timo Teräs (1):
          top: fix and merge code to parse /proc/meminfo
    Tito Ragusa (4):
          adduser,addgroup: introduce and use CONFIG_LAST_ID
          swapon/swapoff: size reduction, cleanup, fixes, improvements
          swapon/swapoff: -a returns 0 on ignored errors
          which: rewrite

  • 20 January 2014 -- BusyBox 1.22.1 (stable)

    BusyBox 1.22.1. (git, patches, how to add a patch)

    Bug fix release. 1.22.1 has fixes for find (was requiring the path argument in some cases, unlike GNU find), grep (fixes for -w handling), ntpd (wasn't slewing time after large negative step), compile fixes for some configurations.

  • 1 January 2014 -- BusyBox 1.22.0 (unstable)

    BusyBox 1.22.0. (git, patches, how to add a patch)

    Sizes of busybox-1.21.1 and busybox-1.22.0 (with equivalent config, static uclibc build):

       text    data     bss     dec     hex filename
     891522     497    7584  899603   dba13 busybox-1.21.1
     893754     497    7568  901819   dc2bb busybox-1.22.0

    Changes since previous release:

    Aaro Koskinen (9):
          fdisk_sun: fix corrupted partition data with blank disk
          fdisk_sun: fix partition alignment
          sendmail: avoid sending mail to wrong addresses
          sendmail: don't mangle e-mail headers
          sendmail: support addresses inside angle brackets
          sendmail: support address lists
          sendmail: support long header fields for recipients
          sendmail: don't add To: header if it already exists
          sendmail: don't add multiple To: headers
    Alexander Shiyan (2):
          nanddump: fix build if nandwrite isn't enabled
          flash_eraseall: implement -N
    Bartosz Golaszewski (6):
          grep: don't bail out on first mismatch if '-w' option is set
          networking: code shrink
          date: accept 'yyyy-mm-dd HH' and 'yyyy-mm-dd' date formats
          Refactor catv. Move visible() from stty to libbb.
          tail compat: fix header printing for tail -f
          bloat-o-meter: add usage info
    Bernhard Reutner-Fischer (11):
          awk: Fix handling of functions with empty body
          setserial: Fix typo: s/baund_rate/baud_rate/g
          chrt: remove warning for _POSIX_PRIORITY_SCHEDULING
          buildsys: Add helper to list suid applets
          awk: Fix handling of functions with empty body
          swaponoff: shrink
          ash: Use setvar2 some more
          ash: Set SHLVL in ASH_BASH_COMPAT
          fstrim: -17b
          fstrim: Indicate failure on error
          fstrim: Needs to fire at the mp, not bd
    Bernhard Walle:
          pgrep: fix -x option
    Bogdan Purcareata:
          init: halt on SIGPWR too
    Cristian Ionescu-Idbohrn:
          foo*sum: Correct syntax error
    Cédric Cabessa:
          syslogd: use _PATH_LOG when available
    Daniel Borca (4):
          platform: strchrnul is missing if __APPLE__
          dpkg-deb: cosmetic correction to usage text
          ping: try SOCK_DGRAM if no root privileges
          build system: fix make gconfig
    David A. Wheeler (2):
          sed: accept -E as a synonym for -r
          sed: accept s///i as a synonym for s///I ("ignore case")
    Denys Vlasenko:
          Call setlocale("") , not "C", if we want to set the default one
          Commonalize typical [b,]k,m suffix struct
          Make smart_ulltoa return pointer to end (allows for code shrink in callers)
          Makefile.custom: make "make release" delete .gitignore files too
          Move create_icmp[6]_socket to its only user, and simplify it
          Use unsigned printf/scanf conversion where more appropriate
          adduser: check whether run with no USERNAME. Closes 6728
          awk: fix a bug in argc counting in recent change
          awk: fix length(array)
          awk: use "long long" as integer type, not "int"
          bootchartd: warn if .config looks wrong
          build system: use od -b instead of od -t x1
          bunzip2: fix off-by-one check
          chpst: fix a bug where -U USER was using wrong USER (one from -u USER)
          cryptpw: do not segfault on EOF. Closes 6350
          dd: do not reuse local variables for unrelated values
          dd: fail if swab is attempted on odd-sized block
          dd: support conv=swab
          decompress_unlzma: 10% speedup in "small" code
          decompress_unlzma: make "fast" version a bit smaller
          devfsd: remove static variable
          ether-wake: shorten help text, reduce packet buffer size
          find: support -HLP
          find: get rid of nested function (it's a gcc-ism)
          fix assorted unused code and wrong format specs found by cppcheck (bug 6716)
          fix build error with musl libc due to if_slip.h
          fix error message on failure to open /dev/null; fix zcat's help text
          flashcp: pad output to BUFSIZE. Hopefully closes 5882
          foo*sum: report I/O errors, don't merely exit with 1
          head,tail: use common suffix struct. simplify help text
          head: support -n -NUM and -c -NUM
          hexdump: don't unconditionally limit the usable address range
          hexdump: need to use xstrtoull for off_t
          hostid: do not output sign-extended host id. Closes 6056
          httpd: don't allow tabs and multiple spaces in request string
          httpd: make sure pfd[TO_CGI].revents is cleared before poll()
          httpd: treat errors from stdin correctly.
          hush: fix build failure if FEATURE_EDITING=y && !HUSH_INTERACTIVE
          hush: fix for "while false && true; do echo BUG; break; done". Closes 6170
          hush: source builtin should override $N only if it has args
          hush: typo fixes in comments
          ifplugd: make -k send SIGINT, not SIGQUIT
          ifupdown: support "source" stanza in /etc/network/interfaces
          init: don't use fixed size buffer for command
          init: remove special-case code for machines with less tham 1 MB of RAM
          iplink: comment out include <net/if_packet.h>
          iplink: fix build error (IFLA_VLAN_PROTOCOL defined before include)
          less: support "less 1<>TTY"
          libbb: introduce and use strftime_[YYYYMMDD]HHMMSS()
          lineedit: \W on "/bin" should show "bin", not "/bin"
          lineedit: add handling of \H in prompt
          lineedit: fix multi-line PS1 handling: calculate PS1 length from last \n
          lineedit: implement \T \t \A \@ prompts escapes, fix \W escape, drop \!
          lineedit: improve Unicode handling (still buggy though)
          lineedit: use unicode_strwidth instead of unicode_strlen
          loadkmap: explain what happens with K_ALLOCATED key value
          logread: don't call shmdt() before exit, kernel does it for us
          logread: flush output. Closes 6710
          logread: intercept all fatal signals, not just SIGINT
          losetup: assorted fixes. Closes 6314
          lzop: fiq -q and OPTION_DECOMPRESS mismatch
          make --help return exitcode 0. Closes 5612
          man: install to /usr/bin, not /sbin
          md5/sha512: a better fix for strict aliasing warnings
          mdev: add environment variable match
          mdev: call index_in_strings on $ACTION only after we checked it for NULL
          mdev: chdir back to /dev after trying to read firmware
          mdev: extend debug logging output
          mdev: improve $SEQ handling; improve debug logging
          mkfs_minix: use get_volume_size_in_bytes instead of local version
          nc: don't redirect stderr to network in -e PROG mode
          nc: exit when both stdin and network are closed
          nc: fix build failure ("subscripted value is neither array nor pointer")
          nc: remove some dead code
          nc: remove unnecessary "errno = 0"
          nc: use symbolic SHUT_WR instead of literal 1
          nc_bloaty: support -ll and -lk. Closes 2245
          nslookup: set default DNS server again. Hopefully helps with 675
          ntpd: do not invalidate datapoints after step
          ntpd: drop delay outliers; run "unsync" handler if no replies for some time
          ntpd: let user know if spike was detected
          ntpd: make "unsync" code actually work
          ntpd: promote log level 3 to production
          ntpd: set G.last_script_run even if script isn't configured
          ntpd: set offset to 0.0 in "unsync" event
          ntpd: speed up resyncing if our clock is seriously off
          ping[6]: accept and ignore -n. Code shrink
          ps: fix sscanf format specifier (%l); make uptime unsigned
          ps: seconds_since_boot: uint64_t -> ulong
          pstree: fix theoretically unsafe code
          rfkill: use new-style config/kbuild/applet
          rpm: make -ql display more compatible; improve help text
          rpm: stop using statics; move main() to the end of the source file
          rpm: unmap rpm file before working with next one
          rpm: use "create+rename" method of replacing existing files
          run-parts: stop providing incompatible short options
          sed: document where we are more liberal then GNU
          sed: fix "sed clusternewline" testcase
          sed: fix matching of newlines by $
          sed: fix memory leak in 'r FILE' command
          sed: open input files sequentially to avoid EMFILE
          sed: remove now-redundant backslash-newline handling
          stty: disable CIBAUD leak check - it is not necessary on Linux
          sulogin: use common password-checking routine
          tail: track file size only in -f mode
          tar: add a testcase for previous commit
          tar: fix exitcode check for MMU-spawned unpacking helpers
          tar: prevent empty file to be treated as valid tarball
          testsuite: fix false positives for du
          touch: add conditional support for -h
          ubi_tools: add forgotten argv++
          ubi_tools: enhance -s option to allow size multiplier to match mtd-utils
          ubi_tools: extend supported volume size to 64 bits; shrink code
          udhcpc6: fix port numbers used if !FEATURE_UDHCP_PORT
          udhcpc: allow zero server-id. Closes 6614
          udhcpc: fix a problem with binary-encoded options #2
          udhcpd: add -I LOCAL_ADDR option
          unicode: check $LC_ALL to detect Unicode mode, not only $LANG
          unicode: check $LC_CTYPE too to detect Unicode mode
          unpackers: by users' request, print compression percentage if -v and DESKTOP
          unzip: increase PEEK_FROM_END from 16k to 64k
          unzip: survive lack of CDF on non-streaming zip files
          vasprintf: do not use xmalloc, it will deadlock on OOM
          vasprintf: return -1 on strdup failure
          vi: make regexp search case-insensitive if ":set ignorecase" is active
          volume_id_internal.h: drop unoptimized byteswap routines
          wall: access FILE under real user's credentials
          wget: do not abort if "_" is encountered in a HTTP header
          zcat: fix "zcat FILE" trying to do detection twice
          zcat: if seamless uncompressors are defined, autodetect file's format
    Flemming Madsen:
          ash,hush: history builtin
    Guilherme Maciel Ferreira (2):
          traceroute: free some memory allocated by xzalloc()
          wget: if FEATURE_CLEAN_UP, free(ptr_to_globals)
    James Hogan:
          grep: fix grep -x to not set REG_NOSUB
    Jeremy Kerr:
          udhcp: add PXELINUX config file option (code 209) definition
    Jody Bruchon:
          fdisk: fix GPT size math errors
    Johannes Stezenbach:
          udhcpc: make DHCP packets to have at least 300 DHCP bytes
    John Spencer:
          man: find posix man pages
    Jonathan Liu:
          sulogin: allow system maintenance login if root password is empty
    Kang Kai:
          testsuite/du/du-k-works: fix false positive
    Kuleshov Aleksey:
          arp: fix -H/-t handling.
    Lasse Collin (11):
          xz: omit explicit \0 from HEADER_MAGIC
          xz: update README
          xz: avoid "NOTE:" in xz.h
          xz: add a comment about using uint32_t as vli_type
          xz: make bcj_x86_test_msbyte() an inline function
          xz: remove an empty line from xz_dec_lzma2.c
          xz: add C++ support to xz.h
          xz: fix decoding of LZMA2 streams having no uncompressed data.
          xz: fix incorrect XZ_BUF_ERROR
          xz: mention xzminidec.c in README
          xz: support concatenated .xz streams
    Lauri Kasanen (2):
          wget: add support for connect timeout
          wget: user-friendly fallback to http
    Leonid Lisovskiy:
          xz: fix put_unaligned_{l,b}e32
    Malek Degachi:
          fstrim: New applet
    Mandeep Singh Baines:
          losetup: fix util-linux compatibility
    Michael Tokarev (4):
          fix bashisms in testsuite/
          expand: use printable_string instead of hard-coding implementation
          do not fail build if MAXSYMLINKS isn't defined
          hostname: do not use gethostbyname() for "hostname -s"
    Mike Frysinger (12):
          udhcpc: support resolv.conf symlinks
          udhcpc: tweak math shell style with the metric var
          bbunzip: ignore the -q flag with the decompressors
          bbunzip: fix order of flags vs bit defines
          archival: note implicit dependencies between lzop & bbunzip
          udhcpc: use readlink rather than realpath
          platform: use KERNEL_VERSION to simplify uClibc version checking
          readlink: uClibc supports automatic allocation too now
          readlink: note that our -f is really -e
          pstree: stop truncating thread names
          md5/sha512: fix strict aliasing warnings
          trylink: only prefix libs with -l
    Nicolas Dichtel:
          networking: fix potential overflow in ife_print6()
    Nikolaus Voss:
          mdev: use $DEVNAME in uevent sysfs file for device node name
    Oliver Metz:
          volume_id: fix ntfs attribute search
    Patrick McHardy:
          ip link: add VLAN support
    Paul B. Henson (2):
          ubimkvol: add -m option to create volume of maximum size
          ubi_tools: fix typo in strcpy
    Paulius Zaleckas:
          init: don't srop unterminated processes' entries during inittab reload
    Peter Korsgaard (3):
          run-parts: add --exit-on-error | -e support
          run-parts: fix unicode creep in --help
          ar: read_num(): fix reading fields using the entire width
    Rich Felker:
          *: change execl sentinels from NULL to (char*)0
    Ron Yorston:
          vi: fix adjustment of buffer on partial file read
    Ryan Mallon (2):
          libbb: Add xsetegid(), xseteuid(), xopen_as_uid_gid() functions
          wall,crontab: use xopen_as_uid_gid()
    SASAKI Suguru:
          tar: fix tar -T to add entries in the exact order as the input list
    Shawn J. Goff:
          lineedit: initialize delptr
    Stefan Hellermann (2):
          ash: move code to allow setting $HOME in /etc/profile
          ash: read $HOME/.profile instead of $(pwd)/.profile
    Sven-Göran Bergh (5):
          volume_id: Adopt to new kbuild style.
          volume_id: Adopt to new config style.
          volume_id: nilfs config description.
          volume_id: add f2fs detection
          awk: optionally support -e AWK_PROG
    Thomas De Schampheleire (2):
          nameif: fix use-after-free in ENABLE_FEATURE_CLEAN_UP code
          lsof: correct check for symbolic link
    Thomas Petazzoni:
          libbb: use <poll.h> instead of <sys/poll.h>
    Tito Ragusa (2):
          ifplugd: use a larger netlink buffer
          swapon: support "pri=NNN" in fstab
    Uros Vampl:
          killall5: return 2 if no processes got killed
    Yuan-Hsiang Lee:
          init: fix illegal memory access when max message length is reached

  • 29 June 2013 -- BusyBox 1.21.1 (stable)

    BusyBox 1.21.1. (git, patches, how to add a patch)

    Bug fix release. 1.21.1 has fixes for ntfs detection (big-endian fix), xz decompression of concatenated streams, mdev acquired a [ENV=regex;] extension instead of undocumented subsystem match hack it used to have prior to 1.21.x.

  • 21 January 2013 -- BusyBox 1.21.0 (unstable)

    BusyBox 1.21.0. (git, patches, how to add a patch)

    Sizes of busybox-1.20.2 and busybox-1.21.0 (with equivalent config, static uclibc build):

       text    data     bss     dec     hex filename
     895377     497    7584  903458   dc922 busybox-1.20.2
     897317     497    7584  905398   dd0b6 busybox-1.21.0

    Changes since previous release:

    Alexey Froloff (1):
          udhcpc: gracefully handle packets with CHECKSUM_PARTIAL
    Andreas Oberritter (2):
          ifupdown: improve compatibility with Debian
          get_linux_version_code: don't fail on Linux version strings like "3.0-foo"
    Anthony G. Basile (2):
          build system: fix build failure when only gunzip is selected
          CONFIG_PID_FILE_PATH: new configuration option for pidfile paths
    Aurelien Jarno (1):
          *: declare strings with ALIGN1, as appropriate
    Baruch Siach (3):
          nanddump: use the right operator of logic AND
          nanddump: skip bad blocks when instructed to do so
          nanddump: invert the meaning of the -o parameter to match upstream
    Bernhard Reutner-Fischer (1):
          mount: fix -o user=foo mishandling, fix unc= generation, add prefixpath=
    Bernhard Walle (1):
          build system: fix build of kconfig on Darwin
    Boris Reisig (1):
          tar: support -J, --xz explicit compression option
    Bradley M. Kuhn (1):
          Simplify copyright/license notice that appears in the binary
    Christoph Lohmann (1):
          mdev: tell kernel that we didn't find the firmware
    Cliff Frey (1):
          lineedit: fix Alt-D when cursor==0
    Dennis Groenen (1):
          lineedit: histfile can get emptied when CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y
    Denys Vlasenko:
          build system: stop .eh_frame generation
          build system: fix build failure when compressed help is selected, but bz2 compression is not
          scripts/kconfig/mconf: work on systems w/o SIGWINCH
          platform.h: disable ALIGNn macros for s390[x]
          adduser: install to /usr, not /, like all other similar tools
          ash: fix "read -s" + ^C. Closes 5504
          ash: fix a bug in >${varexp} handling. Closes 5282
          ash: implement export -n
          ash: revert wrong "fix" for an apparent memory leak. Closes 5822
          awk: fix FS assignment behavior. Closes 5108
          awk: make -F STR interpret escape sequences. Closes 5126
          brctl: fix build failure by s/strtotimeval/bb_strtotimeval/ (android has strtotimeval)
          busybox: tweak help text and copyright year
          decompress_uncompress: comment out debug printout on corrupted data
          decompress_uncompress: move 'code' variable into loop - sole user
          dhcpd: write lease file on exit
          dpkg: fix creation of .list files (were empty since b768aeb). Closes 5324
          du: document incompatibility with standard tool
          examples/mdev_fat.conf: small addition
          find: if DESKTOP=y, support -wholename (synonym for -path)
          find: make -mindepth N -xdev correctly stop on mountpoints
          ftpd: fix MDTM's month value. Closes 5336
          ftpd: free allocated string on error path
          getty: fix for NOCTTY killing us with SIGHUP
          grep: fix grep -Fw not respecting the -w option. Closes 5792
          ifconfig: do not accept "ifconfig eth0 up" (ip with mask). Closes 5786
          libbb: correctness/size tweaks in signal-related helpers
          lineedit: in !EDITING config, return -1 on fgets error
          login: increase login name size limit from 32 to 64
          lpr: don't send 0-byte print jobs (compat)
          man: fix handling of gzipped manpages
          mdev: add support for $DEVNAME and /dev/mdev.log debug aid
          mdev: fix mode of dir1 in =dir1/dir2/file rule
          mdev: remove undocumented subsystem/devname matching hack
          mdev: when found, print major,minor into mdev.log
          modprobe_small: make rmmod to NOT remove dependencies. Closes 5162
          mount: do not pass "comment=ANYTHING" option to kernel. Closes 5240
          mount: fix the wrongly stored fs creation time
          mount: set up RO loop device if mount -o ro. Closes 4784
          mount: support strictatime option. Closes 5240
          ntpd: on time step, kill all outstanding replies from other peers
          sed: fix handling of s/// which has empty matches
          sed: fix zero chars match/replace
          sha3: make size/speed optimization decision configurable
          syslogd: do not segfault on parse error when using default config. Closes 5762
          telnet: convert CR -> CR LF, not CR -> CR NUL when sending data to server
          telnet: convert Enter -> CR LF in line mode too
          tftpd: fix -u USER to work with chroot. Closes 5348
          top/ps: argv0:"gdm-session-worker [pam/gdm-password]" == comm:"gdm-session-wor"
          top: do not touch stdin if -b
          top: fix "last CPU" parsing
          top: implement scrolling up/down (_very_ useful)
          udhcp[cd]: fix binding to network aliases. Closes 5432, 5438
          udhcpc: make -O <numeric_opt> work. Closes 5402
          udhcpc[6]: show select timeout in log
          unzip: make options parsing more robust on getopt w/o gnu extensions
          vi: do not set autoindent by default
          vi: save/restore screen upon invocation
          volume_id/ext: detect ext4 too
          wget: correctly handle failure to -c (continue)
          wget: make -c _not_ truncate the file
          wget: reorder fread and poll: poll only if fread returns EAGAIN. Closes 5426
          wget: try reading after poll timeout - stdio may have buffered data. Closes 5426
    Eric Martin (1):
          acpid: add missing lid switch definition
    Etienne Le Sueur (1):
          tar: fix 256-bit encoded number decoding
    Felix Fietkau (1):
          udhcpc[6]: allow discover_retries == 0 (infinite)
    Jon Tollefson (1):
          ash: fix a memory leak
    Joshua Kahlenberg (1):
          sysctl: implement -q
    Lauri Hintsala (1):
          powertop: fix error message
    Lauri Kasanen (1):
          sha3sum: new applet
    Linus Walleij (2):
          fbset: respect rgba configuration lines in fb.modes
          fbsplash: support non-RGB565 pixels in 16-bit mode
    Manuel Zerpies (1):
          flashcp: remove unused variable opts
    Martin Santesson (1):
          mount: add unc option to CIFS mount (needed for Linux 3.4+)
    Matt Reimer (1):
          nanddump: make dumping read-only partitions work
    Michael Tokarev (2):
          ps: use separate get_uptime() and make it work on non-linux too
          *: declare strings with ALIGN1, as appropriate
    Mike Frysinger (5):
          udhcpc6: depend on ipv6
          include sys/resource.h where needed
          disable format security warnings
          build system: use pkg-config to look up selinux libs
          ifenslave: fix missing close paren
    Mimi Li (1):
          sed: allow 'w' cmd to use two address form
    Natanael Copa (2):
          tar: implement --no-recursion
          unzip: ignore chmod errors
    Nicolas Thill (1):
          brctl: fix description and usage
    Pascal Bellard (1):
          su: do not change to home dir unless -l
    Paul Marks (1):
          ntpd: fix incorrect m_status field in outgoing packets. Closes 5120
    Peter Korsgaard (4):
          dmesg: handle multi-char log levels
          klogd: handle multi-char log levels
          syslogd: add option to log to Linux kernel printk buffer
          syslogd: convert dummy functions to statics and get rid of IF_FEATURE_* checks
    Pierre Carrier (1):
          config: do not refer to HTTPS for wget
    Ron Yorston (2):
          sendmail: use host rather than NIS domain name for HELO
          mktemp: fix mktemp -u temp.XXXXXX returning garbage when TMPDIR is set
    S-G Bergh (2):
          blkid: show filesystem when both label and UUID are missing, but type is known
          volume_id: add exFAT detection
    Simon B (4):
          ln: support -T and -v
          sed: support long opts and -iSFX
          mkdir,rmdir: accept and ignore -v, --verbose
          mv: accept but ignore -v
    Sven-Göran Bergh (6):
          blkid: add type display for btrfs
          blkid: add support for nilfs2
          blkid: add type display for hfsplus
          volume_id: display hfs[+] 128-bit UUID properly
          volume_id: uuid_format small code shrink
          volume_id: add squashfs detection
    Tanguy Pruvot (2):
          testsuite: some more awk tests related to conditions
          modinfo: match more standard module fields and fix version field
    Tias Guns (5):
          inetd: fix build failure in Android
          android: fix 'stat', ifdef S_TYPEIS* in coreutiles/stat.c
          platform.h: Android tweaks: ioprio defines, BB_ADDITIONAL_PATH
          android: some sensible defconfig changes
          libbb: add missing_syscalls.c: for now, only Android syscalls
    Timo Teräs (1):
          fbsplash: fix regression from e4fa7b7
    Tito Ragusa (1):
          adduser: make it accept "adduser USER GROUP" form
    Vladimir Dronnikov (1):
          wget: add dummy --no-cache
    Yao Zhao (1):
          testsuite: make mkfs.minix test not fail spuriously on big endian
    walter harms (1):
          refactor correct_password.c to avoid one if

  • 2 July 2012 -- BusyBox 1.20.2 (stable)

    BusyBox 1.20.2. (git, patches, how to add a patch)

    Bug fix release. 1.20.2 has fixes for ash (fix for variable expansion in redirection), ifup/down (fix for "pre-up" and "pre-down" handling), man (fixes for compressed man pages handling), mke2fs (important fix! due to misplaced s_mkfs_time field, ext4 driver couldn't mount our images), ps (fix for getting uptime on non-Linux platforms), tar (fix base-256 decoding).

  • Old News

    Click here to read older news

Copyright © 1999-2008 Erik Andersen
Mail all comments, insults, suggestions and bribes to
Denys Vlasenko vda.linux@googlemail.com
This site created with the vi editor This site is kindly hosted by OSL