Rob Landley | 349ff52 | 2014-01-04 13:09:42 -0600 | [diff] [blame] | 1 | <html><head><title>toybox news</title> |
Rob Landley | 589f5cd | 2010-01-05 10:41:52 -0600 | [diff] [blame] | 2 | <!--#include file="header.html" --> |
| 3 | |
Rob Landley | 5cab994 | 2013-09-18 10:50:38 -0500 | [diff] [blame] | 4 | <p>Toybox combines common Linux command line utilities together |
Rob Landley | e566f3a | 2013-06-16 20:02:38 -0500 | [diff] [blame] | 5 | into a single BSD-licensed executable that's simple, small, fast, |
| 6 | reasonably standards-compliant, and powerful enough to turn Android into |
Rob Landley | 49f8d6f | 2013-07-26 13:04:21 -0500 | [diff] [blame] | 7 | a development environment. See the links on the left for details.</p> |
| 8 | |
| 9 | <h2>News</h2> |
Rob Landley | 08e18fb | 2014-04-20 14:22:19 -0500 | [diff] [blame^] | 10 | |
| 11 | <hr><b>April 20, 2014</b> |
| 12 | <blockquote><p>And to this end they built themselves a stupendous supercomputer |
| 13 | which was so amazingly intelligent that even before the data banks |
| 14 | had been connected up it had started from "I think therefore I am" and got as |
| 15 | far as the existence of rice pudding and income tax before anyone managed to |
| 16 | turn it off. - The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 17 | |
| 18 | <p><a href=downloads/toybox-0.4.8.tar.bz2>Toybox 0.4.8</a> is based on |
| 19 | <a href=http://landley.net/hg/toybox/shortlog/1262>commit 1262</a>. And |
| 20 | about time too.</p> |
| 21 | |
| 22 | <p>The big news is that the build no longer needs python to generate help.h, |
| 23 | that's now done in C. The help text generation is also collating help text |
| 24 | from multiple options, merging command line option blocks and usage: lines. |
| 25 | There's even a new <a href=help.html>help web page</a>.</p> |
| 26 | |
| 27 | <p><b>New commands:</b> Ifconfig, cpio, and su were cleaned up the rest of the |
| 28 | way and promoted out of pending. That saga is mostly explained on the |
| 29 | <a href=cleanup.html>cleanup page</a>. Vivek Bhagat's freeramdisk, |
| 30 | Isaac Dunham's fsfreeze, and Felix Janda's iconv are also new.</p> |
| 31 | |
| 32 | <p><b>In pending:</b> |
| 33 | Ashwini Sharma's team submitted tcpsvd, udpsvd, telnet, telnetd, last, more, |
| 34 | groupdel/delgroup, arping, brctl, ftpget, ftpput, printf, reset, and added |
| 35 | ipv6 support to traceroute. Kyungwan Han's team submitted modprobe and getty. |
| 36 | Vivek Bhagat submitted openvt and deacllocvt. Samuel Holland submitted fold. |
| 37 | I wrote a new inflate (zip/zlib/gzip decompression) implementation in |
| 38 | compress.c, and still need to do a corresponding deflate (compression-side) |
| 39 | and plug them into gzip and zip and so on. (Right now it does zcat.)</p> |
| 40 | |
| 41 | <p>Several commands (vmstat, login, du, vconfig, mountpoint, free, chroot, |
| 42 | cut, touch, modinfo, expand) predate the "pending" directory, and are thus |
| 43 | in other directories but still need cleanup. Of these, vmstat got some |
| 44 | work this time (which would be much easier other vmstat implementations |
| 45 | documented what their output actually meant).</p> |
| 46 | |
| 47 | <p><b>Upgrades:</b> Ifconfig grew /prefix netmask support (ala 1.2.3.4/24). Grep now has -zZ to |
| 48 | handle null terminated data, cksum grew -H for hex output. Upgraded od so the |
| 49 | fields align better when producing multiple output types. Help has -a and -h |
| 50 | options (all commands, html output). |
| 51 | Bugfix to blkid building for a 32 bit target. The date command can actually |
| 52 | set dates now. The O_NOFOLLOW compile time probe didn't work with cross |
| 53 | compiling, so it's back to an #ifdef test in portability.h. Nathan McSween |
| 54 | sent in a bugfix to od and a portability fix in the common library code. |
| 55 | Ashwini Sharma spotted a bug in pidof -o, and added verbose (-v) options |
| 56 | to mkdir and ln, and suggested killall should have an -s option and |
| 57 | allow -l to take zero arguments. Ashwini Sharma and Felix Janda upgraded |
| 58 | tftpd. Fixed dumpleases still using toynet.h after |
| 59 | that was removed. Corrected killall return code and error reporting. |
| 60 | Isacc Dunham fixed bugs all over the tree, did cleanup on a bunch of |
| 61 | pending commands (getty, ftpget, init, openvt, modprobe...), and clarified |
| 62 | find's help text. Tom Sparrow ran three different static analyzers on |
| 63 | the code, which resulted in a few cleanups. The peek()/poke() functions |
| 64 | now use "volatile" to prevent broken compiler "optimizations" to do with |
| 65 | aliasing.</p> |
| 66 | |
| 67 | <p><b>Build stuff:</b> Each FOR_xxxx macro now has a complementary CLEANUP_xxxx macro, so you |
| 68 | can put multiple commands with different command line options in the same |
| 69 | .c file, so they can share infrastructure outside of lib. (This let the |
| 70 | bunzip logic move out of lib into bzcat.c.) See XXX for example. |
| 71 | i |
| 72 | <p>The headers #included in toys.h are now grouped by standard, and headers |
| 73 | not listed in Posix or LSB were moved to portability.h. The old xregcomp.h |
| 74 | was folded into lib.h because it's posix (and supporting oddball uClibc |
| 75 | configurations isn't as important as it once was).</p> |
| 76 | |
| 77 | <p>Regression tested against Ubuntu 8.04 to fix up bit-rot in defconfig |
| 78 | build on older systems. (We depend on Posix-2008, but not necessarily |
| 79 | the absolute latest build environment.)</p> |
| 80 | |
| 81 | <p><b>In lib</b>: lib/xwrap.c added xgetpwnam(), xchroot(), and lib/lib.c now has names_to_pid(). |
| 82 | xsetuid() was replaced with xsetuser() which takes a struct passwd |
| 83 | and sets both gid and uid, mkpathat() got factored out into a library command, |
| 84 | get_int_value() became atolx_range(), and |
| 85 | xmsprintf() is now just xmprintf(). The bunzip2 logic moved from lib into |
| 86 | bzcat.c.</p> |
| 87 | |
| 88 | <p><b>Documentation</b>: new <a href=help.html>help page</a> with the |
| 89 | help text for all the defconfig commands, using the new help -ah output. |
| 90 | The <a href=code.html>source code walkthrough</a> now says more about |
| 91 | #including header files, and how the generated/* directory works. The |
| 92 | <a href=design.html>design page</a> has some new paragraphs about trading |
| 93 | of different kinds of simplicity, and why comments aren't a substitute for |
| 94 | good code. The README no longer trails off into obvious unfinished confusion |
| 95 | at the end. Each page on the website should now have its own title.</p> |
| 96 | |
Rob Landley | 7866350 | 2013-11-19 09:44:48 -0600 | [diff] [blame] | 97 | <hr><b>November 18, 2013</b> |
| 98 | <blockquote><p>"Space," it says, "is big. Really big. You just won't believe how vastly, hugely, mindbogglingly big it is. I mean, you may think it's a long way down the street to the chemist's, but that's just peanuts to space." - |
| 99 | The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 100 | |
Rob Landley | 4d886d6 | 2014-03-08 19:26:33 -0600 | [diff] [blame] | 101 | <p><a href=downloads/toybox-0.4.7.tar.bz2>Toybox 0.4.7</a> is based on |
Rob Landley | 7866350 | 2013-11-19 09:44:48 -0600 | [diff] [blame] | 102 | <a href=http://landley.net/hg/toybox/shortlog/1122>commit 1122</a>.</p> |
| 103 | |
| 104 | <p>New commands: Brad Conroy submitted blkid. Elie De Brauwer submitted |
| 105 | reboot, halt, and poweroff. Strake's nl got cleaned up and promoted from |
| 106 | pending to posix. In addition, the existing chvt and vconfig got some |
| 107 | cleanup.</p> |
| 108 | |
| 109 | <p>That said, I haven't nearly kept up with the flood of new commands going |
| 110 | into pending: Ashwini Sharma's team submitted |
| 111 | dd, dumpleases, traceroute, top, useradd, groupadd, mkpasswd, tftpd, and |
| 112 | an fsck wrapper (with no filesystem drivers yet). Isaac Dunham sent in cpio.</p> |
| 113 | |
| 114 | <p>Bugfixes: Jeroen van Rijn added a user count to uptime. Elie De Brauwer |
| 115 | added -e to watch, removed a memory leak, and fixed a terminal size problem. |
| 116 | William Haddon made xargs call its command line once even with blank input |
| 117 | (the standard is vague, but builds expect it), and fixed an off by one bug |
| 118 | where grep didn't malloc enough space with -E (leading to a segfault). |
| 119 | I fixed a glitch in bunzip2 (same one as went into busybox since they're using |
| 120 | the code I wrote), in od to fix -t co, -J, and -c options. Add uname -o as a |
| 121 | synonym for -s. Build fix to never use $CC without prefixing it with |
| 122 | $CROSS_COMPILE (since $HOSTCC could be different). Anca Emanuel spotted |
| 123 | a typo in the web page.</p> |
| 124 | |
| 125 | <p>The compile-time command line option parsing got rewritten (ported from |
| 126 | bash to C), which should speed up builds a bit and allow code controlled by |
| 127 | --longopts to drop out properly when disabled in the configuration. Terminal |
| 128 | querying got refactored. Patch's -x option is now more informative (a |
| 129 | debug thing if you're trying to figure out why a patch didn't apply). |
| 130 | The "toynet.h" file got folded into toys.h since musl supports it and |
| 131 | micromanging uClibc options isn't very interesting anymore. The test suite |
| 132 | now uses scripts/single.sh when testing a single command.</p> |
| 133 | |
Rob Landley | 5cab994 | 2013-09-18 10:50:38 -0500 | [diff] [blame] | 134 | <hr><b>September 17, 2013</b> |
| 135 | <blockquote><p>"Think of a number," said the computer, "any number." |
| 136 | Arthur told the computer the telephone number of King's Cross railway |
| 137 | station passenger inquiries, on the grounds that it must have some function, |
| 138 | and this might turn out to be it. - The Hitchhiker's Guide to the Galaxy</p> |
| 139 | </blockquote> |
| 140 | |
| 141 | <p><a href=downloads/toybox-0.4.6.tar.bz2>Toybox 0.4.6</a> is based on |
| 142 | <a href=http://landley.net/hg/toybox/shortlog/1068>commit 1068</a>.</p> |
| 143 | |
| 144 | <p>This release adds |
| 145 | several new commands: Felix Janda wrote paste and fallocate, Kyungwan Han |
| 146 | submitted eject, Strake contributed grep, Ashwini Sharma added pmap (and |
| 147 | a testsuite entry for grep), Lukasz Skalski sent pwdx, Isaac Dunham posted |
| 148 | acpi, and I did timeout and umount.</p> |
| 149 | |
| 150 | <p>The ls command now has a --color=auto option (suggested by Rich Felker). |
| 151 | The multiplexer now has a --help option so you can say "./toybox --help blah" |
| 152 | instead of using the built-in "help" command. (Which is a shell built-in. |
| 153 | Try it on your command line, it's like man for shell builtins. But a certain |
| 154 | other project has conditioned people to expect --help, so...) I forget who |
| 155 | heehooman at gmail is but they pointed out unshare needed PID and UID |
| 156 | namespace support.</p> |
| 157 | |
| 158 | <h3>Pending</h3> |
| 159 | |
| 160 | <p>A lot of new commands in toys/pending, to the point the next release should |
| 161 | probably just focus on cleanup and review of this backlog. We've got klogd, |
| 162 | dhcp, dhcpd, watch, route, and ps from |
Rob Landley | d277414 | 2013-10-04 14:32:39 -0500 | [diff] [blame] | 163 | Ashwini Sharma (and an fsck wrapper but no fsck.fstype engines yet), |
Rob Landley | 5cab994 | 2013-09-18 10:50:38 -0500 | [diff] [blame] | 164 | syslogd, pgrep, and pkill from Madhur Verma, netstat by Ranjan Kumar, |
| 165 | test by Felix Janda, lspci by Isaac Dunham, nl, su, and renice by strake (I.E. |
| 166 | M. Farkas-Dyck), and sysvinit by Kyungwan Han.</p> |
| 167 | |
| 168 | <p>Some cleanup work on existing pending commands that aren't |
| 169 | ready to promote yet: I did a few more rounds on ifconfig |
| 170 | and Isaac Dunham's did several cleanups to xzcat, Felix Janda cleaned up |
| 171 | logger and syslogd...</p> |
| 172 | |
| 173 | <p>Also some cleanup work on commands that predate the pending directory, |
| 174 | but weren't quite polished when they went in, most prominently du, |
| 175 | expand, and touch.</p> |
| 176 | |
| 177 | <h3>Infrastructure</h3> |
| 178 | |
| 179 | <p>The new scripts/single.sh builds a standalone command without the |
| 180 | multiplexer, although not all commands can be built that way yet (NEWTOY yes, |
| 181 | OLDTOY no) and the space savings aren't anything to write home about. (If a |
| 182 | command needs the option parsing logic at all, it needs all of it.) If |
| 183 | you're curious, you can do:</p> |
| 184 | |
| 185 | <blockquote><pre> |
| 186 | make defconfig |
| 187 | make |
| 188 | mkdir singles |
| 189 | for i in $(./toybox) |
| 190 | do |
| 191 | echo $i |
| 192 | PREFIX=singles/ scripts/single.sh $i || break |
| 193 | done |
| 194 | </pre> |
| 195 | <p>(And then wait a long time and watch almost half the builds fail.)</p> |
| 196 | </blockquote> |
| 197 | |
| 198 | <p>There is now libbuf analogous to toybuf, another global 4k buffer this |
| 199 | time for use by lib/ code instead of command code.</p> |
| 200 | |
| 201 | <p>The lib directory got split up a bit, lib/pending.c contains functions |
| 202 | not yet used by anything outside of toys/pending/*, and lib/xwrap.c contains |
| 203 | functions that wrap other functions and handle failures (via error_exit). |
| 204 | This leaves lib/lib.c containing actual new functions.</p> |
| 205 | |
| 206 | <p>General improvements and bug fixes to argument parsing. The [-abc] exclude |
| 207 | logic should now clear arguments slots when disabling options. Bare --longopts |
| 208 | should work now and be able to report errors using their name, the new ; |
| 209 | option allows optional arguments to longopts only suppliable with = (I.E. |
| 210 | --color and --color=auto but not --color auto).</p> |
| 211 | |
| 212 | <p>I'm gradually weaning the code off of itoa()/utoa() because sprintf |
| 213 | does this already. In this case "simple" probably means "let libc do it |
| 214 | for us".</p> |
| 215 | |
| 216 | <p>Rewrote for_each_pid_with_name_in() and renamed it to just names_to_pid(). |
| 217 | It shouldn't get confused trying to compare absolute and relative paths quite |
| 218 | so much anymore.</p> |
| 219 | |
| 220 | <p>lib/llist.c grew a new dlist_pop() function for removing a doubly |
| 221 | linked list entry while maintaining a circular list; tail and patch are |
| 222 | using it now.</p> |
| 223 | |
| 224 | <p>The musl guys suggested a new optimization flag |
| 225 | (-fno-asynchronous-unwind-tables) |
| 226 | that shaves about 10% off the binary size by removing a C++ism that crept |
| 227 | into gcc's idea of C. While I don't normally try to micromanage the compiler, |
| 228 | "-fstop-being-stupid" is a thing you have to hit gcc with from time to time.</p> |
| 229 | |
| 230 | <h3>Bugfixes</h3> |
| 231 | |
| 232 | <p>Felix Janda and I did a largeish rewrite of tail to |
| 233 | finally make it work right (we think). Still need to implement tail -f |
| 234 | someday (the tricky bit is making -f follow multiple files at once). |
| 235 | Felix also reported a bug in xpidfile.</p> |
| 236 | |
| 237 | <p>Juhani Haverinen pointed out that |
| 238 | python 3 doesn't work with config2help.py, so the detection logic looks |
| 239 | for python2 (until I get around to rewriting that in C). Elie De Brauwer |
| 240 | then fixed our first attempt at this, and also fixed uname's help string.</p> |
| 241 | |
| 242 | <p>Ashwini Sharma |
| 243 | pointed out the build was making a FLAG_ macro for " " which broke some |
| 244 | configurations. (That's a control character, not a command line option.)</p> |
| 245 | |
| 246 | <p>Jacek Bukarewicz pointed out a bug in chdir permission handling, and |
| 247 | a way to make env segfault. Both should be fixed now.</p> |
| 248 | |
| 249 | <p>The new function xexec_optargs() |
| 250 | replaces calls to xexec(toys.optargs) to avoid freeing and reusing optargs |
| 251 | during option parsing screwing stuff up (such as netcat's exec mode).</p> |
| 252 | |
| 253 | <p>The stat command's %a output was padded with leading zeroes, which |
| 254 | didn't match anybody else's behavior and thus made the test suite hiccup |
| 255 | between TEST_HOST and testing toybox. (If you go "TEST_HOST=1 scripts/test.sh |
| 256 | command" it sanity checks the tests against the host implementation.)</p> |
| 257 | |
| 258 | <p>Last release, "mkdir sub/sub && chmod 007 sub/sub && rm -rf sub" didn't |
| 259 | delete sub and didn't exit with an error either. Neither was correct, rm |
| 260 | should now be fixed.</p> |
| 261 | |
| 262 | <p> |
Rob Landley | 49f8d6f | 2013-07-26 13:04:21 -0500 | [diff] [blame] | 263 | <hr><b>July 26, 2013</b> |
| 264 | <p>Georgi Chorbadzhiyski maintains a <a href=https://github.com/gfto/toybox>git |
| 265 | mirror</a> of the repository on github, automatically updated from the |
| 266 | mercurial every 6 hours. The mirror is read only, but you can generate patches |
| 267 | against it and post them to the list.</p> |
Rob Landley | e566f3a | 2013-06-16 20:02:38 -0500 | [diff] [blame] | 268 | |
Isaac Dunham | c810f9f | 2013-07-06 11:26:15 -0500 | [diff] [blame] | 269 | <hr><b>July 2, 2013</b> |
| 270 | <blockquote><p>"Time is an illusion. Lunchtime doubly so." "Very deep. You |
| 271 | should send that in to the Reader's Digest. They've got a page for people |
| 272 | like you." - |
| 273 | The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 274 | |
| 275 | <p><a href=downloads/toybox-0.4.5.tar.bz2>Toybox 0.4.5</a> is based on |
| 276 | <a href=http://landley.net/hg/toybox/shortlog/941>commit 941</a>. It adds |
| 277 | uuencode and uudecode from Erich Plondke, and enables Luis Morales' "who" by |
| 278 | default. Felix Janda and I cleaned up last year's "stat" submission and |
| 279 | enabled it. Ivo van Poorten added "groups". |
| 280 | Andre Renaud added "lsusb". I implemented "split", "pivot_root", and "mv". |
| 281 | </p> |
| 282 | |
| 283 | <p>The "help" command is implemented differently now (lib/help.c) and |
| 284 | each command can now understand --help (including both "toybox --help" |
| 285 | and "toybox --help command" in the multiplexer).</p> |
| 286 | |
| 287 | <p>The "pending" directory has several commands (find, xzcat, nbd-client, |
| 288 | logger, expr) which work but are not enabled by default pending further cleanup. |
| 289 | Ifconfig is enabled, but still in pending because it's only 2/3 cleaned up. |
| 290 | (It's an awkward halfway state but I'm not holding up the release for it.)</p> |
| 291 | |
| 292 | <p>I'm <a href=cleanup.html>documenting the cleanups</a> to teach |
| 293 | more people to do it, but the writeups aren't caught up yet. The |
| 294 | <a href=roadmap.html>roadmap</a> also got updated a bit with further analysis |
| 295 | of other projects, and the README and about pages got updated.</p> |
| 296 | |
| 297 | <p>Fixed _another_ "ls -C" segfault when terminal size can't be detected, |
| 298 | condensed the ls help text to fit on one page, implented --color, and taught |
| 299 | -l to print the major, minor numbers when showing block/char devices. |
| 300 | Argument parsing now handles "--" properly (to end option checking), |
| 301 | and the infrastructure can now handle bare --longopts that have no |
| 302 | corresponding short option (both were implemented before but didn't work). |
| 303 | Fixed an old bug in "patch", chmod grew -f, who grew -a. Isaac Dunham |
| 304 | fixed "-" vs "_" handling in modinfo, added a "firmware" output |
| 305 | field, added -b and -k support, and taught it that the ".ko" extension means |
| 306 | to look for the file at the specified path instead of under /lib. Felix Janda |
| 307 | moved file permission display code to lib so ls and |
| 308 | stat could share it. Ashwini Sharma spotted a bug in xabspath when the |
| 309 | last path component exists but we haven't got permissions to open it |
| 310 | (ala readlink -f /dev/sda as a normal user). |
| 311 | </p> |
| 312 | |
| 313 | <p>In the build infrastructure, scripts/findglobals.sh finds leaked global |
| 314 | variables. (Leaked means they aren't part of the global union: Other than glibc |
| 315 | debris, toybox should define "this", "toy_list", "toybuf", and "toys", and |
| 316 | that's it; the rest add memory footprint to every command for the benefit of |
| 317 | just one command; use GLOBALS() to stick 'em in the union.) Static linking |
| 318 | against libraries other than the host's libc now applies to feature probes |
| 319 | for unshare and such. Neuter stupid internationalization support that makes |
| 320 | various host "sort" commands put things in an order other than alphabetical |
| 321 | (breaking the multiplexer's binary search on command names). |
| 322 | |
| 323 | <p>You should now be able to build from a source control snapshot on a build |
| 324 | system that hasn't got python: if you disable CONFIG_TOYBOX_HELP. (The |
| 325 | release tarballs ship generated/help.h, but it's not in source control. |
| 326 | Eventually I should rewrite that python script in C.)</p> |
| 327 | </p> |
| 328 | |
| 329 | <p><b>LICENSE TWEAK</b>: After <a href=http://lists.landley.net/pipermail/toybox-landley.net/2013-March/000794.html>discussion</a> on the mailing list the "2 clause |
| 330 | BSD" <a href=license.html>license</a> got slightly simplified so the first |
| 331 | paragraph now says:</p> |
| 332 | |
| 333 | <blockquote><p>Permission to use, copy, modify, and/or distribute this |
| 334 | software for any purpose with or without fee is hereby granted.</p></blockquote> |
| 335 | |
| 336 | <p>It used to continue "provided that the above copyright notice and this |
| 337 | permission notice appear in all copies", but A) what's the point? B) does "all |
| 338 | copies" mean binaries, or just source code, or what? C) lots of projects |
| 339 | that consider BSD and GPL compatible have <a href=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/crypto/aes_generic.c>files with |
| 340 | both license notices</a> on them (sometimes at <a href=http://git.busybox.net/busybox/tree/shell/ash.c>opposite ends of the file</a> to make the conflict |
| 341 | less obvious) because "all copies must include this function" would violate |
| 342 | the GPL but "all copies must include this magic text blob" somehow don't?</p> |
| 343 | |
| 344 | <p>I don't want to have to care about this anymore. The tweaked version is more |
| 345 | or less public domain with a liability disclaimer, but we're still calling it |
| 346 | BSD (sometimes "0 clause BSD") to avoid explaining.</p> |
| 347 | |
Rob Landley | 6f5ef6f | 2013-03-21 20:21:12 -0500 | [diff] [blame] | 348 | <hr><b>March 21, 2013</b> |
| 349 | <p>Video of my ELC talk |
Rob Landley | e566f3a | 2013-06-16 20:02:38 -0500 | [diff] [blame] | 350 | "<a href=http://youtu.be/SGmtP5Lg_t0>Why is Toybox?</a>" |
Rob Landley | 6f5ef6f | 2013-03-21 20:21:12 -0500 | [diff] [blame] | 351 | is up on youtube. Related materials include the |
| 352 | <a href=http://landley.net/talks/celf-2013.txt>talk outline</a> and an |
| 353 | <a href=/aboriginal/about.html#selfhost>android self-hosting writeup</a>.</p> |
| 354 | |
Rob Landley | e566f3a | 2013-06-16 20:02:38 -0500 | [diff] [blame] | 355 | <p>[Updated June 4] The following links jump to specific topics in the video. (Sorry about |
| 356 | the ads, it's The Linux Foundation.)</p> |
| 357 | |
| 358 | <ul> |
| 359 | <li>0m29s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=0m29s>The smartphone is replacing the PC</a></li> |
| 360 | <ul> |
| 361 | <li>4m22s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=4m22s>Software needed to become self-hosting</a></li> |
| 362 | <li>6m20s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=6m20s>Do we care if android or iphone wins?</a></li> |
| 363 | </ul> |
| 364 | <li>9m45s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=9m45s>Android not vanilla: oppose or accept?</a></li> |
| 365 | <ul> |
| 366 | <li>11m30s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=11m30s>Open source can't do User Interfaces</a></li> |
| 367 | </ul> |
| 368 | <li>15m09s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=15m09s>Android is not copyleft: oppose or accept?</a></li> |
| 369 | <li>18m23s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=18m23s>Security issues</a></li> |
| 370 | <li>21m15s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=21m15s>Solutions to the software problems</a></li> |
| 371 | <ul> |
| 372 | <li>22m55s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=22m55s>What toybox needs to be/do</a></li> |
| 373 | <li>28m17s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=28m17s>What is toybox?</a></li> |
| 374 | <ul> |
| 375 | <li>28m58s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=28m58s>Why toybox started...</a></li> |
| 376 | <li>37m50s <a href=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=37m50s>What does toybox actually implement?</a></li> |
| 377 | </ul> |
| 378 | </ul> |
| 379 | </ul> |
| 380 | </span> |
| 381 | |
| 382 | |
Rob Landley | 6f5ef6f | 2013-03-21 20:21:12 -0500 | [diff] [blame] | 383 | <hr><b>March 14, 2013</b> |
| 384 | <blockquote><p>"Ford, you're turning into a penguin. Stop it." - |
| 385 | The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 386 | |
| 387 | <p><a href=downloads/toybox-0.4.4.tar.bz2>Toybox 0.4.4</a> is based on |
| 388 | <a href=http://landley.net/hg/toybox/shortlog/813>commit 813</a>, adding |
| 389 | the "time" and "readahead" commands, plus some bugfixes.</p> |
| 390 | |
| 391 | <p>The "cp" command now implements the -s symlink option, plus bugfixes |
| 392 | getting various corner cases right as used in actual package builds. |
| 393 | "id -Gn root" should now print root's groups |
| 394 | instead of the current user's. Several build fixes so toybox builds under |
| 395 | Ubuntu 8.04 again (which is about as old a build environment as you |
| 396 | can expect to find posix-2008 features in).</p> |
| 397 | |
| 398 | <p>Unfinished commands have generally been moved to "toys/pending". |
| 399 | Everything else should "default y" to participate in make defconfig. |
| 400 | Several of those pending commands got some basic cleanup so allyesconfig |
| 401 | should at least compile (although defconfig is still what's useful).</p> |
| 402 | |
| 403 | <p>Significant roadmap updates, checking several other multicall binaries |
| 404 | (klibc, sash, sbase, s6...) to see what commands they include.</p> |
| 405 | |
Rob Landley | 9a69a92 | 2013-02-23 18:32:08 -0600 | [diff] [blame] | 406 | <hr><b>January 18, 2013</b> |
| 407 | <blockquote><p>This must be Thursday. I never could get the hang of Thursdays. - The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 408 | |
| 409 | <p><a href=downloads/toybox-0.4.3.tar.bz2>Toybox 0.4.3</a> is based on |
| 410 | <a href=http://landley.net/hg/toybox/shortlog/793>commit 793</a>. There |
| 411 | are now exactly 100 commands in defconfig (of a little over 220 on the |
| 412 | <a href=roadmap.html>todo list</a>).</p> |
| 413 | |
| 414 | <p>Elie De Brauwer added the rev command, cleaned up tac, implemented the -s |
| 415 | and -f flags for seq, added -v and -i to killall (and fixed killall not to |
| 416 | kill itself before finishing its pid list), and added to the test suite. |
| 417 | Felix Janda added -m to mkdir, pwd -L and -P, and more test suite entries.</p> |
| 418 | |
| 419 | <p>Rob Landley added the losetup command, and fixed the existing ls, cp, and |
| 420 | readlink commands. The segfault in ls |
| 421 | happened when it couldn't determine the screen size (last release changed the |
| 422 | default to -C and a screen size of 0 made column view unhappy), and cp got an |
| 423 | extensive rewrite bringing it up to date with the dirtree changes and fixing |
| 424 | a number of things it never did right in the first place. The xabspath() |
| 425 | code in the library now handles a symlink after ".." properly (and the test |
| 426 | suite checks for it).</p> |
| 427 | |
| 428 | <p>Infrastructure-wise the code is better about automatically setting the |
| 429 | error return code properly. Now error_msg() sets the exit code to 1 if it's |
| 430 | still defaulting to 0, and the global exit path does a fflush(NULL) with error |
| 431 | bit check rather than trying to be quite so granular about flushing. (That |
| 432 | means if we use printf() instead of xprintf() it still exits with the right |
| 433 | error code, it just doesn't end the program early on an output error.) |
| 434 | Minor bugfix so TOYBOX_DEBUG |
| 435 | doesn't always warn about the lack of suid bit when toybox is built with |
| 436 | at least one STAYROOT command. Bugfix for the option [grouping] logic |
| 437 | (and then further fixes to the error reporting pointed out by Ashwini Sharma). |
| 438 | dirtree_handle_callback() now has a prefix like the rest of the dirtree |
| 439 | functions. A lot of stuff doing manual path handling was switched to using |
| 440 | libc basename() (including, embarassingly, the basename command), which means |
| 441 | it now correctly detects "/trailing/slash/" which the previous code didn't.</p> |
| 442 | |
| 443 | <p>Also, last release included some accidentally checked in debug code that |
| 444 | disabled compiler optimization, so the binary size bloated a bit. It's back |
| 445 | to -Os by default now.</p> |
| 446 | |
Rob Landley | 8390c65 | 2012-12-19 09:16:45 -0600 | [diff] [blame] | 447 | <hr><b>December 15, 2012</b> |
| 448 | <blockquote><p>"The major difference between a thing that might go wrong and a |
| 449 | thing that cannot possibly go wrong is that when a thing that cannot possibly |
| 450 | go wrong goes wrong it usually turns out to be impossible to get at or repair." |
| 451 | </p><p>- The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 452 | |
| 453 | <p><a href=downloads/toybox-0.4.2.tar.bz2>Toybox 0.4.2</a> is based on |
| 454 | <a href=http://landley.net/hg/toybox/shortlog/749>commit 749</a> and is |
| 455 | just a resync. Linux 3.7 came out, meaning it's time to do an Aboriginal |
| 456 | Linux release, and that should use a stable version of toybox. So here's |
| 457 | a new stable version.</p> |
| 458 | |
| 459 | <p>The new commands are cut (from Jason Kyungwan Han), touch |
| 460 | (from Choubey Ji), expand (from Jonathan Clairembault, and he fixed a |
| 461 | bug in login), and rm (from Rob Landley). Felix Janda added UTF-8 |
| 462 | support infrastructure (for non-ascii character sets) with a config option. |
| 463 | Elie De Brauwer added tests for cat and sha1sum, and -so options to pidof. |
| 464 | The "ls" command defaults to -C (column view) now, and "readlink" now supports |
| 465 | -fenq.</p> |
| 466 | |
| 467 | <p>Portability work: toybox should now build against the musl C library, |
| 468 | and against older glibc versions (circa 2008, much before that and kernel |
| 469 | features we depend on start to drop out).</p> |
| 470 | |
| 471 | <p>The whole codebase got reindented from "one tab" to "two spaces" per |
| 472 | level. The option parsing logic now understands [groups] of commands (when more |
| 473 | than one in a group is selected it can switch the others off, or error out, |
| 474 | or other things). The error_exit() infrastructure can now longjmp back to an |
| 475 | earlier point instead of exiting. Each toys/* directory now has a README, |
| 476 | the first line of which is the fancy name menuconfig uses for the directory |
| 477 | (so no more hardwired directory list in scripts/genconfig.sh).</p> |
| 478 | |
| 479 | <p>Fixed a filehandle leak in getmountlist(). |
| 480 | Pass parent pointer to dirtree_add_node() so it can give error messages with |
| 481 | full path. The yesno() function now always reads from stdin and writes to |
| 482 | stderr (we can retry tty checking complexity once we've got commands needing |
| 483 | it).</p> |
| 484 | |
| 485 | <p>The open group broke their website so the |
| 486 | <a href=http://opengroup.org/onlinepubs/9699919799>old links</a> to POSIX 2008 |
| 487 | now <a href=http://pubs.opengroup.org/onlinepubs/9699919799>need to start with |
| 488 | pubs</a>. Some of the links in the tree have been updated, others haven't while |
| 489 | I wait to see if their webmaster notices and fixes it.</p> |
| 490 | |
| 491 | <p>(I note that the current rm implementation is not technically posix compliant |
| 492 | because the standard requires infinite recursion depth and the current |
| 493 | implementation uses one filehandle per level. I can add a config option |
| 494 | to do it Posix's way, which is more brittle and needs extra security checks, |
| 495 | but am waiting for somebody to complain first. The default "ulimit -n" is 1024 |
| 496 | filehandles, so drilling down over 1000 nested subdirectories).</p> |
| 497 | |
Rob Landley | 571b070 | 2012-11-13 16:13:45 -0600 | [diff] [blame] | 498 | <hr><b>November 13, 2012</b> |
| 499 | <blockquote><p>"Rule Six: The winning team shall be the first team that wins." |
| 500 | - The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 501 | |
| 502 | <p><a href=downloads/toybox-0.4.1.tar.bz2>Toybox 0.4.1</a> is based on |
| 503 | <a href=http://landley.net/hg/toybox/shortlog/691>commit 691</a>.</p> |
| 504 | |
| 505 | <p>Elie De Brauwer contributed usleep, Ashwini Kumar contributed du, and |
| 506 | Kyungwan Han contributed vconfig. Other new commands include switch_root and |
| 507 | md5sum, and the remaining shell wrappers are now proper commands (dos2unix, |
| 508 | unix2dos).</p> |
| 509 | |
| 510 | <p>The patch command now supports -l, and gethostname is now enabled by |
| 511 | default. The df command follows symlinks to get the actual device name. |
| 512 | Felix Janda added -m support to wc (for utf8).</p> |
| 513 | |
| 514 | <p>On the infrastructure side, the commands have now been grouped into |
| 515 | "posix", "lsb", and "other" subdirectories (for things required by Posix-2008, |
| 516 | the Linux Standard Base 4.1, and commands in neither). This affects menuconfig |
| 517 | and the actual source layout (toys/cp.c is now toys/posix/cp.c, and so on). |
| 518 | An android directory is planned (see the updated |
| 519 | <a href=roadmap.html#android>android roadmap analysis</a>).</p> |
| 520 | |
| 521 | <p>The FLAG_ macros for command option parsing and TT alias for the command's |
| 522 | global block are now automatically generated, commands should |
| 523 | #define FOR_commandname before #including <toys.h> to get the macros for that |
| 524 | command.</p> |
| 525 | |
| 526 | <p>An upgrade to the build infrastructure now allows commands with _ and - |
| 527 | in them, such as switch_root.</p> |
| 528 | |
| 529 | <p>Bugfixes: Avery Pennarun spotted a case where ls showed uid twice instead of |
| 530 | uid and gid, and that nice was using the wrong range of numbers. |
| 531 | The ls command also recursed inappropriately last time (not quite |
| 532 | properly converted for the dirtree changes last release), and now it's |
| 533 | fixed. Roy Tam pointed out a glitch in sh, and fixed df's percentage |
| 534 | calculation to match the POSIX spec. The kernel build didn't like our mktemp |
| 535 | and it does now. The wc command wasn't quite posix compliant (trailing spaces |
| 536 | break stuff). The ls command recursed inappropriately last time (not quite |
| 537 | properly converted for the dirtree changes last release), and now it's |
| 538 | fixed. The catv command wasn't displaying byte 255 correctly. Some lib |
| 539 | fixes (thinko in xpidfile). Fixed uname -m when running a 32 bit x86 binary |
| 540 | on an x86-64 host (it lies and says the system is i686, i586, or i486 depending |
| 541 | on what the toolchain that built the binary supported. This makes builds in |
| 542 | a 32 bit chroot on a 64 bit kernel break less.) The df command was checking |
| 543 | partitions in the wrong order (displaying undermounts instead of overmounts: |
| 544 | this used to work but some library code changed out from under it and it |
| 545 | wasn't updated to match until now). Felix Janda filled out the test suite |
| 546 | some more. The patch file creation logic got tweaked several times to |
| 547 | successfully apply more patches. Support for older (pre 2.10) glibc |
| 548 | versions was added to portability.h.</p> |
| 549 | |
| 550 | <p>Miscelaneous cleanups all around (mknod, sha1sum, logname), including a |
| 551 | rewrite of taskset to be less dependent on libc getting the headers right. All |
| 552 | the command headers should now point to the current relevant standards |
| 553 | document, where applicable.</p> |
| 554 | |
| 555 | <p>This news page had old news entries from before the relaunch moved into |
| 556 | a separate <a href=oldnews.html>oldnews</a> page.</p> |
| 557 | |
| 558 | <p>I forgot to create <a href=bin>static binaries</a> last time, but they're |
| 559 | back now.</p> |
| 560 | </span> |
| 561 | |
Rob Landley | 31103f9 | 2012-08-25 11:51:25 -0500 | [diff] [blame] | 562 | <hr><b>July 23, 2012</b> |
| 563 | <blockquote><p>"Ford", Arthur said. "There's an infinite number of monkeys |
| 564 | out here who want to talk to us about this script for Hamlet they've worked |
| 565 | out." - The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 566 | |
Rob Landley | 571b070 | 2012-11-13 16:13:45 -0600 | [diff] [blame] | 567 | <p><a href=downloads/toybox-0.4.0.tar.bz2>Toybox 0.4.0</a> is based on |
| 568 | <a href=http://landley.net/hg/toybox/shortlog/640>commit 640</a>.</p> |
Rob Landley | 31103f9 | 2012-08-25 11:51:25 -0500 | [diff] [blame] | 569 | |
| 570 | <p>The new <a href=status.html>status page</a> is calculated from |
| 571 | the roadmap info, and should be easier to keep up to date in future.</p> |
| 572 | |
| 573 | <p>Andre Renaud contributed od and modinfo. Elie De Brauwer contributed |
| 574 | taskset, bugfixes to cmp and tail, and tests for sort and tail. Kyungwan Han |
| 575 | contributed passwd. Gaurang Shastri contributed w. Ashwini Sharma spotted a |
| 576 | case where dirtree was adding extra slashes to a path.</p> |
| 577 | |
| 578 | <p>I rewrote od, cleaned up comm, documented the |
| 579 | <a href=code.html#lib_llist>llist</a> and |
| 580 | <a href=code.html#lib_dirtree>dirtree</a> infrastructure, added an -r option |
| 581 | to date (and fixed a bug where -u wouldn't override /etc/localtime), |
| 582 | fixed bugs in chmod +stw, fixed ls to show suid bits properly when the |
| 583 | corresponding executable bit wasn't set, and worked around a longstanding |
| 584 | glibc bug where static linking prevents stdout from automatically flushing |
| 585 | pending output on exit.</p> |
| 586 | |
Rob Landley | b1cc1d1 | 2012-06-25 06:42:24 -0500 | [diff] [blame] | 587 | <hr><b>June 25, 2012</b> |
| 588 | <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> |
| 589 | |
| 590 | <p><a href=downloads/toybox-0.3.1.tar.bz2>Toybox 0.3.1</a> is based on commit |
| 591 | <a href=http://landley.net/hg/toybox/shortlog/607>commit 607</a>. It's |
| 592 | mostly a bugfix release for ls -l (which was unhappy on targets other than |
| 593 | x86-64), plus a new "date" from Andre Renaud and rewritten chgrp/chown which |
| 594 | now support the full set of posix flags, plus a little work on the test |
| 595 | suite and some more header tweaks towards eventual compatability with the |
| 596 | musl libc.</p> |
| 597 | |
| 598 | <p>The todo list runneth over, but "release early, release often", so here |
| 599 | it is. The roadmap and documentation are a bit behind, and I've got ~40 |
| 600 | pending submissions to review. I need to catch up...</p> |
| 601 | </span> |
| 602 | |
| 603 | <hr><b>June 12, 2012</b> |
| 604 | <blockquote><p>"For instance, on the planet Earth, man had always assumed that |
| 605 | he was more intelligent than dolphins because he had achieved so much - the |
| 606 | wheel, New York, wars and so on - whilst all the dolphins had ever done was |
| 607 | muck about in the water having a good time. But conversely, the dolphins had |
| 608 | always believed that they were far more intelligent than man - for precisely |
| 609 | the same reasons." - The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
| 610 | |
| 611 | <p>It's well past time for <a href=downloads/toybox-0.3.0.tar.bz2>toybox 0.3.0</a>, |
| 612 | so here it is, based |
| 613 | on <a href=http://landley.net/hg/toybox/shortlog/595>commit 595</a>, and the |
| 614 | statically linked <a href=downloads/binaries>prebuilt binaries</a> should |
| 615 | actually be statically linked this time (thanks Ashwini Sharma for spotting |
| 616 | that).</p> |
| 617 | |
| 618 | <p>It's hard to figure out where to cut a release, because development |
| 619 | doesn't stop. "Long before now" is the obviuos answer, of course. |
| 620 | The project's maintainer also moved house during this development cycle, which |
| 621 | threw things off for a bit (so many boxes). Releases should hopefully be a bit |
| 622 | more frequent from here on.</p> |
| 623 | |
| 624 | <p>The big things Rob worked on this time were the new dirtree (directory |
| 625 | tree traversal) infrastructure, and a complete rewrite of ls using that |
| 626 | which should now implement all 26 posix options.</p> |
| 627 | |
| 628 | <p>Georgi Chorbadzhiyski added printenv, whoami, mkdir, mkfifo, chmod, chown, |
| 629 | chgrp, and uniq. He also added fraction and extension support to sleep (so if |
| 630 | you need a quarter-second sleep, it can do that now), and fixed a build bug |
| 631 | on slackware.</p> |
| 632 | |
| 633 | <p>Daniel Walter contributed a string to mode_t parser (in use by chmod and |
| 634 | mkdir -m). Ilya Kuzmich contributed comm. Elie De Brauwer added mountpoint, |
| 635 | vmstat, logname, login, and mktemp. Kevin Chase did some portability cleanups. |
| 636 | Pere Orga fixed some documentation.</p> |
| 637 | |
| 638 | <p>The "tac" and "clear" commands are now normal commands instead of shell |
| 639 | wrappers, and the header #includes have been cleaned up a bit to remove |
| 640 | deprecated functions and attempt to increase compatability with the bionic and |
| 641 | musl C libraries, "tail" should now use lseek() for large files, and "id" got |
| 642 | some cleanups and bugfixes.</p> |
| 643 | |
| 644 | <p>The new TOYBOX_FLOAT configuration option selects whether or not |
| 645 | to include floating point support (for embedded targets where that's |
| 646 | problematic).</p> |
| 647 | |
| 648 | <p>Several random bugfixes: unshare() might actually build portably now, |
| 649 | yes 'n' | cp -i should no longer bypass stdin and prompt via the tty, the |
| 650 | SUID support no longer drops permissions going through the toybox |
| 651 | multiplexer command, and a bugfix to xargs -0 means it should no longer |
| 652 | segfault. (I have a pending bug report about xargs not doing the full |
| 653 | posix whitespace handling that -0 obsoleted, but I'll deal with that next |
| 654 | release.)</p> |
| 655 | |
| 656 | <p>The build infrastructure is now automatically generating FLAG_ macros |
| 657 | for the options, but currently with the wrong names. Some more macro glue |
| 658 | is necessary, which I haven't quite figured out how to do yet.</p> |
| 659 | |
| 660 | <p>A defconfig toybox at the start of the $PATH has successfully built |
| 661 | Linux From Scratch (in my Aboriginal Linux project). The commands that |
| 662 | 'default n' in the config are often still broken, cleanup is ongoing. |
| 663 | (The new dirtree stuff broke several of them that haven't been converted |
| 664 | yet, but if I wait until everything works we won't have a release before |
| 665 | 1.0, so here's a checkpoint.)</p> |
| 666 | |
| 667 | |
Rob Landley | ed6ed62 | 2012-03-06 20:49:03 -0600 | [diff] [blame] | 668 | <hr><b>March 3, 2012</b> |
| 669 | |
| 670 | <blockquote><p>"They went unnoticed at Goonhilly, passed over Cape Canaveral |
| 671 | without a blip, and Woomera and Jodrell Bank looked straight through them. |
| 672 | Which was a pity, because it was exactly the sort of thing they'd been looking |
| 673 | for all these years."</p></p>- The Hitchhiker's Guide to the Galaxy.</p> |
| 674 | </p></blockquote> |
| 675 | |
| 676 | <p>Here's <a href=downloads/toybox-0.2.1.tar.bz2>toybox 0.2.1</a> based |
| 677 | on <a href=http://landley.net/hg/toybox/shortlog/512>commit 512</a>. This |
| 678 | time around, there are statically linked <a href=downloads/binaries>prebuilt |
| 679 | binaries</a> for various embedded targets.</p> |
| 680 | |
| 681 | <p>It's been a busy few weeks, almost entirely due to new contributors. (I |
| 682 | have not quite been keeping up.)</p> |
| 683 | |
| 684 | <p>Elie De Brauwer contributed free, uptime, swapon, swapoff, lsmod, mknod, |
| 685 | insmod, rmmod, and fixed a bug in basename. Andre Renaud contributed ls, ln, |
| 686 | realpath, and hostname. Andres Heck contributed pidof and killall. Daniel |
| 687 | Walter wrote kill and extended id. Timothy Elliott contributed tail and tests |
| 688 | for cmp. Frank Bergmann sent a warning fix. Bryce Fricke added -i to cp. |
| 689 | Nathan McSween pointed out an optimization. Georgi Chorbadzhiyski fixed |
| 690 | cross compiling to work more reliably.</p> |
| 691 | |
| 692 | <p>(My own contribution this time around was just tightening up other people's |
| 693 | code, a build fix to unshare, some random bugfixes, and so on. My only new |
| 694 | code this time around was writing a bash replacement for the existing python |
| 695 | bloat-o-meter.)</p> |
| 696 | |
| 697 | <p>Last time (the 0.2.0 release) included the first pass at an id command from |
| 698 | Tim Bird, env and basename from Tryn Mirell, cmp and head from Timothy Elliott, |
| 699 | more bugfixes from Nathan McSween and Elie De Brauwer, and Luis Felipe Strano |
| 700 | Moraes did a first pass at the who command plus other bugfixes and |
| 701 | optimizations.</p> |
| 702 | |
| 703 | <p>(For that release I did xargs, cal, truncate, unlink, nohup, tty, wc, link, |
| 704 | dirname, unshare, and various infrastructure tweaks, but it took me 3 months |
| 705 | and those guys did their stuff in a week or so.)</p> |
| 706 | |
Rob Landley | e258af3 | 2008-01-05 18:09:49 -0600 | [diff] [blame] | 707 | |
Rob Landley | d11ac70 | 2012-02-13 21:16:03 -0600 | [diff] [blame] | 708 | <hr><b>February 12, 2012</b> |
| 709 | <blockquote><p> |
| 710 | "for though it has many omissions and contains much that is apocryphal, or at |
| 711 | least wildly inaccurate, it scores over the older, more pedestrian work in two |
| 712 | important respects..."</p> |
| 713 | <p> - The Hitchhiker's Guide to the Galaxy</p></blockquote> |
| 714 | |
| 715 | <p>Here's the first BSD licensed release, |
| 716 | <a href=downloads/toybox-0.2.0.tar.bz2>toybox-0.2.0</a>, more a synchronization |
| 717 | point than anything particularly useful. 47 commands in a reasonably |
| 718 | ready-to-use state (what "make defconfig" builds), another ten or so partially |
| 719 | finished stubs ("make allyesconfig"), and several |
| 720 | patches pending on the mailing list I need to review and merge.</p> |
| 721 | |
| 722 | <p>More to come...</p> |
| 723 | |
Rob Landley | ce8a267 | 2012-02-02 07:27:05 -0600 | [diff] [blame] | 724 | <hr> |
| 725 | <p><b>November 15, 2011</b> - Back from the dead, Toybox is now under a 2 |
| 726 | clause BSD license, and aiming to become the default command line |
| 727 | implementation of Android systems everywhere.</p> |
| 728 | |
| 729 | <p>More to come...</p> |
| 730 | |
| 731 | <hr> |
Rob Landley | 589f5cd | 2010-01-05 10:41:52 -0600 | [diff] [blame] | 732 | |
Rob Landley | aba5170 | 2012-08-26 16:33:06 -0500 | [diff] [blame] | 733 | <p><a href=oldnews.html>Old news</a> from before the relaunch.</p> |
Rob Landley | 589f5cd | 2010-01-05 10:41:52 -0600 | [diff] [blame] | 734 | |
| 735 | <!--#include file="footer.html" --> |