Mercurial > hg > toybox
comparison www/news.html @ 1709:8d6203ecfb88 draft
0.5.2 release notes.
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 27 Feb 2015 08:13:24 -0600 |
parents | 44e86486a57d |
children |
comparison
equal
deleted
inserted
replaced
1708:3746a6d29d87 | 1709:8d6203ecfb88 |
---|---|
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>February 25, 2015</b> | |
12 <blockquote><p>"A common mistake that people make when trying to design | |
13 something completely foolproof is to underestimate the ingenuity of | |
14 complete fools."</p><p>- The Hitchhiker's Guide to the Galaxy.</p></blockquote> | |
15 | |
16 <p><a href=downloads/toybox-0.5.2.tar.gz>Toybox 0.5.2</a> | |
17 (<a href=/hg/toybox/shortlog/1702>commit 1702</a>) is out.</p> | |
18 | |
19 <p>New promoted commands: sed (finally fixed enough it builds Linux From | |
20 Scratch), printf (cleaned up and promoted), shred and | |
21 base64 (the Tizen guys wanted them), getenforce, setenforce, and chcon (android), | |
22 mix (promoted with fixes from Isaac Dunham), nsenter (from | |
23 Andy Lutomirski, merged into unshare).</p> | |
24 | |
25 <p>Elliott Hughes submited a bunch of patches to support Android (to | |
26 both toybox and Bionic libc, which he maintains). On toybox's end this | |
27 involved a lot of fixups to portability.[ch] and fixes to over a dozen | |
28 commands, plus several new ones. Other portability fixes included working | |
29 with buildroot's uclibc fork and building for nommu targets.</p> | |
30 | |
31 <p>The new "make change" target builds each toybox command as a standalone | |
32 binary. Rather a lot of commands that didn't build by themselves (mv depending | |
33 on cp and so on) were hit with a large rock until they built standalone. | |
34 This involved rewriting bits of option parsing, more elaborate dependency | |
35 generation, making each command have its own config | |
36 symbol and main() function (even when it's just a wrapper calling another | |
37 command's main()), and so on. Also, some commands can't be built standalone | |
38 at a conceptual level: "help" describes other enabled commands and "sh" | |
39 has a number of bulitin commands (cd, exit, set) that require the | |
40 multiplexer infrastructure, so "make change" filters them out.</p> | |
41 | |
42 <p>The mailing list's web archive is still screwed up. Dreamhost has | |
43 been trying to fix it since approximately September. There are | |
44 <a href=http://www.mail-archive.com/toybox@lists.landley.net/>two</a> | |
45 <a href=http://news.gmane.org/gmane.linux.toybox>other</a> less broken | |
46 archives, but neither has quite the same UI as mailman.</p> | |
47 | |
48 <h3>Bugfixes and tweaks</h3> | |
49 | |
50 <p>Cynt Rynt sent in tests for ifconfig, | |
51 Robert Thompson taught factor to accept whitespace separated arguments, | |
52 Hyejin Kim pointed out that some of mktemp's longopts were attached to | |
53 the wrong short options, | |
54 Luis Felipe Strano Moraes fixed a wrong free() call in bootchartd in pending. | |
55 Patches from Ashwini Sharma to make "df /dev/node" work, prevent du from | |
56 looping endlessly following symlinks, and to make expr.c | |
57 (in pending) understand == and regex matches. (Speaking of expr, it gets | |
58 priority groupings wrong but the bug was actually in the posix spec's | |
59 HTML conversion. They fixed the posix spec upstream for us. Still need | |
60 to fix the expr code, but it's in pending for a reason...)</p> | |
61 | |
62 <p>Some commands grew new option flags, such as cp --remove-destination | |
63 and touch -h.</p> | |
64 | |
65 <p>The parallel build has better error reporting now. When toybox needs to | |
66 re-exec itself to regain suid root permissions and hasn't got the suid bit, | |
67 it now gives the right error message ("not root" instead of "no such command"). | |
68 | |
69 <p>Added a test to "mount" to not mount the same device/directory combination | |
70 over itself (the OS catches this for block devices, but not for tmpfs). | |
71 Make blkid distinguish ext3 from ext4. Added catv back into cat (because | |
72 the Android guys wanted it, and they have historical usage on their side, | |
73 so...). Handle nanoseconds in touch.</p> | |
74 | |
75 <p>Fixed a segfault when CP_MORE was disabled (the resulting option flag list | |
76 no longer defined -d but still had it in option groups at the end). | |
77 Workaround for glibc redefining dirname() and basename() to random non-posix | |
78 semantics because gnu. (They could have created dirname_r() but didn't want | |
79 to.)</p> | |
80 | |
81 <p>Fix an ifconfig test that was preventing assigning an ipv4 address to | |
82 interface aliases. Several cleanup passes on hwclock but not quite | |
83 promoted out of pending yet.<p> | |
84 | |
85 <p>Fixed a wrong error message in rm (if you had a chmod 000 directory and | |
86 did rm -r on it without -f, after the prompt it would complain it was a | |
87 directory, which was not the problem).</p> | |
88 | |
89 <p>The gzip compression code now does "store only" output to stdout, for | |
90 what that's worth.</p> | |
91 | |
92 <p>Cleanup mountpoint and expand, and remove them from toys/pending/README | |
93 (a list of commands that predate the toys/pending directory but needed | |
94 another pass).</p> | |
95 | |
96 <h3>Library and infrastructure:</h3> | |
97 | |
98 <p>Reworked the option parsing infrastructure so more commands build | |
99 standalone (via scripts/single.sh or "make change"). The option flag bit | |
100 values are no longer packed, it leaves spaces where currently disabled | |
101 flags go, and you can #define FORCE_FLAGS so disabled flags aren't zeroed. | |
102 This allows multiple commands to more easily share infrastructure, even if | |
103 your current flag context is for a disabled command (switched off in config), | |
104 you can force them to stay on and as long as the flags read the same right | |
105 to left they'll have the same values.</p> | |
106 | |
107 <p>We've started removing use of strncpy() because it's a hugely broken | |
108 standard C function: the length is the maximum length to _append_, not | |
109 the size of the destination buffer. It memsets the remaining space it didn't | |
110 copy ala "memset(dest+strlen(dest), 0, len);" so | |
111 if you think len is the size of dest you're guaranteed to stomp memory off the | |
112 end). And if it runs out of space it won't null terminate because reasons. | |
113 (Meanwhile sprintf("%*s", len, str) is counting wide characters in your current | |
114 locale, so if you set a locale other than "C" it will also go past your | |
115 allocated buffer size. Whoever is maintining the C library standards is really | |
116 bad at strings.) | |
117 Instead we have xstrncat() which will error_exit() if src+dest+1 doesn't | |
118 fit in the buffer. (Because randomly truncating input data isn't necessarily | |
119 an improvement.) And there's always xmprintf().</p> | |
120 | |
121 <p>Similarly, strtol() doesn't return an error indicator on overflow, | |
122 you have to clear and then check errno. So new xstrtol() that cares | |
123 about overflow.</p> | |
124 | |
125 <p>The bionic and musl guys agree faccessat(AT_SYMLINK_NOFOLLOW) is not | |
126 supported, so stop using it.</p> | |
127 | |
128 <p>Fixed toy_exec() to detect when argc is in optargs, so we don't | |
129 need a separate xexec_optargs().</p> | |
130 | |
131 <hr><b>February 18, 2015</b> | |
132 <p>Dreamhost continues to be unable to make mailing list archives work, so | |
133 here's <a href=http://www.mail-archive.com/toybox@lists.landley.net/>another | |
134 list archive</a> with a less awkward interface than gmane.</p> | |
135 | |
136 <p>(Neither gives you the convenient historical monthly views of mailman, | |
137 but I still have hopes dreamhost will someday figure out what they're doing | |
138 wrong. They've only been trying since October. Last month they did a | |
139 <a href=http://www.dreamhoststatus.com/2015/01/14/discussion-list-hardware-maintenance/>hardware upgrade to fix a software problem</a>, and the stale | |
140 data loads much faster now, so that's something.)</p> | |
141 | |
142 <p>Update (Feb 19): the archive started updating again, by discarding | |
143 all the pending data. So there are now _two_ giant holes in Dreamhost's | |
144 web archive, from Dec 15-Jan 3, and then another hole from Jan 16-Feb 18. | |
145 The relevant messages are in both of the other archives. Here's hoping | |
146 the chronic archive constipation problem won't happen a sixth time.</p> | |
10 | 147 |
11 <hr><b>December 30, 2014</b> | 148 <hr><b>December 30, 2014</b> |
12 <p>Due to Dreamhost's <a href=http://landley.net/dreamhost.txt>ongoing</a> | 149 <p>Due to Dreamhost's <a href=http://landley.net/dreamhost.txt>ongoing</a> |
13 <a href=http://landley.net/dreamhost2.txt>inability</a> to make mailman | 150 <a href=http://landley.net/dreamhost2.txt>inability</a> to make mailman |
14 work reliably, I've added a link to a backup web archive at | 151 work reliably, I've added a link to a backup web archive at |
15 <a href=http://news.gmane.org/gmane.linux.toybox>gmane</a> to the nav bar | 152 <a href=http://news.gmane.org/gmane.linux.toybox>gmane</a> to the nav bar |
16 on the left.</p> | 153 on the left.</p> |
17 | 154 |
18 <p>You still subscribe to the list through | 155 <p>You still subscribe to the list through |
19 <a href=http://lists.landley.net/listinfo.cgi/toybox-landley.net>the first link</a>.</p> | 156 <a href=http://lists.landley.net/listinfo.cgi/toybox-landley.net>the first link</a>.</p> |
157 | |
158 <p>Update (January 27, 2015): they're <a href=https://twitter.com/landley/status/558428839462703104>still working on it</a>.</p> | |
20 | 159 |
21 <hr><b>November 19, 2014</b> | 160 <hr><b>November 19, 2014</b> |
22 | 161 |
23 <blockquote><p>"This time it was right, it would work, and no one would have to get nailed to anything." - The Hitchhiker's Guide to the Galaxy.</p></blockquote> | 162 <blockquote><p>"This time it was right, it would work, and no one would have to get nailed to anything." - The Hitchhiker's Guide to the Galaxy.</p></blockquote> |
24 | 163 |