764 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			764 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 0.47
 | |
| 
 | |
| 	* A bug in syslogd was fixed that allowed it to potentially fork-bomb
 | |
| 	    your system.
 | |
| 	* 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 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.
 | |
| 	* Tons of other bugfixes.
 | |
| 
 | |
| 
 | |
| 	 -Erik Andersen
 | |
| 
 | |
| 
 | |
| 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
 | |
| 
 | |
| 
 | |
| 0.45
 | |
| 	* Now compiles vs libc5 (which can save lots of space for 
 | |
| 	    embedded systems).
 | |
| 	* Added BB_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
 | |
| 	    BB_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 BB_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 BB_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 BB_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 BB_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
 | |
| 	    BB_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.
 | |
| 	* 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 BB_TAR is defined, but also
 | |
| 		if BB_CP or BB_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 
 | |
| 		BB_FEATURE_LINUXRC but not BB_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, 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>
 | |
| 	    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
 | |
| 	    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
 | |
| 	* 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" 
 | |
| 	    <konst@voshod.com>.
 | |
| 	* Grep -i previously failed on UPPER CASE patterns due to a silly 
 | |
| 	    regexp implementation bug that is now fixed.
 | |
| 	* 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 
 | |
| 	    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.
 | |
| 	* 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>:
 | |
| 	    - Added gunzip -t, removed gunzip.c dead code,
 | |
| 	    - fixed several typos
 | |
| 	    - Glibc 2.0.7 and libc5 compile fixes
 | |
| 	* Fixed a bug where 'mknod --help' would segfault.
 | |
| 	    
 | |
| 
 | |
| 	-Erik Andersen, Jan 07, 2000
 | |
| 
 | |
| 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.
 | |
| 	* 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.
 | |
| 	* 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 
 | |
| 	    one file descriptor per file.  Oops.
 | |
| 	* 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
 | |
| 
 | |
| 	-Erik Andersen, Dec 10, 1999
 | |
| 
 | |
| 0.38
 | |
| 	* 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 find -name so it properly uses shell wildcard patterns 
 | |
| 	    (i.e. `*', `?', and `[]') instead of regular expressions, which
 | |
| 	    was causing some confusing and unexpected behavior.
 | |
| 	* Added klogd to syslogd, so now the log will contain both system and
 | |
| 	    kernel messages.
 | |
| 	* syslogd now creates the /dev/log socket to make sure it is there, and
 | |
| 	    is actually a socket with the right permissions.
 | |
| 	* 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.
 | |
| 	   
 | |
| 	-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
 | |
| 	    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.  
 | |
| 	* Also added a TODO.
 | |
| 
 | |
| 
 | |
| 	-Erik Andersen, Nov 25, 1999
 | |
| 
 | |
| 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
 | |
| 	    Eric Delaunay).
 | |
| 	* Made createPath be quiet (again thanks to Eric Delaunay).  If
 | |
| 	* BB_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
 | |
| 	    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
 | |
| 	    was a directory.
 | |
| 	* 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.
 | |
| 
 | |
| 	-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).
 | |
| 	* 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.
 | |
| 	* 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.
 | |
| 	* fixed up the license in more.c to properly point to Bruce Perens.
 | |
| 
 | |
| 	-Erik Andersen, Nov  11, 1999
 | |
| 
 | |
| 0.34
 | |
| 	* ls -l now displays link names outside the current directory,
 | |
| 	    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.
 | |
| 	* 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.
 | |
| 	* rm wouldn't remove a symlink unless the symlink was valid.  This was
 | |
| 	    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.
 | |
| 	    Now it doesn't do that.
 | |
| 	* ls -l now bypasses libc6 nss when displaying user/group names.
 | |
| 	    Now uses my_getpwuid and my_getgrgid.
 | |
| 
 | |
| 	 -Erik Andersen, Nov  8, 1999
 | |
| 
 | |
| 0.33
 | |
| 	* Fixed a bug where init could hang instead of rebooting.
 | |
| 	* 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
 | |
| 	    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
 | |
| 	* 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 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>.
 | |
| 
 | |
| 
 | |
| 	 -Erik Andersen, Nov  4, 1999
 | |
| 
 | |
| 0.31
 | |
| 	* 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.
 | |
| 	* 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.
 | |
| 
 | |
| 	 -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:
 | |
| 
 | |
| 	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).
 | |
| 	    * busybox no longer parses command lines for apps or displays their
 | |
| 		usage info.  Each app gets to handle (or not handle) this for
 | |
| 		itself.
 | |
| 	    * Eliminated monadic, dyadic, descend, block_device, and 
 | |
| 		postprocess.  It was cumbersome to have so many programs
 | |
| 		cobbled together in this way.  Without them, the app is much
 | |
| 		more granular.
 | |
| 	    * 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.
 | |
| 	    * Adjusted the Makefile to make it easier to 
 | |
| 		{en|dis}able debugging.
 | |
| 	    * Changed default compiler optimization to -Os 
 | |
| 		(optimize for smaller binaries).
 | |
| 
 | |
| 	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.
 | |
| 		    * 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 
 | |
| 			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
 | |
| 			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...
 | |
| 
 | |
| 	 -Erik Andersen, Oct 20, 1999
 | |
| 
 | |
| 0.29	
 | |
| 	This version was a messy pre-alpha.  stay away or it will bite you.
 | |
| 	 -Erik Andersen, Sep 24, 1999
 | |
| 	
 | |
| 0.28	
 | |
| 	mini-netcat (mnc) rewritten.
 | |
| 	
 | |
| 0.27
 | |
| 	Mount now supports -a, and -t auto.
 | |
| 	Mount now updates mtab correctly for 'ro'.
 | |
| 	More checks screen rows size, outputs bytes percentage.
 | |
| 	Printf added as module.
 | |
| 0.26
 | |
| 	Touch now creates files. -c option for no create.
 | |
| 	
 |