BusyBox Changelog

New in version 1.23.2

March 23rd, 2015
  • 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).

New in version 1.23.1 (January 28th, 2015)

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

New in version 1.22.1 (January 20th, 2014)

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

New in version 1.22.0 (January 3rd, 2014)

  • 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 shink 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
  • ash: add comment about failures in source builtin. No code changes.
  • 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: fix example in a comment. No code changes.
  • dd: support conv=swab
  • decompress_unlzma: 10% speedup in "small" code
  • decompress_unlzma: make "fast" version a bit smaller
  • decompress_unlzma: move function, no code changes
  • 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
  • iplink: fix build error (IFLA_VLAN_PROTOCOL defined before include)
  • less: support "less 1TTY"
  • 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 "usync" 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 instead of
  • 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

New in version 1.21.1 (July 1st, 2013)

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

New in version 1.19.4 (February 6th, 2012)

  • Bug fix release. 1.19.4 has fixes for getty (build fix for systems without CBAUD), mdev (error in mdev.seq handling if sequence number is >999), modinfo (made it select PLATFORM_LINUX), wget (fixed use-after-free on redirect).

New in version 1.19.3 (November 29th, 2011)

  • Bug fix release. 1.19.3 has fixes for build system, chpasswd, crond, inetd (fix open fd leak), syslogd (fix problem with in-memory log buffer), tail (fix for 'tail: -c +N' with large N), tftp (made mode check case-insensitive).

New in version 1.18.4 (June 9th, 2011)

  • Bug fix release. 1.18.4 has fixes for cksum, klogd (fix "delayed" death on signals), modutils (handling of spaces in module arguments for Linux 2.4), wget (fix for downloads encoded using chunked encoding), build system fix for "make install" and "make menuconfig".

New in version 1.17.3 (October 11th, 2010)

  • Bug fix release. 1.17.3 has fixes for ip (build fix for older systems), hush (fix for handlind of backslashes in unquoted $var expansion), line editing (fixed handling of EIO error and tab expansion for non-ASCII filenames).

New in version 1.17.2 (August 31st, 2010)

  • Bug fix release. 1.17.2 has fixes for build system (now works with make 3.82), grep (zero length match could loop forever with -o), mdev (/dev nodes were never deleted), mktemp (fix for patterns with slashes), sed (fixes to -i option and N command), shell ($! was sometimes set to a wrong value; ulimit without both -H and -S now sets both hard and soft limits)
  • Patch applet is completely replaced by a more capable implementation from toybox (Rob Landley's code). Aboriginal Linux needs it.

New in version 1.17.0 (July 7th, 2010)

  • New applets:
  • conspy by Pascal Bellard (pascal.bellard AT ads-lu.com),
  • rev by Marek Polacek (mmpolacek AT gmail.com),
  • ubiattach,ubidetach by Baruch Siach (baruch AT tkos.co.il),
  • modinfo by Pascal Bellard (pascal.bellard AT ads-lu.com),
  • fgconsole by Grigory Batalov (bga AT altlinux.org),
  • fkill by Souf Oued (souf_oued AT yahoo.fr),
  • flock by Timo Teras (timo.teras AT iki.fi),
  • smemcap, bootchartd, unxz (complete with xzcat and xz -d aliases)
  • Other changes:
  • build system: make it possible to have include/applets.h-esque entries in .c files, to keep Config/Kbuild snippets in *.c files, to keep usage texts in .c files
  • build system: gold may not support --sort-common (yet)
  • unicode: support for it is significantly improved, by Tomas Heinrich (heinrich.tomas AT gmail.com)
  • libbb: teach tar et. al. to understand .xz
  • libbb: fix bb_ask() to operate on correct fd
  • libbb: locate PAGE_SIZE on Hurd
  • libbb: make index_in_substrings return -1 on ambiguous matches
  • libbb/copyfd.c: don't mmap a largish buffer if we only want to copy a few kb
  • libbb/read_key: fix buffer length calculation
  • *: hurd compat fixes by Jérémie Koenig (jk AT jk.fr.eu.org)
  • *: s/"/bin/sh"/DEFAULT_SHELL by Ladislav Michl (Ladislav.Michl AT seznam.cz)
  • ash,hush: make it possible to alias one of shells to "bash"
  • ash,hush: make "source" a synonym for . if bash compat is on
  • ash,hush: make bare "." set exitcode to 2
  • ash: FILE does not truncate FILE anymore. By Andreas Bühmann (buehmann AT users.berlios.de)
  • ash: fix ". EMPTY_FILE" exitcode
  • ash: fix bug which causes signal6.tests to fail
  • ash: fix SEGV on empty command with redirection (bug 1087). Fix by Leonid (lly.dev AT gmail.com)
  • ash: fix cubic matching slowdown is ${v/*foo*/repl} (really bad one)
  • ash: fix obscure case of replacing + globbing + backslashes
  • ash: fix redirection of fd 0 in scripts are sourced from interactive ash
  • ash: fix signal5.tests
  • ash: fix unset in standalone mode
  • ash: fix var_leak testcase
  • ash: fix var_leak.tests so that it actually catches the NOFORK bug
  • ash: refresh stack pointers after makestrspace in rmescapes. By Colin Watson (cjwatson AT ubuntu.com)
  • ash: make trap with bad signal name not abort
  • ash: use CONFIG_FEATURE_EDITING_MAX_LEN
  • hush: fix "hush -c 'echo $#'" showing -1
  • hush: fix a=abc; c=c; echo ${a%${c}}
  • hush: fix hush -c 'echo $0' - was showing empty string
  • hush: fix hush-bugs/parse_err.tests
  • hush: fix more obscure ${var%...} cases
  • hush: fix segfault in ${?:N:M}
  • hush: fix var=`exit 2` not setting $? to 2
  • hush: handle expansions in ${var?expanded_word} constructs
  • hush: optional support for ${var:N:M} bashism
  • hush: support "cd -- DIR" and other such double-dash constructs in builtins
  • hush: support ${var:EXPR:EXPR}
  • hush: use ash's ulimit builtin; make it more more bash-like while at it
  • adduser: copy /etc/skel to mew homes. +100 bytes
  • ar: add archive creation support. By Alexander Shishkin (virtuoso AT slind.org)
  • ar: fix a regression: "ar t arch.a" stopped showing files. By Nguyá»…n Thái Ngọc Duy (pclouds AT gmail.com)
  • awk: be more paranoid when freeing loop variable; make code less obfuscated
  • awk: don't append bogus data after NUL in sub()
  • awk: fix the case where nested "for" loops with the same variable misbehave
  • awk: skip whitespace between array name and subscript. By Alexander Shishkin (virtuoso AT slind.org)
  • beep: the -d option takes milliseconds, not microseconds. By Natanael Copa (natanael.copa AT gmail.com)
  • brctl: fix parsing of timespec to allow 0 (setfd, sethello..), fix stp parameters incompatibility. By Maciek Borzecki (maciek.borzecki AT gmail.com)
  • busybox --list option. +140 bytes. Rob wanted it
  • cmp: ifdefectomy by Rob Landley (rob AT landley.net)
  • cpio: "NNN blocks" message should go to stderr. By Matheus Izvekov (mizvekov AT gmail.com)
  • cttyhack: don't do anything if ctty is already available
  • data_extract_all(): do not chmod symlink. Closes bug 2053
  • date,touch: accept "Jan 7 00:00:00 2010" format. By Alexander Shishkin (virtuoso AT slind.org)
  • date: optional support for %N. Closes bug 1861
  • date: support -d @SECONDS_SINCE_1970
  • devmem: map two pages only if it is necessary
  • dnsd: add -s option. This allows (clumsy) operation with real DNS servers
  • dnsd: enforce alignment on packet buffer
  • dnsd: fix one big-endian goof; add a TODO about RA bit
  • dnsd: fix unaligned access problem
  • dpkg: add support for lzma compression, by Pascal Bellard (pascal.bellard AT ads-lu.com)
  • dpkg: better check for validity of options
  • dpkg: support config file overwrite options. By Kim B. Heino (Kim.Heino AT bluegiga.com)
  • dpkg: enable tar compability even if tar applet is not enabled
  • [un]expand: account for different character widths
  • fbsplash: reinstate drawing of over/undersized images
  • fdisk: do not treat names ending in '0' as partitions
  • fdisk: make 'b' command optionally adjust C/H/S; "fdisk IMAGE_FILE" sets cylinders
  • find: fix -name matching for dotfiles. -1 byte
  • ftpd: work around LIST -aXYZ too, not only LIST -lXYZ
  • fuser: fix default signal, exitcode and PID display. By Maksym Kryzhanovskyy (xmaks AT email.cz)
  • getty: do not emit bogus error message on EOF
  • grep: fix -Fi. By Ian Wienand (ianw AT vmware.com)
  • grep: make -w support unconditional
  • gunzip: inflate_codes(): add fix from upstream gzip to prevent false CRC error
  • head,tail: make suffixes unconditional for head too
  • hexdump: fix "hexdump NONEXISTENT_FILE" handling
  • hexdump: make -s 0xNNNNN work
  • httpd: fix proxy mode bug (annoying but harmless)
  • ifconfig: do not truncate interface names. Closes bug 1795
  • ifdown: use /var/run/udhcpc.%iface%.pid only if it exists
  • ifplugd: more robust interface name match check
  • ifplugd: replace potentially-leaking setenv with malloc/putenv/free
  • init: clear utmp entries for dead processes, if they (entries) exist
  • ip a: fix SEGV if "dev IFACE" is not specified
  • ip addr/rule/tunnel: unify parsing args. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • ip link: add qlen. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • ipaddress: print OPERSTATEs and NO-CARRIER. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • ipcalc: more correct checking for proper number of arguments
  • iplink: support add/delete. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • loadfont/setfont: optional PSF2 font support
  • loop: correct minor device number limit
  • losetup: support /dev/loop10 and higher. Closes bug 1627
  • lsusb: 2.6.32 compat. By Souf Oued (souf_oued AT yahoo.fr)
  • mdev: add "!" syntax support
  • mdev: fix a SEGV when subsystem is not known
  • mdev: fix subsystem passing (new kernels broke it again). Closes bugs 639, 721
  • mkswap: support [KBYTES] parameter
  • mkXXXX: unify [KBYTES] parameter handling
  • mkfs_ext2: fix handling of -I argument. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • mktemp: be more compatible: bare "mktemp" creates tempfile in /tmp, not cwd
  • modinfo: needs DEFAULT_MODULES_DIR and DEFAULT_DEPMOD_FILE
  • modinfo: support relative paths in modules.dep
  • modprobe: add support for -l and -s. By Pascal Bellard (pascal.bellard AT ads-lu.com)
  • modprobe: pick up module options from /proc/cmdline too
  • modprobe: remove 2k limit on /proc/cmdline
  • modutils-24: [mips] modutlis-24 segfault fix for 2.4 kernel modules, by Ralf Rösch (ralf.roesch AT rw-gmbh.de)
  • mount: add an optional capability to create new /dev/loopN as needed. By Lauri Kasanen (curaga AT operamail.com)
  • mount: fix a case when sometimes error message is not printed
  • mount: handle EDQUOT > 255 properly. Closes bug 1579
  • nc: introduce CONFIG_NC_110_COMPAT option
  • tftp/tftp: make tftp/tftpd-related options less confusing in config. Closes bug 2017
  • ntpd: step correction to variables had wrong sign, fixing
  • passwd: make 'echo -e "foo\nfoo" | passwd USER' work
  • ping: do not leak data from stack
  • provide safe_gethostname() for non-linux systems
  • ps: fix non-DESKTOP option handling code
  • ps: make "ps -o BAD" emit list of good -o params
  • rpm: use open_zipped's logic (factored out into setup_unzip_on_fd())
  • rpm: make rpm -i SRPM.rpm install it to surrent dir
  • rpm2cpio: teach it to understand xz format
  • sed: fix a case when one-line range matches past lines. Closes bug 1867
  • sed: fix a command with multiple trailing backslashes
  • sed: fix c cmd
  • sed: fix nested {} case
  • setkeycodes: fix handling of 0exx scancodes
  • setsid: check for setsid error directly
  • shaNNNsum: accept and ignore -b and -t
  • stat: make output more similar to GNU stat. By Seb (sbb AT tuxfamily.org)
  • swapon: skip noauto entries. By Lauri Kasanen (curaga AT operamail.com)
  • syslogd: allow multiple -R options. By Thomas Geulig (geulig AT nentec.de)
  • syslogd: remove stray umask(0) - was giving log files bad mode
  • syslogd: make maximum message length configurable. By Janne Kiviluoto (janne.kiviluoto AT bluegiga.com)
  • tail: document FANCY flags in helptext
  • tar: fix "hardlinks to symlinks chown" bug 1519
  • tar: fix mishandling of repeated hardlink in tarball
  • tar: make typical extraction less memory-hungry
  • tar: optional support for --to-command. By Ladislav Michl (Ladislav.Michl AT seznam.cz)
  • tar: optional support for restoring selinux context. By J. Tang (tang AT jtang.org)
  • tar: support GNU 256-bit encoding in all numeric fields
  • telnet: prevent SEGV if we are requested TELOPT_NEW_ENVIRON
  • telnetd: fill hostname field in utmp/wtmp records
  • telnetd: write LOGIN/DEAD_PROCESS utmp records. Closes bug 1363
  • test: "" is not a valid number. Closes bug 1915
  • tftp: do not show progress bar if we get error right away. +13 bytes
  • tftp: increase initial retry timeout from 50 to 100 ms
  • tftp: make message about 512 byte block less confusing
  • tftpd: fix file creation with bogus mode. Closes bug 1021
  • top: make 's' display easier to understand
  • touch: do not ignore argument of -d/-t option. By Mikhail Gusarov (dottedmag AT dottedmag.net)
  • udhcp: abort if we see unknown option, and show valid options if so
  • udhcp: disable time and log server options
  • udhcp: fix DNS domain codec bug: bad compression flag checks
  • udhcp: handle errors in read_staticlease
  • udhcp: implement "raw" binary options. Closes bug 735
  • udhcp: remove support for some really old and odd options
  • udhcp: s/sipservers/sipsrv/ to match other similar option names
  • udhcp: we call DNS name encoder with NULL, this can SEGV. added a check
  • udhcp: truncate packets instead of padding them to 574 bytes. Closes bug 1849
  • udhcpc: add -x OPT:VAL option
  • udhcpc: make it possible to disable vendor id
  • udhcpd: apparently, sometimes IP is in ciaddr, not requested_ip
  • udhcpd: fix -v/-P mixup
  • udhcpd: fix daemonize crash on nommu systems. By Mike Frysinger (vapier AT gentoo.org)
  • udhcpd: fix hostname truncation bug 1663
  • udhcpd: support decoding of option 120 "SIP servers". Closes bug 737
  • udhcpd: untangle incredibly messy handling of DHCPREQUEST
  • unexpand: fix "a b"\n" input case. By Tomas Heinrich (heinrich.tomas AT gmail.com)
  • unlzma: add "lzma -d" alias, add -t support, rename lzmacat to lzcat
  • unzip: restore unix file mode if possible. Closes bug 1045
  • unzip: improve handling of stream ZIP files
  • vi: save/restore errno in signal handlers
  • vi: discover window size even on serial consoles (optional)
  • vi: fix "set ic" command. Closes bug 1765
  • vi: fix NUM + "$" handling
  • volume_id/linux_swap: detect suspended image signatures too
  • wc: compat: make "wc -c ONE_FILE" not print leading spaces. +2 bytes
  • wget: fix bug 1057 "busybox wget segfaults with http_proxy environment set"
  • wget: ignore --no-check-certificate
  • who: fix attempts to open '/dev/dev/ttyX'; make columns a bit wider, add -H
  • xargs: bump default -sNUM up to 32k. Use sysconf() to trim it down if necessary
  • xargs: make -s NUM accept practically unlimited range

New in version 1.16.0 (January 27th, 2010)

  • New applets:
  • lspci: new applet. +573 bytes. By Souf Oued (souf_oued AT yahoo.fr)
  • lsusb: new applet. +400 bytes. By Souf Oued (souf_oued AT yahoo.fr)
  • flashcp: new applet. +900 bytes. By Stefan Seyfried (stefan.seyfried AT googlemail.com)
  • mkfs.reiser: new applet. Needs much polishing. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • mkfs_ext2: new applet. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • ntpd: new applet, +5k. By Adam Tkac (vonsch AT gmail.com)
  • traceroute6: new applet. +1562 bytes. By Leonid Lisovskiy (lly.dev AT gmail.com)
  • tune2fs: new applet by Vladimir. Only supports -L LABEL
  • wall: new applet. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • Other changes:
  • ash,hush: check that variable names are sane
  • ash,hush: fix "'read' without parameters" bash compat thingy
  • ash,hush: fix $RANDOM in children being repeated
  • ash: do not let EXIT trap to fire in `trap`
  • ash: error out on ${#1#}, ${#$11}, ${#11#}. By Cristian Ionescu-Idbohrn (cristian.ionescu-idbohrn AT axis.com)
  • ash: factor out $RANDOM support and read builtin
  • ash: fix `trap`
  • ash: fix bad interaction of "stty -echo" + ASK_TERMINAL
  • ash: fix bug 585 (>"$VAR_WITH_UNICODE_CHARS" problem)
  • ash: fix for read $IFS splitting. Closes bug 235
  • ash: fix handling of Unicode chars in redirects. Closes bug 585
  • ash: fix mishandling of bash-style redirects. By Chris Metcalf (cmetcalf AT tilera.com)
  • ash: implement set -o pipefail (conditional on bash compat). By Michael Abbott (michael AT araneidae.co.uk)
  • ash: make "jobs -l" more similar to bash. By Earl Chew. Closes bug 481
  • ash: re-enable SIGHUP on entry. Closes bug 771
  • hush: add printf builtin. By Mike Frysinger (vapier AT gentoo.org)
  • hush: add support for $RANDOM
  • hush: code shrink by Dan Fandrich (dan AT coneharvesters.com)
  • hush: do not reset to default "" traps in subshell
  • hush: export PWD
  • hush: fix `trap`
  • hush: fix exec builtin in a better way (+ "glob in exec" bug fixed)
  • hush: fix exit code propagation from `cmd`
  • hush: fix exitcodes of killed processes
  • hush: fix handling of empty arguments
  • hush: fix handling of words with braces
  • hush: fix potential buffer overflow on NOMMU
  • hush: fix subshell.tests failure on NOMMU
  • hush: handle empty execs. By Mike Frysinger (vapier AT gentoo.org)
  • hush: make memleak debugging more robust
  • hush: plug a memory leak
  • hush: small speed optimization
  • hush: support $PPID
  • hush: two NOMMU fixes for bugs 877 and 883
  • hush: unify handling of builtin applets. By Mike Frysinger (vapier AT gentoo.org)
  • hush: use ash's read builtin
  • hush: wait for `cmd` to complete, and immediately store its exitcode in $?
  • build system: fix for coarse mtime problem
  • build system: fix parallel make
  • build system: more fixes to parallel build
  • build system: update documentation generator so that it sucks less
  • libbb: add and use xopen_nonblocking (-18b). By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • libbb: add mallopt tweaks for reduced memory consumption
  • libbb: added xfdopen_for_read/write
  • libbb: better unicode width support. Hopefully fixes bug 839
  • libbb: make spawn() print "can't execute '%s'" on execv error
  • libbb: move generate_uuid from mkswap to libbb. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • libbb: optimize most of isXXXXX() macros
  • libbb/lineedit: fix the case when we configured history to have 0 lines
  • libbb/lineedit: restore ^D handling for unicode
  • libbb/lineedit: try to make FEATURE_EDITING_ASK_TERMINAL less ugly
  • libbb/lineedit: do not hardcode ctrl-C and ctrl-D, use termios fields
  • libbb/lineedit: handle Ctrl-arrows
  • libbb/read_key,lineeedit: parse position answerback faster; sanitize its use
  • libbb/read_key: ignore unknown keys (do not return them to caller byte-by-byte)
  • libunarchive: fix a bug where mode and time is no longer restored. Introduced by vda in 1.15.x. Found by Rob Landley
  • libunarchive: fix reversed test for older/newer
  • libunarchive: move dpkg-specific things into dpkg.c. 0 byte size differences
  • *: add more compat code for non GNU environments. By Dan Fandrich (dan AT coneharvesters.com)
  • *: do not assign to stdout/stderr, it's not portable. Based on patch by Aaron Carroll (xaaronc AT gmail.com)
  • *: platform compatibility work. By Dan Fandrich (dan AT coneharvesters.com)
  • *: use utimes() rather than obsolescent utime(). By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • INSTALL: update obsolete doc, as suggested by Doug Clapp (doug.clapp AT triad.rr.com)
  • adduser: create a group for net user too
  • adduser: fix a logical inversion which made -G GRP inoperative. By Tito Ragusa (farmatito AT tiscali.it)
  • all_sourcecode.tests: check commented out applet order too. By Mike Frysinger (vapier AT gentoo.org)
  • applets/usage_compressed: combine many seds in one; hide dd stats. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • applets: fix alphabetical order. By Mike Frysinger (vapier AT gentoo.org)
  • ar: fix long filenames handling. Closes bug 611
  • awk: fix an incorrect casting to string (bug 725)
  • awk: implement mktime. By Leonid Lisovskiy (lly.dev AT gmail.com)
  • btrfs: check first two superblocks, for additional robustness
  • chown: support long options. By Matheus Izvekov (mizvekov AT gmail.com)
  • chpst: tiny shrinkage and add possible TODO. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • cp: add support for --parents and long option synonyms of short opts. By Ian Wienand (ianw AT vmware.com)
  • cp: fix -H handling
  • cpio: fix -o-less cpio -F FILE
  • cpio: fix unpacking of names with leading slashes
  • crond: do not log info messages at LOG_ERR. Closes bug 681
  • date: handle long options. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • dc: make "dc -1.23 ..." work
  • dd: fix conv=noerror w/o sync to not write out zeroed blocks
  • dd: speed measurement. optional. By Gabor Heja (kakaopor AT kakaopor.hu)
  • df: unicode-aware column formatting. By Tomas Heinrich (theinric AT redhat.com)
  • diff: rewrite. much smaller and more correct. By Matheus Izvekov (mizvekov AT gmail.com)
  • documentation and typo fixes. By Dan Fandrich (dan AT coneharvesters.com)
  • dpkg: fix handling of names with leading dots. Closes bug 783
  • dumpleases: unicode spport. By Tomas Heinrich (heinrich.tomas AT gmail.com)
  • echo et al: support e escape
  • env: don't SEGV on bare "env -"
  • ether-wake: can use ether_hostton on uclibc >= 0.9.30. By Leonid Lisovskiy (lly.dev AT gmail.com)
  • examples: add ENABLE_FEATURE_MDEV_RENAME_REGEXP examples to mdev documentation. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • examples: add mdev.conf and mdev_fat.conf
  • examples: adding runit-style service directory
  • fbset: add possibility to set timing and sync polarity. By Michael Grzeschik (m.grzeschik AT pengutronix.de)
  • fbsplash: allow compressed image files. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • fdisk: add a warning and truncate disks with >= 2^32 sectors
  • find: -follow should not error out on dangling links
  • find: add optional support for -links. By Matheus Izvekov (mizvekov AT gmail.com)
  • find: add zeroing of G.xxx; ftpd - remove extraneous zeroing of G.xxx. Brought "G trick" to the same shape in a few more places
  • find: correct handling of -xdev
  • find: do not recurse into directories with depth == --maxdepth. This may avoid many, many unnecessary stat() calls
  • fold: fix a corner case. By Tomas Heinrich (heinrich.tomas AT gmail.com)
  • fold: unicode support. Based on a patch by Tomas Heinrich (heinrich.tomas AT gmail.com)
  • ftpd: conditional support for broken clients. By Stefan Seyfried (stefan.seyfried AT googlemail.com)
  • ftpget/put: make 3rd parameter optional. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • grep: fix a case when -o loops forever
  • gzip: add optional support for --long-opts. By Matheus Izvekov (mizvekov AT gmail.com)
  • httpd: -m: output salted MD5 hash. By (forrest AT hifulltech.com)
  • httpd: fix bug 601 "I:index.php does not run interpreter on DIR/ url"
  • httpd: shrink mime type matching code (suggested by Bernhard)
  • httpd_indexcgi: fix off-by-one error
  • httpd_post_upload.txt example: handle binary files too
  • hwclock: fix sizeof bug (used it on pointer, not array)
  • hwclock: make --systohc exact
  • ifplugd: mention iff mode in help; restore auto-ifup unless -a; make iff method less iffy :D
  • ifup: make /etc/network/interfaces parser tolerant to trailing spaces
  • inetd: be more careful with syslog socket; other small fixes
  • init: fix "while true; do reboot; done" bug. Closes bug 781
  • init: fix logically inverted FEATURE_EXTRA_QUIET check
  • init: for paranoid reasons, restore SIGCONT too
  • init: make FEATURE_EXTRA_QUIET more consistent. +1 byte
  • init: restore possibility to reload inittab even before we finish initialization
  • init: use applet_name instead of "init" (we can be linuxrc)
  • login: log PAM errors to syslog, not stderr. By Ian Wienand (ianw AT vmware.com)
  • ls: add "total NNNN" header if DESKTOP. By Johannes Stezenbach (js AT sig21.net)
  • ls: fix for !FEATURE_LS_RECURSIVE (forgotten free); cleanups
  • ls: fix sort of very large files
  • ls: make it so that group never glues itself to file size
  • lsmod: unicode-aware column formatting. By Tomas Heinrich (heinrich.tomas AT gmail.com)
  • mdev: adjust error message. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • mdev: do not die on mknod errors
  • mdev: handle string modes. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • mdev: tiny shrinkage by index_in_strings. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • mkfs_vfat: fixes for large image cases
  • mkswap: add -L LABEL option. Closes bug 689
  • modprobe-small: hopefully fix bug 591 (incorrect detection of alias with '-')
  • modprobe-small: make string buffer code robust; fix help text
  • modprobe: it's not an error if module is already loaded. Closes bug 833
  • modprobe: protect against possible SEGV
  • modutils: add FEATURE_INSMOD_TRY_MMAP option
  • mount: "already mounted" msg appears only if -v
  • mount: add support for -O list. By Michael Abbott (michael AT araneidae.co.uk)
  • mount: do not execute "mount.(null)" :)
  • mount: if we mount //host/xxx, add ip=IPADDR to options
  • mount: prevent second mount -a from mounting everything again
  • mount: support -o union. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • mountpoint: btrfs fix. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • nc: fix "nc -nl -p LPORT RHOST" case (was expecting remote port 0). Closes bug 837
  • networking/httpd_ssi.c: new example CGI handler
  • od: fix -tx without length spec
  • passwd: do not complain if /etc/shadow is missing
  • patch: add longopts, --dry-run, add one more test
  • patch: ignore -g NUM. By Matheus Izvekov (mizvekov AT gmail.com)
  • pidof/killall: fix bug 625 (kernel threads get stale "binary name")
  • ping6: do not play dirty tricks with argv
  • ping: fix unaligned access. Closes bug 745
  • ping: use ICMP_MINLEN. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • ps,top: add an option to show threads. +260 bytes
  • ps: conditionally enable -T on non-DESKTOP build too
  • ps: document -T option
  • ps: show longer COMMAND
  • rpm2cpio: handle bz2 too. By Pascal Bellard (pascal.bellard AT ads-lu.com)
  • rpm2cpio: handle unseekable input correctly
  • sed: fix bug 623 (SEGV on some sed commands)
  • sed: minor usage tweak. By Rob Landley (rob AT landley.net)
  • sed: on output file, set not only mode, but owner too
  • sendmail: accept -i too, not only -oi. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • sendmail: fix for long headers. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • sendmail: update by Vladimir Dronnikov (dronnikov AT gmail.com)
  • sort: make sort -o FILE FILE (same FILE) work. Closes bug 785
  • split: handle - as "use stdin". Closes bug 741
  • start-stop-daemon: we could need ssd -d (fancy). By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • stty: add B921600. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • stty: fix columns command. Closes bug 791
  • swaponoff: add uuid/label support. By Natanael Copa (natanael.copa AT gmail.com)
  • tar: accept spaces at the end of header fields (compat)
  • tar: add support for --overwrite
  • tar: add support for -o as synonym to --no-same-owner. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • tar: do chown, not lchown to restore mode (compat)
  • tar: fix --numeric-owner, --no-same-owner, --no-same-permissions bits
  • tar: fix bug 673 (misdetection of repeated dir as hardlink)
  • tar: fix problem handling tarballs with chksums prepended by spaces
  • tar: handle "tar fx TARFILE" etc
  • tar: optional support for -m (--touch). By Mikhail Gusarov (dottedmag AT dottedmag.net)
  • telnetd: optional support for -w ("inetd wait")
  • tests: fix POSIX shell source style. By Mike Frysinger (vapier AT gentoo.org)
  • tftp: add optional support for progress bar. By Magnus Damm (magnus.damm AT gmail.com)
  • tftp: extend tsize support a little. By Magnus Damm (magnus.damm AT gmail.com)
  • top: add -m ("memory") option
  • tty: use defines rather than constants. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
  • udhcpc: fix bug 629: use bcast receive when we perform rebinding
  • udp_io: fix two potential cases of unaligned accesses
  • uniq: plug memory leak. Patch from OpenWRT project
  • volume_id: add support for btrfs. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • wc: fix a hang gue to isprint(EOF). By Dan Fandrich (dan AT coneharvesters.com)
  • wget: check for close success; fix chunked; do not bother to send QUIT to ftp
  • wget: factor out progress bar code. By Magnus Damm (magnus.damm AT gmail.com)
  • wget: fix for code 302. By Vladimir Dronnikov (dronnikov AT gmail.com)
  • [un]expand: unicode support. By Tomas Heinrich (heinrich.tomas AT gmail.com)

New in version 1.15.2 (October 9th, 2009)

  • fixes for ash and hush (`trap` handling), dd (fixed handling of I/O errors), find (fix for -follow and symlinks), pidof (corrected recognition of kernel thread names), sed (SEGV), uniq (memory leak), line editing (Ctrl-D works again), build system.

New in version 1.14.2 (June 22nd, 2009)

  • Bug fix release. Contains fixes in ash ('.' builtin), ftpd, httpd, modprobe (better exit code compatibility), readlink (more options supported), telnetd (now closes file descriptors in childred, it was forgetting to do so).

New in version 1.14.1 (May 29th, 2009)

  • Bug fix release. Contains fixes in acpid, awk, depmod, dhcp, gzip, mdev, modprobe, sysctl; libbb fixes. hush is significantly updated.

New in version 1.13.3 (March 8th, 2009)

  • It has fixes for awk, depmod, init, killall, mdev, modprobe, printf, syslogd, tar, top, unzip, wget.

New in version 1.12.1 (October 29th, 2008)

  • Major feature enhancements.