1.7.0 is out

Denys Vlasenko vda.linux at googlemail.com
Fri Aug 24 10:59:26 UTC 2007


Hi people,

I uploaded 1.7.0 earlier today. Enjoy.

GPG signatures are not there yet, will create them tomorrow.

===========================================================
24 August 2007 -- BusyBox 1.7.0 (unstable)

BusyBox 1.7.0. (svn, patches, how to add a patch)

Applets which had many changes since 1.6.x:

httpd:

    * works in standalone mode on NOMMU machines now (partly by Alex Landau <landau_alex at yahoo.com>)
    * indexer example is rewritten in C
    * optional support for error pages (by Pierre Metras <genepi at sympatico.ca>)
    * stop reading headers using 1-byte reads
    * new option -v[v]: prints client addresses, HTTP codes returned, URLs
    * extended -p PORT to -p [IP[v6]:]PORT
    * sendfile support
    * add support for Status: CGI header
    * fix CGI handling bug (we were closing wrong fd)
    * CGI I/O loop still doesn't look 100% ok to me... 

udhcp[cd]:

    * add -f "foreground" and -S "syslog" options
    * fixed "ifupdown + udhcpc_without_pidpile_creation" bug
    * new config option "Rewrite the lease file at every new acknowledge" (Mats Erik Andersson <mats at blue2net.com> (Blue2Net AB))
    * consistently treat server_config.start/end IPs as host-order
    * fix IP parsing for 64bit machines
    * fix unsafe hton macro usage in read_opt()
    * do not chdir to / when daemonizing 

top, ps, killall, pidof

    * simpler loadavg processing
    * truncate usernames to 8 chars
    * fix non-CONFIG_DESKTOP ps -ww (by rockeychu)
    * improve /proc/PID/cmdinfo reading code
    * use cmdline, not comm field (fixes problems with re-execed applets showing as processes with name "exe", and not being found by pidof/killall by applet name)
    * reduce CPU usage in decimal conversion (optional) (corresponding speedup on kernel side is accepted in mainline Linux kernel, yay!)
    * make percentile (0.1%) calculations configurable
    * add config option and code for global CPU% display
    * reorder columns, so that [P]PIDs are together and VSZ/%MEM are together - makes more sense 

Build system improvements: doesn't link against libraries we don't need,
generates verbose link output and map file, allows for custom
link stripts (useful for removing extra padding, among other things).

Code and data size in comparison with 1.6.1:

Equivalent .config, i386 glibc dynamic builds:
   text    data     bss     dec     hex filename
 672671    2768   16808  692247   a9017 busybox-1.6.1/busybox
 662948    2660   13528  679136   a5ce0 busybox-1.7.0/busybox
 662783    2631   13416  678830   a5bae busybox-1.7.0/busybox.customld

Same .config built against static uclibc:
 765021    1059   11020  777100   bdb8c busybox-1.7.0/busybox_uc

Code/data shrink done in applets: crond, hdparm, dd, cal, od, nc, expr,
uuencode, test, slattach, diff, ping, tr, syslogd, hwclock, zcip, find,
pidof, ash, uudecode, runit/*, in libbb.

New applets:

    * pscan, expand, unexpand (from Tito <farmatito at tiscali.it>)
    * setfiles, restorecon (by Yuichi Nakamura <ynakam at hitachisoft.jp>)
    * chpasswd (by Alexander Shishkin <virtuoso at slind.org>)
    * slattach, ttysize 

Unfortunately, not much work is done on shells. This was mostly stalled
by lack of time (read: laziness) on my part to learn how to adapt
existing qemu-runnable image for a NOMMU architechture (available
on qemu website) for local testing of cross-compiled busybox on my machine.

Other changes since previous release (abridged):

    * addgroup: disallow addgroup -g num user group; make -g 0 work (Tito <farmatito at tiscali.it>)
    * adduser: close /etc/{passwd,shadow} before calling passwd etc. Spotted by Natanael Copa <natanael.copa at gmail.com>
    * arping: -i should be -I, fixed
    * ash: make "jobs | cat" work like in bash (was giving empty output)
    * ash: recognize -l as --login equivalent; do not recognize +-login
    * ash: fix buglet in DEBUG code (Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
    * ash: fix SEGV if type has zero parameters
    * awk: fix -F 'regex' bug (miscounted fields if last field is empty)
    * catv: catv without arguments was trying to use environ as argv (Alex Landau <landau_alex at yahoo.com>)
    * catv: don't die on open error (emit warning)
    * chown/chgrp: completely match coreutils 6.8 wrt symlink handling
    * correct_password: do not print "no shadow passwd..." message
    * crond: don't start sendmail with absolute path, don't report obsolete version (report true bbox version)
    * dd: fix bug where we assume count=INT_MAX when count is unspecified
    * devfsd: sanitization by Tito <farmatito at tiscali.it>
    * echo: fix non-fancy echo
    * fdisk: make it work with big disks (read: typical today's disks) even if CONFIG_LFS is unset
    * find: -context support for SELinux (KaiGai Kohei <kaigai at kaigai.gr.jp>)
    * find: add conditional support for -maxdepth and -regex, make -size match GNU find
    * find: fix build failure on certain configs (found by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>)
    * fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one
    * grep: implement -m MAX_MATCHES, fix buglets with context printing
    * grep: fix selection done by FEATURE_GREP_EGREP_ALIAS (Maxime Bizon <mbizon at freebox.fr> (Freebox))
    * hush: add missing dependencies (Maxime Bizon <mbizon at freebox.fr> (Freebox))
    * hush: fix read builtin to not read ahead past EOL and to not use insane amounts of stack
    * ifconfig: make it work with ifaces with interface no. > 255
    * ifup/ifdown: make location of ifstate configurable
    * ifupdown: make netmask parsing smaller and more strict (was accepting 255.0.255.0, 255.1234.0.0 etc...)
    * install: fix -s (strip) option, fix install a b /a/link/to/dir
    * libbb: consolidate ARRAY_SIZE macro (Walter Harms <wharms at bfs.de>)
    * libbb: make /etc/network parsing configurable. -200 bytes when off
    * libbb: nuke BB_GETOPT_ERROR, always die if there are mutually exclusive options
    * libbb: xioctl and friends by Tito <farmatito at tiscali.it>
    * login: optional support for PAM
    * login: make /etc/nologin support configurable (-240 bytes)
    * login: ask passwords even for wrong usernames
    * md5_sha1_sum: fix mishandling when run as /bin/md5sum
    * mdev: add support for firmware loading
    * mdev: work even when CONFIG_SYSFS_DEPRECATED in kernel is off
    * modprobe: add scanning of /lib/modules/`uname -r`/modules.symbols (by Yann E. MORIN)
    * more: fixes by Tristan Schmelcher <tpkschme at engmail.uwaterloo.ca>
    * nc: make connecting to IPv4 from IPv6-enabled hosts easier (was requiring -s local_addr)
    * passwd: fix bug "updating shadow even if user's record is in passwd"
    * patch: fix -p -1 handling
    * patch: fix bad line ending handling (Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
    * ping: display roundtrip times with 1/1000th of ms, not 1/10 ms precision.
    * ping: fix incorrect handling of -I (Iouri Kharon <bc-info at styx.cabel.net>>)
    * ping: fix non-fancy ping6
    * printenv: fix "printenv VAR1 VAR2" bug (spotted by Kalyanatejaswi Balabhadrapatruni <kalyanatejaswi at yahoo.co.in>)
    * ps: fix -Z (by Yuichi Nakamura <ynakam at hitachisoft.jp>)
    * rpm: add optional support for bz2 data. +50 bytes of code
    * rpm: fix bogus "package is not installed" case
    * sed: fix 'q' command handling (by Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
    * start_stop_daemon: NOMMU fixes by Alex Landau <landau_alex at yahoo.com>
    * stat: fix option -Z SEGV
    * strings: strings a b was processing a twice, fix that
    * svlogd: fix timestamping, do not warn if config is missing
    * syslogd, logread: get rid of head pointer, fix logread bug in the process
    * syslogd: do not convert tabs to ^I, set syslog IPC buffer to mode 0644
    * tar: improve OLDGNU compat, make old SUN compat configurable
    * test: fix testing primary expressions like '"-u" = "-u"'
    * uudecode: fix to base64 decode by Jorgen Cederlof <jcz at google.com>
    * vi: multiple fixes by Natanael Copa <natanael.copa at gmail.com>
    * wget: fix bug in base64 encoding (bug 1404). +10 bytes
    * wget: lift 256 chars limitation on terminal width
    * wget, zcip: use monotonic_sec instead of gettimeofday
--
vda



More information about the busybox mailing list