comparison www/news.html @ 1387:a0d26c5e3271 draft

Release notes for 0.4.9.
author Rob Landley <rob@landley.net>
date Mon, 07 Jul 2014 07:32:56 -0500
parents 4ac301cfb047
children ebfdb34fa1ae
comparison
equal deleted inserted replaced
1386:1cbd4fb5c918 1387:a0d26c5e3271
5 into a single BSD-licensed executable that's simple, small, fast, 5 into a single BSD-licensed executable that's simple, small, fast,
6 reasonably standards-compliant, and powerful enough to turn Android into 6 reasonably standards-compliant, and powerful enough to turn Android into
7 a development environment. See the links on the left for details.</p> 7 a development environment. See the links on the left for details.</p>
8 8
9 <h2>News</h2> 9 <h2>News</h2>
10
11 <hr><b>July 7, 2014</b>
12 <blockquote><p>"This planet has - or rather had - a problem, which was this:
13 most of the people living on it were unhappy for pretty much of the time. Many
14 solutions were suggested for this problem, but most of these were largely
15 concerned with the movement of small green pieces of paper, which was odd
16 because on the whole it wasn't the small green pieces of paper that were
17 unhappy." - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
18
19 <p><a href=downloads/toybox-0.4.9.tar.bz2>Toybox 0.4.9</a> (<a href=/hg/toybox/shortlog/1385>commit 1385</a>) is out.</p>
20
21 <p><b>New commands</b> added to pending include:
22 lsattr, chattr, inotifyd, rfkill, sulogin, strings, makedevs,
23 killall5, and tar from Ashwini Sharma, arp from Kyungwan Han,
24 sysctl by Bilal Qureshi, partprobe from Bertold Van den Bergh,
25 host from Rich felker, and I did nbd-client and the first 2/3 of mount.</p>
26
27 <p>Finished cleanups (commands promoted out of pending):
28 sysctl, rfkill, strings, mkpasswd, makedevs, partprobe, killall5,
29 fallocate, and nbd-client.</p>
30
31 <p>(Along the way partial cleanups got made to: last, fold, lspci, ps,
32 bootchartd, init, fsck, telnetd, telnet, vconfig, toysh, iconv, useradd,
33 login, host, openvt, deallocvt, getty, tftpd, and modprobe. But there's
34 still more to do on all of those.)</p>
35
36 <p>This time around the <a href=bin>static binaries</a> are linked against
37 musl instead of uClibc. (That's why there's no sparc version, musl doesn't
38 support that target yet.)</p>
39
40 <p><b>Documentation:</b></p>
41
42 <p>The help text parser expects lower case "usage:" lines with
43 a blank line after them, so go through and regularize those. Expand the
44 "coding style" section in the docs and move it to design.html. (Not a show
45 stopper for incoming
46 contributions, just an explanation of some of the things I'll do to them
47 during cleanup.) The help text for the "toybox" command now includes
48 the shell script snippet to install symlinks to the toybox binary.</p>
49
50 <p>The <a href=cleanup.html>cleanup page</a> now has descriptions for the
51 full ifconfig cleanup series, among others.</p>
52
53 <p>The new toys/examples directory contains hello.c and skeleton.c. The first is
54 a simple hello world program in toybox style, the second is a much more
55 elaborate example program using showing how to use the command line option
56 parsing and how to provide multiple commands in the same C file.</p>
57
58 <p><b>Fixes</b>:</p>
59
60 <p>Fix od bug reported by Samuel Holland ("od -v -b" was appending the default
61 output type even though an output type was specified). Ashwini Sharma reported
62 bugs where readfile() was incorrectly freeing its buffer, and where toy_init()
63 was zeroing the wrong data because the field it was using to measure (rebound)
64 had moved (when I moved it back I added a comment why the field needs to be
65 there), fixed a segfault in the dhcp client, and made a 0 length read at
66 the start of password entry count as EOF. Make the "we are not root" test
67 in the init code show the help text. Posix implies that fflush() can return
68 success even when the stream's error bit is set, so call both fflush() and
69 ferror() from xprintf().</p>
70
71 <p>Isaac Dunham pointed out that bloatcheck couldn't deal with diff
72 implementations that only implement "unified diff" format, and that some
73 diff implementations can't handle nonseekable input (I.E. reading from
74 a pipe). Bugfix so "help -a" works again. Option parsing on nohup now stops
75 at first nonoption argument. Fix segfault in "which" if PATH wasn't set,
76 which was actually a bug in lib function find_in_path(). Made rm -rf of
77 chmod 000 directories actually remove them.</p>
78
79 <p>The build now passes the same $CFLAGS to the library probe as the final
80 build, because arch linux is so broken it provides different sets of
81 libraries for static and dynamic linking.</p>
82
83 <p>It turns out sprintf("%.123s", str) is counting characters, not bytes,
84 so globally enabling locale support opens stack smashing vulnerabilities.
85 So there's a new TOYFLAGS_LOCALE you set in toyflags when you want the
86 setup code to setlocale().</p>
87
88 <p><b>Upgrades:</b></p>
89
90 <p>Isaac Dunham extended cpio to archive unreadable empty files, and I taught it
91 to set uid/gid and timestamp when extracting archives. Isaac also
92 added tests for cpio, link, and du, added lspci -i, made the pci database
93 parsing skip # comment lines, merged logname and whoami into id.</p>
94
95 <p>Daniel Verkamp sped up md5sum about 30% with some loop unrolling, making
96 it actually smaller in the process. I added -b flags to md5sum and sha1sum
97 for "brief" output that's just the hash with no filename. (I'm aware other
98 implementations use that for MSDOS "binary" mode, and don't care.)</p>
99
100 <p>When building standalone commands (scripts/singleconfig.sh commandname),
101 the build now switches on all the sub-options of the command so we get
102 a standalone version with all the bells and whistles enabled.</p>
103
104 <p>Add -ds flags to date and document +FORMAT escapes. Add the shell NOP
105 command ":" as an alias for true (for toysh).</p>
106
107 <p>Add uClibc probe for iconv() and fallocate. (The fact it didn't always
108 build against uClibc is why fallocate wasn't enabled in defconfig before.)</p>
109
110 <p>The umount command now does an losetup -d on the device by default, so
111 we don't leak loopback devices. Bugfix to losetup so "losetup /dev/loop0
112 filename" actually works again.</p>
113
114 <p>Divya Kothari sent in test suite entries for ls, ln, rm, mv, printf, dd,
115 and renice. Then a second round for lsattr/chattr, mount, chmod, pgrep/pkill,
116 groupadd, groupdel, and useradd. Several of these uncovered bugs, still
117 working to fix them.</p>
118
119 <p>There are now free() functions for the predefined llist types and a
120 dlist_terminate() function to break doubly linked lists. The new
121 generic_signal() handler either sets "toys.signal" or writes a byte
122 to toys.signalfd with the signal number if signalfd isn't -1 (which it's
123 initialized to in toy_init).</p>
124
125 <p>The option parsing logic can now detect when a double fits in a long and
126 use the more precise type for floating point arguments (the FLOAT macro
127 contains the type used). The human_readable() function now just outputs
128 decimal kilo/mega/gigabytes (so when du -u says 5.0G it means 5.0 billion
129 bytes). The build infrastructure now notices duplicate commands (so if you
130 cp toys/pending/command.c toys/other/command.c and forget to delete the
131 first one, the build break is now more informative).</p>
10 132
11 <hr><b>April 20, 2014</b> 133 <hr><b>April 20, 2014</b>
12 <blockquote><p>And to this end they built themselves a stupendous supercomputer 134 <blockquote><p>And to this end they built themselves a stupendous supercomputer
13 which was so amazingly intelligent that even before the data banks 135 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 136 had been connected up it had started from "I think therefore I am" and got as