Mercurial > hg > toybox
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 |