Making note of my changes
[oweals/busybox.git] / Changelog
index 951aee57f9c05048ebb2a853bf8789798c6b01de..493c9c2f870840e2740344442a367e534edcaeff 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,8 +1,365 @@
+0.42
+       * 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
+
+
+       -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 no longer fails 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. 
-        -Erik Andersen
+       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.