news.html 55 KB

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