Initial public busybox upstream commit
[busybox4maemo] / docs / busybox.net / news.html
1 <!--#include file="header.html" -->
2
3 <ul>
4   <li><b>21 March 2008 -- BusyBox 1.10.0 (unstable)</b>
5     <p><a href=http://busybox.net/downloads/busybox-1.10.0.tar.bz2>BusyBox 1.10.0</a>.
6     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_10_stable/>svn</a>,
7     <a href=http://busybox.net/downloads/fixes-1.10.0/>patches</a>,
8     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
9
10     <p>Sizes of busybox-1.9.2 and busybox-1.10.0 (with almost full config, static uclibc build):<pre>
11    text    data     bss     dec     hex filename
12  781405     679    7500  789584   c0c50 busybox-1.9.2
13  773551     640    7372  781563   becfb busybox-1.10.0
14 </pre>
15     <p>Top 10 stack users:<pre>
16 busybox-1.9.2:               busybox-1.10.0:
17 echo_dg                 4116 bb_full_fd_action       4112
18 bb_full_fd_action       4112 find_list_entry2        4096
19 discard_dg              4108 readlink_main           4096
20 discard_dg              4096 ipaddr_list_or_flush    3900
21 echo_stream             4096 iproute_list_or_flush   3680
22 discard_stream          4096 insmod_main             3152
23 find_list_entry2        4096 fallbackSort            2952
24 readlink_main           4096 do_iproute              2492
25 ipaddr_list_or_flush    3900 cal_main                2464
26 iproute_list_or_flush   3680 readhere                2308
27 </pre>
28
29     <p>New applets: brctl, chat (by Vladimir Dronnikov &lt;dronnikov AT gmail.com&gt;),
30         findfs, ifenslave (closes bug 115), lpd (by Vladimir Dronnikov &lt;dronnikov AT gmail.com&gt;),
31         lpr+lpq (by Walter Harms), script (by Pascal Bellard &lt;pascal.bellard AT ads-lu.com&gt;),
32         sendmail (Vladimir Dronnikov &lt;dronnikov AT gmail.com&gt;), tac, tftpd.
33
34     <p>Made NOMMU-compatible: crond, crontab, ifupdown, inetd, init, runsv, svlogd, tcpsvd, udpsvd.
35
36     <p>Changes since previous release:
37       <ul>
38         <li>globally: add -Wunused-parameter
39         <li>globally: add optimization barrier to all "G trick" locations
40         <li>adduser/addgroup: check username for invalid chars (by Tito &lt;farmatito AT tiscali.it&gt;)
41         <li>adduser: optional support for long options. Closes bug 2134
42         <li>ash: handle "A=1 A=2 B=$A; echo $B". Closes bug 947
43         <li>ash: make ash -c "if set -o barfoo 2&gt;/dev/null; then echo foo; else echo bar; fi" work. Closes bug 1142
44         <li>build system: don't use "gcc -o /dev/null", old gcc can delete /dev/null in this case
45         <li>build system: fixes for cross-compiling on an OS X host
46         <li>build system: make it do without "od -t"
47         <li>build system: pass CFLAGS to link stage too. Closes bug 1376
48         <li>build system: add CONFIG_NOMMU
49         <li>cp: add ENABLE_FEATURE_VERBOSE_CP_MESSAGE. Closes bug 1470
50         <li>crontab: almost complete rewrite
51         <li>dnsd: properly set _src_ IP:port on outgoing UDP packets
52         <li>dpkg: fix bug where existence check was reversed
53         <li>eject: add -s for SCSI- and USB-devices (Nico Erfurth)
54         <li>fdisk: fix a case where break was reached only for DOS labels
55         <li>fsck: don't kill pid -1! (Roy Marples &lt;roy at marples.name&gt;)
56         <li>fsck_minix: fix bug in map_block2: s/(blknr &gt;= 256 * 256)/(blknr &lt; 256 * 256)/
57         <li>fuser: substantial rewrite
58         <li>getopt: add support for "a+" specifier for nonnegative int parameters. By Vladimir Dronnikov &lt;dronnikov at gmail.com&gt;
59         <li>getty: don't try to detect parity on local lines (Joakim Tjernlund &lt;Joakim.Tjernlund at transmode.se&gt;)
60         <li>halt: write wtmp entry if wtmp support is enabled
61         <li>httpd: "HEAD" support. Closes bug 1530
62         <li>httpd: fix bug 2004: wrong argv when interpreter is invoked
63         <li>httpd: fix bug where we did chdir("") if CGI path had only one "/"
64         <li>httpd: fix for POST upload
65         <li>httpd: support for "I:index.xml" syntax (Peter Korsgaard &lt;jacmet AT uclibc.org&gt;)
66         <li>hush: fix a case where none of pipe members could be started because of fork failure
67         <li>hush: more correct handling of piping
68         <li>hush: reinstate `cmd` handling for NOMMU
69         <li>hush: report [v]fork failures
70         <li>hush: set CLOEXEC on script file being executed
71         <li>hush: try to add a bit more of vfork-friendliness
72         <li>inetd: make "udp nowait" work
73         <li>inetd: make inetd IPv6-capable
74         <li>init: add FEATURE_KILL_REMOVED (Eugene Bordenkircher &lt;eugebo AT gmail.com&gt;)
75         <li>init: allow last line of config file to be not terminated by "\n"
76         <li>init: do not die if "/dev/null" is missing
77         <li>init: fix bug 1111: restart actions were not splitting words
78         <li>init: wait for orphaned children too while waiting for sysinit-like processes (harald-tuxbox AT arcor.de)
79         <li>ip route: "ip route" was misbehaving (extra argv+1 ate 1st env var)
80         <li>last: do not go into endless loop on read error
81         <li>less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)
82         <li>less: "examine" command will not bomb out on bad file name now
83         <li>less: fix bug where backspace wasn't actually deleting chars
84         <li>less: make it a bit more resistant against status line corruption
85         <li>less: improve search when data is not supplied fast enough by stdin - now will try reading for 1-2 seconds before declaring that there is no match. This fixes a very common annoyance with long manpages
86         <li>less: update line input so that it doesn't interfere with screen update. Makes "man bash", [enter], [/], &lt;enter search pattern&gt;, [enter] more usable - manpage now draws even as you enter the pattern!
87         <li>libbb: filename completion matches dangling symlinks too
88         <li>libbb: fix getopt state corruption for NOFORK applets
89         <li>libbb: full_read/write now will report partial data counts prior to error
90         <li>libbb: intrduce and use safe_gethostname. By Tito &lt;farmatito AT tiscali.it&gt;
91         <li>libbb: introduce and use nonblock_safe_read(). Yay! Our shells are immune from this nasty O_NONBLOCK now!
92         <li>login,su: avoid clearing environment with some options, as was intended
93         <li>microcom: read more than 1 byte from device, if possible
94         <li>microcom: split -d (delay) option away from -t
95         <li>mktemp: support -p DIR (Timo Teras &lt;timo.teras at iki.fi&gt;)
96         <li>mount: #ifdef out MOUNT_LABEL code parts if it is not selected
97         <li>mount: add another mount helper call method
98         <li>mount: allow and ignore _netdev option
99         <li>mount: make -f work even without mtab support (Cristian Ionescu-Idbohrn &lt;cristian.ionescu-idbohrn at axis.com&gt;)
100         <li>mount: optional support for -vv verbosity
101         <li>mount: plug a hole where FEATURE_MOUNT_HELPERS could allow execution of arbitrary command
102         <li>mount: recognize "dirsync" (closes bug 835)
103         <li>mount: sanitize environment if called by non-root
104         <li>mount: support for mount by label. Closes bug 1143
105         <li>mount: with -vv -f, say what mount() calls we were going to make
106         <li>msh: create testsuite (based on hush one)
107         <li>msh: don't use floating point in "times" builtin
108         <li>msh: fix Ctrl-C handling with line editing
109         <li>msh: fix for bug 846 ("break" didn't work second time)
110         <li>msh: glob0/glob1/glob2/glob3 were just a sorting routine, removed
111         <li>msh: instead of fixing "ls | cd", "cd | ls" etc disallow builtins in pipes. They make no sense there anyway
112         <li>msh: stop trying to parse variables in "msh SCRIPT VAR=val param". They are passed as ordinary parameters
113         <li>netstat: print control chars as "^C" etc
114         <li>nmeter: fix bug where %[mf] behaves as %[mt]
115         <li>nohup: compat patch by Christoph Gysin &lt;mailinglist.cache at gmail.com&gt;
116         <li>od: handle /proc files (which have filesize 0) correctly
117         <li>patch: don't trash permissions of patched file
118         <li>ps: add conditional support for -o [e]time
119         <li>ps: fix COMMAND column adjustment; overflow in USER and VSZ columns
120         <li>reset: call "stty sane". Closes bug 1414
121         <li>rmdir: optional long options support for Debian users. By Roberto Gordo Saez &lt;roberto.gordo AT gmail.com&gt;
122         <li>run-parts: add --reverse
123         <li>script: correctly handle buffered "tail" of output
124         <li>sed: "n" command must reset "we had successful subst" flag. Closes bug 1214
125         <li>sort: -z outputs NUL terminated lines. Closes bug 1591
126         <li>stty: fix mishandling of control keywords (Ralf Friedl &lt;Ralf.Friedl AT online.de&gt;)
127         <li>switch_root: stop at first non-option. Closes bug 1425
128         <li>syslogd: avoid excessive time() system calls
129         <li>syslogd: don't die if remote host's IP cannot be resolved. Retry resolutions every two minutes instead
130         <li>syslogd: fix shmat error check
131         <li>syslogd: optional support for dropping dups. Closes bug 436
132         <li>syslogd: send "\n"-terminated messages over the network. Fully closes bug 1574
133         <li>syslogd: tighten up hostname handling
134         <li>tail: fix "tail -c 20 /dev/huge_disk" (was taking ages)
135         <li>tar: compat: handle tarballs with only one zero block at the end
136         <li>tar: autodetection of gz/bz2 compressed tarballs. Closes bug 992
137         <li>tar: real support for -p. By Natanael Copa &lt;natanael.copa at gmail.com&gt; 
138         <li>tcpudp: narrow down time window where we have no wildcard socket
139         <li>telnetd: use login always, not "sometimes login, sometimes shell"
140         <li>test: fix mishandling of "test ! arg1 op arg2 more args"
141         <li>trylink: instead of build error, disable --gc-sections if GLIBC and STATIC are selected
142         <li>udhcp: make file paths configurable
143         <li>udhcp: optional support for non-standard DHCP ports
144         <li>udhcp: set correct op byte in the packet for DHCPDECLINE
145         <li>udhcpc: filter unwanted packets in kernel (Cristian Ionescu-Idbohrn &lt;cristian.ionescu-idbohrn AT axis.com&gt;)
146         <li>udhcpc: fix wrong options in decline and release packets (Jonas Danielsson &lt;jonas.danielsson AT axis.com&gt;)
147         <li>umount: do not complain several times about the same mountpoint
148         <li>umount: do not try to free loop device or erase mtab if remounted ro
149         <li>umount: instead of non-standard -D, use -d with opposite meaning. Closes bug 1604
150         <li>unlzma: shrink by Pascal Bellard &lt;pascal.bellard AT ads-lu.com&gt;
151         <li>unzip: do not try to read entire compressed stream at once (it can be huge)
152         <li>unzip: handle short reads correctly
153         <li>vi: many fixes
154         <li>zcip: don't chdir to root
155         <li>zcip: open ARP socket before openlog (else we can thrash syslog socket)
156       </ul>
157     </p>
158
159   <li><b>21 March 2008 -- BusyBox stable releases</b>
160     <p>
161     Bugfix-only releases for four past branches. Links to locations
162     for future hot patches are in parentheses.
163     <p>
164     <a href=http://busybox.net/downloads/busybox-1.9.2.tar.bz2>1.9.2</a>
165     (<a href=http://busybox.net/downloads/fixes-1.9.2/>patches</a>),
166     <a href=http://busybox.net/downloads/busybox-1.8.3.tar.bz2>1.8.3</a>
167     (<a href=http://busybox.net/downloads/fixes-1.8.3/>patches</a>),
168     <a href=http://busybox.net/downloads/busybox-1.7.5.tar.bz2>1.7.5</a>
169     (<a href=http://busybox.net/downloads/fixes-1.7.5/>patches</a>),
170     <a href=http://busybox.net/downloads/busybox-1.5.2.tar.bz2>1.5.2</a>
171     (<a href=http://busybox.net/downloads/fixes-1.5.2/>patches</a>).
172     <p>
173     <a href=http://busybox.net/fix.html>How to add a patch.</a>
174     <p>
175     <a href=http://busybox.net/~vda/HOWTO_bbox_with_uclibc.txt>How to build static busybox against uclibc</a>
176     <p>
177     The email address gpl@busybox.net is the recommended way to contact
178     the Software Freedom Law Center to report BusyBox license violations.
179     </p>
180
181   <li><b>12 February 2008 -- BusyBox 1.9.1 (stable)</b>
182     <p><a href=http://busybox.net/downloads/busybox-1.9.1.tar.bz2>BusyBox 1.9.1</a>.
183     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_9_stable/>svn</a>,
184     <a href=http://busybox.net/downloads/fixes-1.9.1/>patches</a>,
185     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
186
187     <p>This is a bugfix-only release, with fixes to fsck,
188     iproute, mdev, mkswap, msh, nameif, stty, test, zcip.</p>
189     <p>hush has `command` expansion re-enabled for NOMMU, although it is
190     inherently unsafe (by virtue of NOMMU's use of vfork instead of fork).
191     The plan is to make this less likely to bite people in future versions.</p>
192   </li>
193
194   <li><b>24 December 2007 -- BusyBox 1.9.0 (unstable)</b>
195     <p><a href=http://busybox.net/downloads/busybox-1.9.0.tar.bz2>BusyBox 1.9.0</a>.
196     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_9_stable/>svn</a>,
197     <a href=http://busybox.net/downloads/fixes-1.9.0/>patches</a>,
198     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
199
200     <p>Sizes of busybox-1.8.2 and busybox-1.9.0 (with almost full config, static uclibc build):<pre>
201    text    data     bss     dec     hex filename
202  792796     978    9724  803498   c42aa busybox-1.8.2
203  783803     683    7508  791994   c15ba busybox-1.9.0
204 </pre>
205     <p>Top 10 stack users:<pre>
206 busybox-1.8.2:               busybox-1.9.0:
207 input_tab             10428  echo_dg                4116
208 umount_main            8252  bb_full_fd_action      4112
209 rtnl_talk              8240  discard_dg             4096
210 xrtnl_dump_filter      8240  echo_stream            4096
211 sendMTFValues          5316  discard_stream         4096
212 mainSort               4700  find_list_entry2       4096
213 mkfs_minix_main        4288  readlink_main          4096
214 grave                  4260  ipaddr_list_or_flush   3900
215 unix_do_one            4156  iproute_list_or_flush  3680
216 parse_prompt           4132  insmod_main            3152
217 </pre>
218
219     <p>lash is deleted from this release. hush can be configured down to almost
220        the same size, but it is significantly less buggy. It even works
221        on NOMMU machines (interactive mode and backticks are not working on NOMMU,
222        though). "lash" applet is still available, but it runs hush.
223
224     <p>init has some changes in this release, please report if it causes
225        problems for you.
226
227     <p>Changes since previous release:
228       <ul>
229         <li>Build system improvements
230         <li>Testsuite additions
231         <li>Stack size reductions, code size reductions, data/bss reductions
232         <li>An option to prefer IPv4 address if host has both
233         <li>New applets: hd, sestatus
234         <li>Removed applets: lash
235         <li>hush: fixed a few bugs, wired up echo and test to be builtins
236         <li>init: simplify forking of children
237         <li>getty: special handling of '#' and '@' is removed
238         <li>[su]login: sanitize environment if called by non-root
239         <li>udhcpc: support "bad" servers which send oversized packets
240           (Cristian Ionescu-Idbohrn &lt;cristian.ionescu-idbohrn at axis.com&gt;)
241         <li>udhcpc: -O option allows to specify which options to ask for
242           (Stefan Hellermann &lt;stefan at the2masters.de&gt;)
243         <li>udhcpc: optionally check whether given IP is really free (by ARP ping)
244           (Jonas Danielsson &lt;jonas.danielsson at axis.com&gt;)
245         <li>vi: now handles files with unlimited line length
246         <li>vi: speedup for huge line lengths
247         <li>vi: Del key works
248         <li>sed: support GNUism '\t'
249         <li>cp/mv/install: optionally use bigger buffer for bulk copying
250         <li>line editing: don't eat stack like crazy
251         <li>passwd: follows symlinked /etc/passwd
252         <li>renice: accepts priority with +N too
253         <li>netstat: wide output mode
254         <li>nameif: extended matching (Nico Erfurth &lt;masta at perlgolf.de&gt;)
255         <li>test: become NOFORK applet
256         <li>find: -iname (Alexander Griesser &lt;alexander.griesser at lkh-vil.or.at&gt;)
257         <li>df: -i option (show inode info) (Pascal Bellard &lt;pascal.bellard at ads-lu.com&gt;)
258         <li>hexdump: -R option (Pascal Bellard &lt;pascal.bellard at ads-lu.com&gt;)
259       </ul>
260     </p>
261
262   <li><b>23 November 2007 -- BusyBox 1.8.2 (stable), BusyBox 1.7.4 (stable)</b>
263     <p><a href=http://busybox.net/downloads/busybox-1.8.2.tar.bz2>BusyBox 1.8.2</a>.
264     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_8_stable/>svn</a>,
265     <a href=http://busybox.net/downloads/fixes-1.8.2/>patches</a>,
266     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
267     <p><a href=http://busybox.net/downloads/busybox-1.7.4.tar.bz2>BusyBox 1.7.4</a>.
268     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_7_stable/>svn</a>,
269     <a href=http://busybox.net/downloads/fixes-1.7.4/>patches</a>,
270     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
271
272     <p>These are bugfix-only releases.
273     1.8.2 contains fixes for inetd, lash, tar, tr, and build system.
274     1.7.4 contains a fix for inetd.</p>
275   </li>
276
277   <li><b>9 November 2007 -- BusyBox 1.8.1 (stable)</b>
278     <p><a href=http://busybox.net/downloads/busybox-1.8.1.tar.bz2>BusyBox 1.8.1</a>.
279     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_8_stable/>svn</a>,
280     <a href=http://busybox.net/downloads/fixes-1.8.1/>patches</a>,
281     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
282
283     <p>This is a bugfix-only release, with fixes to login (PAM), modprobe, syslogd, telnetd, unzip.</p>
284   </li>
285
286   <li><b>4 November 2007 -- BusyBox 1.8.0 (unstable)</b>
287     <p><a href=http://busybox.net/downloads/busybox-1.8.0.tar.bz2>BusyBox 1.8.0</a>.
288     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_8_stable/>svn</a>,
289     <a href=http://busybox.net/downloads/fixes-1.8.0/>patches</a>,
290     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
291
292     <p>Note: this is probably the very last release with lash. It will be dropped. Please migrate to hush.
293
294     <p>Applets which had many changes since 1.7.x:
295     <p>httpd:
296       <ul>
297         <li>does not clear environment, CGIs will see all environment variables which were set for httpd
298         <li>fix bug where we were trying to read more POSTDATA than content-length
299         <li>fix trivial bug (spotted by Alex Landau)
300         <li>optional support for partial downloads
301         <li>simplified CGI i/o loop (now it looks good to me)
302         <li>small auth and IPv6 fixes (Kim B. Heino &lt;Kim.Heino at bluegiga.com>)
303         <li>support for proxying connection to other http server (by Alex Landau &lt;landau_alex at yahoo.com>)
304       </ul>
305
306     <p>top:
307       <ul>
308         <li>TOPMEM feature - 's(how sizes)' command
309         <li>don't wait before final bailout (try top -b -n1)
310         <li>fix for command line wrapping
311       </ul>
312
313     <p>Build system improvements: libbusybox mode restored (it was lost in transition to new makefiles).
314
315     <p>Code and data size in comparison with 1.7.3:<pre>
316 Equivalent .config, i386 uclibc static builds:
317    text    data     bss     dec     hex filename
318  768123    1055   10768  779946   be6aa busybox-1.7.3/busybox
319  759693     974    9420  770087   bc027 busybox-1.8.0/busybox</pre>
320
321     <p>New applets:
322       <ul>
323         <li>microcom: new applet by Vladimir Dronnikov &lt;dronnikov at gmail.ru&gt;
324         <li>kbd_mode: new applet by Loic Grenie &lt;loic.grenie at gmail.com&gt;
325         <li>bzip2: port bzip2 1.0.4 to busybox, 9 kb of code
326         <li>pgrep, pkill: new applets by Loic Grenie &lt;loic.grenie at gmail.com&gt;
327         <li>setsebool: new applet (Yuichi Nakamura &lt;ynakam at hitachisoft.jp&gt;)
328       </ul>
329
330     <p>Other changes since previous release (abridged):
331       <ul>
332         <li>cp: -r and -R imply -d (coreutils compat)
333         <li>cp: detect and prevent infinite recursion
334         <li>cp: make it a bit closer to POSIX, but still refuse to open and overwrite symbolic link
335         <li>hdparm: reduce possibility of numeric overflow in -T
336         <li>hdparm: simplify timing measurement
337         <li>wget: -O FILE is allowed to overwrite existing file (compat)
338         <li>wget: allow dots in header field names
339         <li>telnetd: add -K option to close sessions as soon as child exits
340         <li>telnetd: don't SIGKILL child when closing the session, kernel will send SIGHUP for us
341         <li>ed: large cleanup, add line editing
342         <li>hush: feeble attempt at making it more NOMMU-friendly
343         <li>hush: fix glob()
344         <li>hush: stop doing manual accounting of open fd's, kernel can do it for us
345         <li>adduser: implement -S and fix uid selection
346         <li>ash: fix prompt expansion (Natanael Copa &lt;natanael.copa at gmail.com&gt;)
347         <li>ash: revert "cat | jobs" fix, it causes more problems than good
348         <li>find: fix -xdev behavior in the presence of two or more nested mount points
349         <li>grep: fix grep -F -e str1 -e str2 (was matching str2 only)
350         <li>grep: optimization: stop on first -e match
351         <li>gunzip: support concatenated gz files
352         <li>inetd: fix bug 1562 "inetd does not set argv[0] properly" (fix by Ilya Panfilov)
353         <li>install: 'support' (by ignoring) -v and -b
354         <li>install: fix bug in "install -c file dir" (tried to copy dir into dir too)
355         <li>ip: tunnel parameter parsing fix by Jean Wolter &lt;jw5 at os.inf.tu-dresden.de&gt;
356         <li>isrv: use monotonic_sec
357         <li>less: make 'f' key page forward
358         <li>libiproute: add missing break statements
359         <li>load_policy: update (Yuichi Nakamura &lt;ynakam at hitachisoft.jp&gt;)
360         <li>logger: fix a problem of losing all argv except first
361         <li>login: do reject wrong passwords with PAM auth
362         <li>losetup: support -f (Loic Grenie &lt;loic.grenie at gmail.com&gt;)
363         <li>fdisk: make fdisk compile on libc without llseek64
364         <li>libbb: by popular request allow PATH to be customized at build time
365         <li>mkswap: selinux support by KaiGai Kohei &lt;kaigai at ak.jp.nec.com&gt;
366         <li>mount: allow (and ignore) -i
367         <li>mount: ignore NFS bg option on NOMMU machines
368         <li>mount: mount helpers support (by Vladimir Dronnikov &lt;dronnikov at gmail.ru&gt;)
369         <li>passwd: handle Ctrl-C, restore termios on Ctrl-C
370         <li>passwd: SELinux support by KaiGai Kohei &lt;kaigai at ak.jp.nec.com&gt;
371         <li>ping: make -I ethN work too (-I addr already worked)
372         <li>ps: fix RSS parsing (rss field in /proc/PID/stat is in pages, not bytes)
373         <li>read_line_input: fix it to not do any fancy editing if echoing is disabled
374         <li>run_parts: make it sort executables by name (required by API)
375         <li>runsv: do not use clock_gettime if !MONOTONIC_CLOCK
376         <li>runsvdir: fix "linear wait time" bug
377         <li>sulogin: remove alarm handling, it is redundant there
378         <li>svlogd: compat: svlogd -tt should timestamp stderr too
379         <li>syslogd: bail out if you see null read from Unix socket
380         <li>syslogd: do not need to poll(), we can just block in read()
381         <li>tail: work correctly on /proc files (Kazuo TAKADA &lt;kztakada at sm.sony.co.jp&gt;)
382         <li>tar + gzip/bzip2/etc: support NOMMU machines (by Alex Landau &lt;landau_alex at yahoo.com&gt;)
383         <li>tar: strip leading '/' BEFORE memorizing hardlink's name
384         <li>tftp: fix infinite retry bug
385         <li>umount: support (by ignoring) -i; style fixes
386         <li>unzip: fix endianness bugs
387         <li>vi: don't wait 50 ms before reading ESC sequences
388         <li>watchdog: allow millisecond spec (-t 250ms)
389         <li>zcip: fix unaligned trap on ARM
390       </ul>
391     </p>
392
393   </li>
394
395   <li><b>4 November 2007 -- BusyBox 1.7.3 (stable)</b>
396     <p><a href=http://busybox.net/downloads/busybox-1.7.3.tar.bz2>BusyBox 1.7.3</a>.
397     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_7_stable/>svn</a>,
398     <a href=http://busybox.net/downloads/fixes-1.7.3/>patches</a>,
399     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
400
401     <p>This is a bugfix-only release, with fixes to ash, httpd, inetd, iptun, logger, login, tail.</p>
402   </li>
403
404   <li><b>30 September 2007 -- BusyBox 1.7.2 (stable)</b>
405     <p><a href=http://busybox.net/downloads/busybox-1.7.2.tar.bz2>BusyBox 1.7.2</a>.
406     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_7_stable/>svn</a>,
407     <a href=http://busybox.net/downloads/fixes-1.7.2/>patches</a>,
408     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
409
410     <p>This is a bugfix-only release, with fixes to install, find, login, httpd, runsvdir, chcon, setfiles, fdisk and line editing.</p>
411   </li>
412
413   <li><b>16 September 2007 -- BusyBox 1.7.1 (stable)</b>
414     <p><a href=http://busybox.net/downloads/busybox-1.7.1.tar.bz2>BusyBox 1.7.1</a>.
415     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_7_stable/>svn</a>,
416     <a href=http://busybox.net/downloads/fixes-1.7.1/>patches</a>,
417     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
418
419     <p>This is a bugfix-only release, with fixes to cp, runsv, tar, busybox --install and build system.</p>
420   </li>
421
422   <li><b>24 August 2007 -- BusyBox 1.7.0 (unstable)</b>
423     <p><a href=http://busybox.net/downloads/busybox-1.7.0.tar.bz2>BusyBox 1.7.0</a>.
424     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_7_stable/>svn</a>,
425     <a href=http://busybox.net/downloads/fixes-1.7.0/>patches</a>,
426     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
427
428     <p>Applets which had many changes since 1.6.x:
429     <p>httpd:
430       <ul>
431         <li>works in standalone mode on NOMMU machines now (partly by Alex Landau &lt;landau_alex at yahoo.com&gt;)
432         <li>indexer example is rewritten in C
433         <li>optional support for error pages (by Pierre Metras &lt;genepi at sympatico.ca&gt;)
434         <li>stop reading headers using 1-byte reads
435         <li>new option -v[v]: prints client addresses, HTTP codes returned, URLs
436         <li>extended -p PORT to -p [IP[v6]:]PORT
437         <li>sendfile support (by Pierre Metras &lt;genepi at sympatico.ca&gt;)
438         <li>add support for Status: CGI header
439         <li>fix CGI handling bug (we were closing wrong fd)
440         <li>CGI I/O loop still doesn't look 100% ok to me...
441       </ul>
442
443     <p>udhcp[cd]:
444       <ul>
445         <li>add -f "foreground" and -S "syslog" options
446         <li>fixed "ifupdown + udhcpc_without_pidfile_creation" bug
447         <li>new config option "Rewrite the lease file at every new acknowledge" (Mats Erik Andersson &lt;mats at blue2net.com&gt; (Blue2Net AB))
448         <li>consistently treat server_config.start/end IPs as host-order
449         <li>fix IP parsing for 64bit machines
450         <li>fix unsafe hton macro usage in read_opt()
451         <li>do not chdir to / when daemonizing
452       </ul>
453
454     <p>top, ps, killall, pidof:
455       <ul>
456         <li>simpler loadavg processing
457         <li>truncate usernames to 8 chars
458         <li>fix non-CONFIG_DESKTOP ps -ww (by rockeychu)
459         <li>improve /proc/PID/cmdinfo reading code
460         <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)
461         <li>reduce CPU usage in decimal conversion (optional) (corresponding speedup on kernel side is accepted in mainline Linux kernel, yay!)
462         <li>make percentile (0.1%) calculations configurable
463         <li>add config option and code for global CPU% display
464         <li>reorder columns, so that [P]PIDs are together and VSZ/%MEM are together - makes more sense
465       </ul>
466
467     <p>Build system improvements: doesn't link against libraries we don't need,
468         generates verbose link output and map file, allows for custom link
469         scripts (useful for removing extra padding, among other things).
470
471     <p>Code and data size in comparison with 1.6.1:<pre>
472 Equivalent .config, i386 glibc dynamic builds:
473    text    data     bss     dec     hex filename
474  672671    2768   16808  692247   a9017 busybox-1.6.1/busybox
475  662948    2660   13528  679136   a5ce0 busybox-1.7.0/busybox
476  662783    2631   13416  678830   a5bae busybox-1.7.0/busybox.customld
477
478 Same .config built against static uclibc:
479  765021    1059   11020  777100   bdb8c busybox-1.7.0/busybox_uc</pre>
480
481     <p>Code/data shrink done in applets: crond, hdparm, dd, cal, od, nc, expr, uuencode,
482         test, slattach, diff, ping, tr, syslogd, hwclock, zcip, find, pidof, ash, uudecode,
483         runit/*, in libbb.
484
485     <p>New applets:
486       <ul>
487         <li>pscan, expand, unexpand (from Tito &lt;farmatito at tiscali.it&gt;)
488         <li>setfiles, restorecon (by Yuichi Nakamura &lt;ynakam at hitachisoft.jp&gt;)
489         <li>chpasswd (by Alexander Shishkin &lt;virtuoso at slind.org&gt;)
490         <li>slattach, ttysize
491       </ul>
492
493     <p>Unfortunately, not much work is done on shells. This was mostly stalled
494         by lack of time (read: laziness) on my part to learn how to adapt existing
495         qemu-runnable image for a NOMMU architechture (available on qemu website)
496         for local testing of cross-compiled busybox on my machine.
497
498     <p>Other changes since previous release (abridged):
499       <ul>
500         <li>addgroup: disallow addgroup -g num user group; make -g 0 work (Tito &lt;farmatito at tiscali.it&gt;)
501         <li>adduser: close /etc/{passwd,shadow} before calling passwd etc. Spotted by Natanael Copa &lt;natanael.copa at gmail.com&gt;
502         <li>arping: -i should be -I, fixed
503         <li>ash: make "jobs | cat" work like in bash (was giving empty output)
504         <li>ash: recognize -l as --login equivalent; do not recognize +-login
505         <li>ash: fix buglet in DEBUG code (Nguyen Thai Ngoc Duy &lt;pclouds at gmail.com&gt;)
506         <li>ash: fix SEGV if type has zero parameters
507         <li>awk: fix -F 'regex' bug (miscounted fields if last field is empty)
508         <li>catv: catv without arguments was trying to use environ as argv (Alex Landau &lt;landau_alex at yahoo.com&gt;)
509         <li>catv: don't die on open error (emit warning)
510         <li>chown/chgrp: completely match coreutils 6.8 wrt symlink handling
511         <li>correct_password: do not print "no shadow passwd..." message
512         <li>crond: don't start sendmail with absolute path, don't report obsolete version (report true bbox version)
513         <li>dd: fix bug where we assume count=INT_MAX when count is unspecified
514         <li>devfsd: sanitization by Tito &lt;farmatito at tiscali.it&gt;
515         <li>echo: fix non-fancy echo
516         <li>fdisk: make it work with big disks (read: typical today's disks) even if CONFIG_LFS is unset
517         <li>find: -context support for SELinux (KaiGai Kohei &lt;kaigai at kaigai.gr.jp&gt;)
518         <li>find: add conditional support for -maxdepth and -regex, make -size match GNU find
519         <li>find: fix build failure on certain configs (found by Cristian Ionescu-Idbohrn &lt;cristian.ionescu-idbohrn at axis.com&gt;)
520         <li>fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one
521         <li>grep: implement -m MAX_MATCHES, fix buglets with context printing
522         <li>grep: fix selection done by FEATURE_GREP_EGREP_ALIAS (Maxime Bizon &lt;mbizon at freebox.fr&gt; (Freebox))
523         <li>hush: add missing dependencies (Maxime Bizon &lt;mbizon at freebox.fr&gt; (Freebox))
524         <li>hush: fix read builtin to not read ahead past EOL and to not use insane amounts of stack
525         <li>ifconfig: make it work with ifaces with interface no. &gt; 255
526         <li>ifup/ifdown: make location of ifstate configurable
527         <li>ifupdown: make netmask parsing smaller and more strict (was accepting 255.0.255.0, 255.1234.0.0 etc...)
528         <li>install: fix -s (strip) option, fix install a b /a/link/to/dir
529         <li>libbb: consolidate ARRAY_SIZE macro (Walter Harms &lt;wharms at bfs.de&gt;)
530         <li>libbb: make /etc/network parsing configurable. -200 bytes when off
531         <li>libbb: nuke BB_GETOPT_ERROR, always die if there are mutually exclusive options
532         <li>libbb: xioctl and friends by Tito &lt;farmatito at tiscali.it&gt;
533         <li>login: optional support for PAM
534         <li>login: make /etc/nologin support configurable (-240 bytes)
535         <li>login: ask passwords even for wrong usernames
536         <li>md5_sha1_sum: fix mishandling when run as /bin/md5sum
537         <li>mdev: add support for firmware loading
538         <li>mdev: work even when CONFIG_SYSFS_DEPRECATED in kernel is off
539         <li>modprobe: add scanning of /lib/modules/`uname -r`/modules.symbols (by Yann E. MORIN &lt;yann.morin.1998 at anciens.enib.fr&gt;)
540         <li>more: fixes by Tristan Schmelcher &lt;tpkschme at engmail.uwaterloo.ca&gt;
541         <li>nc: make connecting to IPv4 from IPv6-enabled hosts easier (was requiring -s local_addr)
542         <li>passwd: fix bug "updating shadow even if user's record is in passwd"
543         <li>patch: fix -p -1 handling
544         <li>patch: fix bad line ending handling (Nguyen Thai Ngoc Duy &lt;pclouds at gmail.com&gt;)
545         <li>ping: display roundtrip times with 1/1000th of ms, not 1/10 ms precision.
546         <li>ping: fix incorrect handling of -I (Iouri Kharon &lt;bc-info at styx.cabel.net&gt;)
547         <li>ping: fix non-fancy ping6
548         <li>printenv: fix "printenv VAR1 VAR2" bug (spotted by Kalyanatejaswi Balabhadrapatruni &lt;kalyanatejaswi at yahoo.co.in&gt;)
549         <li>ps: fix -Z (by Yuichi Nakamura &lt;ynakam at hitachisoft.jp&gt;)
550         <li>rpm: add optional support for bz2 data. +50 bytes of code
551         <li>rpm: fix bogus "package is not installed" case
552         <li>sed: fix 'q' command handling (by Nguyen Thai Ngoc Duy &lt;pclouds at gmail.com&gt;)
553         <li>start_stop_daemon: NOMMU fixes by Alex Landau &lt;landau_alex at yahoo.com&gt;
554         <li>stat: fix option -Z SEGV
555         <li>strings: strings a b was processing a twice, fix that
556         <li>svlogd: fix timestamping, do not warn if config is missing
557         <li>syslogd, logread: get rid of head pointer, fix logread bug in the process
558         <li>syslogd: do not convert tabs to ^I, set syslog IPC buffer to mode 0644
559         <li>tar: improve OLDGNU compat, make old SUN compat configurable
560         <li>test: fix testing primary expressions like '"-u" = "-u"'
561         <li>uudecode: fix to base64 decode by Jorgen Cederlof &lt;jcz at google.com&gt;
562         <li>vi: multiple fixes by Natanael Copa &lt;natanael.copa at gmail.com&gt;
563         <li>wget: fix bug in base64 encoding (bug 1404). +10 bytes
564         <li>wget: lift 256 chars limitation on terminal width
565         <li>wget, zcip: use monotonic_sec instead of gettimeofday
566       </ul>
567     </p>
568   </li>
569
570   <li><b>30 June 2007 -- BusyBox 1.6.1 (stable)</b>
571     <p><a href=http://busybox.net/downloads/busybox-1.6.1.tar.bz2>BusyBox 1.6.1</a>.
572     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_6_stable/>svn</a>,
573     <a href=http://busybox.net/downloads/fixes-1.6.1/>patches</a>,
574     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
575
576     <p>This is a bugfix-only release, with fixes to echo, hush, and wget.</p>
577   </li>
578
579   <li><b>1 June 2007 -- BusyBox 1.6.0 (unstable)</b>
580     <p><a href=http://busybox.net/downloads/busybox-1.6.0.tar.bz2>BusyBox 1.6.0</a>.
581     (<a href=http://busybox.net/cgi-bin/viewcvs.cgi/branches/busybox_1_6_stable/>svn</a>,
582     <a href=http://busybox.net/downloads/fixes-1.6.0/>patches</a>,
583     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
584
585     <p>Since this is a x.x.0 release, it probably does not deserve "stable"
586     label. Please help making 1.6.1 stable by testing 1.6.0.</p>
587     <p>Note that hush shell had many changes and (hopefully) is much improved now,
588     but there is a possibility that it regressed in some obscure cases. Please
589     report any such cases.</p>
590     <p>lash users please note: lash is going to be deprecated in busybox 1.7.0
591     and removed in the more distant future. Please migrate to hush.</p>
592     <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>
593     <p>Other changes since previous release:
594     <ul>
595 <li>NOFORK: audit small applets and mark some of them as NOFORK. Put big scary warnings in relevant places
596 <li>NOFORK: factor out NOFORK/NOEXEC code from find. Use NOFORK/NOEXEC in find and xargs
597 <li>NOFORK: remove potential xmalloc from NOFORK path in bb_full_fd_action
598 <li>NOMMU: random fixes; compressed --help now works for NOMMU
599 <li>SELinux: load_policy applet
600 <li>[u]mount: extend -t option (Roy Marples &lt;uberlord at gentoo.org&gt;)
601 <li>addgroup: clean up, fix adding users to existing groups and make it optional (Tito)
602 <li>adduser: don't bomb out if shadow password file doesn't exist (from Tito &lt;farmatito at tiscali.it&gt;)
603 <li>applet.c: do not even try to read config if run by real root; fix suid config handling
604 <li>ash: fix infinite loop on exit if tty is not there anymore
605 <li>ash: fix kill -l (by Mats Erik Andersson &lt;mats.andersson64 at comhem.se&gt;)
606 <li>ash: implement type -p, costs less than 10 bytes (patch by Mats Erik Andersson &lt;mats.andersson64 at comhem.se&gt;)
607 <li>awk: don't segfault on printf(%*s). Closes bug 1337
608 <li>awk: guard against empty environment
609 <li>awk: some 'lineno' vars were shorts, made them ints (code got smaller)
610 <li>cat: stop using stdio.h opens
611 <li>config system: clarify PREFER_APPLETS/SH_STANDALONE effects in help text
612 <li>cryptpw: new applet (by Thomas Lundquist &lt;lists at zelow.no&gt;)
613 <li>cttyhack: new applet
614 <li>dd: NOEXEC fix; fix skip= parse error (spotted by Dirk Clemens &lt;develop at cle-mens.de&gt;)
615 <li>deluser: add optional support for removing users from groups (by Tito &lt;farmatito at tiscali.it&gt;)
616 <li>diff: fix SEGV (NULL deref) in diff -N
617 <li>diff: fix segfault on empty dirs (Peter Korsgaard &lt;peter.korsgaard at barco.com&gt;)
618 <li>dnsd: fix several buglets, make smaller; openlog(), so that applet's name is logged
619 <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 &lt;Kim.Heino at bluegiga.com&gt;)
620 <li>dpkg: use bitfields which are a bit closer to typical short/char. Code size -800 bytes
621 <li>dumpleases: getopt32()-ization (from Mats Erik Andersson &lt;mats.andersson64 at comhem.se&gt;)
622 <li>e2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes)
623 <li>ether-wake: close bug 1317. Reorder fuctions to avoid forward refs while at it
624 <li>ether-wake: save a few more bytes of code
625 <li>find: -group, -depth (Natanael Copa &lt;natanael.copa at gmail.com&gt;)
626 <li>find: add support for -delete, -path (by Natanael Copa)
627 <li>find: fix -prune. Add big comment about it
628 <li>find: improve usage text (Natanael Copa &lt;natanael.copa at gmail.com&gt;)
629 <li>find: missed 'static' on const data; size and prune were mixed up; use index_in_str_array
630 <li>find: un-DESKTOPize (Kai Schwenzfeier &lt;niteblade at gmx.net&gt;)
631 <li>find_root_device: teach to deal with /dev/ subdirs (by Kirill K. Smirnov &lt;lich at math.spbu.ru&gt;)
632 <li>find_root_device: use lstat - don't follow links
633 <li>getopt32: fix llist_t options ordering. llist_rev is now unused
634 <li>getopt: use getopt32 for option parsing - inspired by patch by Mats Erik Andersson &lt;mats.andersson64 at comhem.se&gt;
635 <li>hdparm: fix multisector mode setting (from Toni Mirabete &lt;amirabete at catix.cat&gt;)
636 <li>hdparm: make -T -t code smaller (-194 bytes), and output prettier
637 <li>ifupdown: make it possible to use DHCP clients different from udhcp
638 <li>ifupdown: reread state file before rewriting it. Fixes "ifup started another ifup" state corruption bug. Patch by Natanael Copa &lt;natanael.copa at gmail.com&gt;
639 <li>ifupdown: small optimization (avoid doing useless work if we are not going to update state file)
640 <li>ip: fix compilation if FEATURE_TR_CLASSES is off
641 <li>ip: mv ip*_main into ip.c; use a dispatcher to save on needless duplication. Saves a minor 12b
642 <li>ip: rewrite the ip applet to be less bloaty. Convert to index_in_(sub)str_array()
643 <li>ip: set the scope properly. Thanks to Jean Wolter
644 <li>iplink: shrink iplink; sanitize libiproute a bit (-916 bytes)
645 <li>iproute: shrink a bit (-200 bytes)
646 <li>kill: know much more signals; make code smaller; use common code for kill applet and ash kill builtin
647 <li>klogd: remove dependency on syslogd
648 <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.
649 <li>lash: fix kill buglet (didn't properly recognize ESRCH)
650 <li>lash: make -c work; crush buffer overrun and free of non-malloced ptr (from Mats Erik Andersson &lt;mats.andersson64 at comhem.se&gt;)
651 <li>lash: recognize and use NOFORK applets
652 <li>less: fix case when regex search finds nothing; fix very obscure memory corruption bug; fix less &lt;HUGEFILE + [End] busy loop
653 <li>libbb: add xsendto, xunlink, xpipe
654 <li>libbb: fix segfault in reset_ino_dev_hashtable() when *hashtable was NULL
655 <li>libbb: make pidfile writing configurable
656 <li>libbb: make xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y)
657 <li>libbb: rework NOMMU helper API so that it makes more sense and easier to use
658 <li>libiproute: audit callgraph, shortcut error paths into die() functions
659 <li>lineedit: do not try to open NULL history file
660 <li>lineedit: nuke two unused variables and code which sets them
661 <li>login: remove setpgrp call (makes it work from shell prompt again); sanitize stdio descriptors (we are suid, need to be careful!)
662 <li>login: shrink login and set_environment by ~100 bytes
663 <li>mount: fix incorrect usage of strtok (inadvertently used NULL sometimes)
664 <li>mount: fix mounting of symlinks (mount from util-linux allows that)
665 <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
666 <li>nc: port nc 1.10 to busybox
667 <li>netstat: fix for bogus state value for raw sockets
668 <li>netstat: introduce -W: wide, ipv6-friendly output; shrink by ~500 bytes
669 <li>nmeter: should die if stdout doesn't like him anymore
670 <li>patch: do not try to delete same file twice
671 <li>ping: fix wrong sign extension of packet id (bug 1373)
672 <li>ps: add -o tty and -o rss support; make a bit smaller; work around libc bug: printf("%.*s\n", MAX_INT, buffer)
673 <li>run_parts: rewrite
674 <li>run_parts: do not check path portion of a name for "bad chars". Needed for ifupdown. Patch by Gabriel L. Somlo &lt;somlo at cmu.edu&gt;
675 <li>sed: fix escaped newlines in -f
676 <li>split: new applet
677 <li>stat: remove superfluous bss user (flags) and manually unswitch some areas
678 <li>stty: fix option parsing bug (spotted by Sascha Hauer &lt;s.hauer at pengutronix.de&gt;)
679 <li>svlogd: fix 'SEGV on uninitialized data' and make it honor TERM
680 <li>tail: fix SEGV on "tail -N"
681 <li>ipsvd: tcpsvd,udpsvd are new applets, GPL-ed 'clones' of Dan Bernstein's tcpserver. Author: Gerrit Pape &lt;pape at smarden.org&gt;, http://smarden.sunsite.dk/ipsvd/
682 <li>test: close bug 1371; plug a memory leak; code size reduction
683 <li>tftp: code diet, and I think retransmits were broken
684 <li>tr: fix bug where we did not reject invalid classes like '[[:alpha'. debloat while at it
685 <li>udhcp: MAC_BCAST_ADDR and blank_chaddr are in fact constant, move to rodata; use pipe instead of socketpair
686 <li>udhcp[cd]: stop using atexit magic fir pidfile removal; stop deleting our own pidfile if we daemonize
687 <li>xargs: shrink code, ~80 bytes; simplify word list management
688 <li>zcip: make it work on NOMMU (+ improve NOMMU support machinery)
689     </ul>
690     </p>
691   </li>
692
693   <li><b>20 May 2007 -- BusyBox 1.5.1 (stable)</b>
694     <p><a href=http://busybox.net/downloads/busybox-1.5.1.tar.bz2>BusyBox 1.5.1</a>.
695     (<a href=http://busybox.net/downloads/fixes-1.5.1/>patches</a>,
696     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
697
698     <p>This is a bugfix-only release, with fixes to hdparm, hush, ifupdown, ps
699     and sed.</p>
700   </li>
701
702   <li><b>23 March 2007 -- BusyBox 1.5.0 (unstable)</b>
703     <p><a href=http://busybox.net/downloads/busybox-1.5.0.tar.bz2>BusyBox 1.5.0</a>.
704     (<a href=http://busybox.net/downloads/fixes-1.5.0/>patches</a>,
705     <a href=http://busybox.net/fix.html>how to add a patch</a>)</p>
706
707     <p>Since this is a x.x.0 release, it probably does not deserve "stable"
708     label. Please help making 1.5.1 stable by testing 1.5.0.</p>
709     <p>Notable changes since previous release:
710     <ul>
711     <li>find: added support for -user, -not, fixed -mtime, -mmin, -perm
712     <li>[de]archivers: merge common logic into one module
713     <li>ping[6]: unified code for both
714     <li>less: regex search improved
715     <li>ash: more readable code, testsuite added
716     <li>sed: several very obscure bugs fixed
717     <li>chown: -H, -L, -P support (required by POSIX)
718     <li>tar: handle (broken) checksums a-la Sun; tar restores mode again
719     <li>grep: implement -w, "implement" -a and -I by ignoring them
720     <li>cp: more sane behavior when overwriting existing files
721     <li>init: stop doing silly things with the console (-400 bytes)
722     <li>httpd: make httpd usable for NOMMU CPUs; fix POSTDATA handling bugs
723     <li>httpd: run interpreter for configured file extensions in any dir,
724         not only in /cgi-bin/
725     <li>chrt: new applet
726     <li>SELinux: SELinux-related code and -Z option added to several applets,
727         new SELinux-specific applets: chcon, runcon.
728     <li>Build system: produces link map, uses -Wwrite-strings to catch
729         improper usage of string constants.
730     <li>Data and bss section usage audited and reduced - should help NOMMU
731         targets.
732     <li>Applets with bug fixes: gunzip, vi, syslogd, dpkg, ls, adjtimex, resize,
733         sv, printf, diff, awk, sort, dpkg, diff, tftp
734     <li>Applets with usability improvements: swapon, more, ifup/ifdown, hwclock,
735         udhcpd, start_stop_daemon, cmp
736     <li>Applets with code cleaned up: telnet, fdisk, fsck_minix, mkfs_minix,
737         syslogd, swapon, runsv, svlogd, klogd
738     </ul>
739     </p>
740   </li>
741
742   <li><b>18 March 2007 -- BusyBox 1.4.2 (stable)</b>
743     <p><a href=http://busybox.net/downloads/busybox-1.4.2.tar.bz2>BusyBox 1.4.2</a>.
744     </p>
745
746     <p>This release includes only trivial fixes accumulated since 1.4.1.
747     </p>
748   </li>
749
750   <li><b>25 January 2007 -- BusyBox 1.4.1 (stable)</b>
751     <p><a href=http://busybox.net/downloads/busybox-1.4.1.tar.bz2>BusyBox 1.4.1</a>.
752     (<a href=http://busybox.net/downloads/fixes-1.4.1/>patches</a>)</p>
753
754     <p>This release includes only trivial fixes accumulated since 1.4.0.
755     </p>
756   </li>
757
758   <li><b>20 January 2007 -- BusyBox 1.4.0 (stable)</b>
759     <p><a href=http://busybox.net/downloads/busybox-1.4.0.tar.bz2>BusyBox 1.4.0</a>.
760     (<a href=http://busybox.net/downloads/fixes-1.4.0/>patches</a>)</p>
761
762     <p>Since this is a x.x.0 release, it probably is a bit less "stable"
763     than usual.</p>
764     <p>Changes since previous release:
765     <ul>
766     <li>e2fsprogs are mostly removed from busybox. Some smaller parts remain,
767     the rest of it sits disabled in e2fsprogs/old_e2fsprogs/*, because
768     it's too bloated. Really. I'm afraid it's about the only way we can
769     ever get e2fsprogs cleaned up.
770     <li>less: many improvements. Now can display binary files
771     (although I expect it to have trouble with displays where 8bit chars
772     don't have 1-to-1 char/glyph relationship). Regexp search is not buggy
773     anymore. Less does not read entire input up-front. Reads input
774     as it appears (yay!). Works rather nice as man pager. I recommend it
775     for general use now.
776     <li>IPv6: generic support is in place, many networking applets are
777     upgraded to be IPv6 capable. Probably some work remains, but it is
778     already much better than what we had previously.
779     <li>arp: new applet (thanks to Eric Spakman).
780     <li>fakeidentd: non-forking standalone server part was taking ~90%
781     of the applet. Factored it out (in fact, rewrote it).
782     <li>syslogd: mostly rewritten.
783     <li>decompress_unzip, gzip: sanitized a bit.
784     <li>sed: better hadling of NULs
785     <li>httpd: stop adding our own "Content-type:" to CGI output
786     <li>chown: user.grp works again.
787     <li>minor bugfixes to: passwd, date, tftp, start_stop_daemon, tar,
788     ps, ifupdown, time, su, stty, awk, ping[6], sort,...
789     </ul>
790     </p>
791   </li>
792
793   <li><b>20 January 2007 -- BusyBox 1.3.2 (stable)</b>
794     <p><a href=http://busybox.net/downloads/busybox-1.3.2.tar.bz2>BusyBox 1.3.2</a>.</p>
795
796     <p>This release includes only one trivial fix accumulated since 1.3.1
797     </p>
798   </li>
799
800   <li><b>27 December 2006 -- BusyBox 1.3.1 (stable)</b>
801     <p><a href=http://busybox.net/downloads/busybox-1.3.1.tar.bz2>BusyBox 1.3.1</a>.
802     (<a href=http://busybox.net/downloads/fixes-1.3.1/>patches</a>)</p>
803
804     <p>Closing 2006 with new release. It includes only trivial fixes accumulated since 1.3.0
805     </p>
806   </li>
807
808   <li><b>14 December 2006 -- BusyBox 1.3.0 (stable)</b>
809     <p><a href=http://busybox.net/downloads/busybox-1.3.0.tar.bz2>BusyBox 1.3.0</a>.
810     (<a href=http://busybox.net/downloads/fixes-1.3.0/>patches</a>)</p>
811
812     <p>This release has CONFIG_DESKTOP option which enables features
813     needed for busybox usage on desktop machine. For example, find, chmod
814     and chown get several less frequently used options, od is significantly
815     bigger but matches GNU coreutils, etc. Intended to eventually make
816     busybox a viable alternative for "standard" utilities for slightly
817     adventurous desktop users.
818     <p>Changes since previous release:
819     <ul>
820     <li>find: taking many more of standard options
821     <li>ps: POSIX-compliant -o implemented
822     <li>cp: added -s, -l
823     <li>grep: added -r, fixed -h
824     <li>watch: make it exec child like standard one does (was totally
825         incompatible)
826     <li>tar: fix limitations which were preventing bbox tar usage
827         on big directories: long names and linknames, pax headers
828         (Linux kernel tarballs have that). Fixed a number of obscure bugs.
829         Raised max file limit (now 64Gb). Security fixes (/../ attacks).
830     <li>httpd: added -i (inetd), -f (foreground), support for
831         directory indexer CGI (example is included), bugfixes.
832     <li>telnetd: fixed/improved IPv6 support, inetd+standalone support,
833         other fixes. Useful IPv6 stuff factored out into libbb.
834     <li>runit/*: new applets adapted from http://smarden.sunsite.dk/runit/
835         (these are my personal favorite small-and-beautiful toys)
836     <li>minor bugfixes to: login, dd, mount, umount, chmod, chown, ln, udhcp,
837         fdisk, ifconfig, sort, tee, mkswap, wget, insmod.
838     </ul>
839     <p>Note that GnuPG key used to sign this release is different.
840     1.2.2.1 is also signed post-factum now. Sorry for the mess.
841     </p>
842   </li>
843
844   <li><b>29 October 2006 -- BusyBox 1.2.2.1 (fix)</b>
845     <p><a href=http://busybox.net/downloads/busybox-1.2.2.1.tar.bz2>BusyBox 1.2.2.1</a>.</p>
846
847     <p>Added compile-time warning that static linking against glibc
848     produces buggy executables.
849   </li>
850
851   <li><b>24 October 2006 -- BusyBox 1.2.2 (stable)</b>
852     <p>It's a bit overdue, but
853     <a href=http://busybox.net/downloads/busybox-1.2.2.tar.bz2>here is
854     BusyBox 1.2.2</a>.</p>
855
856     <p>This release has dozens of fixes backported from the ongoing development
857     branch.  There are a couple of bugfixes to sed, two fixes to documentation
858     generation (BusyBox.html shouldn't have USE() macros in it anymore), fix
859     umount to report the right errno on failure and to umount block devices by
860     name with newer kernels, fix mount to handle symlinks properly, make mdev
861     delete device nodes when called for hotplug remove, fix a segfault
862     in traceroute, a minor portability fix to md5sum option parsing, a build
863     fix for httpd with old gccs, an options parsing tweak to hdparm, make test
864     fail gracefully when getgroups() returns -1, fix a race condition in
865     modprobe when two instances run at once (hotplug does this), make "tar xf
866     foo.tar dir/dir" extract all subdirectories, make our getty initialize the
867     terminal more like mingetty, an selinux build fix, an endianness fix in
868     ping6, fix for zcip defending addresses, clean up some global variables in
869     gzip to save memory, fix sulogin -tNNN, a help text tweak, several warning
870     fixes and build fixes, fixup dnsd a bit, and a partridge in a pear tree.</p>
871
872     <p>As <a href=http://lwn.net/Articles/202106/>Linux Weekly News noted</a>,
873     this is my (Rob's) last release of BusyBox.  The new maintainer is Denis
874     Vlasenko, I'm off to do <a href=http://landley.net/code>other things</a>.
875     </p>
876   </li>
877
878   <li><b>29 September 2006 -- New license email address.</b>
879     <p>The email address gpl@busybox.net is now the recommended way to contact
880     the Software Freedom Law Center to report BusyBox license violations.</p>
881
882   <li><b>31 July 2006 -- BusyBox 1.2.1 (stable)</b>
883     <p>Since nobody seems to have objected too loudly over the weekend, I
884     might as well point you all at
885     <a href="http://busybox.net/downloads/busybox-1.2.1.tar.bz2">Busybox
886     1.2.1</a>, a bugfix-only release with no new features.</p>
887
888     <p>It has three shell fixes (two to lash: going "var=value" without
889     saying "export" should now work, plus a missing null pointer check, and
890     one to ash when redirecting output to a file that fills up.)  Fix three
891     embarassing thinkos in the new dmesg command.  Two build tweaks
892     (dependencies for the compressed usage messages and running make in the
893     libbb subdirectory).  One fix to tar so it can extract git-generated
894     tarballs (rather than barfing on the pax extensions).  And a partridge
895     in a pear...  Ahem.</p>
896
897     <p>But wait, there's more!  A passwd changing fix so an empty
898     gecos field doesn't trigger a false objection that the new passwd contains
899     the gecos field.  Make all our setuid() and setgid() calls check the return
900     value in case somebody's using per-process resource limits that prevent
901     a user from having too many processes (and thus prevent a process from
902     switching away from root, in which case the process will now _die_ rather
903     than continue with root privileges).  A fix to adduser to make sure that
904     /etc/group gets updated.  And a fix to modprobe to look for modules.conf
905     in the right place on 2.6 kernels.</p>
906
907   <li><b>30 June 2006 -- BusyBox 1.2.0</b>
908     <p>The -devel branch has been stabilized and the result is
909     <a href="http://busybox.net/downloads/busybox-1.2.0.tar.bz2">Busybox
910     1.2.0</a>.  Lots of stuff changed, I need to work up a decent changelog
911     over the weekend.</p>
912
913     <p>I'm still experimenting with how long is best for the development
914     cycle, and since we've got some largeish projects queued up I'm going to
915     try a longer one.  Expect 1.3.0 in December.  (Expect 1.2.1 any time
916     we fix enough bugs. :)</p>
917
918     <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>
919
920   <li><b>17 May 2006 -- BusyBox 1.1.3 (stable)</b>
921     <p><a href="http://busybox.net/downloads/busybox-1.1.3.tar.bz2">BusyBox
922     1.1.3</a> is another bugfix release.  It makes passwd use salt, fixes a
923     memory freeing bug in ls, fixes "build all sources at once" mode, makes
924     mount -a not abort on the first failure, fixes msh so ctrl-c doesn't kill
925     background processes, makes patch work with patch hunks that don't have a
926     timestamp, make less's text search a lot more robust (the old one could
927     segfault), and fixes readlink -f when built against uClibc.</p>
928
929     <p>Expect 1.2.0 sometime next month, which won't be a bugfix release.</p>
930
931   <li><b>10 April 2006 -- BusyBox 1.1.2 (stable)</b>
932     <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
933     backported from the development branch: Some build fixes, several fixes
934     for mount and nfsmount, a fix for insmod on big endian systems, a fix for
935     find -xdev, and a fix for comm.  Check the file "changelog" in the tarball
936     for more info.</p>
937
938     <p>The next new development release (1.2.0) is slated for June.  A 1.1.3
939     will be released before then if more bug fixes crop up.  (The new plan is
940     to have a 1.x.0 new development release every 3 months, with 1.x.y stable
941     bugfix only releases based on that as appropriate.)</p>
942
943   <li><b>27 March 2006 -- Software Freedom Law Center representing BusyBox and uClibc</b>
944     <p>One issue Erik Andersen wanted to resolve when handing off BusyBox
945     maintainership to Rob Landley was license enforcement.  BusyBox and
946     uClibc's existing license enforcement efforts (pro-bono representation
947     by Erik's father's law firm, and the
948     <a href="http://www.busybox.net/shame.html">Hall of Shame</a>), haven't
949     scaled to match the popularity of the projects.  So we put our heads
950     together and did the obvious thing: ask Pamela Jones of
951     <a href="http://www.groklaw.net">Groklaw</a> for suggestions.  She
952     referred us to the fine folks at softwarefreedom.org.</p>
953
954     <p>As a result, we're pleased to announce that the
955     <a href="http://www.softwarefreedom.org">Software Freedom Law Center</a>
956     has agreed to represent BusyBox and uClibc.  We join a number of other
957     free and open source software projects (such as
958     <a href="http://lwn.net/Articles/141806/">X.org</a>,
959     <a href="http://lwn.net/Articles/135413/">Wine</a>, and
960     <a href="http://plone.org/foundation/newsitems/software-freedom-law-center-support/">Plone</a>
961     in being represented by a fairly cool bunch of lawyers, which is not a
962     phrase you get to use every day.</p>
963
964   <li><b>22 March 2006 -- BusyBox 1.1.1</b>
965     <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>
966     <p>Update: Rather than put out an endless stream of 1.1.1.x releases,
967     the various small fixes have been collected together into a
968     <a href="http://busybox.net/downloads/busybox-1.1.1.fixes.patch">patch</a>,
969     and new fixes will be appended to that as needed.  Expect 1.1.2 around
970     June.</p>
971   </li>
972   <li><b>11 January 2006 -- 1.1.0 is out</b>
973     <p>The new stable release is
974     <a href="http://www.busybox.net/downloads/busybox-1.1.0.tar.bz2">BusyBox
975     1.1.0</a>.  It has a number of improvements, including several new applets.
976     (It also has <a href="http://www.busybox.net/lists/busybox/2006-January/017733.html">a few rough spots</a>,
977     but we're trying out a "release early, release often" strategy to see how
978     that works.  Expect 1.1.1 sometime in March.)</p>
979
980     <li><b>Old News</b><p>
981     <a href="/oldnews.html">Click here to read older news</a>
982     </p>
983     </li>
984
985
986 </ul>
987
988 <!--#include file="footer.html" -->
989