Lines Matching +full:bare +full:- +full:cross +full:- +full:build
2 <!--#include file="header.html" -->
5 into a single BSD-licensed executable that's simple, small, fast,
6 reasonably standards-compliant, and powerful enough to turn Android into
11 <a name="24-10-2020" /><a href="#24-10-2020"><hr><h2><b>October 24, 2020</b></h2></a>
13 "We are now cruising at a level of two to the power of twenty-five thousand to
16 <p>- The Hitchhiker's Guide to the Galaxy</p>
22 <a href=downloads/toybox-0.8.4.tar.gz>Toybox 0.8.4</a>
28 qemu. (The vmlinux in each tarball is a vanilla linux-5.9 kernel built
32 more links. New command features include the <b>sed -s</b> flag,
33 <b>cpio --no-preserve-owner</b> now affects archive creation,
34 Elliott added <b>tar -I</b> and multi-type
35 <b>find -type a,b,c</b> support, Mark Salyzyn added <b>xargs -P</b> to
48 Plus the standalone "<b>make sh</b>" build understands MAYFORK now. It's
55 mkroot ("how do I build a working Linux system
56 with toybox"), cross compiling (how to get/setup the 2 compilers and
59 The "toybox --help" output now lists the project's web page (<a href=https://github.com/landley/toy…
64 command list output (and "kill -l") to measure the current the terminal width
100 Elliott fixed chmod -R
103 to read date's default output format, fixed a recent echo -e \0 regression,
104 changed cpio -p parsing to match a <a href=http://lists.landley.net/pipermail/toybox-landley.net/20…
109 <p>David Legault pointed out that unescape2() (and thus echo -e) wasn't handling
112 a build break if we assume glibc behaves consistently, which led to a bunch of
115 to an archive, and reported that --exclude wasn't working.
116 Peter McConalogue pointed out that cp/mv -i prompt should
123 Martin Stjernholm fixed <b>cp -P</b> to not follow symlinks and updated
125 Antoni Villalonga added more --long asiases to <b>chgrp/chown/rmdir</b>.
144 Rob switched dirtree_path() to a non-recursive implementation, and
147 read_password() now reads from tty device rather than stdin, and handles ctrl-c and ctrl-d, and
154 mkroot now only passes --no-preserve-owner to cpio (so initramfs files
155 belong to root rather than whichever user ran the build) when using toybox's
156 version, because the other one is brain-damaged and errors out not
165 Cleanup blkdiscard so lib/args.c parses the -o and -l numbers, which means
167 oneit now uses flag macros and mentions -rn in the help. demo-utf8towc
171 <a name="11-05-2020" /><a href="#11-05-2020"><hr><h2><b>May 11, 2020</b></h2></a>
181 <p>- The Hitchhiker's Guide to the Galaxy.</p>
184 <p>Despite everything <a href=downloads/toybox-0.8.3.tar.gz>Toybox 0.8.3</a>
190 (Some people were looking forward to <b>patch --fuzz</b> support too.)</p>
193 builds a bootable toybox-based Linux system using two source
196 ….landley.net/pipermail/toybox-landley.net/2020-April/011667.html>post with instructions</a> if you…
197 cross compilers for testing the various architectures. The self-contained
203 assignments are the names of scripts to run to build more
204 packages at the end of the build. I checked in an <a href=https://github.com/landley/toybox/blob/ma…
209 call the script directly, ala "scripts/mkroot.sh CROSS=sh4 LINUX=~/linux dropbear".)</p>
212 dir for UID 0, and creates /dev/fd and /dev/shm in devtmpfs. The build works
214 build bug where "make distclean" doesn't work in a "cp -sfR" symlink
220 The CROSS=all build announces each target in the title bar, puts
222 ctrl-c.
225 the old (now removed) scripts/cross.sh into the main script so
226 "make CROSS=armv7l LINUX=~/linux" is
227 literally just a call to "scripts/mkroot.sh CROSS=armv7l LINUX=~/linux" now.</p>
229 <p>As for <b>scripts/mcm-buildall.sh</b> building cross compilers,
230 of COURSE gcc 8.3 requires a different configuration to build the same
233 be used but prevents compile-time probes from detecting nommu,
234 and checks that the cross compiler completed before trying to build
238 <a href=https://github.com/richfelker/musl-cross-make/commit/5086175f2902>version</a>
239 of musl-cross-make with the top level Makefile
241 <a href=https://www.spinics.net/lists/linux-sh/msg56844.html>breaks the kernel
242 build</a>
243 and LINUX_VER = 4.19.90 because the default musl-cross-make config uses an
244 out-of-tree headers package for some reason (those who forget history are
248 (I've also <a href=http://lists.landley.net/pipermail/toybox-landley.net/2020-May/011673.html>test …
261 got a .config when you run it. (If you build and can't boot, your .config
267 <b>cal</b> highlight the current day, added -T to <b>cp</b>/<b>mv</b>,
268 did a lot of work on <b>lsattr</b>/<b>chattr</b> (including adding -p
269 and "chattr ="), added tar --absolute-names, taught <b>id</b> to
270 support numeric lookup and handle unknown groups, made -G show all
271 groups, and removed context= from -Z.
272 Rob added <b>patch -F</b> (fuzz factor) support and <b>help -u</b> (usage only),
273 taught <b>echo -e</b> about bash extensions like \uXXXX unicode escapes,
274 <b>netcat -L</b> no longer automatically includes stderr (new -E
276 <b>setsid</b> now uses -c (like the man page says) instead of -t, and added
277 -w (wait) and -d (detach from tty).
278 Andrew Ilijic added <b>ls -w</b>, removed trailing whitespace on output,
279 and added tests for -C and -x.</p>
311 Ethan Sommer fixed numerous small issues (including several build
316 <b>find -L -type -l</b> now finds dangling symlinks, extra #ifdefs in
320 <b>netcat -L</b> no longer accumulates zombie processes,
321 <b>sntp</b> now uses adjtimex instead of adjtime (to build on bionic).
327 Elliott fixed xargs -E, various things in modinfo,
328 added an error check to gzip when using zlib (which copies non-gzip data to
336 of its array in patch.c, removed the cpio --trailer option,
341 Jarno Mäkipää fixed utf8 support in cut -C, and cp --parents.
346 Denys Nykula fixed rm -i not to prompt for an empty "" argument.
349 Elliott switched <b>ls</b> to use the path-based functions now (which is racy,
359 <p><u>Build plumbing</u>:
360 The "make root CROSS=all" build announces each target in the title bar, puts
362 ctrl-c.</p>
367 The non-git version number I keep forgetting to update each release moved
369 Fixed a couple different errors in mkflags.c (one of which caused ls --color
381 standard toybox argument parsing for -v and -p.
382 Several commands (help, cp) had sub-options removed from menuconfig.
389 <p>Update roadmap to note that posix-2008 moved to a different URL (content
401 <p>Shrank the sed help from 150 lines to 90-ish.</p>
406 reports the first non-matching step. (This for example lets sh.test check
413 EVAL doesn't supply -- (you have to provide your own if you want that).</p>
424 because they (intentionally!) don't support --help.
428 <a name="18-10-2019" /><a href="#18-10-2019"><hr><h2><b>October 18, 2019</b></h2></a>
433 </p> <p>- The Hitchhiker's Guide to the Galaxy</p>
436 <p><a href=downloads/toybox-0.8.2.tar.gz>Toybox 0.8.2</a>
441 (<b>dnsdomainname</b> is hostname -d, <b>arch</b> is uname -m), but about
442 …a href=https://github.com/landley/mkroot>mkroot</a> got merged as a "make root" target (see Build),
443 …s <a href=http://lists.landley.net/pipermail/toybox-landley.net/2019-August/010845.html>hermetic b…
446 <p>The android-specific <b>getprop</b>, <b>setprop</b>, <b>start</b>, and <b>stop</b>
451 <p><u>Build</u>:
458 <p>The new "scripts/mcm-buildall.sh" convenience script builds cross
461 using <a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a>,
462 and a new scripts/cross.sh to easily cross compile for one or more targets
471 <p>Patrick Oppenlander fixed make -j (our make is a wrapper around
472 scripts/make.sh which was already doing a parallel build, but if you called
473 make with -j it wouldn't wait for make.sh to finish and the build broke).</b>
475 <p>Lots of fixes for the MacOS build.</p>
478 We upgraded <b>tar</b> to extract some older tarballs, <b>file</b> added -b and -s
486 <b>patch</b> ignores the -f -g# and --no-backup-if-mismatch options
488 ignores -P# (which requests parallel execution, maybe add it later but
490 --no-check-ceritificate and <b>gzip</b> ignore -n (again, we weren't doing
495 Eric Molitor implemented <b>nl</b> -v (with negative and zero starting values),
496 and fixed a MacOS compatibility issue in the build scripts.
497 Tom Cherry added <b>netcat</b> -U (UNIX domain socket support).
499 Ethan Sommer added ln -t and rmdir --ignore-fail-on-non-empty.
500 Elliott Hughes added <b>grep</b> -R, <b>killall</b> -w, tar --mode,
501 fixed <b>ls</b> -Z and spacing in -lZ and --full-time,
502 added <b>xargs</b> --max-args and removed xargs -I (which we never actually
505 added xargs -o and made -p read from /dev/tty, added <b>blkid</b> -s, SEC_TYPE for ext3,
508 display in <b>lsof</b>, added <b>pidof</b> -x (thus making the default behavior _not_
509 be -x).</p>
517 with 1 argument (implicit - as second argument reading from stdin).
521 <b>find</b> grew several new options (%Z, -true, -false, and -newerXY), <b>ln</b> added -T.
522 The argument to <b>mktmp</b> --tmpdir is now optional.</p>
525 The unshare probe bit-rotted so it was impossible to build <b>unshare</b>
531 (ln -s toybox sh; ln -s sh ash) had an off by one error,
533 and later block that for non-root users to prevent device tracking).
535 hasn't got built-in support for yet (like sha3sum) which acted like redundant
542 <b>cp</b> -r unlinks() an existing symlink before trying to
543 recreate the symlink (otherwise cp -r into an existing directory will
548 and <b>hostname</b> -d no longer segfaults on machines with no domain name.</p>
559 made <b>printf</b> \c and \0 octal escapes work, fixed a <b>find</b> -name corner
560 case (find src/*.c -name file.c) and find dangling symlink behavior,
563 fixed a race in <b>losetup</b>, fixed <b>grep</b> -F with multiple matches on the same
564 line and an -I failure in the existing grep tests, made <b>readlink</b> notice
574 (non-UTF8) locale (didn't expect wcrtomb to return -1).
583 DIRTREE_STATLESS returns entries we couldn't stat() (with a zeroed ->st
584 field, and ->again |= 2), but filling in the file type from readdir().
610 <p>Android ndk-r20 doesn't define the __ANDROID_NDK__ symbol, so we switched
630 implemented diff --strip-trailing-cr and made diff not need /tmp.
638 <p>Elliott Hughes did a lot of work on the test suite: add kill -l tests,
645 confused by SELinux, hostname.test can run some tests as non-root,
672 The "./toybox --help" output now explains how to do install_flat by hand.</p>
678 <a name="21-05-2019" /><a href="#21-05-2019"><hr><h2><b>May 21, 2019</b></h2></a>
680 …e first helpful or intelligible thing anybody's said to me all day."</p> <p>- The Hitchhiker's Gui…
683 <p><a href=downloads/toybox-0.8.1.tar.gz>Toybox 0.8.1</a>
687 …<a href=http://lists.landley.net/pipermail/toybox-landley.net/2018-November/009824.html>"hermetic"…
689 …build-tools/+log>build-tools</a> and <a href=https://android.googlesource.com/platform/build/soong…
696 Tar is a near-rewrite with support for --owner --group and --sparse,
697 capable of autodetecting "wget blah.tar.bz2 -O - | tar xv", a --restrict option
704 <p><u>Updates</u>: Elliott added <b>find</b> -wholename/-iwholename, -printf,
705 and -context, <b>grep</b> --exclude-dir, and <b>echo</b> -E.
706 Rob added <b>blkid</b> -U and -L, <b>mount</b> now has UUID= support via blkid -U,
707 you can now specify TZ="blah" in the <b>date</b> -d input string (although
709 understands ,+N relative ranges. Makepost added <b>rm</b> -v.
713 <b>touch</b> -t and -d autodetect the time format.</p>
722 terminal types, made more better about directories and non-tty output,
724 to recognize a c-sky ELF machine, and fixed timezone and daylight
727 When run as non-PID 1 (for a chroot) oneit's exit code now indicates
732 Sort's -k2.3,4.5 syntax is now documented and behaves more closely to
748 and an endless loop with -EPIPE, fixed find -path/-ipath, made loggit()
750 of --longname synonyms for short options, added getfattr --only-values,
751 and timeout --foreground --preserve-status and --signal.</p>
754 parent thread (in -H mode), hides the cursor in interactive mode, updates the
761 Top now treats -o "" as an error (previously it displayed an empty screen).</p>
764 clear the environment when -p is absent.
765 Vidar Holen fixed inverted find -exec exit status.
767 …ref=https://github.com/varnishcache/varnish-cache/issues/2879>newly added gcc bug</a> turns that i…
770 A missing else in grep meant -x was sometimes ignored.</p>
773 in the build scripts/portability.sh now tests that the compiler it's trying
778 fails (because AOSP build scripts cared), so timeout --unknown returns 125
784 (meaning -x was or wasn't encountered on the command line this time by
789 lets long-running loops reset environment variables without memory leaks.</p>
794 <p>New xparsedate() and xvali_date() functions allow date, tar --mtime, and
821 so <a href=https://github.com/github/choosealicense.com/pull/643#issuecomment-463746027>github coul…
822 "<a href=https://github.com/github/choosealicense.com/pull/643#issuecomment-464380789>a while</a>" …
842 The test suite now does an rm -rf on testdir between each command so
848 The find -newer test calls "sleep .1" to avoid intermittently failing with an
854 <a name="08-02-2019" /><a href="#08-02-2019"><hr><h2><b>February 8, 2019</b></h2></a>
860 <p>- The Hitchhiker's Guide to the Galaxy</p>
863 <p><a href=downloads/toybox-0.8.0.tar.gz>Toybox 0.8.0</a>
876 <p><u>New options</u>: <b>grep</b> now has --color, supports embedded NUL bytes in its input,
878 needed the middle numerical field of -bB, etc).
880 Volodymyr Medvid reported that install -d doesn't honor -o or -g.
882 <b>mkdir</b> accepts both --parent and --parents as synonyms for -p, <b>touch</b> ignores -f,
883 <b>basename</b> added -s to remove a trailing suffix, <b>dirname</b> now supports multiple
884 arguments, <b>cmp</b> accepts --quiet and --silent as synonyms for -s, <b>hostname</b>
885 added -sfd, <b>head</b> added --bytes as a synonym for -c and --lines as a synonym
886 for -n, <b>mktemp</b> added -t and fixed -u, <b>sed</b> added -z and -iEXT to keep backup files,
887 <b>md5sum</b> and sha1sum added --status and --check as synonyms -s and -c,
888 <b>readlink</b> added --canonicalize as a synonym for -f, <b>sort</b> grew -V,
889 <b>patch</b> added -s its synonym --quiet, <b>stat</b> added --format as
890 a synonym for -c, <b>xargs</b> added -p -t -r,
892 that <b>umount</b> ignore -c. Reverend Homer added a small optimization to file.c,
894 taught <b>ls</b> -t to use the nanoseconds field.
898 <b>cp</b> --preserve was segfaulting when you didn't specify _what_ to
901 <b>sort</b> -x didn't work when
910 Marius Adaskevicius pointed out <b>mdev</b> -s should follow symlinks,
916 <p><u>Build</u>:
921 make install_airlock now adds sha256sum (because the Linux 4.20 build now
936 names via an escape syntax (because mkfs.vfat specifies an offset with -@),
938 didn't have a dash (allowing "ps ax" and "ps -ax" to behave differently).</p>
945 yocto 2.6 buils with -Werror=format-security by default).</p>
947 <p>There's a scripts/portability.sh now which lets the build use gsed and gmake
956 reformatted a lot of --help text for consistency (removing trailing
967 root-only tests when run as a normal user. The testcmd function prints the
977 <a name="31-10-2018" /><a href="#31-10-2018"><hr><h2><b>October 31, 2018</b></h2></a>
980 This has made a lot of people very angry and been widely regarded as a bad move." - The Hitchhiker'…
984 <p><a href=downloads/toybox-0.7.8.tar.gz>Toybox 0.7.8</a>
988 <p>Toybox <a href=http://lists.landley.net/pipermail/toybox-landley.net/2018-October/009769.html>no…
989 You have to add an "llvm-cc" symlink to "clang", then use CROSS_COMPILE=llvm-
991 target you want to build for. (To run it on a non-android host, you probably
992 want "LDFLAGS=--static" too.)</p>
995 courtesy of Elliott/Android. The <b>watch</b> command got a complete (tty-aware)
1001 The <b>ifconfig</b> command added -S (short view) giving one line of
1003 format. <b>grep</b> grew binary file detection, with -I and -a options to
1005 Zach Van Rijn asked for <b>find -empty</b>.
1008 Elliott also added "getconf -a" and a lot of missing getconf symbols the
1009 AOSP build uses, including support for pathconf(3) symbols requiring two
1012 processing each like last release), and -l grew section identifiers (so
1013 the "getconf -l" output is no longer a directly consumable list of symbols
1015 Command line options specifying durations (like top -d or ping -i) can
1016 now use fractions and units, like "1.5" and ".1m". See "toybox --help" for
1019 name it's called under (so if you "ln -s $(which sleep) blah" and then
1024 which covers everything the kernel build needs (and more) but is going to
1026 In <b>diff</b> the android guys added --color and timestamps on the
1027 +++/--- lines. In <b>mdev</b> Faustas Azuolas Bagdonas added support
1033 Elliott responded to a bug in <b>getconf</b>'s sed-based header generation by
1037 build environments, but at least it works on bionic now.)
1042 Several fixes in <b>ping</b> (-w and -W didn't work, -c kept sending packets
1047 also fixed the units on blockdev --blkraget (reported by Martijn Coenen).
1049 style, leading zeroes, switch -f from %t to %T), <b>oneit</b> no longer
1053 triggered Android's strict ioctl filtering on non-filesystem fifos).
1054 An unstripped build (where the "strip" command fails for a given
1055 CROSS_COMPILE) will now overwrite the (read-only) output file instead of
1061 into a hermetic build (hopefully with an eventual self-hosting option, work
1065 The <b>ps</b> help text changed: now "ps -o help" shows the fields and the normal
1066 --help is much more manageable. Ifconfig's --help text also got tidied up.
1068 the kconfig/ subdirectory still having (build only, non-shipping) GPL code
1082 the bootstrap dependencies for the "airlock" step of a hermetic build.)
1096 <p><u>Build infrastructure:</u>
1100 it needs into itself, improving build portability.
1101 The build now checks the specified cross compiler exists, hopefully providing
1105 <a name="23-06-2018" /><a href="#23-06-2018"><hr><h2><b>June 23, 2018</b></h2></a>
1111 <p> - The Hitchhiker's Guide to the Galaxy</p>
1114 <p><a href=downloads/toybox-0.7.7.tar.gz>Toybox 0.7.7</a>
1121 <p><u>New options</u>: The <b>cp</b> command added the --parents option,
1122 <b>readlink</b> now has -m to show where a missing path would be,
1125 Ng Zhi An added --getra and --setra (get/set readahead) to <b>blockdev</b>,
1126 Elliott Hughes added <b>xxd</b> -o and made <b>top</b> -d understand fractional
1128 Minghui Liu added <b>watch</b> -b.</p>
1131 48-core machine
1132 and fixed a glitch with -n, Haroon Maqsood pointed out "vmstat 1 1" didn't
1133 stop and "vmstat -n" didn't print the first theader line.
1134 Minghui Liu fixed a bug where <b>cp</b> -p didn't preserve
1136 working. Ryan Pritchard pointed out that <b>du</b> -d0 should act like du -s.
1140 Elliott fixed several things in <b>top</b> (removed spurious '\r' characters from -b
1143 ("cat /bin/ls | file -" still won't work but "file - < /bin/ls" should).
1145 and fixed <b>cut</b> -DF
1147 because outputting all delimiterless lines isn't what you want there, -D
1152 prequisites that needs to run, and reformatted more of the ps --help text
1157 with & has no dash in its first argument. (This lets "ps -ax" and "ps ax"
1159 The comma-separated-list parsing infrastructure moved to lib/commas.c.
1175 behavior difference between toybox and ubuntu (Ubuntu's ln -sf wouldn't
1180 run a test on a command name beginning with "-" (none yet but it
1189 dynamic libraries without corresponding --static versions).
1193 <a name="24-02-2018" /><a href="#24-02-2018"><hr><h2><b>February 24, 2018</b></h2></a>
1200 <p> - The Hitchhiker's Guide to the Galaxy</p>
1203 <p><a href=downloads/toybox-0.7.6.tar.gz>Toybox 0.7.6</a>
1213 ranges, utf8/unicode characters, and new -CDFO options. Use -C to measure
1214 columns rather than characters (for double width chars), and "cut -DF 3-5"
1217 <p>This release adds <b>top -m</b> and <b>iotop -H</b> (and fixed top width truncating for narrow t…
1218 added <b>iconv -c</b>, fixed <b>ps -T 1234</b> to show threads belonging to
1224 "See %s --help" message on the same line, and several web pages
1227 <p>Elliott and the Android devs added <b>df -i</b>, <b>uptime -p</b>,
1228 <b>time -v</b>, and <b>xxd -i -ri</b>,
1229 fixed <b>id -G</b> to only output the group IDs, fixed the <b>xargs -0 -n</b>
1230 combination, made <b>find -exec +</b> obey ARG_MAX (just like xargs), made
1243 with make bloatcheck's build dependencies, and
1246 <p>Commands with locale support now setlocale(LC_TYPE, "C.UTF-8") for more
1252 (which as a 64 bit number is good for + or - 292 million years from
1254 -1 instead of erroring out.</p>
1261 <a name="12-10-2017" /><a href="#12-10-2017"><hr><h2><b>October 12, 2017</b></h2></a>
1264 <p> - The Hitchhiker's Guide to the Galaxy</p>
1267 <p><a href=downloads/toybox-0.7.5.tar.gz>Toybox 0.7.5</a>
1272 of the many half-finished projects (dd, ping, lsof, iconv, cut, sysconf,
1273 the cp --parents option...) finished/promoted/tested, but decided adding big
1276 <p>A couple <b>new features</b> slipped in anyway. Ilya Kuzmich added head -c
1277 and strings -t (and corrected strings' output in a couple places). Elliott
1278 Hughes taught file to recognize Macintosh (Mach-O) binaries.</p>
1280 <p><b>NOTE</b>: the chrt command is broken when built against musl-libc
1283 <a href=https://git.musl-libc.org/cgit/musl/commit/?id=1e21e78bf7a5>removed
1285 so the chrt command there will always say -ENOSYS. (It works fine built against
1288 <p><b>Bugfixes</b>: Remounting (mount -o remount,rw) should work properly now,
1291 mostly noticeable in long-running "top" exiting; error value was treated
1292 as a pointer). Elliott Hughes fixed a -Wformat warning in expr.c,
1296 Josh Gao made netcat -l exit after handling a request, and reported a
1298 broken URL in the README. Rob fixed env -0 checking the flag wrong so
1309 <p><b>Build</b>: Patrick Oppenlander added a workaround for a bug in config2help.c
1311 after free error; the build infrastructure isn't nearly as heavily audited as
1313 environment variable can force the build version from
1314 the command line, and the build checks for .git in the top directory
1316 in an enclosing directory). Added a build #warning about musl intentionally
1318 stub function so compile-time probes for its existence think it's there, and
1319 you can't run the result to test behavior when cross compiling).</p>
1321 <a name="19-06-2017" /><a href="#19-06-2017"><hr><h2><b>June 19, 2017</b></h2></a>
1322 <blockquote><p>It is a well-known fact that those people who most want to rule people are, ipso fac…
1324 <p>- The Hitchhiker's Guide to the Galaxy</p>
1327 <p><a href=downloads/toybox-0.7.4.tar.gz>Toybox 0.7.4</a>
1334 -M and -S to match and skip wildcards respectively (useful with -r).
1335 Elliott's updated dmesg has -T and --color. The file
1336 command can recognize gzip now, uptime grew -s, date grew %N, env knows - as a first argument
1337 means -i (posix!) and grew -0, ls defaults to -b
1338 instead of -q now when there's a tty, and ls has a new -ll option (with
1339 --full-time as a compatibility synonym) showing nanoseconds and (for some
1341 "uudecode -o -" support. Illya Kuzmich taught head -v and -q. The cpio
1344 (Use the new --trailer option if you want the legacy behavior.)
1347 <p><u>Build</u>:
1349 the kernel <a href=https://landley.net/notes-2013.html#28-03-2013>inexplicably</a>
1350 needs that to build. This was motivated by
1356 pass, made more tests run on a toybox-only system, and so on. The test suite
1361 <p>Various android build and config fixes, getting closer to being able
1367 <a href=http://lists.busybox.net/pipermail/buildroot/2016-December/180102.html>last release</a>.</p>
1375 help text for argument errors but instead just say "See %s --help" with the
1377 Elliott did a big period-ectomy on all the --help text, and
1379 non-html help -a output now has separators with the command name.
1387 was causing long-running top instances to occasionally exit),
1390 (so "ps -A | cat" doesn't vary), date's chkmktime() was replaced with
1397 Elliott fixed touch -a/-m (they were backwards), and allowed ':' in
1398 setprop's property names. Grep now exits with 2 for errors (so -q can
1408 <a name="21-02-2017" /><a href="#21-02-2017"><hr><h2><b>February 21, 2017</b></h2></a>
1412 <p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
1414 <p>Despite everything, <a href=downloads/toybox-0.7.3.tar.gz>Toybox 0.7.3</a>
1427 <p><u>New features</u>: Rob added units to <b>find</b> -atime and friends
1428 (with the legacy -amin alias). Elliott added color and -w to dmesg, fallocate
1429 -o, and improved file's ELF parsing. Steve Muckle added -d and finit_module
1433 df -a isn't entirely new, but wasn't documented and needed a bugfix.</p>
1436 Last release broke oneit because -c didn't get moved to xopen_stdio() (oops).
1439 that case but also switches on -w to avoid field truncation. The "tty"
1443 And while we're there, replace "ADDR" with "BIT" in ps -l so there are
1446 <p>Izabera pointed out that split -b and -l can't mix, and suggested seq should
1448 increments. Wang Xiao Jian fixed a bug in sort -k.
1451 Elliott also improved some error reporting and improved top -H's display
1455 in chmod -R (and the resulting generic fix to dirtree_notdotdot() fixed
1460 Rob fixed an option parsing bug (where switching off a --longopt in menuconfig
1462 (ala "abc[-ab][!abc]" with "command -a -b") would segfault.</p>
1464 <p>There's some sort of gcc stack over-optimization bug where musl-libc's
1466 stack varabiles in the same function after that get semi-randomly overwritten
1474 <p>Continuing attempts to build under Android NDK brought up that posix
1477 name. (This worked in the AOSP build because it only builds against current
1484 when you "ps -A | head" about EPIPE on output. (Older versions of bionic
1495 <p><u>Build tweaks</u>:
1497 commands (unless $PEDANTIC is set) when it sets up the hermetic build
1505 but it's a work in progress (<a href=http://lists.landley.net/pipermail/toybox-landley.net/2016-Dec…
1509 <p>Cross-compiling from Macs needs to use "gsed" instead of apple's
1510 version, so teach the build to use that name if it exists in the $PATH.
1511 If you try to build without running config first, you should get better
1516 The new dirtree flag DIRTREE_PROC skips non-numeric entries so things
1519 <a name="21-10-2016" /><a href="#21-10-2016"><hr><h2><b>October 21, 2016</b></h2></a>
1522 own problem.</p><p> - The Hitchhiker's Guide to the Galaxy</p></blockquote>
1524 <p><a href=downloads/toybox-0.7.2.tar.gz>Toybox 0.7.2</a>
1528 …ott Hughes <a href=http://androidbackstage.blogspot.com/2016/07/episode-53-adb-on-adb.html>got int…
1530 …linuxluddites.com/shows/episode-88/>got interviewed on Linux Luddites</a> (<a href=http://linuxlud…
1543 <p><b>Upgrades</b>: All commands now parse --version when they understand
1544 --help, but "true" and "false" should now ignore their arguments entirely.
1545 We taught stat to handle "%12x" and "%.12x" printf-style escapes, which
1547 device driver. Added patch -d and --dry-run, wc can now do -cm together,
1548 find has a NOP -noleaf so scripts that use that don't break, add -c to md5sum
1549 and sha1sum. Elliott taught ps to treat extra aguments as additional -p
1550 pids, implemented xxd -s, did a number of upgrades to file (added -HL,
1552 and stripped/not stripped and it no longer prints a guessed build ID type).
1553 Elliott also added optional build-time support for using openssl's
1554 assembly-optimized md5sum/sha1sum implementations (leading to a new
1560 …sourceware.org/bugzilla/show_bug.cgi?id=17829>glibc bug 17829</a>, made sed -i preserve ownership …
1561 made du max out at 2 terabytes instead of 2 gigabytes on 32-bit systems
1565 octal digits and handling the (posix-mandated) difference between %b and
1566 non-%b octal output, reading from "-" no longer closes stdin when done,
1567 netcat -L works with nommu (although it may need more portability work),
1573 appropriate). "LC_ALL=C ls -Cs --color" produces the same output
1574 as other versions (two spaces padding, -k hardwired on).<p>
1580 changing, fixed ls -sh, and added a lot of
1582 Izabera pointed out cmp -l and -s can't be selected at the same time,
1583 that timeout was never actually checking -v, that ls should default to -q
1584 when output is to a tty, and that "file -" would sometimes try to open "-"
1588 hardwired 512-byte units, so stat.c was wrong. David Hedges pointed out
1601 <p>The defconfig build is now slightly less broken on older centos versions
1602 (although <a href=http://lists.landley.net/pipermail/toybox-landley.net/2016-September/008664.html>…
1604 <p>Several commands were over-using xprintf(), which flushes its output
1631 understands that "-" means stdin. New flag WARN_ONLY tells these functions
1632 to just print a warning on failure, and return -1 instead of exiting.
1638 <p>New TOYFLAG_NOHELP disables --help processing (which "true" and "false"
1641 <p>The test suite now has NOSPACE=1 to ignore whitespace (using diff -b to
1649 <a name="02-06-2016" /><a href="#02-06-2016"><hr><h2><b>June 2, 2016</b></h2></a>
1654 brain to see what is likely to be well received. However, no-one knows
1657 <p> - The Hitchhiker's Guide to the Galaxy</p></blockquote>
1659 <p><a href=downloads/toybox-0.7.1.tar.gz>Toybox 0.7.1</a>
1661 is out. (Yes, I forgot to update the --version string, but I already
1675 <p>Izabera implemented env -u, suggested adding seq -w, made factor
1677 -w0 should disable wrapping, and sped up wc -c.
1678 Elliott Hughes added mount -o relatime, xxd -p -r, and od -w.
1679 Sameer Pradhan (or possibly Bilal Qureshi) suggested adding stat -tL -c %m%t%T.
1680 Tom Cherry added getprop -Z. Paul Barker added hostname -b and -F.
1681 Rob added ls -b, made ls -q work with utf8,
1682 made sed -f - read from stdin, and added top -O (like ps -O).</p>
1685 with -o TID, TNAME. We also added -o PCY (android scheduling policy),
1686 -o BIT (process is 32 or 64 bit), and -o TNAME now shows the parent
1701 <p>Grep -H and -n should now work properly with -ABC. Andy Chu pointed out an
1703 in diff -r, and fixed operator precedence in expr (although Rob is rewriting
1705 Patrick Ohly fixed the too-aggressive suid permission dropping logic.
1706 Josh Gao fixed a segfault when find -iname got no argument, and
1707 made tail -f work right with just one file argument.
1709 the tar tests, and reported another find bug (with -iname -o -iname not
1712 <p>Elliott Hughes fixed wc -c to not trust zero length files to actually be
1713 zero length (/proc does that), fixed "mount -o rw,remount /system" on
1714 Android, removed trailing spaces on ps -o cmdline, fixed pkill -9 and
1715 the corresponding tests, made "insmod -" work, fixed top -b and tail -NUM,
1718 explicit "sort" calls to make pipelines so build tempfiles are easier to cache.
1719 …com/landley/toybox/commit/32b3587af261>fixed an insane sed thing</a> the perl 5.22 build was doing.
1720 Fixed mount -o to properly pass in leftover string data, and
1721 <a href=http://lists.landley.net/pipermail/toybox-landley.net/2016-March/004790.html>documented how…
1727 John Regehr. Andy Chu found a segfault in "sed -e 'c\'" with no trailing
1728 line, and implemented mv -n and cp -n. The cyanogenmod guys pointed out that
1729 cp -a shouldn't complain if a non-root user can't chown, and we added
1730 the output path to cp -r error messages while we were there (before was just
1735 suffix. Davis Mosenkovs fixed touch -t seconds parsing.
1739 <p>Not all of the commands build standalone, but more of them do now;
1740 scripts/single.sh can now build a "mv" that isn't actually "cp".
1742 produces a broken ps that ignores -A (because ps.o wasn't getting rebuilt
1743 even though top had the FLAG macros for -A zeroed).</p>
1745 <h2>Build</h2>
1750 <p><b>New build targets let you build individual commands by name</b>, ala
1762 build loop has fewer forks now.</p>
1777 nommu conversion (which should fix the allyesconfig build).</p>
1790 infinite recursion depth support (needed by rm -r), updated the
1800 <a href=https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html>has vowed
1819 toys.h (to make cross-compiling from systems we don't run on easier).</p>
1822 "sed -e 'a\'" (with no next line of the pattern, so an unterminated
1827 is undocumented, non-obvious, and doesn't really make logical sense.)</p>
1834 <a name="02-02-2016" /><a href="#02-02-2016"><hr><h2><b>February 2, 2016</b></h2></a>
1838 - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
1840 <p><a href=downloads/toybox-0.7.0.tar.gz>Toybox 0.7.0</a>
1846 (most replacing corresponding versions from pending). Added grep -ABC,
1847 swapon -d (discard), mkswap -L (label) and UUID support, and find -delete.
1848 Izabera added free -h and unshare -f. Josh Gao implemented tail -f.
1849 Jose Bollo submitted cp --preserve=context,attr. Kylie McClain added
1850 mktemp -u.</p>
1857 <p>Lots of updates to ps: several new -o options, -k (--sort) -O and -M,
1864 <p>Dreamhost restored the <a href="#12-21-2015">missing 11 months</a>
1871 <a href=http://landley.net/notes-2012.html#15-10-2012>never
1876 <a href=https://engineering.twitter.com/opensource/code-of-conduct>borrowing twitter's</a>) because…
1881 first one in the range, so [[] didn't terminate). Fixed sort -f and added test cases.
1882 Assume 80 columns in "ls -m | cat", ls -L is no longer backwards,
1885 to find (Gilad Arnold fixed -perm, Daniel K. Levy fixed "find . -exec echo {}",
1886 and while we're there I fixed find --prune, made "find . -execdir
1887 echo {} + -execdir ls {} +" work, and ripped out the environment size
1890 years and documented the %s escape, fixed hwclock -u, and pointed out
1894 values, and added a --no-preserve-owner option. Fixed the SUID permission
1895 dropping logic (which was a bit over-zealous, preventing some commands from
1898 <p>I'm told that debian-testing broke its libc so the nsenter build breaks,
1899 but my attempts to install the debian-testing network cd image under
1901 reproduce the problem. (Debootstrap under unbuntu builds an ubuntu-flavored
1905 <p>Rewrite of the about.html page, tweaks to design.html, and a re-triage of
1918 <li><p>Renamed dirtree->data to dirfd and stopped storing symlink length
1920 didn't give a valid directory filehandle, noticeable with ls -Z).</p></li>
1940 <p>We're getting close to having a self-hosting development environment
1949 <p>And the remaining non-busybox commands in Aboriginal Linux's build/host
1967 <a name="12-21-2015" /><a href="#12-21-2015"><hr><h2><b>December 21, 2015</b></h2></a>
1994 <a name="03-11-2015" /><a href="#03-11-2015"><hr><h2><b>November 3, 2015</b></h2></a>
1997 of Betelgeuse?" Arthur shrugged in a so-so sort of way. "I don't know," he
1998 said, taking a pull of beer. "Why - do you think it's the sort of thing you're
1999 likely to say?" - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
2001 <p><a href=downloads/toybox-0.6.1.tar.gz>Toybox 0.6.1</a>
2005 <p>We have a new <b>ps</b> command with all the -o fields posix wants (although
2006 it doesn't accept BSD non-dash option syntax yet), and <b>bunzip2</b> (not just
2007 bzcat but the proper extract-in-place command).
2011 <p>The people waiting for <b>human readable number support</b> (du -hH, ls -h,
2023 all knowledge and wisdom about nommu. The old site <a href=#12-02-2012>contains
2039 reboot, init, login, and modprobe, and fixed a distro-specific build break in
2040 scripts/mkflags.h. Elliott Hughes and Lipi Lee made netstat -p handle
2041 command lines longer than 21 characters, and Elliott fixed netstat -e and
2042 some build warnings. Yeongdeok Suh fixed a warning in dhcpd.
2055 either), fixed several ls -l display issues (user/group field ordering,
2058 class, fixed a mv overwrite bug, made df's columns auto-size, added
2059 --ppid and -Z to ps, and teamed up with Daniel K. Levy to fix
2060 a segfault in find's handling of -newer -group or -user.</p>
2062 <p>Hyejin Kim added stat -c %T support. Colin Cross worked
2065 units. Isabella Parakiss reported that sed -e "/x/c\" -e "y" added an extra
2066 newline and that grep -w '\(x\)\1' didn't work, both now fixed.
2072 <p>Isabella Parakiss reported that sed -e "/x/c\" -e "y" added an extra
2073 newline and that grep -w '\(x\)\1' didn't work, both now fixed.
2079 <p>Two large thinko fixes in oneit: -3 was always enabled (which would
2082 set up right (for requesting semi-graceful halt/poweroff/reboot).
2083 Calling install without a mode is now 0755, and install -g 0 no longer clashes
2084 with cp --preserve. Better error message for ls -r on unreadable
2085 directories, and ls -Z now uses O_PATH (with the /proc/self/fd/%d
2088 <p>Date now understands @unixtime[.fraction] and uses -D for
2089 the set-side format (matching busybox's extension for this). The seq -f
2100 a NULL argv (see cpio -p for example usage). Replaced toys.recurse
2101 with toys.stacktop so the recurse or re-exec decision is now based
2102 on bytes of stack space used. Marked a bunch of command-local functions
2109 The login command finally got a long-overdue cleanup (it's one of the
2116 "make CROSS_COMPILE=prefix-" (as well as "CROSS_COMPILE=prefix- make",
2117 which still works). Toybox is now installed chmod -w so broken installers
2121 we added a workaround. You can now build uptime without utmpx.h.
2123 as well as target when cross compiling, which is now fixed.</p>
2126 …s <a href=http://landley.net/aboriginal/downloads/binaries/old/1.4.3/cross-compiler-sh2eb.tar.gz>t…
2127 but <a href=http://github.com/richfelker/musl-cross-make>with musl-libc</a>
2129 fact they provide a non-functional fork() implementation that always returns
2130 -ENOSYS, to prevent you from compile-time probing for nommu support when
2131 cross-compiling. Unfortunately "preventing you from probing" seems to be
2135 enable musl-specific bug workarounds.</p>
2137 <a name="23-07-2015" /><a href="#23-07-2015"><hr><h2><b>July 23, 2015</b></h2></a>
2138 <p>I recreated the <a href=downloads/toybox-0.6.0.tar.gz>0.6.0 source tarball</a>
2140 because I forgot to add --prefix to the git archive command when I updated
2144 <a name="19-07-2015" /><a href="#19-07-2015"><hr><h2><b>July 19, 2015</b></h2></a>
2149 around in." - The Hitchhiker's Guide to the Galaxy </p></blockquote>
2151 <p><a href=downloads/toybox-0.6.0.tar.gz>Toybox 0.6.0</a>
2153 is out. (Yes, git. See the <a href=#05-04-2015>previous news entry</a>.)</p>
2163 <a href=http://landley.net/talks/celf-2015.txt>outline</a>), in which I
2164 repeat my <a href=http://landley.net/notes-2013.html#07-11-2013>perennial</a>
2173 <a href=#15-11-2011>most</a>
2175 <a href=http://landley.net/notes-2011.html#13-11-2011>research</a> on
2185 (<a href=http://landley.net/talks/ohio-2013.txt>outline</a>,
2186 <a href=https://archive.org/download/OhioLinuxfest2013/24-Rob_Landley-The_Rise_and_Fall_of_Copyleft…
2202 <p>You can once again build catv now the flag infrastructure's been updated to
2203 let it coexist with cat -v.
2209 <p><b>New options:</b> Added sed -E as a BSD-compatible synonym for -r.
2210 Upgraded oneit with -r (restart), -3 (send exiting PID values to child),
2211 and signal handling. Added -v option to timeout, -m to mknod, -u to shred,
2212 -t to dmesg, and -123 to head and tail. Added implicit "." to grep -r without
2213 any files to work on. Hyejin Kim requested prefix support for truncate -s.
2214 Greg Hackman added -inum to find.
2215 Jan Cybulski added the smack side of ls -Z support. Various patches also
2216 added -Z to mkdir, mknod, and mkfifo.
2217 Basic cp --preserve support went in, but not yet the xattr/LSM parts.</p>
2219 <p>The toybox command now has a --version option,
2222 <p><b>Build infrastructure:</b>
2224 command build in a .bad file, and "make defconfig" is quieter now.</p>
2228 update-alternatives". (There's some argument over
2232 <a href=http://landley.net/writing/hackermonthly-issue022-pg33.pdf>for
2246 to make --longopts take an optional =value part, and more about TOYBOX_DEBUG
2259 Fixed mount -a segfaulting without -O (reported by Janus Troelsen),
2262 Fixed printf -- and printf ---. Lots of tweaks to ls -l spacing with
2263 different options. Make touch -d and -t actually set time when you don't
2270 the build). Output an error message for "cat /mnt".</p>
2274 numeric uid/gids, and that sort -z affects both input and output.
2276 David Halls fixed bugs in install -D and find -exec. Samuel Holland
2277 fixed unshare -r. Hyejin Kim fixed makedevs with a count of 1, fold -w
2278 range checking, an error path in scripts/mkflags.c, added -i to dhcpd,
2280 Jan Cybulski spotted wrong indentation when combining ls -s and -i with -C and
2281 -x. José Bollo fixed stat %G. Sameer Pradhan fixed a bug in mkfifo -Z.</p>
2291 fix dmesg -c error reporting, fix a segfault in comma_scan where the option
2292 was the last item in optlist (triggered by mount -o ro,remount), fix
2293 hwclock -w, made ifconfig print lowercase MAC addresses (it was bothering
2302 support to mdev. Yeongdeok Suh added RFC-3315 ipv6 support to dhcpd.</p>
2314 a standard syntax). Don't depend on malloc(0) to return non-null in ls.
2326 The build now checks $LDFLAGS for linker-only flags, and allows the strip
2331 security modules stuff, if (lsm_enabled()) should turn into a compile-time
2340 build targets without even software float). Added readfileat() to lib/lib.c.</p>
2347 <p>The not-curses infrastructure introduced by hexedit mostly moved to
2358 with its GNU counterparts" means when CP_MORE adds 7 non-posix options
2362 GNU is special is there are a half-dozen other independent
2368 …f=http://archive.linuxfromscratch.org/lfs-museum/7.6/LFS-BOOK-7.6-NOCHUNKS.html#ch-tools-gcc-pass1…
2369 then I impelement mv -v
2372 util-linux isn't a gnu package, nor are info-zip, e2fsprogs, kmod, less,
2375 <a name="05-04-2015" /><a href="#05-04-2015"><hr><h2><b>April 5, 2015</b></h2></a>
2378 and <a href=https://github.com/kraj/meta-musl/tree/master/recipes-core/toybox>openembedded</a>
2379 and <a href=https://packages.gentoo.org/package/sys-apps/toybox>gentoo</a>
2385 <a name="25-02-2015" /><a href="#25-02-2015"><hr><h2><b>February 25, 2015</b></h2></a>
2388 complete fools."</p><p>- The Hitchhiker's Guide to the Galaxy.</p></blockquote>
2390 <p><a href=downloads/toybox-0.5.2.tar.gz>Toybox 0.5.2</a>
2406 binary. Rather a lot of commands that didn't build by themselves (mv depending
2418 <a href=http://www.mail-archive.com/toybox@lists.landley.net/>two</a>
2436 <p>Some commands grew new option flags, such as cp --remove-destination
2437 and touch -h.</p>
2439 <p>The parallel build has better error reporting now. When toybox needs to
2440 re-exec itself to regain suid root permissions and hasn't got the suid bit,
2450 no longer defined -d but still had it in option groups at the end).
2451 Workaround for glibc redefining dirname() and basename() to random non-posix
2460 did rm -r on it without -f, after the prompt it would complain it was a
2472 <p>Reworked the option parsing infrastructure so more commands build
2505 <a name="18-02-2015" /><a href="#18-02-2015"><hr><h2><b>February 18, 2015</b></h2></a>
2507 here's <a href=http://www.mail-archive.com/toybox@lists.landley.net/>another
2513 <a href=http://www.dreamhoststatus.com/2015/01/14/discussion-list-hardware-maintenance/>hardware up…
2518 web archive, from Dec 15-Jan 3, and then another hole from Jan 16-Feb 18.
2522 <a name="30-12-2014" /><a href="#30-12-2014"><hr><h2><b>December 30, 2014</b></h2></a>
2530 <a href=http://lists.landley.net/listinfo.cgi/toybox-landley.net>the first link</a>.</p>
2534 <a name="19-11-2014" /><a href="#19-11-2014"><hr><h2><b>November 19, 2014</b></h2></a>
2536 …was right, it would work, and no one would have to get nailed to anything." - The Hitchhiker's Gui…
2538 <p><a href=downloads/toybox-0.5.1.tar.bz2>Toybox 0.5.1</a>
2549 don't want to copy, it's not yet good enough to build Linux From Scratch.
2553 Did you know "echo hello | sed p - -" segfaults gnu sed in Ubuntu 12.04?
2572 Isaac Dunham implemented acpi -ctV options, and spotted the bug that ls -d
2573 was inappropraitely following command line symlinks without -H or -L (it
2574 should act like ls -l does), and ls -F handles symlinks wrong too.
2582 static analysis. (These fixes are mostly to seldom-used codepaths like the
2584 also suggested upgrading ln -f to leave the original target alone if link
2585 creation fails, and reported that mv -f and -i weren't implemented (now fixed).</p>
2598 probes for functions missing from bionic-libc, and annotated the commands that
2610 <p>The printf-style escape parsing ("\n" and friends) got factored out into
2613 <a name="02-10-2014" /><a href="#02-10-2014"><hr><h2><b>October 2, 2014</b></h2></a>
2617 difficulties." - The Hitchhiker's Guide to the Galaxy.<p></blockquote>
2619 <p><a href=downloads/toybox-0.5.0.tar.bz2>Toybox 0.5.0</a>
2627 <p>cp now implements -HL and -F to force delete of pending files, cpio now
2628 ignores -m and implements -p, ls -C now has utf8 support (using wcwidth
2638 <h3>Build infrastructure</h3>
2642 <p>The build now takes advantage of SMP, autodetecting the number of
2644 Other build changes: split out $LDOPTIMIZE because old compilers complain
2645 about linker options passed with -c, and the entire "generated" directory now
2650 <p>The standalone build infrastructure (scripts/single.sh) got upgraded to
2651 build more commands as standalone executables. In make.sh the source file
2654 sub-options (so CP has CP_MORE), enables I18N and FLOAT support to build
2655 full-featured commands, and includes --help text (at least when
2657 now produces (redundant) function prototypes so you can build an OLDTOY
2666 <p>The main reason for standalone build failures is NEWTOY() or OLDTOY()
2680 <p>A new addition to the "generated" directory is generated/build.sh
2681 containing a single compiler command line to build toybox in its current
2683 exisiting build, this may let you build on a new system that hasn't quite
2690 done with the directory filehandle still open (new dir->again variable added
2693 Use daemon() out of libc instead of hand-rolled daemonize() in various
2702 command was promoted (and the build would break if both were enabled),
2703 toy_exec() sometimes needs to re-exec from $PATH rather than recurse
2709 option parsing bug where [-abc] would forget _all_ command line arguments
2712 Lukasz Szpakowski fixed rm -f on a broken symlink (failed), and killall
2717 <p>A somewhat fiddly fix to rm -rf (which needs to chmod directories to u+rwx
2721 to portability.h with a workaround, you may need CFLAGS=-D__MUSL__ in your
2722 build if your musl build's features.h doesn't #define that. (I may do
2730 another release, so locally patching around posix-2008 violations is silly).</p>
2736 "$" at the end), but this prevents UTF-8 usernames. Posix' stated logic
2758 stop at the first failure), and spotted a build bug where using gnu
2759 sort on the host broke in non-C locales.</p>
2764 <a name="07-07-2014" /><a href="#07-07-2014"><hr><h2><b>July 7, 2014</b></h2></a>
2765 <blockquote><p>"This planet has - or rather had - a problem, which was this:
2770 unhappy." - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
2772 <p><a href=downloads/toybox-0.4.9.tar.bz2>Toybox 0.4.9</a> (<a href=/hg/toybox/shortlog/1385>commit…
2778 host from Rich felker, and I did nbd-client and the first 2/3 of mount.</p>
2782 fallocate, and nbd-client.</p>
2813 <p>Fix od bug reported by Samuel Holland ("od -v -b" was appending the default
2827 a pipe). Bugfix so "help -a" works again. Option parsing on nohup now stops
2829 which was actually a bug in lib function find_in_path(). Made rm -rf of
2832 <p>The build now passes the same $CFLAGS to the library probe as the final
2833 build, because arch linux is so broken it provides different sets of
2845 added tests for cpio, link, and du, added lspci -i, made the pci database
2849 it actually smaller in the process. I added -b flags to md5sum and sha1sum
2854 the build now switches on all the sub-options of the command so we get
2857 <p>Add -ds flags to date and document +FORMAT escapes. Add the shell NOP
2861 build against uClibc is why fallocate wasn't enabled in defconfig before.)</p>
2863 <p>The umount command now does an losetup -d on the device by default, so
2875 to toys.signalfd with the signal number if signalfd isn't -1 (which it's
2881 decimal kilo/mega/gigabytes (so when du -u says 5.0G it means 5.0 billion
2882 bytes). The build infrastructure now notices duplicate commands (so if you
2884 first one, the build break is now more informative).</p>
2886 <a name="20-04-2014" /><a href="#20-04-2014"><hr><h2><b>April 20, 2014</b></h2></a>
2891 turn it off. - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
2893 <p><a href=downloads/toybox-0.4.8.tar.bz2>Toybox 0.4.8</a> is based on
2897 <p>The big news is that the build no longer needs python to generate help.h,
2913 compress.c, and still need to do a corresponding deflate (compression-side)
2922 <p><b>Upgrades:</b> Ifconfig grew /prefix netmask support (ala 1.2.3.4/24). Grep now has -zZ to
2923 handle null terminated data, cksum grew -H for hex output. Upgraded od so the
2924 fields align better when producing multiple output types. Help has -a and -h
2927 set dates now. The O_NOFOLLOW compile time probe didn't work with cross
2930 Ashwini Sharma spotted a bug in pidof -o, and added verbose (-v) options
2931 to mkdir and ln, and suggested killall should have an -s option and
2932 allow -l to take zero arguments. Ashwini Sharma and Felix Janda upgraded
2942 <p><b>Build stuff:</b> Each FOR_xxxx macro now has a complementary CLEANUP_xxxx macro, so you
2952 <p>Regression tested against Ubuntu 8.04 to fix up bit-rot in defconfig
2953 build on older systems. (We depend on Posix-2008, but not necessarily
2954 the absolute latest build environment.)</p>
2964 help text for all the defconfig commands, using the new help -ah output.
2972 <a name="18-11-2013" /><a href="#18-11-2013"><hr><h2><b>November 18, 2013</b></h2></a>
2973 …ou may think it's a long way down the street to the chemist's, but that's just peanuts to space." -
2976 <p><a href=downloads/toybox-0.4.7.tar.bz2>Toybox 0.4.7</a> is based on
2990 added -e to watch, removed a memory leak, and fixed a terminal size problem.
2993 where grep didn't malloc enough space with -E (leading to a segfault).
2995 the code I wrote), in od to fix -t co, -J, and -c options. Add uname -o as a
2996 synonym for -s. Build fix to never use $CC without prefixing it with
3000 <p>The compile-time command line option parsing got rewritten (ported from
3002 --longopts to drop out properly when disabled in the configuration. Terminal
3003 querying got refactored. Patch's -x option is now more informative (a
3009 <a name="17-09-2013" /><a href="#17-09-2013"><hr><h2><b>September 17, 2013</b></h2></a>
3011 Arthur told the computer the telephone number of King's Cross railway
3013 and this might turn out to be it. - The Hitchhiker's Guide to the Galaxy</p>
3016 <p><a href=downloads/toybox-0.4.6.tar.bz2>Toybox 0.4.6</a> is based on
3025 <p>The ls command now has a --color=auto option (suggested by Rich Felker).
3026 The multiplexer now has a --help option so you can say "./toybox --help blah"
3027 instead of using the built-in "help" command. (Which is a shell built-in.
3029 other project has conditioned people to expect --help, so...) I forget who
3041 M. Farkas-Dyck), and sysvinit by Kyungwan Han.</p>
3081 <p>General improvements and bug fixes to argument parsing. The [-abc] exclude
3082 logic should now clear arguments slots when disabling options. Bare --longopts
3085 --color and --color=auto but not --color auto).</p>
3100 (-fno-asynchronous-unwind-tables)
3103 "-fstop-being-stupid" is a thing you have to hit gcc with from time to time.</p>
3108 finally make it work right (we think). Still need to implement tail -f
3109 someday (the tricky bit is making -f follow multiple files at once).
3118 pointed out the build was making a FLAG_ macro for " " which broke some
3133 <p>Last release, "mkdir sub/sub && chmod 007 sub/sub && rm -rf sub" didn't
3138 <a name="26-07-2013" /><a href="#26-07-2013"><hr><h2><b>July 26, 2013</b></h2></a>
3144 <a name="02-07-2013" /><a href="#02-07-2013"><hr><h2><b>July 2, 2013</b></h2></a>
3147 like you." -
3150 <p><a href=downloads/toybox-0.4.5.tar.bz2>Toybox 0.4.5</a> is based on
3159 each command can now understand --help (including both "toybox --help"
3160 and "toybox --help command" in the multiplexer).</p>
3162 <p>The "pending" directory has several commands (find, xzcat, nbd-client,
3172 <p>Fixed _another_ "ls -C" segfault when terminal size can't be detected,
3173 condensed the ls help text to fit on one page, implented --color, and taught
3174 -l to print the major, minor numbers when showing block/char devices.
3175 Argument parsing now handles "--" properly (to end option checking),
3176 and the infrastructure can now handle bare --longopts that have no
3178 Fixed an old bug in "patch", chmod grew -f, who grew -a. Isaac Dunham
3179 fixed "-" vs "_" handling in modinfo, added a "firmware" output
3180 field, added -b and -k support, and taught it that the ".ko" extension means
3185 (ala readlink -f /dev/sda as a normal user).
3188 <p>In the build infrastructure, scripts/findglobals.sh finds leaked global
3198 <p>You should now be able to build from a source control snapshot on a build
3204 <p><b>LICENSE TWEAK</b>: After <a href=http://lists.landley.net/pipermail/toybox-landley.net/2013-M…
3223 <a name="21-03-2013" /><a href="#21-03-2013"><hr><h2><b>March 21, 2013</b></h2></a>
3227 <a href=http://landley.net/talks/celf-2013.txt>talk outline</a> and an
3228 <a href=/aboriginal/about.html#selfhost>android self-hosting writeup</a>.</p>
3236 …=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=4m22s>Software needed to become self-hosting</a></li>
3258 <a name="14-03-2013" /><a href="#14-03-2013"><hr><h2><b>March 14, 2013</b></h2></a>
3259 <blockquote><p>"Ford, you're turning into a penguin. Stop it." -
3262 <p><a href=downloads/toybox-0.4.4.tar.bz2>Toybox 0.4.4</a> is based on
3266 <p>The "cp" command now implements the -s symlink option, plus bugfixes
3268 "id -Gn root" should now print root's groups
3269 instead of the current user's. Several build fixes so toybox builds under
3270 Ubuntu 8.04 again (which is about as old a build environment as you
3271 can expect to find posix-2008 features in).</p>
3281 <a name="18-01-2013" /><a href="#18-01-2013"><hr><h2><b>January 18, 2013</b></h2></a>
3282 <blockquote><p>This must be Thursday. I never could get the hang of Thursdays. - The Hitchhiker's G…
3284 <p><a href=downloads/toybox-0.4.3.tar.bz2>Toybox 0.4.3</a> is based on
3289 <p>Elie De Brauwer added the rev command, cleaned up tac, implemented the -s
3290 and -f flags for seq, added -v and -i to killall (and fixed killall not to
3292 Felix Janda added -m to mkdir, pwd -L and -P, and more test suite entries.</p>
3297 default to -C and a screen size of 0 made column view unhappy), and cp got an
3303 <p>Infrastructure-wise the code is better about automatically setting the
3320 to -Os by default now.</p>
3322 <a name="15-12-2012" /><a href="#15-12-2012"><hr><h2><b>December 15, 2012</b></h2></a>
3326 </p><p>- The Hitchhiker's Guide to the Galaxy.</p></blockquote>
3328 <p><a href=downloads/toybox-0.4.2.tar.bz2>Toybox 0.4.2</a> is based on
3336 bug in login), and rm (from Rob Landley). Felix Janda added UTF-8
3337 support infrastructure (for non-ascii character sets) with a config option.
3338 Elie De Brauwer added tests for cat and sha1sum, and -so options to pidof.
3339 The "ls" command defaults to -C (column view) now, and "readlink" now supports
3340 -fenq.</p>
3342 <p>Portability work: toybox should now build against the musl C library,
3370 but am waiting for somebody to complain first. The default "ulimit -n" is 1024
3373 <a name="13-11-2012" /><a href="#13-11-2012"><hr><h2><b>November 13, 2012</b></h2></a>
3375 - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
3377 <p><a href=downloads/toybox-0.4.1.tar.bz2>Toybox 0.4.1</a> is based on
3385 <p>The patch command now supports -l, and gethostname is now enabled by
3387 Felix Janda added -m support to wc (for utf8).</p>
3390 "posix", "lsb", and "other" subdirectories (for things required by Posix-2008,
3401 <p>An upgrade to the build infrastructure now allows commands with _ and -
3409 calculation to match the POSIX spec. The kernel build didn't like our mktemp
3414 fixes (thinko in xpidfile). Fixed uname -m when running a 32 bit x86 binary
3415 on an x86-64 host (it lies and says the system is i686, i586, or i486 depending
3437 <a name="23-07-2012" /><a href="#23-07-2012"><hr><h2><b>July 23, 2012</b></h2></a>
3440 out." - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
3442 <p><a href=downloads/toybox-0.4.0.tar.bz2>Toybox 0.4.0</a> is based on
3455 <a href=code.html#lib_dirtree>dirtree</a> infrastructure, added an -r option
3456 to date (and fixed a bug where -u wouldn't override /etc/localtime),
3462 <a name="25-06-2012" /><a href="#25-06-2012"><hr><h2><b>June 25, 2012</b></h2></a>
3463 …nothing happened. Then, after a second or so, nothing continued to happen." - The Hitchhiker's Gui…
3465 <p><a href=downloads/toybox-0.3.1.tar.bz2>Toybox 0.3.1</a> is based on commit
3467 mostly a bugfix release for ls -l (which was unhappy on targets other than
3468 x86-64), plus a new "date" from Andre Renaud and rewritten chgrp/chown which
3478 <a name="12-06-2012" /><a href="#12-06-2012"><hr><h2><b>June 12, 2012</b></h2></a>
3480 he was more intelligent than dolphins because he had achieved so much - the
3481 wheel, New York, wars and so on - whilst all the dolphins had ever done was
3483 always believed that they were far more intelligent than man - for precisely
3484 the same reasons." - The Hitchhiker's Guide to the Galaxy.</p></blockquote>
3486 <p>It's well past time for <a href=downloads/toybox-0.3.0.tar.bz2>toybox 0.3.0</a>,
3505 you need a quarter-second sleep, it can do that now), and fixed a build bug
3509 mkdir -m). Ilya Kuzmich contributed comm. Elie De Brauwer added mountpoint,
3523 <p>Several random bugfixes: unshare() might actually build portably now,
3524 yes 'n' | cp -i should no longer bypass stdin and prompt via the tty, the
3526 multiplexer command, and a bugfix to xargs -0 means it should no longer
3528 posix whitespace handling that -0 obsoleted, but I'll deal with that next
3531 <p>The build infrastructure is now automatically generating FLAG_ macros
3543 <a name="03-03-2012" /><a href="#03-03-2012"><hr><h2><b>March 3, 2012</b></h2></a>
3548 for all these years."</p></p>- The Hitchhiker's Guide to the Galaxy.</p>
3551 <p>Here's <a href=downloads/toybox-0.2.1.tar.bz2>toybox 0.2.1</a> based
3563 for cmp. Frank Bergmann sent a warning fix. Bryce Fricke added -i to cp.
3565 cross compiling to work more reliably.</p>
3568 code, a build fix to unshare, some random bugfixes, and so on. My only new
3570 bloat-o-meter.)</p>
3583 <a name="12-02-2012" /><a href="#12-02-2012"><hr><h2><b>February 12, 2012</b></h2></a>
3588 <p> - The Hitchhiker's Guide to the Galaxy</p></blockquote>
3591 <a href=downloads/toybox-0.2.0.tar.bz2>toybox-0.2.0</a>, more a synchronization
3593 ready-to-use state (what "make defconfig" builds), another ten or so partially
3600 <a name="15-11-2011" /><a href="#15-11-2011"><hr><h2><b>November 15, 2011</b></h2></a>
3601 - Back from the dead, Toybox is now under a 2
3611 <!--#include file="footer.html" -->