1 <!--#include file="header.html" -->
4 <li><b>16 September 2007 -- BusyBox 1.7.1 (stable)</b>
5 <p><a href=http://busybox.net/downloads/busybox-1.7.1.tar.bz2>BusyBox 1.7.1</a>.
6 (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_7_stable/>svn</a>,
7 <a href=http://busybox.net/downloads/fixes-1.7.1/>patches</a>,
8 <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
10 <p>This is a bugfix-only release, with fixes to cp, runsv, tar, busybox --install and build system.</p>
11 <p><a href=http://busybox.net/~vda/HOWTO_bbox_with_uclibc.txt>How to build static busybox against uclibc</a></p>
14 <li><b>24 August 2007 -- BusyBox 1.7.0 (unstable)</b>
15 <p><a href=http://busybox.net/downloads/busybox-1.7.0.tar.bz2>BusyBox 1.7.0</a>.
16 (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_7_stable/>svn</a>,
17 <a href=http://busybox.net/downloads/fixes-1.7.0/>patches</a>,
18 <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
20 <p>Applets which had many changes since 1.6.x:
23 <li>works in standalone mode on NOMMU machines now (partly by Alex Landau <landau_alex at yahoo.com>)
24 <li>indexer example is rewritten in C
25 <li>optional support for error pages (by Pierre Metras <genepi at sympatico.ca>)
26 <li>stop reading headers using 1-byte reads
27 <li>new option -v[v]: prints client addresses, HTTP codes returned, URLs
28 <li>extended -p PORT to -p [IP[v6]:]PORT
29 <li>sendfile support (by Pierre Metras <genepi at sympatico.ca>)
30 <li>add support for Status: CGI header
31 <li>fix CGI handling bug (we were closing wrong fd)
32 <li>CGI I/O loop still doesn't look 100% ok to me...
37 <li>add -f "foreground" and -S "syslog" options
38 <li>fixed "ifupdown + udhcpc_without_pidfile_creation" bug
39 <li>new config option "Rewrite the lease file at every new acknowledge" (Mats Erik Andersson <mats at blue2net.com> (Blue2Net AB))
40 <li>consistently treat server_config.start/end IPs as host-order
41 <li>fix IP parsing for 64bit machines
42 <li>fix unsafe hton macro usage in read_opt()
43 <li>do not chdir to / when daemonizing
46 <p>top, ps, killall, pidof:
48 <li>simpler loadavg processing
49 <li>truncate usernames to 8 chars
50 <li>fix non-CONFIG_DESKTOP ps -ww (by rockeychu)
51 <li>improve /proc/PID/cmdinfo reading code
52 <li>use cmdline, not comm field (fixes problems with re-execed applets showing as processes with name "exe", and not being found by pidof/killall by applet name)
53 <li>reduce CPU usage in decimal conversion (optional) (corresponding speedup on kernel side is accepted in mainline Linux kernel, yay!)
54 <li>make percentile (0.1%) calculations configurable
55 <li>add config option and code for global CPU% display
56 <li>reorder columns, so that [P]PIDs are together and VSZ/%MEM are together - makes more sense
59 <p>Build system improvements: doesn't link against libraries we don't need,
60 generates verbose link output and map file, allows for custom link
61 scripts (useful for removing extra padding, among other things).
63 <p>Code and data size in comparison with 1.6.1:<pre>
64 Equivalent .config, i386 glibc dynamic builds:
65 text data bss dec hex filename
66 672671 2768 16808 692247 a9017 busybox-1.6.1/busybox
67 662948 2660 13528 679136 a5ce0 busybox-1.7.0/busybox
68 662783 2631 13416 678830 a5bae busybox-1.7.0/busybox.customld
70 Same .config built against static uclibc:
71 765021 1059 11020 777100 bdb8c busybox-1.7.0/busybox_uc</pre>
73 <p>Code/data shrink done in applets: crond, hdparm, dd, cal, od, nc, expr, uuencode,
74 test, slattach, diff, ping, tr, syslogd, hwclock, zcip, find, pidof, ash, uudecode,
79 <li>pscan, expand, unexpand (from Tito <farmatito at tiscali.it>)
80 <li>setfiles, restorecon (by Yuichi Nakamura <ynakam at hitachisoft.jp>)
81 <li>chpasswd (by Alexander Shishkin <virtuoso at slind.org>)
85 <p>Unfortunately, not much work is done on shells. This was mostly stalled
86 by lack of time (read: laziness) on my part to learn how to adapt existing
87 qemu-runnable image for a NOMMU architechture (available on qemu website)
88 for local testing of cross-compiled busybox on my machine.
90 <p>Other changes since previous release (abridged):
92 <li>addgroup: disallow addgroup -g num user group; make -g 0 work (Tito <farmatito at tiscali.it>)
93 <li>adduser: close /etc/{passwd,shadow} before calling passwd etc. Spotted by Natanael Copa <natanael.copa at gmail.com>
94 <li>arping: -i should be -I, fixed
95 <li>ash: make "jobs | cat" work like in bash (was giving empty output)
96 <li>ash: recognize -l as --login equivalent; do not recognize +-login
97 <li>ash: fix buglet in DEBUG code (Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
98 <li>ash: fix SEGV if type has zero parameters
99 <li>awk: fix -F 'regex' bug (miscounted fields if last field is empty)
100 <li>catv: catv without arguments was trying to use environ as argv (Alex Landau <landau_alex at yahoo.com>)
101 <li>catv: don't die on open error (emit warning)
102 <li>chown/chgrp: completely match coreutils 6.8 wrt symlink handling
103 <li>correct_password: do not print "no shadow passwd..." message
104 <li>crond: don't start sendmail with absolute path, don't report obsolete version (report true bbox version)
105 <li>dd: fix bug where we assume count=INT_MAX when count is unspecified
106 <li>devfsd: sanitization by Tito <farmatito at tiscali.it>
107 <li>echo: fix non-fancy echo
108 <li>fdisk: make it work with big disks (read: typical today's disks) even if CONFIG_LFS is unset
109 <li>find: -context support for SELinux (KaiGai Kohei <kaigai at kaigai.gr.jp>)
110 <li>find: add conditional support for -maxdepth and -regex, make -size match GNU find
111 <li>find: fix build failure on certain configs (found by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>)
112 <li>fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one
113 <li>grep: implement -m MAX_MATCHES, fix buglets with context printing
114 <li>grep: fix selection done by FEATURE_GREP_EGREP_ALIAS (Maxime Bizon <mbizon at freebox.fr> (Freebox))
115 <li>hush: add missing dependencies (Maxime Bizon <mbizon at freebox.fr> (Freebox))
116 <li>hush: fix read builtin to not read ahead past EOL and to not use insane amounts of stack
117 <li>ifconfig: make it work with ifaces with interface no. > 255
118 <li>ifup/ifdown: make location of ifstate configurable
119 <li>ifupdown: make netmask parsing smaller and more strict (was accepting 255.0.255.0, 255.1234.0.0 etc...)
120 <li>install: fix -s (strip) option, fix install a b /a/link/to/dir
121 <li>libbb: consolidate ARRAY_SIZE macro (Walter Harms <wharms at bfs.de>)
122 <li>libbb: make /etc/network parsing configurable. -200 bytes when off
123 <li>libbb: nuke BB_GETOPT_ERROR, always die if there are mutually exclusive options
124 <li>libbb: xioctl and friends by Tito <farmatito at tiscali.it>
125 <li>login: optional support for PAM
126 <li>login: make /etc/nologin support configurable (-240 bytes)
127 <li>login: ask passwords even for wrong usernames
128 <li>md5_sha1_sum: fix mishandling when run as /bin/md5sum
129 <li>mdev: add support for firmware loading
130 <li>mdev: work even when CONFIG_SYSFS_DEPRECATED in kernel is off
131 <li>modprobe: add scanning of /lib/modules/`uname -r`/modules.symbols (by Yann E. MORIN <yann.morin.1998 at anciens.enib.fr>)
132 <li>more: fixes by Tristan Schmelcher <tpkschme at engmail.uwaterloo.ca>
133 <li>nc: make connecting to IPv4 from IPv6-enabled hosts easier (was requiring -s local_addr)
134 <li>passwd: fix bug "updating shadow even if user's record is in passwd"
135 <li>patch: fix -p -1 handling
136 <li>patch: fix bad line ending handling (Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
137 <li>ping: display roundtrip times with 1/1000th of ms, not 1/10 ms precision.
138 <li>ping: fix incorrect handling of -I (Iouri Kharon <bc-info at styx.cabel.net>)
139 <li>ping: fix non-fancy ping6
140 <li>printenv: fix "printenv VAR1 VAR2" bug (spotted by Kalyanatejaswi Balabhadrapatruni <kalyanatejaswi at yahoo.co.in>)
141 <li>ps: fix -Z (by Yuichi Nakamura <ynakam at hitachisoft.jp>)
142 <li>rpm: add optional support for bz2 data. +50 bytes of code
143 <li>rpm: fix bogus "package is not installed" case
144 <li>sed: fix 'q' command handling (by Nguyen Thai Ngoc Duy <pclouds at gmail.com>)
145 <li>start_stop_daemon: NOMMU fixes by Alex Landau <landau_alex at yahoo.com>
146 <li>stat: fix option -Z SEGV
147 <li>strings: strings a b was processing a twice, fix that
148 <li>svlogd: fix timestamping, do not warn if config is missing
149 <li>syslogd, logread: get rid of head pointer, fix logread bug in the process
150 <li>syslogd: do not convert tabs to ^I, set syslog IPC buffer to mode 0644
151 <li>tar: improve OLDGNU compat, make old SUN compat configurable
152 <li>test: fix testing primary expressions like '"-u" = "-u"'
153 <li>uudecode: fix to base64 decode by Jorgen Cederlof <jcz at google.com>
154 <li>vi: multiple fixes by Natanael Copa <natanael.copa at gmail.com>
155 <li>wget: fix bug in base64 encoding (bug 1404). +10 bytes
156 <li>wget: lift 256 chars limitation on terminal width
157 <li>wget, zcip: use monotonic_sec instead of gettimeofday
162 <li><b>30 June 2007 -- BusyBox 1.6.1 (stable)</b>
163 <p><a href=http://busybox.net/downloads/busybox-1.6.1.tar.bz2>BusyBox 1.6.1</a>.
164 (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_6_stable/>svn</a>,
165 <a href=http://busybox.net/downloads/fixes-1.6.1/>patches</a>,
166 <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
168 <p>This is a bugfix-only release, with fixes to echo, hush, and wget.</p>
171 <li><b>1 June 2007 -- BusyBox 1.6.0 (unstable)</b>
172 <p><a href=http://busybox.net/downloads/busybox-1.6.0.tar.bz2>BusyBox 1.6.0</a>.
173 (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_6_stable/>svn</a>,
174 <a href=http://busybox.net/downloads/fixes-1.6.0/>patches</a>,
175 <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
177 <p>Since this is a x.x.0 release, it probably does not deserve "stable"
178 label. Please help making 1.6.1 stable by testing 1.6.0.</p>
179 <p>Note that hush shell had many changes and (hopefully) is much improved now,
180 but there is a possibility that it regressed in some obscure cases. Please
181 report any such cases.</p>
182 <p>lash users please note: lash is going to be deprecated in busybox 1.7.0
183 and removed in the more distant future. Please migrate to hush.</p>
184 <p><a href=http://busybox.net/~vda/mem_usage-1.6.0.txt>Memory usage has decreased, but we can do better still</a></p>
185 <p>Other changes since previous release:
187 <li>NOFORK: audit small applets and mark some of them as NOFORK. Put big scary warnings in relevant places
188 <li>NOFORK: factor out NOFORK/NOEXEC code from find. Use NOFORK/NOEXEC in find and xargs
189 <li>NOFORK: remove potential xmalloc from NOFORK path in bb_full_fd_action
190 <li>NOMMU: random fixes; compressed --help now works for NOMMU
191 <li>SELinux: load_policy applet
192 <li>[u]mount: extend -t option (Roy Marples <uberlord at gentoo.org>)
193 <li>addgroup: clean up, fix adding users to existing groups and make it optional (Tito)
194 <li>adduser: don't bomb out if shadow password file doesn't exist (from Tito <farmatito at tiscali.it>)
195 <li>applet.c: do not even try to read config if run by real root; fix suid config handling
196 <li>ash: fix infinite loop on exit if tty is not there anymore
197 <li>ash: fix kill -l (by Mats Erik Andersson <mats.andersson64 at comhem.se>)
198 <li>ash: implement type -p, costs less than 10 bytes (patch by Mats Erik Andersson <mats.andersson64 at comhem.se>)
199 <li>awk: don't segfault on printf(%*s). Closes bug 1337
200 <li>awk: guard against empty environment
201 <li>awk: some 'lineno' vars were shorts, made them ints (code got smaller)
202 <li>cat: stop using stdio.h opens
203 <li>config system: clarify PREFER_APPLETS/SH_STANDALONE effects in help text
204 <li>cryptpw: new applet (by Thomas Lundquist <lists at zelow.no>)
205 <li>cttyhack: new applet
206 <li>dd: NOEXEC fix; fix skip= parse error (spotted by Dirk Clemens <develop at cle-mens.de>)
207 <li>deluser: add optional support for removing users from groups (by Tito <farmatito at tiscali.it>)
208 <li>diff: fix SEGV (NULL deref) in diff -N
209 <li>diff: fix segfault on empty dirs (Peter Korsgaard <peter.korsgaard at barco.com>)
210 <li>dnsd: fix several buglets, make smaller; openlog(), so that applet's name is logged
211 <li>dpkg: run_package_script() returns 0 if all ok and non-zero if failure. The result code was checked incorrectly in two places. (from Kim B. Heino <Kim.Heino at bluegiga.com>)
212 <li>dpkg: use bitfields which are a bit closer to typical short/char. Code size -800 bytes
213 <li>dumpleases: getopt32()-ization (from Mats Erik Andersson <mats.andersson64 at comhem.se>)
214 <li>e2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes)
215 <li>ether-wake: close bug 1317. Reorder fuctions to avoid forward refs while at it
216 <li>ether-wake: save a few more bytes of code
217 <li>find: -group, -depth (Natanael Copa <natanael.copa at gmail.com>)
218 <li>find: add support for -delete, -path (by Natanael Copa)
219 <li>find: fix -prune. Add big comment about it
220 <li>find: improve usage text (Natanael Copa <natanael.copa at gmail.com>)
221 <li>find: missed 'static' on const data; size and prune were mixed up; use index_in_str_array
222 <li>find: un-DESKTOPize (Kai Schwenzfeier <niteblade at gmx.net>)
223 <li>find_root_device: teach to deal with /dev/ subdirs (by Kirill K. Smirnov <lich at math.spbu.ru>)
224 <li>find_root_device: use lstat - don't follow links
225 <li>getopt32: fix llist_t options ordering. llist_rev is now unused
226 <li>getopt: use getopt32 for option parsing - inspired by patch by Mats Erik Andersson <mats.andersson64 at comhem.se>
227 <li>hdparm: fix multisector mode setting (from Toni Mirabete <amirabete at catix.cat>)
228 <li>hdparm: make -T -t code smaller (-194 bytes), and output prettier
229 <li>ifupdown: make it possible to use DHCP clients different from udhcp
230 <li>ifupdown: reread state file before rewriting it. Fixes "ifup started another ifup" state corruption bug. Patch by Natanael Copa <natanael.copa at gmail.com>
231 <li>ifupdown: small optimization (avoid doing useless work if we are not going to update state file)
232 <li>ip: fix compilation if FEATURE_TR_CLASSES is off
233 <li>ip: mv ip*_main into ip.c; use a dispatcher to save on needless duplication. Saves a minor 12b
234 <li>ip: rewrite the ip applet to be less bloaty. Convert to index_in_(sub)str_array()
235 <li>ip: set the scope properly. Thanks to Jean Wolter
236 <li>iplink: shrink iplink; sanitize libiproute a bit (-916 bytes)
237 <li>iproute: shrink a bit (-200 bytes)
238 <li>kill: know much more signals; make code smaller; use common code for kill applet and ash kill builtin
239 <li>klogd: remove dependency on syslogd
240 <li>lash: "forking" applets are actually can be treated the same way as "non-forked". Also save a bit of space on trailing NULL array elements.
241 <li>lash: fix kill buglet (didn't properly recognize ESRCH)
242 <li>lash: make -c work; crush buffer overrun and free of non-malloced ptr (from Mats Erik Andersson <mats.andersson64 at comhem.se>)
243 <li>lash: recognize and use NOFORK applets
244 <li>less: fix case when regex search finds nothing; fix very obscure memory corruption bug; fix less <HUGEFILE + [End] busy loop
245 <li>libbb: add xsendto, xunlink, xpipe
246 <li>libbb: fix segfault in reset_ino_dev_hashtable() when *hashtable was NULL
247 <li>libbb: make pidfile writing configurable
248 <li>libbb: make xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y)
249 <li>libbb: rework NOMMU helper API so that it makes more sense and easier to use
250 <li>libiproute: audit callgraph, shortcut error paths into die() functions
251 <li>lineedit: do not try to open NULL history file
252 <li>lineedit: nuke two unused variables and code which sets them
253 <li>login: remove setpgrp call (makes it work from shell prompt again); sanitize stdio descriptors (we are suid, need to be careful!)
254 <li>login: shrink login and set_environment by ~100 bytes
255 <li>mount: fix incorrect usage of strtok (inadvertently used NULL sometimes)
256 <li>mount: fix mounting of symlinks (mount from util-linux allows that)
257 <li>msh: data/bss reduction (more than 9k of it); fix "underscore bug" (a_b=1111 didn't work); fix obscure case with backticks and closed fd 1
258 <li>nc: port nc 1.10 to busybox
259 <li>netstat: fix for bogus state value for raw sockets
260 <li>netstat: introduce -W: wide, ipv6-friendly output; shrink by ~500 bytes
261 <li>nmeter: should die if stdout doesn't like him anymore
262 <li>patch: do not try to delete same file twice
263 <li>ping: fix wrong sign extension of packet id (bug 1373)
264 <li>ps: add -o tty and -o rss support; make a bit smaller; work around libc bug: printf("%.*s\n", MAX_INT, buffer)
265 <li>run_parts: rewrite
266 <li>run_parts: do not check path portion of a name for "bad chars". Needed for ifupdown. Patch by Gabriel L. Somlo <somlo at cmu.edu>
267 <li>sed: fix escaped newlines in -f
268 <li>split: new applet
269 <li>stat: remove superfluous bss user (flags) and manually unswitch some areas
270 <li>stty: fix option parsing bug (spotted by Sascha Hauer <s.hauer at pengutronix.de>)
271 <li>svlogd: fix 'SEGV on uninitialized data' and make it honor TERM
272 <li>tail: fix SEGV on "tail -N"
273 <li>ipsvd: tcpsvd,udpsvd are new applets, GPL-ed 'clones' of Dan Bernstein's tcpserver. Author: Gerrit Pape <pape at smarden.org>, http://smarden.sunsite.dk/ipsvd/
274 <li>test: close bug 1371; plug a memory leak; code size reduction
275 <li>tftp: code diet, and I think retransmits were broken
276 <li>tr: fix bug where we did not reject invalid classes like '[[:alpha'. debloat while at it
277 <li>udhcp: MAC_BCAST_ADDR and blank_chaddr are in fact constant, move to rodata; use pipe instead of socketpair
278 <li>udhcp[cd]: stop using atexit magic fir pidfile removal; stop deleting our own pidfile if we daemonize
279 <li>xargs: shrink code, ~80 bytes; simplify word list management
280 <li>zcip: make it work on NOMMU (+ improve NOMMU support machinery)
285 <li><b>20 May 2007 -- BusyBox 1.5.1 (stable)</b>
286 <p><a href=http://busybox.net/downloads/busybox-1.5.1.tar.bz2>BusyBox 1.5.1</a>.
287 (<a href=http://busybox.net/downloads/fixes-1.5.1/>patches</a>,
288 <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
290 <p>This is a bugfix-only release, with fixes to hdparm, hush, ifupdown, ps
294 <li><b>23 March 2007 -- BusyBox 1.5.0 (unstable)</b>
295 <p><a href=http://busybox.net/downloads/busybox-1.5.0.tar.bz2>BusyBox 1.5.0</a>.
296 (<a href=http://busybox.net/downloads/fixes-1.5.0/>patches</a>,
297 <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
299 <p>Since this is a x.x.0 release, it probably does not deserve "stable"
300 label. Please help making 1.5.1 stable by testing 1.5.0.</p>
301 <p>Notable changes since previous release:
303 <li>find: added support for -user, -not, fixed -mtime, -mmin, -perm
304 <li>[de]archivers: merge common logic into one module
305 <li>ping[6]: unified code for both
306 <li>less: regex search improved
307 <li>ash: more readable code, testsuite added
308 <li>sed: several very obscure bugs fixed
309 <li>chown: -H, -L, -P support (required by POSIX)
310 <li>tar: handle (broken) checksums a-la Sun; tar restores mode again
311 <li>grep: implement -w, "implement" -a and -I by ignoring them
312 <li>cp: more sane behavior when overwriting existing files
313 <li>init: stop doing silly things with the console (-400 bytes)
314 <li>httpd: make httpd usable for NOMMU CPUs; fix POSTDATA handling bugs
315 <li>httpd: run interpreter for configured file extensions in any dir,
316 not only in /cgi-bin/
318 <li>SELinux: SELinux-related code and -Z option added to several applets,
319 new SELinux-specific applets: chcon, runcon.
320 <li>Build system: produces link map, uses -Wwrite-strings to catch
321 improper usage of string constants.
322 <li>Data and bss section usage audited and reduced - should help NOMMU
324 <li>Applets with bug fixes: gunzip, vi, syslogd, dpkg, ls, adjtimex, resize,
325 sv, printf, diff, awk, sort, dpkg, diff, tftp
326 <li>Applets with usability improvements: swapon, more, ifup/ifdown, hwclock,
327 udhcpd, start_stop_daemon, cmp
328 <li>Applets with code cleaned up: telnet, fdisk, fsck_minix, mkfs_minix,
329 syslogd, swapon, runsv, svlogd, klogd
334 <li><b>18 March 2007 -- BusyBox 1.4.2 (stable)</b>
335 <p><a href=http://busybox.net/downloads/busybox-1.4.2.tar.bz2>BusyBox 1.4.2</a>.
338 <p>This release includes only trivial fixes accumulated since 1.4.1.
342 <li><b>25 January 2007 -- BusyBox 1.4.1 (stable)</b>
343 <p><a href=http://busybox.net/downloads/busybox-1.4.1.tar.bz2>BusyBox 1.4.1</a>.
344 (<a href=http://busybox.net/downloads/fixes-1.4.1/>patches</a>)</p>
346 <p>This release includes only trivial fixes accumulated since 1.4.0.
350 <li><b>20 January 2007 -- BusyBox 1.4.0 (stable)</b>
351 <p><a href=http://busybox.net/downloads/busybox-1.4.0.tar.bz2>BusyBox 1.4.0</a>.
352 (<a href=http://busybox.net/downloads/fixes-1.4.0/>patches</a>)</p>
354 <p>Since this is a x.x.0 release, it probably is a bit less "stable"
356 <p>Changes since previous release:
358 <li>e2fsprogs are mostly removed from busybox. Some smaller parts remain,
359 the rest of it sits disabled in e2fsprogs/old_e2fsprogs/*, because
360 it's too bloated. Really. I'm afraid it's about the only way we can
361 ever get e2fsprogs cleaned up.
362 <li>less: many improvements. Now can display binary files
363 (although I expect it to have trouble with displays where 8bit chars
364 don't have 1-to-1 char/glyph relationship). Regexp search is not buggy
365 anymore. Less does not read entire input up-front. Reads input
366 as it appears (yay!). Works rather nice as man pager. I recommend it
368 <li>IPv6: generic support is in place, many networking applets are
369 upgraded to be IPv6 capable. Probably some work remains, but it is
370 already much better than what we had previously.
371 <li>arp: new applet (thanks to Eric Spakman).
372 <li>fakeidentd: non-forking standalone server part was taking ~90%
373 of the applet. Factored it out (in fact, rewrote it).
374 <li>syslogd: mostly rewritten.
375 <li>decompress_unzip, gzip: sanitized a bit.
376 <li>sed: better hadling of NULs
377 <li>httpd: stop adding our own "Content-type:" to CGI output
378 <li>chown: user.grp works again.
379 <li>minor bugfixes to: passwd, date, tftp, start_stop_daemon, tar,
380 ps, ifupdown, time, su, stty, awk, ping[6], sort,...
385 <li><b>20 January 2007 -- BusyBox 1.3.2 (stable)</b>
386 <p><a href=http://busybox.net/downloads/busybox-1.3.2.tar.bz2>BusyBox 1.3.2</a>.</p>
388 <p>This release includes only one trivial fix accumulated since 1.3.1
392 <li><b>27 December 2006 -- BusyBox 1.3.1 (stable)</b>
393 <p><a href=http://busybox.net/downloads/busybox-1.3.1.tar.bz2>BusyBox 1.3.1</a>.
394 (<a href=http://busybox.net/downloads/fixes-1.3.1/>patches</a>)</p>
396 <p>Closing 2006 with new release. It includes only trivial fixes accumulated since 1.3.0
400 <li><b>14 December 2006 -- BusyBox 1.3.0 (stable)</b>
401 <p><a href=http://busybox.net/downloads/busybox-1.3.0.tar.bz2>BusyBox 1.3.0</a>.
402 (<a href=http://busybox.net/downloads/fixes-1.3.0/>patches</a>)</p>
404 <p>This release has CONFIG_DESKTOP option which enables features
405 needed for busybox usage on desktop machine. For example, find, chmod
406 and chown get several less frequently used options, od is significantly
407 bigger but matches GNU coreutils, etc. Intended to eventually make
408 busybox a viable alternative for "standard" utilities for slightly
409 adventurous desktop users.
410 <p>Changes since previous release:
412 <li>find: taking many more of standard options
413 <li>ps: POSIX-compliant -o implemented
415 <li>grep: added -r, fixed -h
416 <li>watch: make it exec child like standard one does (was totally
418 <li>tar: fix limitations which were preventing bbox tar usage
419 on big directories: long names and linknames, pax headers
420 (Linux kernel tarballs have that). Fixed a number of obscure bugs.
421 Raised max file limit (now 64Gb). Security fixes (/../ attacks).
422 <li>httpd: added -i (inetd), -f (foreground), support for
423 directory indexer CGI (example is included), bugfixes.
424 <li>telnetd: fixed/improved IPv6 support, inetd+standalone support,
425 other fixes. Useful IPv6 stuff factored out into libbb.
426 <li>runit/*: new applets adapted from http://smarden.sunsite.dk/runit/
427 (these are my personal favorite small-and-beautiful toys)
428 <li>minor bugfixes to: login, dd, mount, umount, chmod, chown, ln, udhcp,
429 fdisk, ifconfig, sort, tee, mkswap, wget, insmod.
431 <p>Note that GnuPG key used to sign this release is different.
432 1.2.2.1 is also signed post-factum now. Sorry for the mess.
436 <li><b>29 October 2006 -- BusyBox 1.2.2.1 (fix)</b>
437 <p><a href=http://busybox.net/downloads/busybox-1.2.2.1.tar.bz2>BusyBox 1.2.2.1</a>.</p>
439 <p>Added compile-time warning that static linking against glibc
440 produces buggy executables.
443 <li><b>24 October 2006 -- BusyBox 1.2.2 (stable)</b>
444 <p>It's a bit overdue, but
445 <a href=http://busybox.net/downloads/busybox-1.2.2.tar.bz2>here is
446 BusyBox 1.2.2</a>.</p>
448 <p>This release has dozens of fixes backported from the ongoing development
449 branch. There are a couple of bugfixes to sed, two fixes to documentation
450 generation (BusyBox.html shouldn't have USE() macros in it anymore), fix
451 umount to report the right errno on failure and to umount block devices by
452 name with newer kernels, fix mount to handle symlinks properly, make mdev
453 delete device nodes when called for hotplug remove, fix a segfault
454 in traceroute, a minor portability fix to md5sum option parsing, a build
455 fix for httpd with old gccs, an options parsing tweak to hdparm, make test
456 fail gracefully when getgroups() returns -1, fix a race condition in
457 modprobe when two instances run at once (hotplug does this), make "tar xf
458 foo.tar dir/dir" extract all subdirectories, make our getty initialize the
459 terminal more like mingetty, an selinux build fix, an endianness fix in
460 ping6, fix for zcip defending addresses, clean up some global variables in
461 gzip to save memory, fix sulogin -tNNN, a help text tweak, several warning
462 fixes and build fixes, fixup dnsd a bit, and a partridge in a pear tree.</p>
464 <p>As <a href=http://lwn.net/Articles/202106/>Linux Weekly News noted</a>,
465 this is my (Rob's) last release of BusyBox. The new maintainer is Denis
466 Vlasenko, I'm off to do <a href=http://landley.net/code>other things</a>.
470 <li><b>29 September 2006 -- New license email address.</b>
471 <p>The email address gpl@busybox.net is now the recommended way to contact
472 the Software Freedom Law Center to report BusyBox license violations.</p>
474 <li><b>31 July 2006 -- BusyBox 1.2.1 (stable)</b>
475 <p>Since nobody seems to have objected too loudly over the weekend, I
476 might as well point you all at
477 <a href="http://busybox.net/downloads/busybox-1.2.1.tar.bz2">Busybox
478 1.2.1</a>, a bugfix-only release with no new features.</p>
480 <p>It has three shell fixes (two to lash: going "var=value" without
481 saying "export" should now work, plus a missing null pointer check, and
482 one to ash when redirecting output to a file that fills up.) Fix three
483 embarassing thinkos in the new dmesg command. Two build tweaks
484 (dependencies for the compressed usage messages and running make in the
485 libbb subdirectory). One fix to tar so it can extract git-generated
486 tarballs (rather than barfing on the pax extensions). And a partridge
487 in a pear... Ahem.</p>
489 <p>But wait, there's more! A passwd changing fix so an empty
490 gecos field doesn't trigger a false objection that the new passwd contains
491 the gecos field. Make all our setuid() and setgid() calls check the return
492 value in case somebody's using per-process resource limits that prevent
493 a user from having too many processes (and thus prevent a process from
494 switching away from root, in which case the process will now _die_ rather
495 than continue with root privileges). A fix to adduser to make sure that
496 /etc/group gets updated. And a fix to modprobe to look for modules.conf
497 in the right place on 2.6 kernels.</p>
499 <li><b>30 June 2006 -- BusyBox 1.2.0</b>
500 <p>The -devel branch has been stabilized and the result is
501 <a href="http://busybox.net/downloads/busybox-1.2.0.tar.bz2">Busybox
502 1.2.0</a>. Lots of stuff changed, I need to work up a decent changelog
503 over the weekend.</p>
505 <p>I'm still experimenting with how long is best for the development
506 cycle, and since we've got some largeish projects queued up I'm going to
507 try a longer one. Expect 1.3.0 in December. (Expect 1.2.1 any time
508 we fix enough bugs. :)</p>
510 <p>Update: Here are <a href="http://busybox.net/downloads/busybox-1.2.0.fixes.patch">the first few bug fixes</a> that will go into 1.2.1.</p>
512 <li><b>17 May 2006 -- BusyBox 1.1.3 (stable)</b>
513 <p><a href="http://busybox.net/downloads/busybox-1.1.3.tar.bz2">BusyBox
514 1.1.3</a> is another bugfix release. It makes passwd use salt, fixes a
515 memory freeing bug in ls, fixes "build all sources at once" mode, makes
516 mount -a not abort on the first failure, fixes msh so ctrl-c doesn't kill
517 background processes, makes patch work with patch hunks that don't have a
518 timestamp, make less's text search a lot more robust (the old one could
519 segfault), and fixes readlink -f when built against uClibc.</p>
521 <p>Expect 1.2.0 sometime next month, which won't be a bugfix release.</p>
523 <li><b>10 April 2006 -- BusyBox 1.1.2 (stable)</b>
524 <p>You can now download <a href="http://busybox.net/downloads/busybox-1.1.2.tar.bz2">BusyBox 1.1.2</a>, a bug fix release consisting of 11 patches
525 backported from the development branch: Some build fixes, several fixes
526 for mount and nfsmount, a fix for insmod on big endian systems, a fix for
527 find -xdev, and a fix for comm. Check the file "changelog" in the tarball
530 <p>The next new development release (1.2.0) is slated for June. A 1.1.3
531 will be released before then if more bug fixes crop up. (The new plan is
532 to have a 1.x.0 new development release every 3 months, with 1.x.y stable
533 bugfix only releases based on that as appropriate.)</p>
535 <li><b>27 March 2006 -- Software Freedom Law Center representing BusyBox and uClibc</b>
536 <p>One issue Erik Andersen wanted to resolve when handing off BusyBox
537 maintainership to Rob Landley was license enforcement. BusyBox and
538 uClibc's existing license enforcement efforts (pro-bono representation
539 by Erik's father's law firm, and the
540 <a href="http://www.busybox.net/shame.html">Hall of Shame</a>), haven't
541 scaled to match the popularity of the projects. So we put our heads
542 together and did the obvious thing: ask Pamela Jones of
543 <a href="http://www.groklaw.net">Groklaw</a> for suggestions. She
544 referred us to the fine folks at softwarefreedom.org.</p>
546 <p>As a result, we're pleased to announce that the
547 <a href="http://www.softwarefreedom.org">Software Freedom Law Center</a>
548 has agreed to represent BusyBox and uClibc. We join a number of other
549 free and open source software projects (such as
550 <a href="http://lwn.net/Articles/141806/">X.org</a>,
551 <a href="http://lwn.net/Articles/135413/">Wine</a>, and
552 <a href="http://plone.org/foundation/newsitems/software-freedom-law-center-support/">Plone</a>
553 in being represented by a fairly cool bunch of lawyers, which is not a
554 phrase you get to use every day.</p>
556 <li><b>22 March 2006 -- BusyBox 1.1.1</b>
557 <p>The new maintainer is Rob Landley, and the new release is <a href="http://busybox.net/downloads/busybox-1.1.1.tar.bz2">BusyBox 1.1.1</a>. Expect a "what's new" document in a few days. (Also, Erik and I have have another announcement pending...)</p>
558 <p>Update: Rather than put out an endless stream of 1.1.1.x releases,
559 the various small fixes have been collected together into a
560 <a href="http://busybox.net/downloads/busybox-1.1.1.fixes.patch">patch</a>,
561 and new fixes will be appended to that as needed. Expect 1.1.2 around
564 <li><b>11 January 2006 -- 1.1.0 is out</b>
565 <p>The new stable release is
566 <a href="http://www.busybox.net/downloads/busybox-1.1.0.tar.bz2">BusyBox
567 1.1.0</a>. It has a number of improvements, including several new applets.
568 (It also has <a href="http://www.busybox.net/lists/busybox/2006-January/017733.html">a few rough spots</a>,
569 but we're trying out a "release early, release often" strategy to see how
570 that works. Expect 1.1.1 sometime in March.)</p>
572 <li><b>Old News</b><p>
573 <a href="/oldnews.html">Click here to read older news</a>
580 <!--#include file="footer.html" -->