1.19.0 is released

Denys Vlasenko vda.linux at googlemail.com
Sat Aug 13 07:45:32 UTC 2011


Rob,
'less: optionally query terminal size via "ESC [ 6 n". Closes 2659'
item is the thing you asked for sometime ago. It is finally done.

=======================================================
13 August 2011 -- BusyBox 1.19.0 (unstable)

Sizes of busybox-1.18.5 and busybox-1.19.0 (with equivalent config, static uclibc build):

   text    data     bss     dec     hex filename
 837577     493    7516  845586   ce712 busybox-1.18.5/busybox
 839598     493    7508  847599   ceeef busybox-1.19.0/busybox

Changes since previous release:

Alexander Shishkin:
      diff: return 1 when skipping directories with -r, but without -N

Alexey Fomenko:
      libbb: remove dead code in getopt32
      lineedit: fix rare SEGV
      route: add missing fclose's
      ifupdown: don't leak malloced variables in the loop; remove double alloc
      md5/sha1sum: fix small resource leak

Alexey Soloviev:
      date: preserve isdst value if date is in time_t (unix time) format

Bernhard Reutner-Fischer:
      mount: for NFS use tcp per default rather than udp
      inetd: check if RPC is available

Bogdan Harjoc:
      find: implement -ipath

Chris Rees:
      build system: do not use GNU-isms in find
      FreeBSD compat patches

Dan Fandrich:
      simplify Ethernet header includes
      use the built-in getline on more systems that don't have it
      hush: support set -o xtrace/noexec alternates for set -x/-n
      fbsplash: display images even when a second buffer is active
      blockdev: add --getsz to replace --getsize
      platform.h: support for build under Android

Daniel Fandrich:
      replaced __u32 etc with standard uint32_t style types
      support configuring Busybox from _defconfig files
      add defconfig files for Android, Cygwin and FreeBSD

Davide Cavalca:
      hwclock: implement --systz
      syslogd: add and use CONFIG_FEATURE_SYSTEMD

Denys Vlasenko:
      use net/ethernet.h instead of linux/if_ether.h in more cases. Closes 3619
      improve --install operation in chroot jails
      incorporate header fixes proposed in bug 3097
      remove erroneous dependencies on INSTALLER
      remove old "define lchown chown"
      replace "depends on PLATFORM_LINUX" with "select PLATFORM_LINUX"
      use user's shell instead of hardwired "/bin/sh" (android needs this)
      disable automatic selection of FEATURE_SUID
      if only one applet is enabled, make "busybox applet [params]" work as expected
      scripts/kconfig/mconf.c: stop-gap fix for buffer overflow
      libbb/login/su: do not sanitize shell name twice
      libbb/progress.c: make sure we never get negative ETA
      libbb/progress.c: use unicode support funcs instead of open-coding it
      libbb/progress.c: better overflow protection; more precise bar
      libbb/progress.c: display >999 hours ETA correctly
      libbb/progress.c: fix bugs found in stall detection and unknown size logic
      libbb/read_cmdline: prepend {comm} if different from argv0. Closes 3835
      libbb: make BB_EXECVP/LP try to exec real binary if there's no /proc/self/exe
      libbb: make set_nport accept pointer to sockaddr, not to len_and_sockaddr
      libbb: make user/group name cache strings longer (~27 chars)
      libbb: optionally support RTMIN[+n] and RTMAX[-n] signal names
      libbb: spawn should remove child which failed to exec
      libbb: use _unlocked variants of stdio I/O
      lineedit: implement optional Ctrl-R history search
      lineedit: fixes for CONFIG_UNICODE_USING_LOCALE=y
      main: free suid_config list after use
      main: make busybox.conf mode handling less obscure
      ash: fix ash-signals/signal8 testcase failure
      ash: fix execution of shell scripts without shebang
      ash: optional support for $TMOUT variable
      ash,hush: add ulimit -e -r (RLIMIT_NICE, RLIMIT_RTPRIO)
      ash,hush: optional support for $HISTFILESIZE
      ash,hush: recheck LANG before every line input
      hush: do not print killer signal's name for SIGPIPE
      hush: fix "cmd & <newline>" problem
      hush: fix FEATURE_CLEAN_UP code (was freeing unallocated memory)
      hush: fix a case where return in sourced file has no effect
      hush: fix a corner case of empty "do \n done" structure
      hush: fix incorrect PS2 display and trap handling while reading command
      hush: fix login shell's signal handling; add -l option so that it's easier to test
      hush: fix misparsing of "... do eval a= ...". Closes 3721
      hush: fix bugs with IFS expansion. Closes 4027
      hush: fix source1.tests
      hush: fix wrong prompt problem on empty interactive commands
      hush: fixes and small shrink for HUSH_JOB!=y
      hush: improve prompt in nested {}s
      hush: make parse errors in sourced file non-fatal in interactive script
      hush: make read builtin interruptible
      hush: replace signal handling machinery
      hush: use FEATURE_SH_NOFORK to enable NOFORK trick
      adduser: better logic for choosing addgroup -g/--gid
      adduser: prefer to call addgroup --gid, not non-std addgroup -g
      adduser: safe username passing to passwd/addgroup
      adduser: use better argv passing to addgroup
      basename,dirname,freeramdisk,rx,raidautorun,runsv,chvt: skip "--" argument
      blkid: optional support for TYPE="fstype"
      busybox.conf: USER.GROUP is _optional_
      busybox: fail if --install is not given an absolute path
      bzip2: plug memory leak on every processed file
      chrt: -m can be used without any arguments. Closes 2989
      chrt: correct opt_complementary. Closes 2977
      cpio: allow cpio -i to take params - names of files to extract
      date,touch: treat 2-digit years better (fit them into +-50 yrs around today)
      date: add a comment about _SVID_SOURCE
      dc: fix a case where we can run off malloced space
      die_if_bad_username: tighten up a bit
      echo: do not retry on write errors
      echo: fix ENOSPC detection and some iffy code in \NNN handling
      echo: fix SEGV when run with no args
      fbset: abort on unknown options. Closes 3121
      fbset: apply modelines. Closes 3823
      fdisk: make FDISK_SUPPORT_LARGE_DISKS redundant when LFS=y
      fdisk: reinstate a short sleep between sync() and ioctl(BLKRRPART)
      fdisk_osf: simplify ifdef (incidentally, adds support for Microblaze)
      find: cater for libc w/o FNM_CASEFOLD
      find: fix a bug in !ENABLE_FEATURE_FIND_XDEV config
      find: print/print0/prune _can_ be inverted, fix it
      find: remove the hack we use to parse options first, replace with simpler code
      fix !ENABLE_FEATURE_GETOPT_LONG build. Closes 3775
      fix parameter loading problem for 2.4 kernels. Closes 3223
      fuser: fix inverted access() check. Closes 3799
      gen_build_files.sh: do not use "sed --" for now
      getty: add ECHOE explanation
      getty: add sleep before initial tcdrain; reduce another sleep from 1 to 0.1s
      getty: do clear CLOCAL and CRTSCTS unless told otherwise
      getty: do not clear all c_cflag's (we were clearing baud bits!)
      getty: document bits we don't set - maybe we should set some of them?
      getty: fix -i (was ignored)
      getty: flush _only_ input after switching to the next baud rate
      getty: simplify macros; improve VSWTC[H] compat
      getty: use cfsetspeed to save some bytes
      groups: make it NOEXEC
      halt/reboot: better message if /sbin/telinit is not found
      httpd: send correct mtime for .gz files
      hwclock: use locale-specific date output format
      id: correct getgroups usage
      id: fix inverted if (!ENABLE_DESKTOP)
      init: fix a case where execv's 1st arg was wrong
      init: simpler handling of leading dash in commands
      insmod: check for module read errors
      iplink: tweak includes to work on android
      iproute: fix handling of "dev IFACE" selector
      iproute: fix parsing and matching of "short" IP addrs like 10/8
      kill[all[5]],pkill: make signal list show signal numbers, and show RTMIN/MAX
      klogd: fix the problem of delayed handling of ^C and SIGTERM
      length: disable this applet
      less: optionally query terminal size via "ESC [ 6 n". Closes 2659
      ls: -g implies -l
      ls: add support for -H
      ls: fix HAVE_STRVERSCMP check; add check for older uclibc versions
      ls: fix bits for -T, -w and --color; make -n imply -l
      ls: fix handling of symlinks by option -1
      ls: fix one-bit-off which caused -H to behave as -h
      ls: for some options, only last takes effect. Closes 2959
      ls: make -F not follow symlinks of the command line
      ls: make -v and -X actually work as intended
      ls: make -x force columnar output
      ls: print a space after each column. Closes 2941
      ls: reduce memory consumption and speed up (don't do redundant [l]stat)
      ls: widen -s (1k blocks) column from 4 to 6
      lsmod: fix unsafe usage of strlen()-1
      mailutils/*: add verbose option to sendmail; remove -m and -j from makemime
      mesg: make group/all writability configurable
      mesg: operate on stdin, not on stderr (compat)
      mktemp: make it more compatible with GNU coreutils 8.4
      modprobe-small: support compressed modules in insmod
      modprobe/insmod: fix parameter quoting
      modprobe: fix "modprobe -l name-with-dash"
      more: exit if write to stdout errors out
      more: fix tabs handling
      mount: strip multiple trailing slashes, not just one
      move nofork_save_area from libbb.h to vfork_daemon_rexec.c
      nmeter: deprecate %NNNd specified, use -d MSEC instead
      ntpd: decrease ntpd -q "no response" timeout to 10 sec
      od: another fix for --strings
      od: fix "od --traditional FILE"
      od: fix -S NUM to not print chars >0x80
      parse_config: make test applet easier to enable; fix its code
      ping: fix IPv6 pinging. Closes 3187
      ping: set not only IP_TTL, but also IP_MULTICAST_TTL
      printenv: fix environ == NULL segfault
      procps: remove PSSCAN_STAT define, users were using it incorrectly
      ps: implement -o stat
      pstree: use stdin for screen size detection
      reformime: do not require \r\n
      reset: "ESC(K" selects German, why did we use that? Change to "ESC(B" (US)
      sed: support \r in s command
      start-stop-daemon: fix "-K --test --pidfile PIDFILE" exit code
      stty: enable line discipline display and change code if __linix__
      stty: make swtch and iutf8 visible/settable
      su: document -l in --help text. Closes 2761
      tail: optimize "tail -c HUGENUM REGULAR_FILE". Closes 3763
      tar: fix a bug where autodetection messes up -z on extract
      tar: on extract, everything up to and including last ".." is stripped
      tar: skip leading / and handle names like abc/..////def -> def (not ///def)
      tar: store negative mtime as 0; pack very large files using base-256 encoding
      tar: support "-T -" and "-X -"
      telnetd: write utmp record with correct pid
      tftp: fix bad interaction between poll() and alarm(). Closes 3061
      tftp: fix progress bar for large (>32M) files. Closes 3499
      tftpd: add -l "log to syslog" option. Needed for inetd mode
      top: better indicator of selected field in mem view
      top: display sort indicator in memory display
      top: make it possible to feed commands via pipe
      top: replace %MEM with %VSZ in header text
      traceroute: properly reduce poll timeout
      udhcp: fix some default values from "" to NULL
      udhcpc: allow -O OPT take numeric params
      udhcpc: emit "correct" secs field
      udhcpc: fix a problem with binary-encoded options
      udhcpd: reply with NAK to clients in INIT-REBOOT state w/o existing lease
      udhcpd: smaller code: do not look for REQUESTED_IP twice
      uptime: more compatible output
      wc: fix swapped -c and -m
      wget: check for final write errors for -O FILE too
      wget: chunked mode fix. Closes 3229
      wget: correctly handle rare case when we get EAGAIN _on first_ read
      wget: display 100% at the _end_ of chunked download
      wget: fix fname_out usage wrt redirects
      wget: make "wget -O FILE URL1 URL2" concatenate output
      wget: remove functions which retry on EINTR
      wget: support multiple URLs on command line
      wget: use FEATURE_COPYBUF_KB-sized buffer. Much faster for local transfers
      wget: use closed HTTP/1.1 connection, stop when we dl'ed $content_len bytes
      xargs: support --no-run-if-empty (synonym to -r)

Eric Lammerts:
      runsvdir: do not miss closely spaced service dir changes

Harald Becker:
      showkey: make -a work on any stdin

Ian Wienand:
      login: apply PAM environment
      ash: clear sa_flags always
      tar: ignore file size (assume 0) for hardlinks

James Youngman:
      ls: remove redundant constants LIST_FILENAME and LIST_SHORT

Joachim Nilsson:
      ping: add -t TTL option
      build system: fix "make install" to skip /usr when configured so

Keith Young:
      udhcpc: add -B option

Kevin Cernekee:
      cttyhack: check sysfs for the name of the active console
      cttyhack: fail gracefully if the device node is missing

Lauri Kasanen:
      pstree: new applet
      df,find_mount_point: optionally don't ignore rootfs
      modinfo: show firmware and depends fields
      fdisk: backport disk check from util-linux
      md5/shaNsum: make -c support a list of files

Macpaul Lin:
      scripts: fix fixdep.c to let it work in Cygwin

Maksym Kryzhanovskyy:
      iostat: code shrink ~0.5k
      fuser: code shrink
      iostat: code shrink

Marek BeФka:
      setserial: new applet

Nigel Hathaway:
      udhcp: add FEATURE_UDHCP_8021Q option
      udhcpc: export unrecognized options in "optNN=XXXXXXXXX" form

Nuno Lucas:
      fbsplash: add support for 24 and 32 bit color depth

Pascal Bellard:
      chsum: fix
      conspy: fix lost ESC key

Pere Orga:
      whois: new applet
      pwdx: new applet
      move help text from include/usage.src.h to *.c files
      wget: fix SEGV with multiple urls and redirection
      kill: fix infinite loop when passed PIDs are not valid numbers
      uptime: add config flag to allow displaying the number of users currently logged on

Peter Korsgaard:
      getty: wait up to 5 seconds for the output buffer to drain
      mount: ignore unknown mount options when remounting NFS mounts
      httpd: don't send error messages with gzip encoding
      setconsole: open console for writing rather than reading

Phil Sutter:
      nameif: fix parsing of /proc/net/dev
      nameif: add matching by phy_address=NUM

Ralf Friedl:
      df: more compatible -P behavior

Reuben Dowle:
      ubimkvol,ubirmvol,ubirsvol,ubiupdatevol: new applets

Rob Landley:
      patch: fix "patch at the beginning" testcase failure

Roman Borisov:
      mount: fix wrong long option names
      mount: properly update /etc/mtab on mount --move
      mount: rprivate option fix
      mount: add --rbind option support
      diff: optimize diffing of files with the same metadata

Ryan Phillips:
      login: set PAM RHOST

Sergey Naumov:
      syslogd: optional support for /etc/syslog.conf

Serj Kalichev:
      modprobe: add support for --show-depends
      modprobe: add -D option (synonym of --show-depends)

Steve Iribarne:
      pam link error with SHARED_BUSYBOX and LIBBUSYBOX enabled

Timo Teras:
      modprobe: use hash table. speeds up significantly if modprobe.dep is large
      parse_config: use getline. BIG speedup with glibc (~40%)
      platform.c: provide getline implementation

Tito Ragusa:
      passwd,chpasswd: reset password in /etc/passwd to "x" if /etc/shadow was updated
      groups: new applet
      users: new applet

Vitaly Magerya:
      wget: --post-data=STR should not encode STR, should send it verbatim

Vladislav Grishenko:
      udhcpc: use more correct, and more importantly, more understandable BPF code
      udhcpd: optional IP selection based on MAC hash

Wade Berrier:
      pkill/pgrep: support extended regular expressions

Walter Harms:
      vi: fix regex search, make it selectable in config


More information about the busybox mailing list