From: Rob Landley
+ ++The reason why it was published in the form of a micro sub meson electronic +component is that if it were printed in normal book form, an interstellar +hitchhiker would require several inconveniently large buildings to carry it +around in." - The Hitchhiker's Guide to the Galaxy
Toybox 0.6.0 +(git commit) +is out. (Yes, git. See the previous news entry.)
+ +Sorry for the unusually long gap between releases. Since last release Ye +Olde Project Maintainer traveled to japan twice and had two more "once +a century" floods at home. (Probably a coincidence.) Still catching up.
+ +I gave another State Of The Toybox talk +(video +outline), in which I +repeat my perennial +complaint +that Wikipedia[citation needed] +still +says +toybox was relicensed before its hiatus, when relicensing was why +the hiatus ended.
+ +Since Wikipedia[citation needed] seems unable to do the +most +basic +research on +this point, and has stuck to an incorrect sequence of events for years, +I've been gradually escalating my attempts to correct them. Toybox +came out of mothballs in November 2011 because it could be +relicensed. That's what opened up a new niche busybox wasn't already +filling with a 10 year headstart.
+ + +The article has plenty of smaller issues*, but +given that I gave an entire talk at Ohio LinuxFest in 2013 +(outline, +audio) on why I switched away from GPL for +my projects, that one bugs me.
+ +There's a new android menu in menuconfig, and rather a lot of Linux +Security Module support (Smack for Tizen from Xavier Roche and José Bollo, +and SELinux for Android from Elliott Hughes; see +the Security Blanket menu under global settings in menuconfig) has +trickled in, although there's still more to come.
+ +New commands: Added reset, nproc, ionice, and iorenice. +Elliott Hughes contributed xxd, runcon, +restorecon, load_policy, getenforce, setenforce, getprop, and setprop. +Promoted shred, nsenter, and hwclock.
+ +You can once again build catv now the flag infrastructure's been updated to +let it coexist with cat -v. +And on a long plane flight I wrote +hexedit, an interactive hex editor that implements the start of +cursor control infrastructure (for eventual use by less and vi and shell +command history and so on).
+ +New options: Added sed -E as a BSD-compatible synonym for -r. +Upgraded oneit with -r (restart), -3 (send exiting PID values to child), +and signal handling. Added -v option to timeout, -m to mknod, -u to shred, +-t to dmesg, and -123 to head and tail. Added implicit "." to grep -r without +any files to work on. Hyejin Kim requested prefix support for truncate -s. +Greg Hackman added -inum to find. +Jan Cybulski added the smack side of ls -Z support. Various patches also +added -Z to mkdir, mknod, and mkfifo. +Basic cp --preserve support went in, but not yet the xattr/LSM parts.
+ +The toybox command now has a --version option, +which uses "git describe" if available.
+ +Build infrastructure: +The "make change" target now saves the output of each failed standalone +command build in a .bad file, and "make defconfig" is quieter now.
+ +Paul Barker submitted a large patch changing command install paths so +"toybox can be installed alongside busybox without confusing +update-alternatives". (There's some argument over +what the right paths should be, and I'm waiting for +people to tell me what else needs fixing because I have no idea. I've +been symlinking /bin to /usr/bin since 2002 +for +historical reasons.)
+ +Docs: The repository link now goes to github, with another link +to the commit rss feed.
+ +Elliott Hughes updated the Android section of the roadmap +(and he would know). Redid bits of scripts/mkstatus.py to make updating +status.html easier, and the README is larger.
+ +More description of option parsing in code.html, which now describes the +FLAG_x macros, switching flag macro sets with FOR_newcommand, how +configuration zeroes flag macros and using FORCE_FLAGS to suppress the +zeroing of options shared between commands. Also added description of ";" +to make --longopts take an optional =value part, and more about TOYBOX_DEBUG +to check NEWTOY() option strings (otherwise a bad option string makes +lib/args.c obviously segfault, but doesn't explain why).
+ +Added a "Why 0BSD?" section to license.html when submitting zero clause bsd +to SPDX (according to the pending license spreadsheet, it's been approved for +SPDX 2.2).
+ +The old list of commands needing cleanup but not in pending was +removed from toys/pending/README and instead the issues were added +as TODO comments in the individual commands.
+ +Bugfixes: +Fixed mount -a segfaulting without -O (reported by Janus Troelsen), +and made it try a "become rw" ioctl() on the block device before falling +back to mounting read only (because Android expects that). +Fixed printf -- and printf ---. Lots of tweaks to ls -l spacing with +different options. Make touch -d and -t actually set time when you don't +specify nanoseconds. +Fixed a subtle bug where recursive calls (toybox commands that run other +toybox commands) weren't resetting all their state. (This manifested as +a "no }" error from "find | xargs sed", but could cause other problems.) +And David Halls reported another sed bug trying to compile libiconv (which +left extra \ at the start of lines in a generated shell script, breaking +the build). Output an error message for "cat /mnt".
+ +Kylie McClain reported that mktemp broke when $TMPDIR was set to an empty +string (which is not the same as unset), that install/find didn't support +numeric uid/gids, and that sort -z affects both input and output. +Isabella Parakiss fixed a printf.c bug. +David Halls fixed bugs in install -D and find -exec. Samuel Holland +fixed unshare -r. Hyejin Kim fixed makedevs with a count of 1, fold -w +range checking, an error path in scripts/mkflags.c, added -i to dhcpd, +and stopped su from prompting the root user for the new user's password. +Jan Cybulski spotted wrong indentation when combining ls -s and -i with -C and +-x. José Bollo fixed stat %G. Sameer Pradhan fixed a bug in mkfifo -Z.
+ +Elliott Hughes asked for a default SIGPIPE handler to disable +the signal handler bionic's dynamic loader installs (yes really). Still not +100% sure what the correct behavior is there. (Posix is +(actively unhelpful, but at least they're taking +years to +make up their mind. Elliott also sent patches to fix a typo in +useradd.test, add missing arguments to error_exit() calls and clean up +printf() format strings, fix an off by one error in human_readable(), +fix dmesg -c error reporting, fix a segfault in comma_scan where the option +was the last item in optlist (triggered by mount -o ro,remount), fix +hwclock -w, made ifconfig print lowercase MAC addresses (it was bothering +him), and make terminal_size() read the right environment variable +(LINES, not ROWS). And he suggested the test suite notice high command exit +values (corresponding to segfault or other signals).
+ +People are apparently using toys/pending commands, despite the police tape +and flashing lights, so added louder warnings to toys/pending/README. +Elliott Hughes fixed various problems with tar, dd, more, and top. +Hyejin Kim cleaned up syslogd and dumpleases. Isaac Dunham added hotplug +support to mdev. Yeongdeok Suh added RFC-3315 ipv6 support to dhcpd.
+ +I rewrote ps.c from scratch (in pending), but it's not ready for real use +yet.
+ +Portability: +On the portability front Bernhard Rosenkranzer fixed a problem where the +menuconfig code wouldn't compile in C99 mode. (This led to me documenting +the craptacular nature of kconfig in a README, and the plan to replace it +sometime before 1.0.) Some extra flags to shut up overzealous llvm warnings +were added (and have to be probed for because gcc complains about +arguments it doesn't recognize even when they switch stuff _off_ using +a standard syntax). Don't depend on malloc(0) to return non-null in ls. +David Halls fixed some mac/ios portability issues, +implying somebody's built at least part of toybox on a mac.
+ +Added basename_r() to lib/lib.c because the posix semantics for basename() +are stupid but what the gnu guys did to it was appalling. +Turns out bionic already had a basename_r(), but posix still doesn't. +Fixed it up in portability.h, but this +could break more stuff in future. (Correct fix is to lobby posix to add it, +which would probably take about 15 years...)
+ +Infrastructure: +The build now checks $LDFLAGS for linker-only flags, and allows the strip +command to fail (binflt toolchains provide a strip that doesn't work). +Since time.c uses floating point, added TOYBOX_FLOAT dependency in config.
+ +There's a lib/lsm.h defining varous inline functions for linux +security modules stuff, if (lsm_enabled()) should turn into a compile-time +constant 0 and let code drop out when TOYBOX_LSM_NONE selected, but +testing against CFG_TOYBOX_LSM_NONE or derived symbols is still useful +becuase when it _is_ enabled the probe turns into a system call you +don't want to repeat too much.
+ +Switched a bunch of commands from signal() to xsignal(). Factored out +xgetgrnamid() and xgetpwnamid() into xwrap.c. Make time.c depend on +TOYBOX_FLOAT (since it always uses float so shouldn't be available on +build targets without even software float). Added readfileat() to lib/lib.c.
+ +The dirtree infrastructure now passes in full flags for the old symlink +field, and the new DIRTREE_SHUTUP flag disables warnings if a file vanishes +out from under you during traverse. New dirtree_start() wrapper to +create dirtree root with only two arguments.
+ +The not-curses infrastructure introduced by hexedit mostly moved to +lib/interestingtimes.c.
+ + +Asterisk: such when +Tim contacted me (my blog says a couple days before nov 13, 2011, I.E. +11/11/11 not some specific day 2 months later) to ask if I wanted to work +on a new project he was proposing called +BentoBox +(because I used to do busybox, he'd forgotten toybox existed +until I brought it up). And don't ask me what "focuses not on compatibility +with its GNU counterparts" means when CP_MORE adds 7 non-posix options +and toys/other has 84 commands in neither posix nor LSB. I think they're +struggling to explain the difference having dismissed "licensing" as being +the reason it started up again after a long hiatus? The reason I don't think +GNU is special is there are a half-dozen other independent +implementations of the same unix command tools out there (AT&T, +BSD, Coherent, Minix, plan 9, busybox, toybox, and several more analyzed in +the roadmap, and that's ignoring the implementations +written for DOS or in assembly over the years). But I do care what +Linux From Scratch expects, and if it's +calling mv -v +then I impelement mv -v +even if posix hasn't got +it. And I don't know why "gnu counterparts" would describe this when +util-linux isn't a gnu package, nor are info-zip, e2fsprogs, kmod, less, +procps, shadow, sysklogd, vim, zlib, sudo, dhcpcd... + +Since android and tizen and openembedded @@ -18,7 +249,7 @@ than the mercurial repository, I bit the bullet and switched the project's repo to git. Georgi's mirror is now pulling from that.
-@@ -138,7 +369,7 @@ supported, so stop using it."A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
- The Hitchhiker's Guide to the Galaxy.
Fixed toy_exec() to detect when argc is in optargs, so we don't need a separate xexec_optargs().
-Dreamhost continues to be unable to make mailing list archives work, so here's another list archive with a less awkward interface than gmane.
@@ -155,7 +386,7 @@ web archive, from Dec 15-Jan 3, and then another hole from Jan 16-Feb 18. The relevant messages are in both of the other archives. Here's hoping the chronic archive constipation problem won't happen a sixth time. -Due to Dreamhost's ongoing inability to make mailman work reliably, I've added a link to a backup web archive at @@ -167,7 +398,7 @@ on the left.
Update (January 27, 2015): they're still working on it.
-@@ -246,7 +477,7 @@ close each supplied filehandle itself.)"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.
The printf-style escape parsing ("\n" and friends) got factored out into a new unescape() function.
-"There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss... Clearly, it is this second part, the missing, which presents the @@ -397,7 +628,7 @@ sort on the host broke in non-C locales.
Divya Kothari submitted tests for chmod, link, tar, bzcat, xzcat, zcat, and hostname. (And more, but that's all that's merged so far.)
-
July 7, 2014 +July 7, 2014
"This planet has - or rather had - a problem, which was this: most of the people living on it were unhappy for pretty much of the time. Many solutions were suggested for this problem, but most of these were largely @@ -519,7 +750,7 @@ bytes). The build infrastructure now notices duplicate commands (so if you cp toys/pending/command.c toys/other/command.c and forget to delete the first one, the build break is now more informative).
-
April 20, 2014 +April 20, 2014
And to this end they built themselves a stupendous supercomputer which was so amazingly intelligent that even before the data banks had been connected up it had started from "I think therefore I am" and got as @@ -605,7 +836,7 @@ of different kinds of simplicity, and why comments aren't a substitute for good code. The README no longer trails off into obvious unfinished confusion at the end. Each page on the website should now have its own title.
-
November 18, 2013 +November 18, 2013
@@ -642,7 +873,7 @@ The "toynet.h" file got folded into toys.h since musl supports it and micromanging uClibc options isn't very interesting anymore. The test suite now uses scripts/single.sh when testing a single command. -"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." - The Hitchhiker's Guide to the Galaxy.
September 17, 2013 +September 17, 2013
"Think of a number," said the computer, "any number." Arthur told the computer the telephone number of King's Cross railway station passenger inquiries, on the grounds that it must have some function, @@ -771,13 +1002,13 @@ delete sub and didn't exit with an error either. Neither was correct, rm should now be fixed.
-
July 26, 2013 +July 26, 2013
Georgi Chorbadzhiyski maintains a git mirror of the repository on github, automatically updated from the mercurial every 6 hours. The mirror is read only, but you can generate patches against it and post them to the list.
-
July 2, 2013 +July 2, 2013
"Time is an illusion. Lunchtime doubly so." "Very deep. You should send that in to the Reader's Digest. They've got a page for people like you." - @@ -856,7 +1087,7 @@ the GPL but "all copies must include this magic text blob" somehow don't?
or less public domain with a liability disclaimer, but we're still calling it BSD (sometimes "0 clause BSD") to avoid explaining. -
March 21, 2013 +March 21, 2013
Video of my ELC talk "Why is Toybox?" is up on youtube. Related materials include the @@ -891,7 +1122,7 @@ the ads, it's The Linux Foundation.)
-
March 14, 2013 +March 14, 2013
@@ -914,7 +1145,7 @@ should at least compile (although defconfig is still what's useful)."Ford, you're turning into a penguin. Stop it." - The Hitchhiker's Guide to the Galaxy.
Significant roadmap updates, checking several other multicall binaries (klibc, sash, sbase, s6...) to see what commands they include.
-
January 18, 2013 +January 18, 2013
This must be Thursday. I never could get the hang of Thursdays. - The Hitchhiker's Guide to the Galaxy.
Toybox 0.4.3 is based on @@ -955,7 +1186,7 @@ it now correctly detects "/trailing/slash/" which the previous code didn't.
disabled compiler optimization, so the binary size bloated a bit. It's back to -Os by default now. -
December 15, 2012 +December 15, 2012
"The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair." @@ -1006,7 +1237,7 @@ to do it Posix's way, which is more brittle and needs extra security checks, but am waiting for somebody to complain first. The default "ulimit -n" is 1024 filehandles, so drilling down over 1000 nested subdirectories).
-
November 13, 2012 +November 13, 2012
@@ -1070,7 +1301,7 @@ a separate oldnews page. back now. -"Rule Six: The winning team shall be the first team that wins." - The Hitchhiker's Guide to the Galaxy.
July 23, 2012 +July 23, 2012
@@ -1095,7 +1326,7 @@ corresponding executable bit wasn't set, and worked around a longstanding glibc bug where static linking prevents stdout from automatically flushing pending output on exit. -"Ford", Arthur said. "There's an infinite number of monkeys out here who want to talk to us about this script for Hamlet they've worked out." - The Hitchhiker's Guide to the Galaxy.
June 25, 2012 +June 25, 2012
"For a moment, nothing happened. Then, after a second or so, nothing continued to happen." - The Hitchhiker's Guide to the Galaxy.
Toybox 0.3.1 is based on commit @@ -1111,7 +1342,7 @@ it is. The roadmap and documentation are a bit behind, and I've got ~40 pending submissions to review. I need to catch up...
-
June 12, 2012 +June 12, 2012
"For instance, on the planet Earth, man had always assumed that he was more intelligent than dolphins because he had achieved so much - the wheel, New York, wars and so on - whilst all the dolphins had ever done was @@ -1176,7 +1407,7 @@ yet, but if I wait until everything works we won't have a release before 1.0, so here's a checkpoint.)
-
March 3, 2012 +March 3, 2012
"They went unnoticed at Goonhilly, passed over Cape Canaveral without a blip, and Woomera and Jodrell Bank looked straight through them. @@ -1216,7 +1447,7 @@ dirname, unshare, and various infrastructure tweaks, but it took me 3 months and those guys did their stuff in a week or so.)
-
February 12, 2012 +February 12, 2012
"for though it has many omissions and contains much that is apocryphal, or at least wildly inaccurate, it scores over the older, more pedestrian work in two @@ -1233,7 +1464,8 @@ patches pending on the mailing list I need to review and merge.
More to come...
-November 15, 2011 - Back from the dead, Toybox is now under a 2 +
November 15, 2011
+- Back from the dead, Toybox is now under a 2 clause BSD license, and aiming to become the default command line implementation of Android systems everywhere.