start-stop-deamon is done
[oweals/busybox.git] / Changelog
index 52b34b663a103d60d7c50559e11108fb21befd4b..2a778d65debf25f88a05ac1b2105fabe7761aa0a 100644 (file)
--- a/Changelog
+++ b/Changelog
+0.61.pre
+
+    Development Version
+
+
+
+    New Applets:
+       * Erik Andersen -- Merged several applets from tinylogin,
+           namely adduser, addgroup, deluser, delgroup, getty.
+
+
+    Other Changes:
+
+       * Vladimir Oleynik, Manuel Novoa III, Aaron Lehmann
+           -- a whole bunch of ash size optimizations
+           -- Fix for ash leading redirections (i.e. '2>/dev/null ls rubbish')
+       * Rodney Brown  <RDBrown@mira.net> 
+           -- Optimized gzip.c, shrinking it be ~1.5k
+       * Matt Kraai
+           -- Fix sed s/[/]// handling (closes: #1208).
+           -- Fix `-/bin/sh' invocation (closes: #1209).
+           -- Fix ash exec (noted by Arne Bernin).
+           -- Fix tar segfault when include list is empty and exclude list is
+              not.
+           -- Fix sed s/$/@/ handling (noted by Joshua Hudson).
+       * Magick
+           -- made init run inittab command's in the order they show up
+               in the inittab file (FIFO instead of LIFO).
+
+
+        -Erik Andersen, --not yet released--
+
+
+
+0.60.1
+
+    Stable Release
+
+
+    New Applets & New Features:
+       none.  :)
+
+    Known Problems (to be fixed in 0.60.2)
+       * msh can segfault on constructs such as
+               for i in `ls *.c` ; do echo $i ; done
+         due to a memory allocation problem.  This only seems to cause
+         problems when the backtick expands to be several k in size.
+
+
+    Bugfixes:
+       * Matt Kraai
+           -- Fixed msh to support underscores in variable names.
+           -- Fixed a sed problem with unsatisfied backrefs (the problem was
+               noted by Martin Bene).
+           -- Removed CONFIG_SH define entirely.  Now one simply picks the shell
+               or shells they want as CONFIG_<foo> in Config.h
+           -- Fixed head to use ferror(3) to check for errors, not errno.
+       * Shu-Hao Chang <shuhao_chang@trend.com.tw>
+           -- Fixed sed handling of multiple -e commands
+       * Magick <magick@linux-fan.com>
+           -- Fixed an init bug with AskFirst and /dev/null
+       * Jaspreet Singh <jsingh@somanetworks.com>
+           -- Fixed both a segfault and cosmetic bug in route
+       * Erik Andersen
+           -- Made the insmod options CONFIG_FEATURE_NEW_MODULE_INTERFACE and 
+               CONFIG_FEATURE_OLD_MODULE_INTERFACE mutually exclusive
+           -- xgetcwd.c now includes sys/param.h to ensure PATH_MAX is defined
+           -- Fixed a potential segfault with lash + CONFIG_FEATURE_CLEAN_UP
+           -- Removed uint64_t from dos2unix, avoiding C lib compat. problems.
+       * Glenn McGrath
+           -- Rewrite of tftp (commands match atftp, accepts -b, can use 
+               non-standard ports, and is smaller).
+           -- Fixed unarchive exclude list handling
+       * Manuel Novoa III
+           -- rewrite of simplify_path so it behaves itself (fixing some
+               problems with mount and other applets).
+           -- Fixed ifconfig 'broadcast +' handling and disabled it by default
+       * Matthias ? <matthias@corelatus.com>
+           -- Fixed syslogd to log all messages from a single connection, not
+               just the first.
+        
+        
+        -Erik Andersen, 23 August 2001
+
+
+0.60.0
+
+    Note: 
+
+       For this release I have bumped the version number to 0.60.0.  This
+       reflects the fact that this release is intended to form a new stable
+       BusyBox release series.  If you need to rely on a stable version of
+       BusyBox, you should plan on using the stable 0.60.x series.  If bugs
+       show up then I will release 0.60.1, then 0.60.2, etc...  This is also
+       intended to deal with the fact that the BusyBox build system will be
+       getting a major overhaul for the next release and I don't want that to
+       break products that people are shipping.  To avoid that, the new build
+       system will be released as part of a new BusyBox development series
+       that will have some not-yet-decided-on odd version number.  Once things
+       stabablize and the new build system is working for everyone, then I
+       will release that as a new stable release series. 
+
+    Critical Bugfixes:
+       * Matt Kraai 
+           -- Fixed wget output file opening (wget failed in 0.52).
+           -- Fixed a memory leak in syslogd (found by Adam Slattery).
+       * Vladimir Oleynik, Matt Kraai, Erik Andersen
+           -- several nasty bugs in ash and msh.  msh could not assign
+               any variables and had debug code still enabled.  ash
+               had several compile errors (depending on selected options)
+               and variable assignment problems as well.
+
+    New Applets:
+       * David McCullough <davidm@lineo.com> -- modprobe
+       * Vladimir Oleynik -- traceroute
+       * Erik Andersen -- pidof
+
+    New Scripts:
+       * David Schleef, Erik Andersen, Stuart Hughes -- depmod.pl
+           This is a replacement for the depmod program from the modutils 
+           package, but is fully cross platform and is designed to run on 
+           your host system (not on the target).
+
+    Other Changes:
+       * Erik Andersen 
+           -- fixed busybox.spec so it should now work on redhat systems
+           -- fixed dos2unix and unix2dos so they should work once again
+           -- Adjustments to make busybox more uClinux friendly.  Busybox
+               should now work on uClinux systems without needing and source
+               code changes (applets that won't work on uClinux systems are 
+               now automagicaly disabled).
+           -- various things (cleanups, libc compatibility work, etc, etc)
+       * Jim Gleason <jimg@lineo.com>
+           -- Fixed for sed, where it failed to preserve whether or not the 
+               line was previously altered when running a subst command.
+       * Matt Kraai 
+           -- Made tar read 20 512byte blocks at a time (like GNU tar)
+           -- Allow msh.c assignments with the export and readonly commands.
+           -- Added CONFIG_FEATURE_DEVFS to enable devfs device names.
+           -- Better devfs support
+           -- Don't save/restore vi readonly flag if vi is compiled read-only.
+           -- Reworked rdate option handling (is now smaller).
+           -- Size reduction in ping
+           -- Always write dd counts to stderr
+           -- Allow multiple shells to be enabled
+       * Aaron Lehmann 
+           -- slimmed down md5sum 
+           -- contributed a nice new (hand written, not lex/yacc) Posix math 
+               support for ash, which is once again a full posix shell.
+       * Felix von Leitner <leitner@convergence.de> -- patches to make busybox 
+           work with dietlibc.
+       * David McCullough
+           -- Adjustments to make busybox more uClinux friendly
+       * Glenn McGrath 
+           -- Fixed gzip so when a filename is '-' it will use stdin/stdout
+           -- dpkg rewrite.  Should now be compatable with the real dpkg, 
+               but needs more testing.
+           -- Updates to archiving tools (gunzip/gzip/cpio/ar/etc) 
+           -- Rewrote uuencode, will allow base64 encoding to be used by wget
+       * Vladimir Oleynik 
+           -- Fixed tr to support 'tr a-z A-Z' syntax,
+           -- Many ash corrections, optimizations, and cleanups.
+           -- optimizations for traceroute, md5sum, chown, ping
+           -- cmdedit updates and API change
+           -- Namespace cleanup (i.e. adding 'static' private function calls)
+           -- added "stopped jobs" warning to ash on exit
+       * Adam Slattery
+           -- Fixed ping compile problem
+       * Robert J. Osborne <rj@resourceinternational.com>
+           -- fixed a vi bug with delete and escape sequences on empty files.
+
+
+        -Erik Andersen, 31 July 2001
+
+
+
+0.52
+       
+    Critical Bugfixes:
+       * Glenn McGrath -- Fixed gunzip, zcat when reading from stdin
+       * Marc Karasek and Kanoj (kernel serial.c maintainer) -- fixed init
+           problem on serial consoles with 2.4.3+ kernels.
+       
+    New Applets:
+       * Laurence Anderson -- rpm2cpio applet, this obsoletes rpmunpack 
+           which has now been removed from BusyBox 
+       * Laurence Anderson and Glenn McGrath -- cpio applet, currently 
+           only supports unpacking the ascii cpio format.
+       * Vladimir Oleynik and Erik Andersen -- added ash, the most correct
+           busybox shell.
+       * Larry Doolittle -- hush, small shell designed specifically
+           for busybox.  Quite usable but still a work in progress.
+       * Erik Andersen -- msh, minix shell.  A very small but capable shell
+           that only uses vfork, so it can be used on uClinux systems.
+
+    Other Changes:
+       * Sterling Huxley -- Several bugfixes for the vi applet.
+       * Glenn McGrath -- Restructure unarchiving code to make more code
+           common to the ar, cpio, dpkg, dpkg-deb applets.
+           tar applet has not yet been assimilated...
+       * Matt Kraai -- Rewrote cp, dirname, mkdir, mv, and rm.
+       * Paul J.Y. Lahaie <pjlahaie@linuxcare.com> -- Fixed an endian-ness
+           bug in md5sum (in 0.51, md5sum on big endian machines was broken)
+       * Mark Whitley -- rewrote cut, major updates to grep and sed. 
+       * Erik Andersen -- bunches of insmod fixes.  It should now always 
+           work (no more segfault or missing symbols problems).
+       * Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de> and Jinux Kim
+           added uClinux/m68k insmod support.
+       * Manuel Novoa III -- rewrote make_human_readable so ls, du, and df
+           should work as expected.  Eliminated use of floats.
+       * Aaron Lehmann <aaronl@vitelus.com> -- Scrubbed gzip.c
+       * Alan Modra <amodra@bigpond.net.au> -- fixed an hard to spot
+           bug breaking gunzip checksum checking.
+       * Gennady Feldman -- Fixed 'syslog -C' 
+       * Gernot Poerner <gp@it-netservice.de> -- Added mount bind support.
+       * Adam Heath <doogie@debian.org>  -- wget arbitrary header support
+       * John Beppu -- updated the automagical doc generator
+       * Zillions of other bugfixes, optimizations, and cleanups.
+
+
+
+        -Erik Andersen, 7 July 2001
+
+
+0.51
+    Critical Bugfixes:
+       * Erik Andersen -- Fixed a bug that could crash the shell in 0.50
+           when pressing <Enter> on an empty line.
+       * Gennady Feldman -- Fixed a bug that could crash the shell in 0.50
+           when performing an 'export' in the shell.
+       * Gennady Feldman -- fixed a syslogd bug where syslogd could cause
+           the init process to block (which can break systems badly).
+
+    New Applets:
+       * Sterling Huxley -- contributed a new vi applet!  This is a very
+           functional vi implementation in Only 22k.
+       * Erik Andersen -- added env applet
+       
+    Other changes:
+       * Erik Andersen -- Split utility.c into libbb, which provides a
+           much cleaner was for us to include shared functionality.
+       * Erik Andersen -- Reorganized how and when busybox includes 
+           syscalls, aiding portability and (in this case) making the
+           busybox work on ia64 systems.
+       * Erik Andersen -- dpkg.c cleanup to use the updated gunzip interface.
+       * Erik Andersen -- Cleanups for libc5, glibc, and uClibc.
+       * Erik Andersen and Matt Kraai -- Cleanups for the human-readable
+           output from ls, du, and df.
+       * Laurence Anderson <laurence@zxmail.com> -- Fixed wget HTTP 1.1
+           support and added chunked encoding so it is now RFC compliant.
+       * John Beppu -- The busybox.pod documentation is now automagically
+           generated from the source code.  This makes it _much_ simpler.  
+           Now to update the docs, just update the usage message...
+       * Dirk Behme <dirk.behme@de.bosch.com> -- Adjusted MIPS insmod 
+           support a bit for Mips RS3.
+       * Christophe Boyanique -- egrep invoked the "init" applet in 0.50!
+       * Larry Doolittle -- Added -Wshadow and fixed a number of shadowed
+           variables
+       * David Douthitt -- fixed 'find -print' 
+       * Gennady Feldman -- fixes for the syslogd circular buffer code 
+       * Jeff Garzik -- a number of structural cleanups, fixes for -Wshadow 
+           bugs, and similar problems.
+       * Matt Kraai -- Added a new 'shutdown' action to busybox init.  Now
+           you can specify arbitrary behavior for 'ctrlaltdel' so now
+           pressing CTL-ALT-DEL can do something else (or nothing).
+       * Andreas Neuhaus <andy@fasta.fh-dortmund.de> -- fix for merging
+           kernel command line environment variables into child environment
+           for init.c
+       * Glenn McGrath -- Fixed problems with dpkg and dpkg-deb applets
+       * Glenn McGrath -- Don't try to automount devfs 
+       * Vladimir Oleynik -- optimizations for more.c
+       * Vladimir Oleynik -- Added locale support to the shell, and fixed
+           locale support in several other places
+       * Vladimir Oleynik -- moved struct applet from busybox.c to applets.c
+       * Vladimir Oleynik -- A size optimization for rdate
+       * Vladimir Oleynik -- Fixed printf applets's locale handling
+       * Vladimir Oleynik -- More cmdedit updates
+       * Vladimir Oleynik -- Fixed `du' applet so it continues running 
+           after permission errors.
+       * Vladimir Oleynik -- Reduced stack usage in recursive_action()
+       * Pierre Peiffer <pierre.peiffer@sxb.bsf.alcatel.fr> -- made
+               find_pid_by_name() cope with swapped out processes.
+       * Jari Ruusu <jari.ruusu@pp.inet.fi> -- updates so that setting
+           D_FILE_OFFSET_BITS=64 now works as expected. 
+       * Anthony Towns <aj@azure.humbug.org.au> -- fixed a bug with 
+           sed address range handling
+       * Dmitry Zakharov <dmit@crp.bank.gov.ua> -- a number of updates
+           to wget: support for ftp downloads, basic HTTP basic auth, handling
+           of http redirects, when attempting to continue an aborted download
+           but server doesn't support restarts then reopen output file in
+           write mode, bugfix: when content-length not given, wget didn't
+           download anything, if -c is not specified, it no longer default to
+           restarting an aborted download. 
+
+
+        -Erik Andersen, 10 April 2001
+
+
+0.50
+       * Erik Andersen -- added ifconfig interface status reporting 
+       * Erik Andersen -- Debian packaging updates
+       * Erik Andersen -- lash environment variable expansion rewritten,
+           with lots of help/fixes/testing from Larry Doolittle.
+       * Erik Andersen -- Fix use of busybox with dmalloc debugging lib
+       * Erik Andersen -- fixed ls behavior for broken or very narrow terminals
+       * Erik Andersen -- stub umount2 and pivot_root if they are not available
+       * Erik Andersen -- libc5 fixes
+       * Erik Andersen -- make init work with devfsd
+       * Erik Andersen -- fixed df for nfs and dos where blksize = 512
+       * Erik Andersen -- Make sure libpwd.a is linked _last_ so it 
+           overrides the system pwd/grp 
+       * Christophe Boyanique -- added an optional egrep alias for grep.
+       * Christophe Boyanique -- added optional 'rm -i' support.
+       * Kenneth Chalmers and Erik Andersen -- fixed ln so it
+           behaves when given no arguments (prints usage) and when
+           given just one arg (tries to make a link in the cwd).
+       * Magnus Damm -- added a tftp applet  
+       * Magnus Damm -- powerpc support for busybox insmod.
+       * David Douthitt -- fixed a build error in df.c when 
+           CONFIG_FEATURE_HUMAN_READABLE was disabled
+       * John Beppu -- wrote autodocifier.pl, which will be used to auto-
+           generate the documentation from the source code, making life
+           much simpler for all.
+       * Magnus Damm <damm@opensource.se> -- Fixed an 'inner scope var
+           masking outer scope var with same name' bug that prevented 
+           the loopback device from being unmounted if mount() failed.
+       * Larry Doolittle -- rewrote ifconfig to make it smaller 
+       * Larry Doolittle and Erik Andersen -- cleanups to pristine source
+       * Larry Doolittle -- many bugfixes resulting from regression testing
+       * Gennady Feldman -- split syslogd.c into syslogd and klogd
+       * Gennady Feldman -- make syslogd single threaded -- no more forking
+       * Jeff Garzik -- getopt-ified rmmod.
+       * Jeff Garzik -- glibc 2.2 warning cleanups
+       * Jeff Garzik -- namespace pollution cleanup (staticified variables).
+       * Erik Gustavsson <cyrano@algonet.se> -- allow env variables set on the
+           kernel command line to be inherited into init and its children.
+       * Erik Habbinga -- fixed an uninitialized substitution delimiter in sed.
+       * Chris Jaeger -- Makefile cleanup to make option setting less error-prone
+       * Chris Jaeger <cjaeger@ensim.com> -- Carefully check NFS_MOUNT_VERSION
+           depending on what kernel is being used.
+       * Quinn Jensen <jensenq@lineo.com> -- MIPS support for busybox insmod.
+       * Evin Robertson -- new pivot_root applet 
+       * Kent Robotti -- usage message cleanups
+       * Kent Robotti -- reworked dos2unix/unix2dos
+       * Evin Robertson and Manuel Novoa III -- reworked how usage messages 
+           are stored to save several k of space.
+       * Matt Kraai -- Keep trying if an NFS mount fails 
+       * Matt Kraai -- fixed insmod so it won't try to insmod directories.
+       * Matt Kraai -- added nc listening support
+       * Matt Kraai and David Douthitt -- reworked fine to support -type, 
+           -perm, -mtime, and other improvements.
+       * Matt Kraai -- added find_applet_by_name and saved some memory thereby
+       * Matt Kraai -- added chomp to reduce redundant code elsewhere
+       * Matt Kraai -- Removed trailing \n chars from error_msg{,_and_die} messages. 
+       * John Lombardo -- fixed OOM in insmod.
+       * Glenn McGrath -- bypass /proc in mount, now uses sysfs. 
+       * Glenn McGrath -- several updates to dpkg and dpkg-deb. 
+       * Manuel Novoa III -- several size optimizations: parse_mode, 
+           process_escape_sequence, format, and get_kernel_revision. 
+       * Manuel Novoa III -- rewrote ifconfig again to make it smaller still 
+       * Manuel Novoa III -- added ifconfig -a, updated interface reporting
+       * Vladimir N. Oleynik -- Fixed a bug where init set PATH incorrectly 
+       * Vladimir N. Oleynik -- cleanups to route, cmdedit, mkdir, 
+           mkfs_minix, mkswap, chmod_chown_chgrp and utility.c
+       * Vladimir N. Oleynik -- many fixes to cmdedit. so tab completion
+           is now working and general editing is much improved, and to
+           improve complex prompt handling.
+       * Vladimir N. Oleynik -- added route status reporting.
+       * Vladimir N. Oleynik -- fixed wget to use xfopen
+       * Vladimir N. Oleynik -- new stty applet 
+       * Vladimir N. Oleynik -- fixed find, it used to stop on perm errors.
+       * Vladimir N. Oleynik -- locale forced to posix for scripts 
+       * Vladimir N. Oleynik -- saved 128 bytes by moving error checking 
+           for several my_* functions into utility.c
+       * Bjorn Wesen -- new ifconfig and route applet (taken from 
+           work done by Axis Communications).
+       * Mark Whitley -- Added a 'How to contribute to Busybox' doc
+           and updated the style guide.
+       * Mark Whitley -- implemented grep -A, -B, and -C
+       * Mark Whitley -- overhauled the test suite.
+
+
+        -Erik Andersen, 15 March 2001
+       
+0.49
+
+       * Matt Kraai -- new sort.c
+       * Matt Kraai -- new tail.c
+       * Glenn McGrath -- new 'dpkg-deb' applet
+       * Glenn McGrath -- new ar code
+       * spoon -- new watchdog applet
+       * Vladimir N. Oleynik <dzo@simtreas.ru> -- fixed cmdedit.c so now 
+           scrolling and tab completion in lash work properly.  Also several
+           byte saving optimizations.
+       * Erik Andersen -- disabled many less commonly used applets by default
+       * Mark Whitley -- more thrashing about to get clean perror_msg usage
+       * Matt Kraai -- new command line munging
+       * Larry Doolittle -- keep some locales from messing up busybox.sh
+       * Matt Kraai -- cleaned up dd and tail with new parse_number routine
+       * Mark Whitley -- remove debugging messages from deallocvt
+       * Matt Kraai and Mark Whitley -- new document "How to Add a New Applet 
+           to BusyBox"
+       * David Douthitt -- fixed "grep -qv" bug
+       * Larry Doolittle -- fixed insmod bug with old kernels
+       * Matt Kraai -- logger remixed to use getopt, selection of stdin made 
+           util-linux compatible
+       * Erik Andersen -- many more internal symbols classified static to 
+           avoid namespace pollution
+       * Matt Kraai -- nc listening support
+       * Erik Andersen -- made sed understand arbitrary regexp delimiters
+       * Matt Kraai et al. -- more tar improvements and bug fixes, now 
+           handles regexp file exclusion
+       * Larry Doolittle -- new script (multibuild.pl) to automate build rule
+           checking
+       * Matt Kraai -- update/cleanup of the docs on how to use init
+       * Erik Andersen -- renamed all sh.c symbols per the style guide, 
+           better if-then-else-fi handling
+       * Erik Andersen -- cleaner division of labor between cmdedit.c and sh.c
+       * Larry Doolittle -- shell data structure cleanup, fixed buglets
+           in read, exec, and piped builtins
+       * Erik Andersen -- md5sum was broken in 0.48.  Now fixed (and doesn't 
+           use getline, shrinking static compiles (since nothing else used it).
+       * ?? -- squashed memory leak in shell prompt handling
+       * Mark Whitley -- Updates to style guide
+       * Mark Whitley -- Big cleanup in utility.c: style guide compliance,
+           de-macro-ifying some variables and functions
+       * Erik Andersen -- ls now honors CONFIG_FEATURE_AUTOWIDTH so it can find
+           the width and height of the console.
+       * Erik Andersen -- insmod now ignores -L and accepts the -o option.
+       * Erik Andersen -- updates so you can now select from the Makefile
+           whether or not to use the system's passwd and group functions.
+           Since most systems use GNU libc, this can save you from having to
+           install the /etc/nsswitch.conf configuration file and the required
+           libnss_* libraries.  Adds 1.5k.  You can now, also, disable this, 
+           causing busybox to use the system's pwd.h and grp.h functions.
+
+
+        -Erik Andersen, 27 January 2001
+
+0.48
+
+       * Glenn McGrath -- tar now supports uncompressing tar files,
+           define CONFIG_FEATURE_TAR_GZIP to use the -z option.
+       * Matt Kraai -- fix all usage of TRUE and FALSE so all apps now
+           return EXIT_SUCCESS or EXIT_FAILURE to the system.
+           Now TRUE and FALSE are set to the C standard where TRUE=1.
+       * me -- Fixed uname problem causing the kernel version to be
+           mis-detected (causing problems with poweroff, init,
+           and other things).  
+       * Alcove, Julien Gaulmin <julien.gaulmin@alcove.fr> and 
+           Nicolas Ferre <nicolas.ferre@alcove.fr> -- insmod support on ARM 
+           and StrongArm, and suport for lsmod on older 2.0.x kernels.
+       * Kent Robotti -- Renamed unrpm to original rpmunpack, so you can use 
+           an included shell script called unrpm as a front end to it.  There's
+           also a shell script called undeb included for debian packages.  
+       * Matt Kraai -- fix an infinite loop with ls -aR
+       * Larry Doolittle -- Shaved off about 100 bytes and 200 bytes heap 
+           from date.c.  Also document the "-d" option in the usage message.
+       * Gennady Feldman -- fixed dd to use blocksize when reading/writing, 
+           (it was reading the whole thing and then writing it out).  Also 
+           updated usage information (was missing conv=notrunc) and added 
+           conv=sync feature.
+       * Larry Doolittle (in collaboration with Matt Kraai) -- allow for a 
+           pristine source directory -- where all the .o files and such are 
+           not placed into the source tree.  Thanks Larry!
+       * Larry Doolittle -- use the applet definitions in applets.h 
+           to autogenerate the applet function and usage prototypes.
+       * Sebastien Huet, Arne Bernin, and Kent Robotti -- Add in tar -X and
+           fixed a bug breaking tar --exclude.  
+       * Jonas Holmberg -- echo option handling made GNU-echo compatible
+       * Aleksey Demidov <asd@ixcelerator.com> -- date option handling made 
+           GNU-date compatible
+       * me -- Progress meter (optional) in wget
+       * Doolittle/me -- programs invoked by full path name take
+           precedence over applets unless CONFIG_FEATURE_SH_BUILTINS_ALWAYS_WIN
+       * Gaute B Strokkenes <gs234@cam.ac.uk> -- applets found using a
+           binary search instead of linear search.  Much faster!
+       * new applets: cmp readlink
+       * Mark Whitley -- Removed advertising clause of Berkeley license
+           according to decision by the Regents of the University of
+           California; included reference
+       * tail's confusing special treatment of single digit options removed;
+           people should use -n instead
+       * Larry Doolittle -- \r handled now in echo and tr
+       * Matt Kraai -- rewrite of uniq
+       * Mark Whitley -- remix of xargs
+       * Jim Gleason <jimg@lineo.com> -- fixed tar so it no longer breaks 
+           hard links.
+       * Matt Kraai -- logger now logs all arguments, not just the first
+       * Gennady Feldman -- syslogd no longer logs to localhost if compiled
+           for remote logging...
+       * Richard June <rjune@ims1.imagestream-is.com> -- support for 'gzip -d'
+       * various artists -- Other good stuff that I forgot to document.
+
+
+        -Erik Andersen, 13 December 2000
+
+0.47
+
+       * A bug in syslogd was fixed that allowed it to potentially fork-bomb
+           your system.  Anyone using 0.46 syslogd should upgrade.
+       * Renamed busybox.defs.h to the more sensible "Config.h"
+       * Improved portability between different libcs.
+       * Many apps ported to use getopt()
+       * Common handling of '--help'
+       * All usage messages centralized.
+       * Added a bunch of new commands:
+           * 'rdate' contributed by Sterling Huxley <sterling@europa.com>
+           * 'wget' contributed by Chip Rosenthal <chip@unicom.com>, 
+                   <crosenth@covad.com> and Covad Communications
+           * 'getopt' from "Alfred M. Szmidt" <ams@trillian.itslinux.org>
+           * dos2unix, unix2dos, reset, and unrpm.c (and lots of help
+               debugging) thanks to Kent Robotti <robotti@metconnect.com>.
+           * 'renice' command, thanks to Dave Cinege <dcinege@psychosis.com>
+           * 'xargs' (written by me)
+           * 'expr' contributed by Edward Betts <edward@debian.org>, based
+               on GNY expr
+       * lsmod now uses the query_module syscall, rather then /proc (me)
+       * syslogd can now log messages to remote hosts -- patch thanks
+           to Gyepi Sam <gyepi@praxis-sw.com>
+       * chroot can now call the builtin shell - Pavel Roskin <proski@gnu.org>
+       * 'make install' now creates relative symlinks, and added a new
+           'make install-hardlinks' target to (tada) install hardlinks.
+       * Rewrite of 'tail' to make it simpler, smaller, and more robust.  
+           It now weighs only 2.25k (3k when full featured).  The code is
+           cleaner too, thanks to Allen Soard <esp-software@mail.hypermart.net>
+       * Add optional ls file sorting, thanks to a patch from 
+           Sterling Huxley <sterling@europa.com>
+       * Fixed chmod option parsing so things like 'chmod -r /tmp/file'
+           now work (previously it thought -r was an option).  Doh!
+       * Fixed tar handling of stdin and stdout
+       * Renamed "internal.h" to the more sensible "busybox.h"
+       * Preliminary support for GNU HURD.
+       * Updated my devps and devmtab kernel patches for the latest 2.2.x
+           kernel, for those wanting to go proc-less.
+       * Tons of other bugfixes.
+
+
+        -Erik Andersen, 25 September 2000
+
+
+0.46
+
+       * Better portability.  Now should compile cleanly with libc5, 
+           GNU libc 2.0 and 2.1, and various Linux kernels including 
+           2.0.x, 2.2.x, and to 2.4.0-test*. (patch for 2.4.x kernels
+           to make /proc/mounts behave included in the kernel-patches dir). 
+       * Fixed a _horrible_ bug where 'tar -tvf' could unlink
+           local files that matched tarball contents!!!  Fix thanks 
+           to Marius Groeger <mgroeger@sysgo.de>
+       * Fixed a nasty bug in tar when could mess up saved symlinks.
+       * Fixed tar creation support when reading from stdin ('tar -cf - . ') 
+           thanks to Daniel Quinlan <quinlan@transmeta.com>
+       * Updates to handle Linux 2.4.0 kernels (kludged around the
+           "none" entries in /proc/mounts, added a hack to make sysinfo
+           work with both old and new kernels).
+       * Fixed insmod module option parsing for options lacking an '='.
+           Fix thanks to Marc Nijdam <marc_nijdam@hp.com>
+       * Fixed segfault with 'cut -f 1 -d:' and added 'cut -s' suport.
+           Fix thanks to Arne Bernin <arne@matrix.loopback.org>
+       * Several fixes from Marius Groeger <mag@sysgo.de>
+           - Added support for "sh -c command args..."
+           - Fixed globbing, i.e. 'echo * *' and 'echo "******"' now work.
+           - Added shell environment variable substitution 
+           - Added the "read" shell builtin.
+       * Fixed cursor editing in cmdedit.c. The following keyboard sequence 
+           used to create an infinite loop: ls, cursor up, left, down.
+       * Added support for being a login shell, so things like
+           '-su' or '-sh' (stuff where argv[0][0]=='-') will now always 
+           invoke the shell.  Now you can use BusyBox as a login shell.
+       * ls.c now ignores '-g', since some ftp clients like that sort 
+           of thing.  Patch thanks to David Vrabel <dvrabel@arcom.co.uk>
+       * Fix to init.c from Stuart Menefy <Stuart.Menefy@st.com> so that
+           it always sets the controlling terminal before running any programs
+       * Several fixes from Matt Kraai <kraai@alumni.carnegiemellon.edu>
+           - Fixed tr so it recognizes standard escape sequences.  
+               Merged common escape seq. code from tr and echo into utility.c.
+           - Major work in updating/cleaning up the docs, and getting the
+               new SGML based docs into shape.
+           - cleanup of ar.c
+           - BusyBox should now poweroff when asked to do so.
+           - Fixed 'ln -n' and 'ln -s' so they both work properly.
+       * Reorganized signal names in kill.c for better architecture support 
+           -- patch thanks to simon wood <simon@mungewell.uklinux.net>
+       * In 0.43, backspace and delete worked properly, but with 0.45, 
+           it just echoed a ^? for backspace, and ^H for control-h.  This
+           was due to a broken macro in init.c, that is now fixed.
+       * Removed sfdisk from BusyBox.  It was buggy, fat, and we really
+           couldn't maintain it very well, so including it was not really
+           very appropriate.  Those wanting an fdisk are invited to
+           grab a copy from util-linux.
+       * Added 'dumpkmap' to allow people to dump a binary keymap, which can 
+           then be loaded in by 'loadkmap' -- submitted by
+           Arne Bernin <arne@matrix.loopback.org>
+       * Fixed NFS so it supports 2.4.x kernels and NFSv3.
+       * Brand, new versions of grep and sed which use libc regex routines,
+           thanks to Mark Whitley <markw@lineo.com>.  The hand-tooled 
+           "regexp.[ch]" files have been removed. Much help on these from 
+           Matt Kraai as well.
+
+
+        -Erik Andersen, 11 July 2000
+
+
+0.45
+       * Now compiles vs libc5 (which can save lots of space for 
+           embedded systems).
+       * Added CONFIG_FEATURE_TRIVIAL_HELP which compiles out most all of the
+           help messages (i.e --help).  Saves 17k over a full compile.
+       * Added cut and tr from minix, since due to the license change, 
+           we can now use minix code.  Minix tr saves 4k. 
+       * insmod now works.  It costs 29k, but imagine an initrd with a 
+           staticly linked busybox containing only insmod and sh, a few /dev 
+           entries, and a kernel module or two...  It doesn't get smaller
+           then this folks (I pity the fool that writes insmod in asm ;-).
+           Many kudos go to Ron Alder <alder@lineo.com> for finishing this off!
+       * Added a mini ar archive utility, especially written for BusyBox by 
+           Glenn McGrath <bug1@netconnect.com.au>
+       * Added mktemp, contributed by Daniel Jacobowitz <dan@debian.org>
+       * Added setkeycodes, for those that have wierd keyboard buttons.
+       * Added md5sum, uuencode and uudecode -- thanks to Alfred M. Szmidt 
+           <ams@trillian.itslinux.org> for contributing these.
+        * Added 'grep -v' option (inverted search) and updated 
+           docs accordingly.  -beppu
+       * Wrote which
+       * Replaced the telnet implementation with one written by 
+           Tomi Ollila <too@iki.fi> It works great and costs 3k.
+       * BusyBox sh (lash) now supports being used as a standalone shell.  When
+           CONFIG_FEATURE_SH_STANDALONE_SHELL is defined, all the busybox commands may
+           be invoked as shell internals.  Best used when compiling staticly 
+           (i.e. DOSTATIC=true)
+       * BusyBox sh (lash) internals now behave as expected wrt pipes 
+           and redirects. 
+       * Fixed ping warnings -- fix from Sascha Ziemann <szi@aibon.ping.de>
+       * Fixed update segfault
+       * Fixed mknod -- minor number was always 0
+       * Fixed tar option parsing, so both "tar xvf foo.tar" and 
+           "tar -xvf foo.tar" now work (i.e. no "-" before options) 
+           (this was very broken in 0.43).
+       * Several contributions from Randolph Chung <tausq@debian.org>.
+           * cp/mv now accepts the -f flag
+           * tail can now accept -<num> commands (e.g. -10) for better 
+               compatibility with the standard tail command
+           * added a simple id implementation; doesn't support sup. groups yet
+       * logname used getlogin(3) which uses utmp.  Now it doesn't. 
+       * whoami used getpwuid(3) which uses libc NSS.  Now it behaves. 
+       * Add support for "noatime" and "nodiratime" mount flags to mount.
+       * Changed 'umount -f' to mean force, and actually use umount2.
+       * Changed 'umount -l' to mean "Do not free loop device".
+       * Fixed basename to support stripping of suffixes.  Patch thanks
+           to xiong jianxin <jxiong@uiuc.edu>
+       * cp -fa now works as expected for symlinks (it didn't before)
+       * zcat now works (wasn't working since option parsing was broken)
+       * Renamed "mnc" to the more correct "nc" (for netcat).
+       * Makefile intelligence updates
+       * Changed the way init parses /etc/inittab entries to avoid problems
+           with commands that contain colons in them.  Fix thanks to 
+           Pavel Roskin <proski@gnu.org>
+       * Fixed a warning in utility.c due to char being unsigned on Linux/PPC, 
+           Fix thanks to Pavel Roskin <proski@gnu.org>
+       * Made "killall" complain (not error and exit) about processes that it 
+           cannot find by name -- Pavel Roskin <proski@gnu.org> 
+       * Fixed more and ps to have sensible terminal width defaults, thanks 
+           to Pavel Roskin.
+       * Fixed all fatalError() calls lacking a "\n", thanks to Pavel Roskin.
+       * Fixed a segfault in yes when no args were given -- Pavel Roskin.
+       * Simplified freeramdisk and added argument checking -- Pavel Roskin. 
+       * Fixed segfault caused by "touch -c"
+       * Fixed segfault caused by "rm -f"
+       * Fixed segfault caused by "ln -s -s" and similar abuses. Further fixes
+           and "--" support from Pavel Roskin.
+       * Fixed segfault caused by "cp -a -a" and similar abuses.
+       * Implemented "rm -- <foo>". Implementation fixed by Pavel Roskin.
+       * "which" rewritten to use stat(). Fixes to improve its compatability
+           with traditional implementations -- Pavel Roskin.
+       * "mount" now reports errors from nfsmount() and assumes NFS mount
+           if ':' is present in the device name - Pavel Roskin
+       * Fixed exit status for killall - Pavel Roskin
+       * Fixed 'swapon -a' and 'swapoff -a', which were broken.
+       * Fixed 'mount -a' so it works as expected.
+       * Implemented 'ls -R' (enabled by enabling CONFIG_FEATURE_LS_RECURSIVE)
+       * Implemented "ping -s", fixed error messages and argument parsing -
+           Pavel Roskin
+       * Syslogd will not go to background if "-n" is given. Better help
+           and argument checking -- Pavel Roskin
+       * Fixed a small bug that could cause tar to emit warning messages
+           and not extract the first file in a directory in some cases
+           of nested directories.  Thanks to Kevin Traas <kevin@netmaster.com>
+           for helping track this one down.
+       * More doc updates
+       * Fixed grep "Line too long" problem -- John Beppu
+       * Fixed 'grep -q -i B some_file' so it works
+       * math takes input from stdin if no args are given.  -- John Beppu
+       * math was renamed to dc.  Although it deviates from dc's behaviour,
+           this will probably be remedied in the future.  -- John Beppu
+
+
+        -Erik Andersen, June 21, 2000
+
+
+0.44
+       Previously, an erronous announcement of BusyBox 0.44 was made, so to 
+       avoid possible confusion, we are skipping straight to 0.45, and calling
+       it good.
+
+        -Erik Andersen
+
+
+0.43
+       * Major update to the provided documentation.
+       * Busybox now includes a shell!  It currently costs 7.5 k (plus an
+           additional 2.5 k if you compile in command line editing).  Handles
+           job control, has the usual set of builtins, and does everything
+           except for handling programming statements (if, while, etc...)
+       * Busybox can now work perfectly when /proc is disabled, thereby 
+           saving a bunch of memory (kernel /proc support is not thin).  This
+           is done by making use of some nice kernel patches I wrote up to
+           support the features that busybox requires and that /proc usually
+           provides.  To enable this, turn on CONFIG_FEATURE_USE_DEVPS_PATCH and
+           patch your kernel with the devps patch in the kernel-patches/
+           directory. 
+       * Wrote basename, dirname, killall, and uptime.
+       * tar has been completely rewritten by me.  Both tar creation and 
+           extraction are now well behaved.  Costs 7.6k with all optional
+           tar features enabled, and 5k for just tar extraction support. 
+       * Added freeramdisk, which will free up all memory associated
+           with a ram disk.  Contributed by Emanuele Caratti <wiz@iol.it>
+           and then adjusted a bit by me.
+       * Added tr from John Lombardo <john@deltanet.com> 
+       * Added echo and test (from me).
+       * Added usleep contributed by Nicolas Pitre <nico@cam.org>
+       * BusyBox's bss size has been majorly reduced (was 384668, is now 28740).
+       * Several fixes from Pavel Roskin <proski@gnu.org>:
+           - When `tail' fails to open a file it now exits.
+           - When `syslogd' is given the `-n' option it should still use 
+               fork() for running klogd.
+       * nslookup types are now changed to u_int32_t (instead of uint32_t)
+           changed per a patch from Pascal Bellard <pascal.bellard@ascend.com>
+       * Fixed "du" so it gives the same answers as GNU "du" (busybox du used 
+           to count hard-linked files more then once).  Many thanks to 
+           Friedrich Vedder <fwv@myrtle.lahn.de> for the fix.
+       * Removed /proc dependancies for init and free (while maintaining 
+           exactly the same functionality).  /proc takes up 90k of kernel 
+           space, so it is nice to avoid using it at all costs.
+       * init no longer tries to mount /proc (unless there is less the 1 meg 
+           free).  Use of /proc (or not) is policy that should be set up in 
+           /etc/fstab (or in hardcoded scripts), not in init.
+       * Fixed rebooting when init runs as an initrd.
+       * Fixes and updates from Karl M. Hegbloom  <karlheg@debian.org>
+           - update.c rewritten to look more like update-2.11
+           - moveed the inode hash out of du.c and into utility.c to make 
+               it a common resource that can be used by other apps.
+           - cp_mv.c now checks inodes to see if a source and dest are
+               the same, and prints an error (instead of endlessly looping).
+           - mv now attempts to do a rename, and will fall back to doing
+               a copy only if the rename fails.
+           - Syslogd now supports multiple concurrent connections
+       * Several fixes from Pavel Roskin <proski@gnu.org>:
+           - Fixes to sort.  Removed "-g", fixed and added "-r"
+           - Fixes to the makefile for handling "strip"
+       * An initial telnet implementation was added by 
+           Randolph Chung <tausq@debian.org>.
+       * Fixed a bug where "sed 's/foo/bar/g'" (i.e. a script w/o a "-e")
+       * ps now supports CONFIG_FEATURE_AUTOWIDTH, and can adjust its width
+           to match the terminal (defaults to width=79 when this is off).
+       * ps now accepts (and ignores) all options except for "--help" (which
+               as would be expected displays help).
+       * Fixed mount'ing loop devices when the filesystem type was not 
+           specified.  It used to revert to non-loop after the first try.
+       * all mallocs now use xmalloc (and so are OOM error safe), and
+           the common error handling saves a few bytes.  Thanks to 
+           Bob Tinsley <bob@earthrise.demon.co.uk> for the patch.
+       * Fix "+" parsing bug in date, from "Merle F. McClelland" <mfm@cts.com>.
+       * Fix symlink following bug in chmod -R and friends.  
+       * Now allows SYSV style 'chown foo:bar' in addition to 'chown foo.bar'
+       * Fixed a bug in the busybox globbing routine such that 'find /dir -name [i]' 
+           no longer segfaults.
+
+
+       -Erik Andersen
+
+
+0.42
+
+        * Fairly massive restructuring of umount.c to deal with remounting 
+         busy devices read-only. Adds a -r option to control that; it is 
+         optionally compiled in with CONFIG_FEATURE_REMOUNT
+       * Added a bunch of functions to mtab.c to interact with the
+         {get,set,end}mntent interface; as it turns out, those functions do
+         not appear to be re-entrant, and that causes a lot of problems with
+         the way umount was originally written.
+       * Makes init send TERM and KILL (instead of HUP and KILL) on reboot
+         to be more consistent with sysvinit
+       * Changes to init.c to use the new -r option to umount. Also increased
+         the sleep time between the time the TERM and KILL signals are sent
+
+        - Randolph Chung
+
+
+       * cp.c, mv.c: removed, replaced by cp_mv.c which has been
+           extensively rewritten from the original cp.c.
+       * Fixed cp and mv so if the source and destination are a the
+           same directory it will print an error and continue.
+       * Also added a warning message to the `mv' usage string saying that
+           this is not GNU mv, and it will break hard links. cp also breaks
+           hard links.
+       * ln.c: implemented `-n' switch, no-deref symlinks.
+       * include<sys/param.h>: and use PATH_MAX everywhere.  busybox: File
+       * name buffer overrun guards to prevent future crashes.
+           - Always check exit status.
+           - Purge all use of `creat()', replace with `open()'.
+       * utility.c 
+           - recursiveAction was overriding the value of followLinks thus
+             ignoring it.
+           - isDirectory now takes a followLinks boolean, updated all callers
+           - copyFile had the followLinks logic reversed.
+       * messages.c: New file. Put common error message strings all in
+           one place in an attempt to shrink the binary a little.
+
+       -Karl M. Hegbloom
+
+
+       * changed fsck_minix.c to reduce its .bss size significantly
+         -beppu -piptigger
+       * Made tar creation support in busybox tar optional.  You no longer
+       * _have_ to put a "-" in front of tar options.  Tar could inadvertently
+       * change permissions and ownership on
+           certain directories pointed to by symlinks.
+       * Made grep and grep -h do the right thing wrt printing
+           the file name (it failed to print files names in many cases).
+       * Fix a namespace aliasing problem wereby if du was built in, the 
+           symlink for both du and dutmp would be installed, or then rm was
+           built in, the symlinks for both rm and rmmod would be installed.
+       * Added a closelog() to init.c after loging -- fix thanks to 
+           Taketoshi Sano <kgh12351@nifty.ne.jp>
+       * Rewrote and simplified logger.  Added the "-t" option, and made it
+           behave itself a bit better.
+       * Optional support contributed by Ben Collins <bcollins@debian.org> 
+           for the kernel init chroot patch by Werner Almesberger, which
+           allows init to chroot to a new device, and umount the old one.
+       * Fixed bug that wouldn't let one chown a symlink -- it would
+           always dereference before.  -beppu
+       * Fixed a bug where init could have reference already freed memory.
+           Found and fixed by Taketoshi Sano <kgh12351@nifty.ne.jp>
+       * Several contributions from Friedrich Vedder <fwv@myrtle.lahn.de>
+       * Added (and documented) "-n" option for head
+       * Cleanup for a number of usage messages -- also 
+           contributed Friedrich Vedder <fwv@myrtle.lahn.de>
+       * Cosmetic fix to busybox.c (Don't print a comma at the
+           end of line if there are no more application names).
+       * Fixed a stupid bug in "head" option handling ("head -n" 
+           would segfault).
+       * Moved commonly used functions "xmalloc()" and "exit()"
+           to utility.c (with proper #ifdef's).
+       * Created a tiny tail implementation, removing -c, -q, -v, and making
+           tail -f work only with a single file.  This reduced tail from 6k to
+           2.4k.  The bigger/more featured tail can still be had by disabling
+           CONFIG_FEATURE_SIMPLE_TAIL in busybox.defs.h
+       * Ping now falls back to doing the right thing if /etc/protocols
+           turns up missing.
+       * Fixed mount and umount.  Previously they could leak loop device 
+           allocations, causing the system to quickly run out.  Fix for umount
+           by Ben Collins <bcollins@debian.org>, and mount was fixed by me.
+       * ls formatting on eight charactor user names fixed by 
+           Randolph Chung <tausq@debian.org>.
+       * cp could, when copying symlinks, change permissions of the
+           files pointed to by the symlinks.
+       * Several fixes from Pavel Roskin <proski@gnu.org>:
+           - `chown' with 1 argument displayed the error incorrectly
+           - `fdflush', `length' and `printf' crashed if run without arguments
+           - `fdflush' tried to flush itself using *argv
+           - added "skip" and "seek" to dd.
+           - ls no longer messus up output when combining files and
+             directories on the command line 
+       * swapoff -a was not working.  Now it is.  
+       * init did not cleanly unmount filesystems on reboot.  Now it does.  
+       * "sed -ne s/foo/bar/" worked but "sed -n -e s/foo/bar/" didn't.
+           Now both work.
+       * Some architectures (PowerPc) assume chars are unsigned, so they could
+           not distinguish between EOF and '\0xFF' in sed.  Sed now uses ints.
+       * Began converting error handling to use some common routines
+           in utility.c
+       * syslogd now has better message handling and ignores SIGHUP.
+       * install.sh had a bug preventing installation to the specified
+           target directory.  Fix from Gilbert Coville <gilbert@mvista.com>
+       * You can now spefify alternative strip commands -- change 
+           also from Gilbert Coville.
+
+
+       -Erik Andersen
+
 0.41
+       * New Apps: wc, hostid, logname, tty, whoami, yes -- all contributed 
+           by Edward Betts <edward@debian.org>
        * Fixed a bug in both cp and mv preventing 'cp foo/README bar'
-           type commands (file in a directory to another directory) 
-           from working.
+           type commands (file in a directory to another directory) from
+           working.
+       * Fixed a logger bug that caused garbage to be written to the syslog 
+           (unless you used busybox syslog, which hid the bug).  Thanks to
+           Alex Holden <alex@linuxhacker.org> for the fix.
+       * /bin/true and /bin/false were echoing a blank line when run.  
+           Now fixed.
+       * mkdir -p would print an error when asked to mkdir an existing dir
+           with no interveining subdirectories.
+       * Fixed "syslogd -O" so that it works.  Added -o loop option for mount,
+       * and support in umount for loop
+         devices. Support is toggled by MOUNT_LOOP feature -- Ben Collins
+         <bcollins@debian.org>
+       * Several fixes from Marco Pantaleoni <panta@prosa.it> compile in
+       * fullWrite() not only if CONFIG_TAR is defined, but also
+               if CONFIG_CP or CONFIG_MV are (fullWrite() is referenced by copyFile())
+           * add some compiler optimizations to further reduce executable size
+               (as a side note, on my machines the largest code is generated
+               by gcc 2.95.2 with -Os ! The smallest by plain gcc 2.7.2.3 with
+               -O2 -m386 ...)
+           * Compile now won't fail if busybox.def.h defines 
+               CONFIG_FEATURE_INITRD but not CONFIG_INIT.  (init_main used to be
+               referenced, but not compiled)
+       * Fixed a bug in setting TERM for serial console support.  TERM now
+           defaults to "ansi" for serial consoles.
+       * Fixed a bug in handling the CONSOLE env. variable for serial
+       * consoles.
 
-       -Erik Andersen, 
+       -Erik Andersen, Jan 15, 2000
 
 0.40
-       * New Apps: sort, uniq. -beppu
-       * New Apps: lsmod, rmmod -erik
-       * New Apps: fbset contributed by Randolph Chung <tausq@debian.org>.
-       * New App:: loadacm contributed by Peter Novodvorsky <petya@logic.ru>
+       * New Apps: sort, uniq. -beppu New Apps: lsmod, rmmod -erik New Apps:
+       * fbset contributed by Randolph Chung <tausq@debian.org>.  New App::
+       * loadacm contributed by Peter Novodvorsky <petya@logic.ru>
            for loading application character maps for Unicode fonts.
        * Major init re-work.  init now supports inittab (slightly different
-           but similar to sysvinit), allowing me to get all the policy out
-           of init and into the conf file.  It works just fine without inittab
-           being present, but if you dont like the defautl behavior you can
+           but similar to sysvinit), allowing me to get all the policy out of
+           init and into the conf file.  It works just fine without inittab
+           being present, but if you dont like the default behavior you can
            now do something about it.  Init is much cleaner as a result.
        * Fixed an bug in syslogd causing it to stop after 20 minutes. -erik
-       * Fixed an embarrasing segfault in head -beppu
-       * Fixed the embarrasing failure of 'logger -p'. -erik
-       * Added the -s option to du -beppu
+       * Fixed an embarrasing segfault in head -beppu Fixed the embarrasing
+       * failure of 'logger -p'. -erik Added the -s option to du -beppu
        * Re-worked the source tree a bit so it will compile under glibc 2.0.7 
            with the 2.0.x Linux kernel.
        * Added 'grep -q' thanks to a patch from "Konstantin Boldyshev" 
        * Fixed a bug where tar would set, and then clear SGID and SUID bits.
        * Fixed a bug where tar would not set the user and group on device
            special files.
-       * Fixed a bug where tar would not restore the time to files.
-       * Fixed a major security problem with tar -- it changed ownership 
+       * Fixed a bug where tar would not restore the time to files.  Fixed a
+       * major security problem with tar -- it changed ownership 
            of any file pointed to by a symlink to 777 (like say libc....)
            Ouch!!!
        * cp and mv were very broken when moving directories.  I have rewritten 
            them so they should now work as expected. 
        * sed now supports addresses (numeric or regexp, with negation) and 
            has an append command, thanks to Marco Pantaleoni <panta@prosa.it>
-       * Fixed dmesg.  It wasn't parsing its options (-n or -s) properly.  
+       * Fixed dmesg.  It wasn't parsing its options (-n or -s) properly.
        * Some cosmetic fixes to ls output formatting to make it behave more
            like GNU ls.
-       * Fixed a stupid segfault in kill.
-       * Several fixes from Friedrich Vedder <fwv@myrtle.lahn.de>:
+       * Fixed a stupid segfault in kill.  Several fixes from Friedrich Vedder
+       * <fwv@myrtle.lahn.de>:
            - Added gunzip -t, removed gunzip.c dead code,
            - fixed several typos
            - Glibc 2.0.7 and libc5 compile fixes
 0.39 
        * New Apps: ping, hostname, and mkfifo contributed by Randolph Chung
            <tausq@debian.org>.  3 items off the TODO list!
-       * I wrote free (just calls "cat /proc/meminfo").
-       * Added tail, based on tail from GNU textutils-1.19, but adjusted
-           to suit my evil purposes.  Costs 6k.  I'll make it smaller sometime.
+       * I wrote free (just calls "cat /proc/meminfo").  Added tail, based on
+       * tail from GNU textutils-1.19, but adjusted
+           to suit my evil purposes.  Costs 6k.  I'll make it smaller
+           sometime.
        * on reboot, init called 'umount -a -n', which caused errors
-           when BB_MTAB was not enabled.  Changed to 'umount -a',
-           which does the right thing.
+           when CONFIG_MTAB was not enabled.  Changed to 'umount -a', which does
+           the right thing.
        * init will now try to run /sbin/getty if it is present (for easy
            integration with the about-to-be-released tinylogin.)
-       * kill now behaves itself properly, added 'kill -l' to list signals
-       * 'ls -l' was failing on long directories, since my_getid was leaking 
+       * kill now behaves itself properly, added 'kill -l' to list signals 'ls
+       * -l' was failing on long directories, since my_getid was leaking 
            one file descriptor per file.  Oops.
-       * Fixed rebooting from init.  I'd accidently left some debugging code in
+       * Fixed rebooting from init.  I'd accidently left some debugging code
+       * in
            which blocked reboots.
        * Fixed reboot, halt (and added poweroff) such that they handle it when
            init is not at PID 1 (like when running in an initrd).
        * Added a prelinary du implementation.  Some parameter parsing
-           stuff still needs to be added. -beppu (John Beppu <beppu@lineo.com>)
-       * Implemented tee.  -beppu
-       * Implemented head. -beppu
+           stuff still needs to be added. -beppu (John Beppu
+           <beppu@lineo.com>)
+       * Implemented tee.  -beppu Implemented head. -beppu
 
        -Erik Andersen, Dec 10, 1999
 
        * Fixed a segfault in 'umount -a' when a badly formed /etc/fstab
            file existed.
        * df will not exit on error, but will stat all mounted filesystems.
-       * Fixed tar so uid/gid/permissions on extracted tarballs will be correct.
+       * Fixed tar so uid/gid/permissions on extracted tarballs will be 
+           correct.
        * Fixed find -name so it properly uses shell wildcard patterns 
            (i.e. `*', `?', and `[]') instead of regular expressions, which
            was causing some confusing and unexpected behavior.
        * I've taken a first step to making busybox not need the /proc 
            filesystem.  Most apps don't need it.  Those that _require_ it, 
            will complain if you enable them when you disable 
-           BB_FEATURE_USE_PROCFS.
+           CONFIG_FEATURE_USE_PROCFS.
           
        -Erik Andersen, Dec 5, 1999
 
 0.37
        * Wrote a micro syslogd, and a logger util (to log things to the syslog
            from the command line or scripts)  With both compiled in, costs 4k.
-       * Fixed 'make install' so symlinks are installed in their proper locations.
-       * Changed the build system slightly so that features can now be enabled
-           or disabled from the busybox.defs.h header file, without trying to 
-           compile in a source file named after that featue (unless that file exists).
-       * Several options are now moved into busybox.defs.h
-       * Now 'rm -R' and 'rm -r' both work.
-       * dd now properly handles input beyond 1 block from stdin.
-       * Fixed a bug where tar unpacked everything a directories. Moved some code 
-           from createPath into mkdir where it belonged, thereby making tar work properly.
-       * Fixed an off-by-one bug in cat.  Given a list of file it wouldn't cat out the
+       * Fixed 'make install' so symlinks are installed in their proper
+       * locations.  Changed the build system slightly so that features can
+       * now be enabled
+           or disabled from the busybox.defs.h header file, without trying to
+           compile in a source file named after that featue (unless that file
+           exists).
+       * Several options are now moved into busybox.defs.h Now 'rm -R' and 'rm
+       * -r' both work.  dd now properly handles input beyond 1 block from
+       * stdin.  Fixed a bug where tar unpacked everything a directories.
+       * Moved some code 
+           from createPath into mkdir where it belonged, thereby making tar
+           work properly.
+       * Fixed an off-by-one bug in cat.  Given a list of file it wouldn't cat
+       * out the
            last file in the list.
-       * Fixed 'ls -ln' so numeric group/uid are presented properly, and fixed 'ls -l' 
-           so when uid/gid is not in /etc/{passwd,group} the numeric group/uid are 
-           presented properly.  
+       * Fixed 'ls -ln' so numeric group/uid are presented properly, and fixed
+       * 'ls -l' 
+           so when uid/gid is not in /etc/{passwd,group} the numeric group/uid
+           are presented properly.  
        * Also added a TODO.
 
 
 0.36
        * fixed dd so it properly defaults to stdin and stdout when no 
            if= and of= are set (fix thanks to Eric Delaunay).
-       * Don't try to close the file descriptor of a pipein tar. (fix also from
+       * Don't try to close the file descriptor of a pipein tar. (fix also
+       * from
            Eric Delaunay).
-       * Made createPath be quiet (again thanks to Eric Delaunay).
-       * If BB_CONSOLE_CMD_IF_RC_SCRIPT_EXITS is defined, then whatever
+       * Made createPath be quiet (again thanks to Eric Delaunay).  If
+       * CONFIG_CONSOLE_CMD_IF_RC_SCRIPT_EXITS is defined, then whatever
            command you define it as will be run if the init script exits.
        * Updated install.sh to make it more robust (thanks to Adam Di Carlo)
-       * NFS support added to mount by Eric Delaunay.  It costs 10k when compiled
+       * NFS support added to mount by Eric Delaunay.  It costs 10k when
+       * compiled
            in, but that is still a big win for those that use NFS.
-       * Made 'rm -f' be silent for non-existant files (thanks to Eric Delaunay).
-       * changed zcat.c to gunzip.c.  It now obeys the principle of least surprise 
-           and acts as god intended gunzip and zcat to act.  They answer --help and
-           obey the '-c' flag.
-       * Fixed a bug in mv which caused it to not move files when the destination
+       * Made 'rm -f' be silent for non-existant files (thanks to Eric
+       * Delaunay).  changed zcat.c to gunzip.c.  It now obeys the principle
+       * of least surprise 
+           and acts as god intended gunzip and zcat to act.  They answer
+           --help and obey the '-c' flag.
+       * Fixed a bug in mv which caused it to not move files when the
+       * destination
            was a directory.
-       * Fixed a decimal-instead-of-octal bug causing mkdir to make directories
+       * Fixed a decimal-instead-of-octal bug causing mkdir to make
+       * directories
            with very wrong permissions.
        * chmod would overwrite file permissions instead of modifying them.
            Now it properly modifies permissions.
-       * Init now sends warnings destined for the console to /dev/console to ensure
-           they show up on whatever the active console it.  Otherwise important
-           messages (for example that the system is rebooting) were not seen when
-           switched to a different VT.
+       * Init now sends warnings destined for the console to /dev/console to
+       * ensure
+           they show up on whatever the active console it.  Otherwise
+           important messages (for example that the system is rebooting) were
+           not seen when switched to a different VT.
 
        -Erik Andersen, Nov 17, 1999
        
 0.35
-       * gzip now obeys the principle of least surprise and acts like god intended 
-           (i.e. it accepts a file name, answers --help, and obeys the '-c' flag 
-           and only then outputs to stdout).
+       * gzip now obeys the principle of least surprise and acts like god
+       * intended 
+           (i.e. it accepts a file name, answers --help, and obeys the '-c'
+           flag and only then outputs to stdout).
        * Fixed more.c to compile autowidth on sparc and set initial winsize 
-           to 0,0 in case the TIOCGWINSZ ioctl fails.  Fix thanks to Eric Delaunay.
+           to 0,0 in case the TIOCGWINSZ ioctl fails.  Fix thanks to Eric
+           Delaunay.
        * Fixed tar so it now works as expected (it had TRUE/FALSE backwards)
-       * tar now accepts --help
-       * chmod, chown, and chgrp usage now works
-       * General usage (i.e. --help) cleanups for most apps
-       * umount now parses options correctly
-       * tar can now unpack tarballs containing device special files, 
-           sockets, and fifos (though it can't pack them up) thanks 
-           to Matt Porter.  Creating archives containing these is still
-           left to the interested student.
+       * tar now accepts --help chmod, chown, and chgrp usage now works
+       * General usage (i.e. --help) cleanups for most apps umount now parses
+       * options correctly tar can now unpack tarballs containing device
+       * special files, 
+           sockets, and fifos (though it can't pack them up) thanks to Matt
+           Porter.  Creating archives containing these is still left to the
+           interested student.
        * fixed up the license in more.c to properly point to Bruce Perens.
 
        -Erik Andersen, Nov  11, 1999
            Patch thanks to Eric Delaunay
        * init now properly handles sparc serial consoles and does a
            better job of finding the real console device rather than using
-           /dev/console which doesn't support job control. Patch also
-           thanks to Eric Delaunay.
+           /dev/console which doesn't support job control. Patch also thanks
+           to Eric Delaunay.
        * more started to read from stdin after the last file was finished, and 
            options were not parsed correctly (fix thanks to Eric Delaunay).
-       * more will now use the terminal size if BB_FEATURE_AUTOWIDTH is on.
+       * more will now use the terminal size if CONFIG_FEATURE_AUTOWIDTH is on.
        * rm wouldn't remove a symlink unless the symlink was valid.  This was
-           a side effect of the busybox 0.32 recursiveAction() fix.  Things 
+           a side effect of the busybox 0.32 recursiveAction() fix.  Things
            should now work correctly.
-       * grep wouldn't grep stdin.  Now it does.
-       * sed wouldn't sed stdin.  Now it does.
-       * sed was appending a \n to the end of lines with replacements.
+       * grep wouldn't grep stdin.  Now it does.  sed wouldn't sed stdin.  Now
+       * it does.  sed was appending a \n to the end of lines with
+       * replacements.
            Now it doesn't do that.
        * ls -l now bypasses libc6 nss when displaying user/group names.
            Now uses my_getpwuid and my_getgrgid.
        * Removed some debugging noise from init.c
        * Fixed ln so it works now (it was very broken).
        * Fixed df so it won't segfault when there is no /etc/fstab,
-       * If BB_MTAB is not defined, df and mount will whine if /etc/fstab
+       * If CONFIG_MTAB is not defined, df and mount will whine if /etc/fstab
            is not installed (since they cannot fixup "/dev/root" to 
            state the real root device name)
        * merged some redundant code from mtab.c/df.c into utility.c
         -Erik Andersen, Nov  5, 1999
 
 0.32
-       * More changes -- many thanks to Lineo for paying me to work on
-           busybox.  If you have any problems please let me know ASAP
-           at andersen@lineo.com or andersee@debian.org
+       * More changes -- If you have any problems please let me know ASAP at
+           andersee@debian.org
        * usage() now prints the BusyBox version.  This will help folks
            realize that they are not in Kansas anymore.
-       * Fixed mkdir -m option so that it works.
-       * kill segfaulted w/o any arguments.  Now it doesn't do that.
-       * kill wasn't properly accepting signal names.  It does now.
-       * Added new apps chvt and deallocvt (I should probably add open)
-       * Major rewrite of init.c.  Code is now readable by mere mortals IMHO.
-       * Wrote sed -- weighs only 1.8k (5.8k with full regular expressions!).
-       * Fixed a stupid seg-fault in sync
-       * Fixed mount -- mount -a failed to parse and apply mount options
-       * Fixed umount -n (patch thanks to Matthew Grant <grantma@anathoth.gen.nz>)
-       * umount -a no longer umounts /proc
-       * Added BB_MTAB, allowing (at the cost of ~1.5k and the need for a rw /etc)
-           folks to use a real /etc/mtab file instead of a symlink to /proc/mounts.
-           mount, and umount will add/remove entries and df will now use /etc/mtab 
-           if BB_MTAB is defined. 
+       * Fixed mkdir -m option so that it works.  kill segfaulted w/o any
+       * arguments.  Now it doesn't do that.  kill wasn't properly accepting
+       * signal names.  It does now.  Added new apps chvt and deallocvt (I
+       * should probably add open) Major rewrite of init.c.  Code is now
+       * readable by mere mortals IMHO.  Wrote sed -- weighs only 1.8k (5.8k
+       * with full regular expressions!).  Fixed a stupid seg-fault in sync
+       * Fixed mount -- mount -a failed to parse and apply mount options Fixed
+       * umount -n (patch thanks to Matthew Grant <grantma@anathoth.gen.nz>)
+       * umount -a no longer umounts /proc Added CONFIG_MTAB, allowing (at the
+       * cost of ~1.5k and the need for a rw /etc)
+           folks to use a real /etc/mtab file instead of a symlink to
+           /proc/mounts.  mount, and umount will add/remove entries and df
+           will now use /etc/mtab if CONFIG_MTAB is defined. 
        * Fixed a nice bug in recursiveAction() which caused it to infinitely
            hunt through /proc/../fd/* creating new file descriptors if it
-           followed the /dev/fd link over to /proc.  recursiveAction() now 
-           lstat's the file when followLinks==FALSE so it won't follow links 
-           as the name suggests.  Fix thanks to Matt Porter <porter@debian.org>.
+           followed the /dev/fd link over to /proc.  recursiveAction() now
+           lstat's the file when followLinks==FALSE so it won't follow links
+           as the name suggests.  Fix thanks to Matt Porter
+           <porter@debian.org>.
 
 
         -Erik Andersen, Nov  4, 1999
 
 0.31
-       * I added a changelog for version 0.30. 
-       * adjusted find internals to make it smaller, and removed 
+       * I added a changelog for version 0.30.  adjusted find internals to
+       * make it smaller, and removed 
            some redundancy.
        * Fixed a segfault in ps when /etc/passwd or /etc/group 
            are absent.  Now will warn you and carry on.
        * Added in optional _real_ regular expression support (to be
-           the basis for a future sed utility).  When compiled in
-           it adds 3.9k, but makes grep much more capable.
+           the basis for a future sed utility).  When compiled in it adds
+           3.9k, but makes grep much more capable.
        * Checked out using nftw(3) for recursive stuff, but unfortunatly
-           it wasn't supported before GNU libc 2.1, and some folks use
-           glibc 2.0.7 since it is much smaller than that latest and greatest.
+           it wasn't supported before GNU libc 2.1, and some folks use glibc
+           2.0.7 since it is much smaller than that latest and greatest.
 
         -Erik Andersen, Oct 21, 1999
 
 0.30
-       Major changes -- lots of stuff rewritten. Many thanks to Lineo for
-       paying me to make these updates. If you have any problems with busybox, 
-       or notice any bugs -- please let me know so I can fix it.  These 
-       changes include:
+       Major changes -- lots of stuff rewritten.  If you have any problems 
+       with busybox, or notice any bugs -- please let me know so I can fix 
+       it.  These changes include:
 
        Core Changes:
            * busybox can now invoke apps in two ways: via symlinks to the
                busybox binary, and as 'busybox [function] [arguments]...'
            * When invoked as busybox, the list of currently compiled in 
-               functions is printed out (no this is not bloat -- the list
-               has to be there anyway to map invocation name to function).
+               functions is printed out (no this is not bloat -- the list has
+               to be there anyway to map invocation name to function).
            * busybox no longer parses command lines for apps or displays their
                usage info.  Each app gets to handle (or not handle) this for
                itself.
            * All shared code now lives in utility.c, and is properly
                ifdef'ed to be only included for those apps requiring it.
            * Eliminated struct FileInfo (the basis of monadic, dyadic, etc)
-               so now each app has the function prototype of (da-dum):
-                   extern int foo_main(int argc, char** argv);
-               which speeds integration of new apps.
+               so now each app has the function prototype of (da-dum): extern
+               int foo_main(int argc, char** argv); which speeds integration
+               of new apps.
            * Adjusted the Makefile to make it easier to 
                {en|dis}able debugging.
            * Changed default compiler optimization to -Os 
        App Changes:
            * To cope with the new app function prototype and the removal of
                monadic, dyadic, etc, the following apps were re-written:
-                   * cat - Works same as always.
-                   * chgrp, chmod, chown - rewrite.  Combined into a single 
-                       source file.  Absorbed patches from Enrique Zanardi <ezanard@debian.org>
-                       that removes the dependency on libc6 libnss* libraries.
+                   * cat - Works same as always.  chgrp, chmod, chown -
+                   * rewrite.  Combined into a single 
+                       source file.  Absorbed patches from Enrique Zanardi
+                       <ezanard@debian.org> that removes the dependency on
+                       libc6 libnss* libraries.
                    * cp - Can now do 'cp -a' can can copy devices,
-                       pipes, symlinks, as well as recursive or non-recursive dir copies.
-                   * fdflush - adjusted to remove dependancy on struct FileInfo.
-                   * find - Now includes some basic regexp matching 
+                       pipes, symlinks, as well as recursive or non-recursive
+                       dir copies.
+                   * fdflush - adjusted to remove dependancy on struct
+                   * FileInfo.  find - Now includes some basic regexp matching 
                        which will be the basic of a future mini-sed.
-                   * ln - Same functionality.
-                   * mkdir - Added -p flag to feature set.
-                   * mv - rewrite.
-                   * rm - Added -f flag to feature set.
-                   * rmdir - Same functionality.
-                   * swapon, swapoff - Combined into a single binary. No longer
-                       uses /etc/swaps.  swap{on|off} -a uses /etc/fstab instead.
-                   * touch - Same functionality.
-           * date - adjusted with a patch from Matthew Grant <grantma@anathoth.gen.nz>
-               to accomodate glibc timezone support.  I then ripped out GNU getopt.
-           * mkswap -- new version merged from util-linux.  Can now make >128Meg swaps.
-           * Replaced the old and star, unstar, and tarcat with the tar 
-               implementation from sash.   Now tar behaves as god intended
-               it to (i.e. tar -xvf <file> and tar -cf <file> <dir> work).
-           * dd -- rewritten.  Can with with files, stdin, stdout.
-           * Added the following new apps:
-                   * loadfont -- added from debian boot floppies 
-                   * chroot -- added based on a patch from Paolo Molaro <lupus@lettere.unipd.it> 
-                   * grep -- I just wrote it.  Only matches simple strings
-                   * ps -- I just wrote it.  Has _no_ options at all, but works.
-                   * fsck_minix, mkfs_minix -- added from util-linux, but I ripped out
+                   * ln - Same functionality.  mkdir - Added -p flag to
+                   * feature set.  mv - rewrite.  rm - Added -f flag to
+                   * feature set.  rmdir - Same functionality.  swapon,
+                   * swapoff - Combined into a single binary. No longer
+                       uses /etc/swaps.  swap{on|off} -a uses /etc/fstab
+                       instead.
+                   * touch - Same functionality.  date - adjusted with a patch
+                   * from Matthew Grant <grantma@anathoth.gen.nz>
+               to accomodate glibc timezone support.  I then ripped out GNU
+               getopt.
+           * mkswap -- new version merged from util-linux.  Can now make 
+                       >128Meg swaps.  
+               * Replaced the old and star, unstar, and tarcat with the tar 
+                       implementation from sash.   Now tar behaves as god intended it
+                       to (i.e. tar -xvf <file> and tar -cf <file> <dir> work).
+           * dd -- rewritten.  Can with with files, stdin, stdout.  Added the
+           * following new apps: loadfont -- added from debian boot floppies
+           * chroot -- added based on a patch from Paolo Molaro
+           * <lupus@lettere.unipd.it> grep -- I just wrote it.  Only matches
+           * simple strings ps -- I just wrote it.  Has _no_ options at all,
+           * but works.  fsck_minix, mkfs_minix -- added from util-linux, but
+           * I ripped out
                        internationalization and such to make them smaller.
-                   * sfdisk -- Added from util-linux (minus internationalization and such).
-           * Probably some other changes that I forgot to document...
+                   * sfdisk -- Added from util-linux (minus
+                   * internationalization and such).  Probably some other
+                   * changes that I forgot to document...
 
         -Erik Andersen, Oct 20, 1999