blob: 1ed7ae9b7a8a08256d30e6582eda52cc7327c0b6 [file] [log] [blame]
Rob Landley589f5cd2010-01-05 10:41:52 -06001<!--#include file="header.html" -->
2
Rob Landleye258af32008-01-05 18:09:49 -06003<h2>News</h2>
Rob Landley8390c652012-12-19 09:16:45 -06004<hr><b>December 15, 2012</b>
5<blockquote><p>"The major difference between a thing that might go wrong and a
6thing that cannot possibly go wrong is that when a thing that cannot possibly
7go wrong goes wrong it usually turns out to be impossible to get at or repair."
8</p><p>- The Hitchhiker's Guide to the Galaxy.</p></blockquote>
9
10<p><a href=downloads/toybox-0.4.2.tar.bz2>Toybox 0.4.2</a> is based on
11<a href=http://landley.net/hg/toybox/shortlog/749>commit 749</a> and is
12just a resync. Linux 3.7 came out, meaning it's time to do an Aboriginal
13Linux release, and that should use a stable version of toybox. So here's
14a new stable version.</p>
15
16<p>The new commands are cut (from Jason Kyungwan Han), touch
17(from Choubey Ji), expand (from Jonathan Clairembault, and he fixed a
18bug in login), and rm (from Rob Landley). Felix Janda added UTF-8
19support infrastructure (for non-ascii character sets) with a config option.
20Elie De Brauwer added tests for cat and sha1sum, and -so options to pidof.
21The "ls" command defaults to -C (column view) now, and "readlink" now supports
22-fenq.</p>
23
24<p>Portability work: toybox should now build against the musl C library,
25and against older glibc versions (circa 2008, much before that and kernel
26features we depend on start to drop out).</p>
27
28<p>The whole codebase got reindented from "one tab" to "two spaces" per
29level. The option parsing logic now understands [groups] of commands (when more
30than one in a group is selected it can switch the others off, or error out,
31or other things). The error_exit() infrastructure can now longjmp back to an
32earlier point instead of exiting. Each toys/* directory now has a README,
33the first line of which is the fancy name menuconfig uses for the directory
34(so no more hardwired directory list in scripts/genconfig.sh).</p>
35
36<p>Fixed a filehandle leak in getmountlist().
37Pass parent pointer to dirtree_add_node() so it can give error messages with
38full path. The yesno() function now always reads from stdin and writes to
39stderr (we can retry tty checking complexity once we've got commands needing
40it).</p>
41
42<p>The open group broke their website so the
43<a href=http://opengroup.org/onlinepubs/9699919799>old links</a> to POSIX 2008
44now <a href=http://pubs.opengroup.org/onlinepubs/9699919799>need to start with
45pubs</a>. Some of the links in the tree have been updated, others haven't while
46I wait to see if their webmaster notices and fixes it.</p>
47
48<p>(I note that the current rm implementation is not technically posix compliant
49because the standard requires infinite recursion depth and the current
50implementation uses one filehandle per level. I can add a config option
51to do it Posix's way, which is more brittle and needs extra security checks,
52but am waiting for somebody to complain first. The default "ulimit -n" is 1024
53filehandles, so drilling down over 1000 nested subdirectories).</p>
54
Rob Landley571b0702012-11-13 16:13:45 -060055<hr><b>November 13, 2012</b>
56<blockquote><p>"Rule Six: The winning team shall be the first team that wins."
57- The Hitchhiker's Guide to the Galaxy.</p></blockquote>
58
59<p><a href=downloads/toybox-0.4.1.tar.bz2>Toybox 0.4.1</a> is based on
60<a href=http://landley.net/hg/toybox/shortlog/691>commit 691</a>.</p>
61
62<p>Elie De Brauwer contributed usleep, Ashwini Kumar contributed du, and
63Kyungwan Han contributed vconfig. Other new commands include switch_root and
64md5sum, and the remaining shell wrappers are now proper commands (dos2unix,
65unix2dos).</p>
66
67<p>The patch command now supports -l, and gethostname is now enabled by
68default. The df command follows symlinks to get the actual device name.
69Felix Janda added -m support to wc (for utf8).</p>
70
71<p>On the infrastructure side, the commands have now been grouped into
72"posix", "lsb", and "other" subdirectories (for things required by Posix-2008,
73the Linux Standard Base 4.1, and commands in neither). This affects menuconfig
74and the actual source layout (toys/cp.c is now toys/posix/cp.c, and so on).
75An android directory is planned (see the updated
76<a href=roadmap.html#android>android roadmap analysis</a>).</p>
77
78<p>The FLAG_ macros for command option parsing and TT alias for the command's
79global block are now automatically generated, commands should
80#define FOR_commandname before #including <toys.h> to get the macros for that
81command.</p>
82
83<p>An upgrade to the build infrastructure now allows commands with _ and -
84in them, such as switch_root.</p>
85
86<p>Bugfixes: Avery Pennarun spotted a case where ls showed uid twice instead of
87uid and gid, and that nice was using the wrong range of numbers.
88The ls command also recursed inappropriately last time (not quite
89properly converted for the dirtree changes last release), and now it's
90fixed. Roy Tam pointed out a glitch in sh, and fixed df's percentage
91calculation to match the POSIX spec. The kernel build didn't like our mktemp
92and it does now. The wc command wasn't quite posix compliant (trailing spaces
93break stuff). The ls command recursed inappropriately last time (not quite
94properly converted for the dirtree changes last release), and now it's
95fixed. The catv command wasn't displaying byte 255 correctly. Some lib
96fixes (thinko in xpidfile). Fixed uname -m when running a 32 bit x86 binary
97on an x86-64 host (it lies and says the system is i686, i586, or i486 depending
98on what the toolchain that built the binary supported. This makes builds in
99a 32 bit chroot on a 64 bit kernel break less.) The df command was checking
100partitions in the wrong order (displaying undermounts instead of overmounts:
101this used to work but some library code changed out from under it and it
102wasn't updated to match until now). Felix Janda filled out the test suite
103some more. The patch file creation logic got tweaked several times to
104successfully apply more patches. Support for older (pre 2.10) glibc
105versions was added to portability.h.</p>
106
107<p>Miscelaneous cleanups all around (mknod, sha1sum, logname), including a
108rewrite of taskset to be less dependent on libc getting the headers right. All
109the command headers should now point to the current relevant standards
110document, where applicable.</p>
111
112<p>This news page had old news entries from before the relaunch moved into
113a separate <a href=oldnews.html>oldnews</a> page.</p>
114
115<p>I forgot to create <a href=bin>static binaries</a> last time, but they're
116back now.</p>
117</span>
118
Rob Landley31103f92012-08-25 11:51:25 -0500119<hr><b>July 23, 2012</b>
120<blockquote><p>"Ford", Arthur said. "There's an infinite number of monkeys
121out here who want to talk to us about this script for Hamlet they've worked
122out." - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
123
Rob Landley571b0702012-11-13 16:13:45 -0600124<p><a href=downloads/toybox-0.4.0.tar.bz2>Toybox 0.4.0</a> is based on
125<a href=http://landley.net/hg/toybox/shortlog/640>commit 640</a>.</p>
Rob Landley31103f92012-08-25 11:51:25 -0500126
127<p>The new <a href=status.html>status page</a> is calculated from
128the roadmap info, and should be easier to keep up to date in future.</p>
129
130<p>Andre Renaud contributed od and modinfo. Elie De Brauwer contributed
131taskset, bugfixes to cmp and tail, and tests for sort and tail. Kyungwan Han
132contributed passwd. Gaurang Shastri contributed w. Ashwini Sharma spotted a
133case where dirtree was adding extra slashes to a path.</p>
134
135<p>I rewrote od, cleaned up comm, documented the
136<a href=code.html#lib_llist>llist</a> and
137<a href=code.html#lib_dirtree>dirtree</a> infrastructure, added an -r option
138to date (and fixed a bug where -u wouldn't override /etc/localtime),
139fixed bugs in chmod +stw, fixed ls to show suid bits properly when the
140corresponding executable bit wasn't set, and worked around a longstanding
141glibc bug where static linking prevents stdout from automatically flushing
142pending output on exit.</p>
143
Rob Landleyb1cc1d12012-06-25 06:42:24 -0500144<hr><b>June 25, 2012</b>
145<blockquote><p>"For a moment, nothing happened. Then, after a second or so, nothing continued to happen." - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
146
147<p><a href=downloads/toybox-0.3.1.tar.bz2>Toybox 0.3.1</a> is based on commit
148<a href=http://landley.net/hg/toybox/shortlog/607>commit 607</a>. It's
149mostly a bugfix release for ls -l (which was unhappy on targets other than
150x86-64), plus a new "date" from Andre Renaud and rewritten chgrp/chown which
151now support the full set of posix flags, plus a little work on the test
152suite and some more header tweaks towards eventual compatability with the
153musl libc.</p>
154
155<p>The todo list runneth over, but "release early, release often", so here
156it is. The roadmap and documentation are a bit behind, and I've got ~40
157pending submissions to review. I need to catch up...</p>
158</span>
159
160<hr><b>June 12, 2012</b>
161<blockquote><p>"For instance, on the planet Earth, man had always assumed that
162he was more intelligent than dolphins because he had achieved so much - the
163wheel, New York, wars and so on - whilst all the dolphins had ever done was
164muck about in the water having a good time. But conversely, the dolphins had
165always believed that they were far more intelligent than man - for precisely
166the same reasons." - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
167
168<p>It's well past time for <a href=downloads/toybox-0.3.0.tar.bz2>toybox 0.3.0</a>,
169so here it is, based
170on <a href=http://landley.net/hg/toybox/shortlog/595>commit 595</a>, and the
171statically linked <a href=downloads/binaries>prebuilt binaries</a> should
172actually be statically linked this time (thanks Ashwini Sharma for spotting
173that).</p>
174
175<p>It's hard to figure out where to cut a release, because development
176doesn't stop. "Long before now" is the obviuos answer, of course.
177The project's maintainer also moved house during this development cycle, which
178threw things off for a bit (so many boxes). Releases should hopefully be a bit
179more frequent from here on.</p>
180
181<p>The big things Rob worked on this time were the new dirtree (directory
182tree traversal) infrastructure, and a complete rewrite of ls using that
183which should now implement all 26 posix options.</p>
184
185<p>Georgi Chorbadzhiyski added printenv, whoami, mkdir, mkfifo, chmod, chown,
186chgrp, and uniq. He also added fraction and extension support to sleep (so if
187you need a quarter-second sleep, it can do that now), and fixed a build bug
188on slackware.</p>
189
190<p>Daniel Walter contributed a string to mode_t parser (in use by chmod and
191mkdir -m). Ilya Kuzmich contributed comm. Elie De Brauwer added mountpoint,
192vmstat, logname, login, and mktemp. Kevin Chase did some portability cleanups.
193Pere Orga fixed some documentation.</p>
194
195<p>The "tac" and "clear" commands are now normal commands instead of shell
196wrappers, and the header #includes have been cleaned up a bit to remove
197deprecated functions and attempt to increase compatability with the bionic and
198musl C libraries, "tail" should now use lseek() for large files, and "id" got
199some cleanups and bugfixes.</p>
200
201<p>The new TOYBOX_FLOAT configuration option selects whether or not
202to include floating point support (for embedded targets where that's
203problematic).</p>
204
205<p>Several random bugfixes: unshare() might actually build portably now,
206yes 'n' | cp -i should no longer bypass stdin and prompt via the tty, the
207SUID support no longer drops permissions going through the toybox
208multiplexer command, and a bugfix to xargs -0 means it should no longer
209segfault. (I have a pending bug report about xargs not doing the full
210posix whitespace handling that -0 obsoleted, but I'll deal with that next
211release.)</p>
212
213<p>The build infrastructure is now automatically generating FLAG_ macros
214for the options, but currently with the wrong names. Some more macro glue
215is necessary, which I haven't quite figured out how to do yet.</p>
216
217<p>A defconfig toybox at the start of the $PATH has successfully built
218Linux From Scratch (in my Aboriginal Linux project). The commands that
219'default n' in the config are often still broken, cleanup is ongoing.
220(The new dirtree stuff broke several of them that haven't been converted
221yet, but if I wait until everything works we won't have a release before
2221.0, so here's a checkpoint.)</p>
223
224
Rob Landleyed6ed622012-03-06 20:49:03 -0600225<hr><b>March 3, 2012</b>
226
227<blockquote><p>"They went unnoticed at Goonhilly, passed over Cape Canaveral
228without a blip, and Woomera and Jodrell Bank looked straight through them.
229Which was a pity, because it was exactly the sort of thing they'd been looking
230for all these years."</p></p>- The Hitchhiker's Guide to the Galaxy.</p>
231</p></blockquote>
232
233<p>Here's <a href=downloads/toybox-0.2.1.tar.bz2>toybox 0.2.1</a> based
234on <a href=http://landley.net/hg/toybox/shortlog/512>commit 512</a>. This
235time around, there are statically linked <a href=downloads/binaries>prebuilt
236binaries</a> for various embedded targets.</p>
237
238<p>It's been a busy few weeks, almost entirely due to new contributors. (I
239have not quite been keeping up.)</p>
240
241<p>Elie De Brauwer contributed free, uptime, swapon, swapoff, lsmod, mknod,
242insmod, rmmod, and fixed a bug in basename. Andre Renaud contributed ls, ln,
243realpath, and hostname. Andres Heck contributed pidof and killall. Daniel
244Walter wrote kill and extended id. Timothy Elliott contributed tail and tests
245for cmp. Frank Bergmann sent a warning fix. Bryce Fricke added -i to cp.
246Nathan McSween pointed out an optimization. Georgi Chorbadzhiyski fixed
247cross compiling to work more reliably.</p>
248
249<p>(My own contribution this time around was just tightening up other people's
250code, a build fix to unshare, some random bugfixes, and so on. My only new
251code this time around was writing a bash replacement for the existing python
252bloat-o-meter.)</p>
253
254<p>Last time (the 0.2.0 release) included the first pass at an id command from
255Tim Bird, env and basename from Tryn Mirell, cmp and head from Timothy Elliott,
256more bugfixes from Nathan McSween and Elie De Brauwer, and Luis Felipe Strano
257Moraes did a first pass at the who command plus other bugfixes and
258optimizations.</p>
259
260<p>(For that release I did xargs, cal, truncate, unlink, nohup, tty, wc, link,
261dirname, unshare, and various infrastructure tweaks, but it took me 3 months
262and those guys did their stuff in a week or so.)</p>
263
Rob Landleye258af32008-01-05 18:09:49 -0600264
Rob Landleyd11ac702012-02-13 21:16:03 -0600265<hr><b>February 12, 2012</b>
266<blockquote><p>
267"for though it has many omissions and contains much that is apocryphal, or at
268least wildly inaccurate, it scores over the older, more pedestrian work in two
269important respects..."</p>
270<p> - The Hitchhiker's Guide to the Galaxy</p></blockquote>
271
272<p>Here's the first BSD licensed release,
273<a href=downloads/toybox-0.2.0.tar.bz2>toybox-0.2.0</a>, more a synchronization
274point than anything particularly useful. 47 commands in a reasonably
275ready-to-use state (what "make defconfig" builds), another ten or so partially
276finished stubs ("make allyesconfig"), and several
277patches pending on the mailing list I need to review and merge.</p>
278
279<p>More to come...</p>
280
Rob Landleyce8a2672012-02-02 07:27:05 -0600281<hr>
282<p><b>November 15, 2011</b> - Back from the dead, Toybox is now under a 2
283clause BSD license, and aiming to become the default command line
284implementation of Android systems everywhere.</p>
285
286<p>More to come...</p>
287
288<hr>
Rob Landley589f5cd2010-01-05 10:41:52 -0600289
Rob Landleyaba51702012-08-26 16:33:06 -0500290<p><a href=oldnews.html>Old news</a> from before the relaunch.</p>
Rob Landley589f5cd2010-01-05 10:41:52 -0600291
292<!--#include file="footer.html" -->