X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=Changelog;h=2a778d65debf25f88a05ac1b2105fabe7761aa0a;hb=85dd4b3b272793502b513d0d54b546c741ad1a5d;hp=c3102ac4ecd66dec99458f89c2124c4f8498ce57;hpb=fa376f80348b4241124c8e4c727bcb57181e50d1;p=oweals%2Fbusybox.git diff --git a/Changelog b/Changelog index c3102ac4e..2a778d65d 100644 --- a/Changelog +++ b/Changelog @@ -1,17 +1,797 @@ +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 + -- 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_ in Config.h + -- Fixed head to use ferror(3) to check for errors, not errno. + * Shu-Hao Chang + -- Fixed sed handling of multiple -e commands + * Magick + -- Fixed an init bug with AskFirst and /dev/null + * Jaspreet Singh + -- 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 ? + -- 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 -- 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 + -- 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 -- 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 + -- 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 -- 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 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 -- Scrubbed gzip.c + * Alan Modra -- fixed an hard to spot + bug breaking gunzip checksum checking. + * Gennady Feldman -- Fixed 'syslog -C' + * Gernot Poerner -- Added mount bind support. + * Adam Heath -- 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 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 -- 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 -- 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 -- 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 -- made + find_pid_by_name() cope with swapped out processes. + * Jari Ruusu -- updates so that setting + D_FILE_OFFSET_BITS=64 now works as expected. + * Anthony Towns -- fixed a bug with + sed address range handling + * Dmitry Zakharov -- 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 -- 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 -- 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 -- Carefully check NFS_MOUNT_VERSION + depending on what kernel is being used. + * Quinn Jensen -- 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 -- 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 and + Nicolas Ferre -- 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 -- 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 -- 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 -- 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 -- 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 + * 'wget' contributed by Chip Rosenthal , + and Covad Communications + * 'getopt' from "Alfred M. Szmidt" + * dos2unix, unix2dos, reset, and unrpm.c (and lots of help + debugging) thanks to Kent Robotti . + * 'renice' command, thanks to Dave Cinege + * 'xargs' (written by me) + * 'expr' contributed by Edward Betts , 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 + * chroot can now call the builtin shell - Pavel Roskin + * '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 + * Add optional ls file sorting, thanks to a patch from + Sterling Huxley + * 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 + * 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 + * 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 + * Fixed segfault with 'cut -f 1 -d:' and added 'cut -s' suport. + Fix thanks to Arne Bernin + * Several fixes from Marius Groeger + - 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 + * Fix to init.c from Stuart Menefy so that + it always sets the controlling terminal before running any programs + * Several fixes from Matt Kraai + - 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 + * 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 + * 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 . 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 for finishing this off! + * Added a mini ar archive utility, especially written for BusyBox by + Glenn McGrath + * Added mktemp, contributed by Daniel Jacobowitz + * Added setkeycodes, for those that have wierd keyboard buttons. + * Added md5sum, uuencode and uudecode -- thanks to Alfred M. Szmidt + 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 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 + * 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 . + * cp/mv now accepts the -f flag + * tail can now accept - 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 + * 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 + * Fixed a warning in utility.c due to char being unsigned on Linux/PPC, + Fix thanks to Pavel Roskin + * Made "killall" complain (not error and exit) about processes that it + cannot find by name -- Pavel Roskin + * 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 -- ". 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 + 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 + and then adjusted a bit by me. + * Added tr from John Lombardo + * Added echo and test (from me). + * Added usleep contributed by Nicolas Pitre + * BusyBox's bss size has been majorly reduced (was 384668, is now 28740). + * Several fixes from Pavel Roskin : + - 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 + * 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 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 + - 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 : + - 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 . + * 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 for the patch. + * Fix "+" parsing bug in date, from "Merle F. McClelland" . + * 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 - * changed fsck_minix.c to reduce its .bss size significantly - -beppu -piptigger * 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 + 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 + * 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 + * 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 @@ -19,17 +799,19 @@ * 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: and use PATH_MAX everywhere. - * busybox: File name buffer overrun guards to prevent future crashes. + * include: 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. + - 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 @@ -38,28 +820,30 @@ -Karl M. Hegbloom - * 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 + * 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 + 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 * Rewrote and simplified logger. Added the "-t" option, and made it behave itself a bit better. * Optional support contributed by Ben Collins - for the kernel init chroot patch by Werner Almesberger, which + 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 * Several contributions from Friedrich Vedder - * Added (and documented) "-n" option for head - + * Added (and documented) "-n" option for head * Cleanup for a number of usage messages -- also contributed Friedrich Vedder * Cosmetic fix to busybox.c (Don't print a comma at the @@ -69,9 +853,9 @@ * 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 dusybox.defs.h + 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 @@ -81,17 +865,26 @@ Randolph Chung . * cp could, when copying symlinks, change permissions of the files pointed to by the symlinks. - * Several fixes from Pavel Roskin : + * Several fixes from Pavel Roskin : - `chown' with 1 argument displayed the error incorrectly - - `fdflush', `length' and `printf' crashed when run without arguments + - `fdflush', `length' and `printf' crashed if run without arguments - `fdflush' tried to flush itself using *argv - added "skip" and "seek" to dd. - * swapoff -a was not working. Now it is. - * init did not cleanly unmount filesystems on reboot. Now it does. + - 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 + * You can now spefify alternative strip commands -- change + also from Gilbert Coville. -Erik Andersen @@ -100,48 +893,49 @@ * New Apps: wc, hostid, logname, tty, whoami, yes -- all contributed by Edward Betts * 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 for the fix. - * /bin/true and /bin/false were echoing a blank line when run. Now fixed. + (unless you used busybox syslog, which hid the bug). Thanks to + Alex Holden 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 + * 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 - * Several fixes from Marco Pantaleoni - * compile in fullWrite() not only if BB_TAR is defined, but also - if BB_CP or BB_MV are (fullWrite() is referenced by copyFile()) + * Several fixes from Marco Pantaleoni 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 no longer fails if busybox.def.h defines BB_FEATURE_LINUXRC - but not BB_INIT. (init_main used to be referenced, but not compiled) + (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. + * 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 . - * New App:: loadacm contributed by Peter Novodvorsky + * New Apps: sort, uniq. -beppu New Apps: lsmod, rmmod -erik New Apps: + * fbset contributed by Randolph Chung . New App:: + * loadacm contributed by Peter Novodvorsky 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" @@ -151,19 +945,19 @@ * 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 - * 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 : + * Fixed a stupid segfault in kill. Several fixes from Friedrich Vedder + * : - Added gunzip -t, removed gunzip.c dead code, - fixed several typos - Glibc 2.0.7 and libc5 compile fixes @@ -175,25 +969,27 @@ 0.39 * New Apps: ping, hostname, and mkfifo contributed by Randolph Chung . 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 ) - * Implemented tee. -beppu - * Implemented head. -beppu + stuff still needs to be added. -beppu (John Beppu + ) + * Implemented tee. -beppu Implemented head. -beppu -Erik Andersen, Dec 10, 1999 @@ -201,7 +997,8 @@ * 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. @@ -212,27 +1009,32 @@ * 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. @@ -241,46 +1043,53 @@ 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 @@ -290,17 +1099,17 @@ 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. @@ -312,7 +1121,7 @@ * 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 @@ -320,61 +1129,59 @@ -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 ) - * 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 ) + * 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 . + 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 + . -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. @@ -385,9 +1192,9 @@ * 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 @@ -396,39 +1203,43 @@ 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 - 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 + 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 - 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 and tar -cf 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 - * 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 + 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 and tar -cf 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 + * 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