Lines Matching +full:dozen +full:- +full:test +full:- +full:rules

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 <!-- new entry template
12 <a name="DD-MM-YYYY" /><a href="#01-01-2001"><hr><h2><b>Jan 1, 2001</b></h2></a>
16 </p> - The Hitchhiker's Guide to the Galaxy</p>
19 <p><a href=downloads/toybox-0.0.1.tar.gz>Toybox 0.0.1</a>
23 … using a <a href=https://github.com/landley/linux/tree/mkroot-0.1>lightly patched</a> linux-0.1).<…
36 <u>Test suite</u>:
38 -->
40 <a name="08-04-2024" /><a href="#08-04-2024"><hr><h2><b>April 8, 2024</b></h2></a>
48 <p>- The Hitchhiker's Guide to the Galaxy</p>
51 <p><a href=downloads/toybox-0.8.11.tar.gz>Toybox 0.8.11</a>
55 … under QEMU (built using a <a href=/bin/mkroot/0.8.11/linux-patches>lightly patched</a> linux-6.8)…
67 <p>And one command got temporarily de-promoted: <b>passwd</b> is "default n"
75 "cc -I scripts/prereq/generated file1.c file2.c..."). This provides
79 toybox-prereq at the start of the $PATH, add
82 <p>New <b>mv -x</b> option to atomically swap two files,
83 <b>env -e FILE</b> executes a different command than argv[0] on the command
85 negative offsets in <b>sort -k</b> count right to left,
87 and the -cc option will try to steal it,
89 <b>wc -L</b> shows longest line length,
90 <b>tar -h</b> now detects a lot more hardlinks,
97 not musl-libc), and added a "paste" menu to <b>microcom</b>. Kalesh Singh
100 with test. Oliver Webb suggested <b>count -l</b>.
101 Aditya submitted <b>netcat -z</b>.</p>
104 Fixed <b>printf \0</b> and <b>grep -w</b> (which never quite worked right),
105 <b>ls -k</b> now switches off --block-size,
106 <b>install -dm 02750</b> works (sticky bit support for -d),
110 <b>mkpasswd -m sha*</b> salt length can now range from 8-16, not just 16,
115 <b>iconv</b> now exits with error if any characters failed to convert with -c,
116 things like <b>truncate -s 1e2</b> were saying "too large" and now correctly
127 <p>Elliott added an error message to catch <b>xxd -r</b> receiving -p format
128 input without -p,
129 fixed <b>readelf -n</b> for x86-64 ibt/shstk notes
143 The in-progress rewrite of <b>lib/password.c</b> no longer uses shadow.h
153 [-abc] blocks, so you can have punctuation participate in option groups,
160 picking up the README.root file used by the tar-for-web.sh script
162 Extended <b>run-qemu.sh</b> so it can be run from other directories
163 (prepending $(dirname $0)/ to linux-kernel and initramfs.cpio.gz when
165 The initramfs now has <b>/etc/os-release</b> with the toybox $VERSION.
192 <p>Several new <b>mcm-buildall.sh</b> targets (or1k, riscv32, riscv64, sh4eb)
193 taking advantage of upstream musl-cross-make updating itself to use
194 musl-1.2.5. The target list in mcm-buildall.sh moved into a <b>TARGETS=()</b>
204 allows qemu-system-sh4eb to run the sh2eb nommu root filesystem), and armv4l
209 Rob enabled command recursion in <b>toysh</b> (so it can call non-builtins as
215 builtins, added <b>tr -t</b>, in <b>vi</b> added line gotos in ex mode,
228 from <b>nbd-client</b>.
233 mkroot/record-commands.</p>
236 Fixed <b>truncate -s 8g</b> on 32 bit hosts,
237 updated <b>mcm-buildall.sh</b> to autodetect host type and automatically
241 MacOS had a use-after-free with the getpwuid() return value being recycled
243 Elliott fixed diff.test to work with mksh, and posix_fallocate()
263 Fix <b>sed --help</b> to show full help, <b>patch -F</b> is now mentioned
271 by <b>mkroot/tar-for-web.sh</b> got updated.
273 and the architecture list got updated to match mcm-buildall.sh.
278 installed packages (dpkg-query -S "$(which $COMMAND)") and debian breaks
288 has already whack-a-moled) and means among other things
298 <u>Test suite</u>:
302 to be able to individually test them.)
304 TEST_HOST, which was used to fix <b>wc.test</b>.
305 Colin Cross fixed <b>pidof.test</b> when stdout is a socket.
307 so our <b>tar.test</b> for long filenames support needs to be skipped there
308 because the filesystem can't handle it. Similarly, our <b>truncate.test</b>
312 user and group names for any existing files. Added nbd-client.test
315 Elliott stabilized another slightly racy <b>ifconfig</b> test (big test
331 nevertheless warns if you printf("%ld", ptr-ptr) and wants a magic invented
338 <a name="30-07-2023" /><a href="#30-07-2023"><hr><h2><b>July 30, 2023</b></h2></a>
347 <p>- The Hitchhiker's Guide to the Galaxy</p>
350 <p><a href=downloads/toybox-0.8.10.tar.gz>Toybox 0.8.10</a>
354 … using a <a href=https://github.com/landley/linux/tree/mkroot-6.4>lightly patched</a> linux-6.4).<…
359 <p>Lots of changes to mkroot, <a href=http://landley.net/talks/mkroot-2023.txt>working</a>
363 Added a bunch of options to <b>tar</b> (-s --ignore-case --wildcards
364 --anchored --wildcards-match-slash --one-file-system), <b>ls --sort</b>
367 <b>cpio -R</b> to set user/group of all files and <b>cpio -L</b> to
368 follow symlinks, <b>gzip -t</b> to test file integrity, <b>find -readable</b>,
369 <b>cut -DFR</b> now has --longopts aliases (as suggested by the coreutils list).
371 autodetects console from sysfs with no -c argument, added "next address"
377 Elliott added <b>xxd -e</b> (little endian), <b>lspci -x</b> (hex dump of
378 pci config space), <b>ls --block-size</b>, widened the default
386 inputs (tested with <b>read i; echo =$i; head -n 1; done &lt; input</b>).
390 Fix </b>help -u -au</b>, and the "see othercommand" generation.
391 Adding fuzz support subtly broke <b>patch</b> in a couple places: fixed -R and
393 error for <b>cpio -i</b>, and <b>-d</b> just warns about directory creation
394 failure instead of exiting. Adding <b>--wildcards</b> logic to <b>tar</b>
400 Fix a <b>sed</b> bug when s//&amp;/ (the copy-matched-text operator) was the
401 first change made to the string. Fix error message for <b>find</b> -commands
404 parsing of command names with spaces in them. Fixed <b>grep -m -A</b> used
405 together (-m stops new matches but -A still shows lines after match).
406 Fixed <b>mv</b> to --preserve=all when copying between filesystems.
412 on error, and <b>date -s +abc</b> was segfaulting.
413 Jooyung Han fixed <b>nsenter</b> using -C and -t together.
414 More fixes from Eric Roshan-Eisner's toysh fuzzing, and he also sent a fix
429 into "mount -t TYPE" names.</p>
440 (kernel configs) is in a docs/ subdirectory. Added linux-microconfig
442 New <b>mkroot/tar-for-web.sh</b> script that generates tarballs for
458 Switched initramfs packaging to use more portable <b>cpio -R 0:0</b>
459 instead of --no-preserve-owner. Moved the -m 256 before $@ in run-qemu.sh
461 The <b>mkroot/record-commands</b> setup script will now use logpath
468 Eli Lipsitz fixed bugs in init and login. Elliott added risc-v support
472 and improved empty file handling. Rob fixed vi -s. Various cleanups to
481 and better line continuation handling in general, added set -u,
488 (which needs tests), <b>basename</b>, <b>bzcat</b>, <b>test</b>,
494 <b>cpio</b>. Added requested --gratuitous-longopt synonyms to <b>ls</b>.
500 utf-8 support still isn't automatic in libc (you have to set an appropriate locale to
501 enable it), and locales aren't entirely standardized: try C.UTF-8 (which MacOS hasn't got)
502 and fall back to en_US.UTF-8 (which Gentoo hasn't got).
511 Calling <b>command --help</b> and <b>toybox --help command</b> shows
516 Update <b>sed</b> help text now that -e and -f get processed in command
525 example if you needed "command -:" then ":" is ascii 58 (hex 3A,
529 <p><u>Test suite</u>:
530 Each command.test now runs in an empty subdirectory, and working files like
532 when you provide input in the current test's 4th argument), so the directory
533 listing doesn't contain anything the test didn't put there. (This simplified
535 The realpath test broke on mksh (which doesn't export $PWD by default).
541 When a test's name field was blank (meaning the actual test command line
542 should be displayed as the name) the test plumbing was adding the command
566 is counterproductive. LLVM needs a new -Wno-invalid-source-encoding flag
568 to put utf-8 in there I can just do so, why would I octal escape it?
571 <a name="10-01-2023" /><a href="#10-01-2023"><hr><h2><b>January 10, 2023</b></h2></a>
574 "I told you!" shouted Ford, leaping to his feet. "Eddies in the space-time
577 <p>- The Hitchhiker's Guide to the Galaxy</p>
580 <p><a href=downloads/toybox-0.8.9.tar.gz>Toybox 0.8.9</a>
584 … using a <a href=https://github.com/landley/linux/tree/mkroot-6.1>lightly patched</a> linux-6.1).<…
586 <p>The new <b>nbd-server</b> command interoperates with nbd-client to serve
587 network block devices (using the v1 protocol), and Moritz Weber contributed a read-only <b>git</b>
593 Improved <b>tar --xform</b> support parsing flags= and trailing s/// scope
594 flags (but using --xform now requires toybox sed in the $PATH).</p>
596 <p>Added <b>sort -C</b>, <b>lsusb -i</b>, <b>netcat -n</b>,
597 <b>swapoff -a -v</b>, <b>httpd -v</b>, <b>nbd-client -b</b>,
598 a <b>uname -p</b> stub to mollify package builds,
600 <b>sed</b> now parses interlaced -e and -f arguments in order,
603 <b>netcat -u -s 127.0.0.1 -p 9876 -l</b> can type at <b>netcat -u 127.0.0.1 9876</b>
606 Elliott added <b>ls -N</b>.</p>
608 <p><u>Bugfixes</u>: Fixed off by one error in <b>sort -c</b> output,
609 fixed <b>sed -z</b> and other sed cases where Linux has never obeyed
611 <b>patch --dry-run</b> should no longer create or delete files,
613 the ./configure of gmake 4.3 depends on <b>test</b> treating one argument -a as a synonym for -e,
619 <b>xxd</b> disables columns for -c 0 and groups for -g 0 (so you can get
622 the logic isn't quite the same, and -q should also quiet "not found" errors),
624 contents, fixed <b>comm -</b> not recognizing it as stdin, and multiple fixes to
629 <p>Yi-Yo Chiang fixed loopback <b>mount</b> (the recent switch to xrunread()
631 (old-style synonym for tail -n +123).
634 /etc/shadow when run as root, and nomas2000 reported an inverted test in
636 one in <b>grep -f</b> that discarded the last character of the pattern file's
642 feed a NULL pointer to the syscall's options arguments (the kernel goes -EWTF),
661 used by <b>stat -f</b> and friends.</p>
678 fixing the <a href=https://landley.net/notes-2014.html#13-08-2014>longstanding</a>
682 <a href=https://github.com/landley/linux/tree/mkroot-6.1>seperate repository</a>
691 needed by the linux-6.1 build. The kernel patches also remove the need
694 <a href=https://landley.net/notes-2013.html#18-05-2013>generally obsolete</a>).
696 …oybox/downloads/binaries/mkroot/0.8.9/linux-patches/0001-try-generic-compiler-name-cc-before-falli…
697 …landley.net/toybox/downloads/binaries/mkroot/0.8.9/linux-patches/0004-Replace-timeconst.bc-with-mk…
702 m68k and powerpc now support "run-qemu.sh -hda file.img", and m68k only
710 run the test suite under mkroot yet, because toysh needs work.)</p>
712 <p><u>Pending</u>: Elliott made <b>strace</b> build on 32-bit x86.
713 James Farrell added <b>diff -f</b>.
716 priority, a number of ASAN test failures, untangled and commented the
721 pending? (Meta-pending?)</p>
725 <b>nbd-client</b>, better output messages for <b>host</b>,
727 Moved -Wno-string-plus-int into portability.sh and had it only apply to
730 <p>In the test suite plumbing, $SKIPNEXT was replaced by <b>$SKIP</b> holding
731 a count that counts down with each test (so you can easily skip a block of
757 Android is still running the test suite under mksh which doesn't
758 understand bashisms like &lt;(command). LLVM insisted that "ptr - 1" could
763 a bunch of --longopt synonyms for existing options that package builds
767 generation logic (toybox help -av) now filter out invisible aliases and
769 cases like <b>nohup --help</b>.
772 <a href=https://github.com/landley/toybox/blob/0.8.9/scripts/git-static-index.sh>small shell script…
773 linking to the <b>git format-patch</b> files for
778 includes the prefix twice (ala CROSS_COMPILE=prefix- CC=prefix-cc results in
779 prefix-prefix-cc) which is what happens when you ask it to do that, yes. It's now
783 <p>Yi-Yo Chiang's losetup fix spawned an email thread where the
784 android developers <a href=http://lists.landley.net/pipermail/toybox-landley.net/2022-August/029139…
788 <a name="12-08-2022" /><a href="#12-08-2022"><hr><h2><b>August 12, 2022</b></h2></a>
792 <p>- The Hitchhiker's Guide to the Galaxy</p>
795 <p><a href=downloads/toybox-0.8.8.tar.gz>Toybox 0.8.8</a>
799 bootable under QEMU (built using vanilla linux-5.19).</p>
809 The new <b>timeout -i</b> option kills a command for inactivity (output
811 Basic support for <b>tar --xform</b> (but not yet the special tar-only s///x
813 --long options now support unambigous abbrevations by default, so you can
814 go "ls --col" and it'll figure out you mean --color.
815 Added <b>blkid -o</b> understanding "full", "value", and "export" output
816 formats. Added <b>nsenter -C</b> (cgroup namespace) and <b>-a</b> (enable all
818 Added <b>mount -R</b> and switched the bind mount default to be recursive
819 (it still autodetects --bind and --loop mounts based on the source/target type,
820 all --bind or --rbind do is switch the recursive flag on and off).</p>
822 <p>Elliott implemented <b>tar --null</b>,
826 from <a href=https://phoronix.com/news/LoongArch-MIPS-Copy-Kernel>china</a>).</p>
833 debian's (I.E. "unshare -npu" works the same as "unshare -n -p -u" not
834 "unshare --net=pu").
837 <b>test -x</b> and friends now test live access, not permission bits.
838 (Root ignores a lot of permissions, chmod u-x blocks you from executing your
850 <p>James Farrell switched the test suite from detecting root via $UID to
851 $(id -u). (It's not a security issue, this just controls which tests we attempt.
872 LDFLAGS=--static instead of putting that in CFLAGS.</p>
884 and so on. (The next toysh goal is to get the test suite running under mkroot, but
897 tests/skeleton.test exercises them. (This was motivated by <b>unshare</b>
911 to use them instead of doing the test ourselves. All missing/extra ! or
915 re-enter the list when it receives two different killer signals. (Since
923 non-issues at present.</p>
947 The top level "configure" is now re-entrant (shouldn't append stuff
951 <p><u>Test suite</u>:
953 of before, "make tests" now runs tar.test by default,
954 a new skeleton.test uses toys/example/skeleton.c to exercise the
968 instead of "root" (so things like "tar.test" don't get the same result),
973 (ala "truncate -s 3m file; truncate -s 5m file; du file" says it's using
976 to test on and the github tests don't reliably run when new commits are
985 a <b>linux-kernel</b> built from <b>linux-fullconfig</b> which is built
986 from <b>linux-miniconfig</b>, and a <b>run-qemu.sh</b> script to launch
998 (This is because toybox hasn't got built-in https support yet, it's on the
1006 <a name="23-07-2022" /><a href="#23-07-2022"><hr><h2><b>July 23, 2022</b></h2></a>
1008 <a href=https://landley.net/notes-2022.html#22-07-2022>happened
1015 <p>Dreamhost tech support has been informed of the issue a half-dozen times,
1023 <a href=#12-21-2015>a while</a>. I _think_ the 11 month gap that last link
1028 <a name="06-05-2022" /><a href="#06-05-2022"><hr><h2><b>May 6, 2022</b></h2></a>
1031 finally dived screaming on to the first planet they came across - which
1032 happened to be the Earth - where due to a terrible miscalculation of scale
1034 <p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
1036 <p><a href=downloads/toybox-0.8.7.tar.gz>Toybox 0.8.7</a>
1040 bootable under QEMU (using vanilla linux-5.17).</p>
1053 and Rob wrote a simple <b>httpd</b> (largely to give wget.test something to
1057 (everybody just uses <b>cat -v</b>).</p>
1064 sort field is now SHIFT LEFT/RIGHT). Added <b>find -samefile</b>,
1065 <b>cmp -n</b> (and wired up skip1 skip2),
1066 <b>tar --strip components</b> (and tar --owner and --group can now specify :UID and :GID making tar…
1071 In toysh, <b>cd</b> got updated ("cd -" jumps to $OLDPWD,
1075 <b>cp --preserve xattr,context</b> work together now, and
1076 Dario Freni fixed <b>cp --xattr</b> to avoid copying selinux context.
1077 The <b>sort -u</b> option now implies -s, <b>wget -O -</b> now writes to stdout,
1078 <b>pwget -B</b> removes more characters other implementations don't emit,
1081 Fixed <b>nl -E</b>, <b>realpath -e</b>, <b>find</b> -newerXY and @time.nanosecond parsing,
1082 Various <b>sh</b> (it handles ${X: -1:1} properly now,
1083 which is not the same as ${X:-1:1} because :- has special meaning).
1087 The multiplexer's <b>toybox command --help</b> once again shows the command's
1088 help (not toybox --help).
1099 options, imply "?" so "command -123" isn't an unknown option.
1120 More command sub-options removed (NETCAT_LISTEN and CAT_V).</p>
1129 Added -Wno-pointer-sign to $CFLAGS because passing an unsigned char * to a
1134 out of $PATH by --version and the powerpc64le build, respectively).</p>
1146 Moved llvm's -Wno-string-plus-int into configure instead of probing
1158 The mcm-buildall.sh script got some minor updates, and the resulting
1163 "toybox --help" no longer says "see toybox --help".
1171 Added the kconfig-language.txt from Linux-2.6.12 to the kconfig/ directory.</p>
1173 <a name="30-11-2021" /><a href="#30-11-2021"><hr><h2><b>November 30, 2021</b></h2></a>
1177 <p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
1179 <p><a href=downloads/toybox-0.8.6.tar.gz>Toybox 0.8.6</a>
1183 bootable under QEMU (using vanilla linux-5.15).</p>
1188 …c support for the <a href=http://lists.landley.net/pipermail/toybox-landley.net/2021-August/012497…
1190 <a href=https://lists.nongnu.org/archive/html/qemu-devel/2021-07/msg06430.html>quite yet</a>.)</p>
1199 Elliott added <b>date -s</b>, <b>pmap -p</b>, <b>tail -F -s</b>, <b>kill -0</b>,
1200 <b>reboot/halt/poweroff -d</b>, taught <b>file</b> to
1201 recognize Mach-o universal binaries, made Android's <b>log</b>
1202 take input from stdin when it has no arguments, added <b>tail --bytes --lines</b>
1203 (the --long synonyms for -c and -n),
1204 added <b>i2cdetect -q</b>, taught <b>i2cdump</b> to write XX for
1208 <p>Rob added <b>find -quit -lname -ilname</b> and <b>-d</b> as a synonym for -depth,
1209 taught <b>cut -d $'\n'</b>
1210 to cut by line and added posix <b>cut -nb</b> (which wraps to the start of -c
1211 utf8 characters), added <b>cpio --ignore-devno --renumber-inodes</b>,
1212 taught <b>cal</b> to use 3 arguments (day month year), added <b>tar --selinux</b>
1213 support and a "had errors" message at the end, made <b>uname -o</b>
1214 say "Toybox", and fixed the <b>grep -Fw</b> combination (used by the 64 bit
1217 <p>Ella-0 added <b>split -n</b>. Peter Collingbourne added <b>grep -L</b>.</p>
1220 <a href=https://standards.iso.org/ittf/PubliclyAvailableStandards/>ISO-5962</a>
1224 <p>Elliott asked that toybox's <b>cut -DF</b> feature (a cheaper
1227 <a href=http://lists.busybox.net/pipermail/busybox/2021-June/088886.html>submitted it to busybox</a>
1235 (like <a href=https://boingboing.net/2021/05/19/freenode-irc-staff-quit-after-new-owner-seizes-cont…
1237 <a href=https://hackaday.com/2021/05/20/freenode-debacle-prompts-staff-exodus-new-network/>was</a>
1247 types (declare -i, declare -u, etc), several bugfixes, greatly
1249 more sh.test entries.</p>
1260 scripts/mkstatus.py, the old status.html wrapper that server-side-included
1274 it's called with no arguments. (It still shows it for command --help.)
1275 The --help option no longer needs to be the first option, and is
1280 fixed an off-by-one in <b>dmesg</b> and a bounds check in <b>netstat</b>,
1281 fixed <b>pidof -s</b>, and taught <b>rmmod</b> to handle multiple arguments.
1282 Denys Vlasenko pointed out that <b>free -t</b> is "total" not "terabytes".
1285 without -p.
1291 whitespace and ignore trailing + or - (a NOP timezone), made <b>su</b> log the
1293 fixed a place in the test suite where do_test()
1296 made <b>env -i</b> use the old $PATH to run its command,
1297 and made <b>grep --color</b> highlight all matches.</p>
1302 a non-threaded app. (I hadn't noticed because it works fine with the musl
1306 FS_IOC_{GET,SET}{VERSION,FLAGS} ioctl family are <a href=https://www.spinics.net/lists/linux-api/ms…
1311 <a href=https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/commit/man2?id=3de87d46840d>giv…
1315 <b>cut</b> switched to FLAG() macros and no longer allows -f with -F,
1325 Ryan Pritchard reported a bug where <b>alias ls="ls --color"</b> would prevent
1326 --help or --version from being the first argument to the command, which was
1327 a pain to fix without breaking things like <b>echo -- --version</b> and
1328 <b>basename -s --help file--help</b>.
1335 <p><b>scripts/make.sh</b> now uses wait -n (available since bash 4.3 in February 2014)
1341 <a href=https://github.com/landley/toybox/pull/292#issuecomment-899895909>centos</a>,
1346 but the <a href=http://lists.landley.net/pipermail/toybox-landley.net/2021-August/012537.html>philo…
1347 remains <a href=http://lists.landley.net/pipermail/toybox-landley.net/2021-September/012603.html>un…
1355 <p>In the test suite, <b>VERBOSE=spam</b> now shows expands successful tests
1358 <p><b>scripts/record-commands</b> got updated and logwrapper got renamed <b>logpath</b>.</p>
1360 <a name="19-05-2021" /><a href="#19-05-2021"><hr><h2><b>May 19, 2021</b></h2></a>
1364 The other two-thirds stayed firmly at home and lived full, rich and happy lives
1366 a dirty telephone.</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
1368 <p><a href=downloads/toybox-0.8.5.tar.gz>Toybox 0.8.5</a>
1372 bootable under QEMU (using vanilla linux-5.12, except that s390 needed another
1400 <b>df</b> -a now shows overmounted filesystems.
1401 <b>test</b> -k checks the sticky bit.
1402 Added -t to <b>install</b>, <b>cp</b>, and <b>mv</b>, and -u to <b>cp</b>
1404 <b>find</b> -executable checks that _we_ can execute them (u+x could be owned
1407 <p>Elliott added several features to <b>date</b> (--iso, %:z output format, and
1408 --utc as a synonym for -u), added a <b>sed</b> s///x option,
1422 diff -u output).
1431 Yi-Yo Chiang fixed a <b>rm</b> bug where -f could get confused by read
1433 file, pointed out <b>install</b> -D was broken when the target file
1436 promised (corrupting the archive) and fixed another cpio bug where -t test
1437 mode would chown() files, and fixed quoting in mount.test.
1439 fixed some <b>sed</b> tests (sed's lie-to-autoconf --version
1442 Nir Lichtman pointed out that <b>rm</b> -p shouldn't try to rmdir / at the end,
1443 Luke Frankart pointed out a typo that broke <b>test</b> checking file modes,
1445 Ethan Sommer fixed <b>install</b> -Dt,
1447 -tnomsdos,smbfs.
1451 Daniel Santana fixed <b>df</b> combining -P and -k,
1455 (as described in RFC 1952) and added a test suite entry for that.</p>
1457 <p><b>find</b> handles empty arguments properly now (with test), <b>date</b>
1458 -I with no arguments no longer segfaults, <b>grep</b> -f /dev/null no
1459 longer adds a "" regex matching everything, -z no longer splits patterns
1460 on \n, and -o can print zero length matches,
1461 <b>cp</b> -t works with one argument and with --parents.
1465 <b>tar</b> now removes empty directories where it wants to put a non-directory.
1468 <p>The prebuilt x86-64 binaries shouldn't segfault on older x86-64 processors
1471 a hyphenated "toybox-$TARGET" and then tried to make symlinks to just "toybox".</p>
1475 Ella-0 added OpenBSD support (but not a separate defconfig, try
1480 xclose() tests if fd is -1 so the caller doesn't have to.
1481 txpect (the test suite's built-in "expect", implemented in shell) can
1482 now do regex matches, and sh.test uses this.</p>
1491 test for it). The <b>echo</b> help text is more compact.
1494 <a name="24-10-2020" /><a href="#24-10-2020"><hr><h2><b>October 24, 2020</b></h2></a>
1496 "We are now cruising at a level of two to the power of twenty-five thousand to
1499 <p>- The Hitchhiker's Guide to the Galaxy</p>
1505 <a href=downloads/toybox-0.8.4.tar.gz>Toybox 0.8.4</a>
1510 now, tiny toybox linux systems for a dozen architectures, all bootable under
1511 qemu. (The vmlinux in each tarball is a vanilla linux-5.9 kernel built
1515 more links. New command features include the <b>sed -s</b> flag,
1516 <b>cpio --no-preserve-owner</b> now affects archive creation,
1517 Elliott added <b>tar -I</b> and multi-type
1518 <b>find -type a,b,c</b> support, Mark Salyzyn added <b>xargs -P</b> to
1540 3 libc we regression test against), and "where does toybox fit into the
1542 The "toybox --help" output now lists the project's web page (<a href=https://github.com/landley/toy…
1547 command list output (and "kill -l") to measure the current the terminal width
1558 TEST_HOST to version skew, and scripts/test.sh will now skip TEST_HOST
1583 Elliott fixed chmod -R
1584 …tps://github.com/landley/toybox/issues/251>misparsing c_iflags</a>, fixed the chattr f2fs test with
1586 to read date's default output format, fixed a recent echo -e \0 regression,
1587 changed cpio -p parsing to match a <a href=http://lists.landley.net/pipermail/toybox-landley.net/20…
1592 <p>David Legault pointed out that unescape2() (and thus echo -e) wasn't handling
1598 to an archive, and reported that --exclude wasn't working.
1599 Peter McConalogue pointed out that cp/mv -i prompt should
1606 Martin Stjernholm fixed <b>cp -P</b> to not follow symlinks and updated
1608 Antoni Villalonga added more --long asiases to <b>chgrp/chown/rmdir</b>.
1627 Rob switched dirtree_path() to a non-recursive implementation, and
1630 read_password() now reads from tty device rather than stdin, and handles ctrl-c and ctrl-d, and
1637 mkroot now only passes --no-preserve-owner to cpio (so initramfs files
1639 version, because the other one is brain-damaged and errors out not
1648 Cleanup blkdiscard so lib/args.c parses the -o and -l numbers, which means
1650 oneit now uses flag macros and mentions -rn in the help. demo-utf8towc
1654 <a name="11-05-2020" /><a href="#11-05-2020"><hr><h2><b>May 11, 2020</b></h2></a>
1664 <p>- The Hitchhiker's Guide to the Galaxy</p>
1667 <p>Despite everything <a href=downloads/toybox-0.8.3.tar.gz>Toybox 0.8.3</a>
1673 (Some people were looking forward to <b>patch --fuzz</b> support too.)</p>
1676 builds a bootable toybox-based Linux system using two source
1679 a <a href=http://lists.landley.net/pipermail/toybox-landley.net/2020-April/011667.html>post with in…
1680 cross compilers for testing the various architectures. The self-contained
1697 build bug where "make distclean" doesn't work in a "cp -sfR" symlink
1705 ctrl-c.
1712 <p>As for <b>scripts/mcm-buildall.sh</b> building cross compilers,
1716 be used but prevents compile-time probes from detecting nommu,
1721 <a href=https://github.com/richfelker/musl-cross-make/commit/5086175f2902>version</a>
1722 of musl-cross-make with the top level Makefile
1724 <a href=https://www.spinics.net/lists/linux-sh/msg56844.html>breaks the kernel
1726 and LINUX_VER = 4.19.90 because the default musl-cross-make config uses an
1727 out-of-tree headers package for some reason (those who forget history are
1731 (I've also <a href=http://lists.landley.net/pipermail/toybox-landley.net/2020-May/011673.html>test
1750 <b>cal</b> highlight the current day, added -T to <b>cp</b>/<b>mv</b>,
1751 did a lot of work on <b>lsattr</b>/<b>chattr</b> (including adding -p
1752 and "chattr ="), added tar --absolute-names, taught <b>id</b> to
1753 support numeric lookup and handle unknown groups, made -G show all
1754 groups, and removed context= from -Z.
1755 Rob added <b>patch -F</b> (fuzz factor) support and <b>help -u</b> (usage only),
1756 taught <b>echo -e</b> about bash extensions like \uXXXX unicode escapes,
1757 <b>netcat -L</b> no longer automatically includes stderr (new -E
1759 <b>setsid</b> now uses -c (like the man page says) instead of -t, and added
1760 -w (wait) and -d (detach from tty).
1761 Andrew Ilijic added <b>ls -w</b>, removed trailing whitespace on output,
1762 and added tests for -C and -x.</p>
1787 currently applied to help, echo, false, kill, printf, pwd, test, time, and
1799 <b>find -L -type -l</b> now finds dangling symlinks, extra #ifdefs in
1803 <b>netcat -L</b> no longer accumulates zombie processes,
1810 Elliott fixed xargs -E, various things in modinfo,
1811 added an error check to gzip when using zlib (which copies non-gzip data to
1819 of its array in patch.c, removed the cpio --trailer option,
1824 Jarno Mäkipää fixed utf8 support in cut -C, and cp --parents.
1829 Denys Nykula fixed rm -i not to prompt for an empty "" argument.
1832 Elliott switched <b>ls</b> to use the path-based functions now (which is racy,
1845 ctrl-c.</p>
1850 The non-git version number I keep forgetting to update each release moved
1852 Fixed a couple different errors in mkflags.c (one of which caused ls --color
1864 standard toybox argument parsing for -v and -p.
1865 Several commands (help, cp) had sub-options removed from menuconfig.
1872 <p>Update roadmap to note that posix-2008 moved to a different URL (content
1884 <p>Shrank the sed help from 150 lines to 90-ish.</p>
1889 reports the first non-matching step. (This for example lets sh.test check
1896 EVAL doesn't supply -- (you have to provide your own if you want that).</p>
1907 because they (intentionally!) don't support --help.
1911 <a name="18-10-2019" /><a href="#18-10-2019"><hr><h2><b>October 18, 2019</b></h2></a>
1916 </p> <p>- The Hitchhiker's Guide to the Galaxy</p>
1919 <p><a href=downloads/toybox-0.8.2.tar.gz>Toybox 0.8.2</a>
1924 (<b>dnsdomainname</b> is hostname -d, <b>arch</b> is uname -m), but about
1926 and Android's <a href=http://lists.landley.net/pipermail/toybox-landley.net/2019-August/010845.html…
1929 <p>The android-specific <b>getprop</b>, <b>setprop</b>, <b>start</b>, and <b>stop</b>
1941 <p>The new "scripts/mcm-buildall.sh" convenience script builds cross
1944 using <a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a>,
1954 <p>Patrick Oppenlander fixed make -j (our make is a wrapper around
1956 make with -j it wouldn't wait for make.sh to finish and the build broke).</b>
1961 We upgraded <b>tar</b> to extract some older tarballs, <b>file</b> added -b and -s
1969 <b>patch</b> ignores the -f -g# and --no-backup-if-mismatch options
1971 ignores -P# (which requests parallel execution, maybe add it later but
1973 --no-check-ceritificate and <b>gzip</b> ignore -n (again, we weren't doing
1978 Eric Molitor implemented <b>nl</b> -v (with negative and zero starting values),
1980 Tom Cherry added <b>netcat</b> -U (UNIX domain socket support).
1982 Ethan Sommer added ln -t and rmdir --ignore-fail-on-non-empty.
1983 Elliott Hughes added <b>grep</b> -R, <b>killall</b> -w, tar --mode,
1984 fixed <b>ls</b> -Z and spacing in -lZ and --full-time,
1985 added <b>xargs</b> --max-args and removed xargs -I (which we never actually
1988 added xargs -o and made -p read from /dev/tty, added <b>blkid</b> -s, SEC_TYPE for ext3,
1991 display in <b>lsof</b>, added <b>pidof</b> -x (thus making the default behavior _not_
1992 be -x).</p>
2000 with 1 argument (implicit - as second argument reading from stdin).
2004 <b>find</b> grew several new options (%Z, -true, -false, and -newerXY), <b>ln</b> added -T.
2005 The argument to <b>mktmp</b> --tmpdir is now optional.</p>
2008 The unshare probe bit-rotted so it was impossible to build <b>unshare</b>
2014 (ln -s toybox sh; ln -s sh ash) had an off by one error,
2016 and later block that for non-root users to prevent device tracking).
2018 hasn't got built-in support for yet (like sha3sum) which acted like redundant
2025 <b>cp</b> -r unlinks() an existing symlink before trying to
2026 recreate the symlink (otherwise cp -r into an existing directory will
2031 and <b>hostname</b> -d no longer segfaults on machines with no domain name.</p>
2042 made <b>printf</b> \c and \0 octal escapes work, fixed a <b>find</b> -name corner
2043 case (find src/*.c -name file.c) and find dangling symlink behavior,
2046 fixed a race in <b>losetup</b>, fixed <b>grep</b> -F with multiple matches on the same
2047 line and an -I failure in the existing grep tests, made <b>readlink</b> notice
2057 (non-UTF8) locale (didn't expect wcrtomb to return -1).
2066 DIRTREE_STATLESS returns entries we couldn't stat() (with a zeroed ->st
2067 field, and ->again |= 2), but filling in the file type from readdir().
2093 <p>Android ndk-r20 doesn't define the __ANDROID_NDK__ symbol, so we switched
2113 implemented diff --strip-trailing-cr and made diff not need /tmp.
2116 <p><u>Test suite</u>: The killall and pgrep tests were having occasional
2117 spurious failures due to a race condition (the test script would fork()
2118 to call sleep and for just a moment there were two instances of the test
2121 <p>Elliott Hughes did a lot of work on the test suite: add kill -l tests,
2122 make losetup.test notice (and skip) if loopback
2123 devices area already in use, blkid.test can TEST_HOST e2fsprogs blkid now,
2124 modinfo.test notices (and skips) if there's no /proc/modules or modules
2125 directory, ifconfig.test skips if "dummy0 up" fails and disabled the
2127 truncate.test is less
2128 confused by SELinux, hostname.test can run some tests as non-root,
2129 addressed a race condition in killall.test on slow systems,
2130 made chgrp.test, chown.test, and tar.test handle an empty /etc/passwd or /etc/group
2133 fixed a couple things in env.test, extended killall.test to explicitly cover
2134 long and short names (and not assume the shell is /bin/sh), taught split.test not to rely on bash p…
2135 added missing TZ=utc to touch.test, fixed cp.test to pass for root
2137 $(()). Elliott also made some tests more flexible (find.test can handle any
2143 and make kill.test stop testing the shell builtin
2155 The "./toybox --help" output now explains how to do install_flat by hand.</p>
2161 <a name="21-05-2019" /><a href="#21-05-2019"><hr><h2><b>May 21, 2019</b></h2></a>
2163 …e first helpful or intelligible thing anybody's said to me all day."</p> <p>- The Hitchhiker's Gui…
2166 <p><a href=downloads/toybox-0.8.1.tar.gz>Toybox 0.8.1</a>
2170 …ybox as part of a <a href=http://lists.landley.net/pipermail/toybox-landley.net/2018-November/0098…
2172-tools/+log>build-tools</a> and <a href=https://android.googlesource.com/platform/build/soong/+log…
2179 Tar is a near-rewrite with support for --owner --group and --sparse,
2180 capable of autodetecting "wget blah.tar.bz2 -O - | tar xv", a --restrict option
2187 <p><u>Updates</u>: Elliott added <b>find</b> -wholename/-iwholename, -printf,
2188 and -context, <b>grep</b> --exclude-dir, and <b>echo</b> -E.
2189 Rob added <b>blkid</b> -U and -L, <b>mount</b> now has UUID= support via blkid -U,
2190 you can now specify TZ="blah" in the <b>date</b> -d input string (although
2192 understands ,+N relative ranges. Makepost added <b>rm</b> -v.
2196 <b>touch</b> -t and -d autodetect the time format.</p>
2205 terminal types, made more better about directories and non-tty output,
2207 to recognize a c-sky ELF machine, and fixed timezone and daylight
2210 When run as non-PID 1 (for a chroot) oneit's exit code now indicates
2215 Sort's -k2.3,4.5 syntax is now documented and behaves more closely to
2231 and an endless loop with -EPIPE, fixed find -path/-ipath, made loggit()
2233 of --longname synonyms for short options, added getfattr --only-values,
2234 and timeout --foreground --preserve-status and --signal.</p>
2237 parent thread (in -H mode), hides the cursor in interactive mode, updates the
2244 Top now treats -o "" as an error (previously it displayed an empty screen).</p>
2247 clear the environment when -p is absent.
2248 Vidar Holen fixed inverted find -exec exit status.
2250 because a <a href=https://github.com/varnishcache/varnish-cache/issues/2879>newly added gcc bug</a>…
2253 A missing else in grep meant -x was sometimes ignored.</p>
2261 fails (because AOSP build scripts cared), so timeout --unknown returns 125
2267 (meaning -x was or wasn't encountered on the command line this time by
2272 lets long-running loops reset environment variables without memory leaks.</p>
2277 <p>New xparsedate() and xvali_date() functions allow date, tar --mtime, and
2288 xabspath() uses O_PATH now (because Android's SELinux rules got more aggressive).</p>
2304 so <a href=https://github.com/github/choosealicense.com/pull/643#issuecomment-463746027>github coul…
2305 "<a href=https://github.com/github/choosealicense.com/pull/643#issuecomment-464380789>a while</a>" …
2325 The test suite now does an rm -rf on testdir between each command so
2327 New skipnot function skips the next test if a command line fails, and
2331 The find -newer test calls "sleep .1" to avoid intermittently failing with an
2333 Elliott added the start of a file.test rogues gallery.
2337 <a name="08-02-2019" /><a href="#08-02-2019"><hr><h2><b>February 8, 2019</b></h2></a>
2343 <p>- The Hitchhiker's Guide to the Galaxy</p>
2346 <p><a href=downloads/toybox-0.8.0.tar.gz>Toybox 0.8.0</a>
2356 Protocol, a compatible subset of ntp). The <b>test</b> command was rewritten
2359 <p><u>New options</u>: <b>grep</b> now has --color, supports embedded NUL bytes in its input,
2360 recognizes binary files, and passes all of grep.test (in case you
2361 needed the middle numerical field of -bB, etc).
2363 Volodymyr Medvid reported that install -d doesn't honor -o or -g.
2365 <b>mkdir</b> accepts both --parent and --parents as synonyms for -p, <b>touch</b> ignores -f,
2366 <b>basename</b> added -s to remove a trailing suffix, <b>dirname</b> now supports multiple
2367 arguments, <b>cmp</b> accepts --quiet and --silent as synonyms for -s, <b>hostname</b>
2368 added -sfd, <b>head</b> added --bytes as a synonym for -c and --lines as a synonym
2369 for -n, <b>mktemp</b> added -t and fixed -u, <b>sed</b> added -z and -iEXT to keep backup files,
2370 <b>md5sum</b> and sha1sum added --status and --check as synonyms -s and -c,
2371 <b>readlink</b> added --canonicalize as a synonym for -f, <b>sort</b> grew -V,
2372 <b>patch</b> added -s its synonym --quiet, <b>stat</b> added --format as
2373 a synonym for -c, <b>xargs</b> added -p -t -r,
2375 that <b>umount</b> ignore -c. Reverend Homer added a small optimization to file.c,
2377 taught <b>ls</b> -t to use the nanoseconds field.
2381 <b>cp</b> --preserve was segfaulting when you didn't specify _what_ to
2384 <b>sort</b> -x didn't work when
2393 Marius Adaskevicius pointed out <b>mdev</b> -s should follow symlinks,
2419 names via an escape syntax (because mkfs.vfat specifies an offset with -@),
2421 didn't have a dash (allowing "ps ax" and "ps -ax" to behave differently).</p>
2428 yocto 2.6 buils with -Werror=format-security by default).</p>
2439 reformatted a lot of --help text for consistency (removing trailing
2442 <p><u>Test suite</u>:
2443 The test suite now has its own version of "pending", specifically "make tests"
2444 skips test files without the executable bit set (unless you export $TEST_ALL).
2446 from the global regression test. Additional tests can be added to the global
2447 regression test with chmod +x as the todo items they document get resolved.</p>
2449 <p>Several places the test suite got fluffed out, including guards to skip
2450 root-only tests when run as a normal user. The testcmd function prints the
2452 The tests for the test command
2453 ("test.test") no longer test the shell builtin but correctly test the
2460 <a name="31-10-2018" /><a href="#31-10-2018"><hr><h2><b>October 31, 2018</b></h2></a>
2463 This has made a lot of people very angry and been widely regarded as a bad move."</p><p>- The Hitch…
2467 <p><a href=downloads/toybox-0.7.8.tar.gz>Toybox 0.7.8</a>
2471 <p>Toybox <a href=http://lists.landley.net/pipermail/toybox-landley.net/2018-October/009769.html>no…
2472 You have to add an "llvm-cc" symlink to "clang", then use CROSS_COMPILE=llvm-
2474 target you want to build for. (To run it on a non-android host, you probably
2475 want "LDFLAGS=--static" too.)</p>
2478 courtesy of Elliott/Android. The <b>watch</b> command got a complete (tty-aware)
2484 The <b>ifconfig</b> command added -S (short view) giving one line of
2486 format. <b>grep</b> grew binary file detection, with -I and -a options to
2488 Zach Van Rijn asked for <b>find -empty</b>.
2491 Elliott also added "getconf -a" and a lot of missing getconf symbols the
2495 processing each like last release), and -l grew section identifiers (so
2496 the "getconf -l" output is no longer a directly consumable list of symbols
2498 Command line options specifying durations (like top -d or ping -i) can
2499 now use fractions and units, like "1.5" and ".1m". See "toybox --help" for
2502 name it's called under (so if you "ln -s $(which sleep) blah" and then
2509 In <b>diff</b> the android guys added --color and timestamps on the
2510 +++/--- lines. In <b>mdev</b> Faustas Azuolas Bagdonas added support
2512 improvement in <b>wget</b>, Kevin Spiteri did a cleanup pass on test.c,
2516 Elliott responded to a bug in <b>getconf</b>'s sed-based header generation by
2525 Several fixes in <b>ping</b> (-w and -W didn't work, -c kept sending packets
2530 also fixed the units on blockdev --blkraget (reported by Martijn Coenen).
2532 style, leading zeroes, switch -f from %t to %T), <b>oneit</b> no longer
2536 triggered Android's strict ioctl filtering on non-filesystem fifos).
2538 CROSS_COMPILE) will now overwrite the (read-only) output file instead of
2544 into a hermetic build (hopefully with an eventual self-hosting option, work
2548 The <b>ps</b> help text changed: now "ps -o help" shows the fields and the normal
2549 --help is much more manageable. Ifconfig's --help text also got tidied up.
2551 the kconfig/ subdirectory still having (build only, non-shipping) GPL code
2588 <a name="23-06-2018" /><a href="#23-06-2018"><hr><h2><b>June 23, 2018</b></h2></a>
2594 <p> - The Hitchhiker's Guide to the Galaxy</p>
2597 <p><a href=downloads/toybox-0.7.7.tar.gz>Toybox 0.7.7</a>
2604 <p><u>New options</u>: The <b>cp</b> command added the --parents option,
2605 <b>readlink</b> now has -m to show where a missing path would be,
2608 Ng Zhi An added --getra and --setra (get/set readahead) to <b>blockdev</b>,
2609 Elliott Hughes added <b>xxd</b> -o and made <b>top</b> -d understand fractional
2610 sections (because the Linux Test Project uses that), and
2611 Minghui Liu added <b>watch</b> -b.</p>
2614 48-core machine
2615 and fixed a glitch with -n, Haroon Maqsood pointed out "vmstat 1 1" didn't
2616 stop and "vmstat -n" didn't print the first theader line.
2617 Minghui Liu fixed a bug where <b>cp</b> -p didn't preserve
2619 working. Ryan Pritchard pointed out that <b>du</b> -d0 should act like du -s.
2623 Elliott fixed several things in <b>top</b> (removed spurious '\r' characters from -b
2626 ("cat /bin/ls | file -" still won't work but "file - < /bin/ls" should).
2628 and fixed <b>cut</b> -DF
2630 because outputting all delimiterless lines isn't what you want there, -D
2635 prequisites that needs to run, and reformatted more of the ps --help text
2640 with & has no dash in its first argument. (This lets "ps -ax" and "ps ax"
2642 The comma-separated-list parsing infrastructure moved to lib/commas.c.
2655 through the test suite (ala "make test_sed"), then
2656 demo_human_readable became demo_number so it can also test atolx()
2657 suffixes. The readlink.test was getting confused by a
2658 behavior difference between toybox and ubuntu (Ubuntu's ln -sf wouldn't
2660 an explicit rm so it works on ubuntu too. The test suite plumbing's
2661 error message for a test with the wrong number of arguments now
2662 correctly identifies which test it's complaining about, and it can now
2663 run a test on a command name beginning with "-" (none yet but it
2672 dynamic libraries without corresponding --static versions).
2676 <a name="24-02-2018" /><a href="#24-02-2018"><hr><h2><b>February 24, 2018</b></h2></a>
2683 <p> - The Hitchhiker's Guide to the Galaxy</p>
2686 <p><a href=downloads/toybox-0.7.6.tar.gz>Toybox 0.7.6</a>
2696 ranges, utf8/unicode characters, and new -CDFO options. Use -C to measure
2697 columns rather than characters (for double width chars), and "cut -DF 3-5"
2700 <p>This release adds <b>top -m</b> and <b>iotop -H</b> (and fixed top width truncating for narrow t…
2701 added <b>iconv -c</b>, fixed <b>ps -T 1234</b> to show threads belonging to
2707 "See %s --help" message on the same line, and several web pages
2710 <p>Elliott and the Android devs added <b>df -i</b>, <b>uptime -p</b>,
2711 <b>time -v</b>, and <b>xxd -i -ri</b>,
2712 fixed <b>id -G</b> to only output the group IDs, fixed the <b>xargs -0 -n</b>
2713 combination, made <b>find -exec +</b> obey ARG_MAX (just like xargs), made
2729 <p>Commands with locale support now setlocale(LC_TYPE, "C.UTF-8") for more
2735 (which as a 64 bit number is good for + or - 292 million years from
2737 -1 instead of erroring out.</p>
2744 <a name="12-10-2017" /><a href="#12-10-2017"><hr><h2><b>October 12, 2017</b></h2></a>
2747 <p> - The Hitchhiker's Guide to the Galaxy</p>
2750 <p><a href=downloads/toybox-0.7.5.tar.gz>Toybox 0.7.5</a>
2755 of the many half-finished projects (dd, ping, lsof, iconv, cut, sysconf,
2756 the cp --parents option...) finished/promoted/tested, but decided adding big
2759 <p>A couple <b>new features</b> slipped in anyway. Ilya Kuzmich added head -c
2760 and strings -t (and corrected strings' output in a couple places). Elliott
2761 Hughes taught file to recognize Macintosh (Mach-O) binaries.</p>
2763 <p><b>NOTE</b>: the chrt command is broken when built against musl-libc
2766 <a href=https://git.musl-libc.org/cgit/musl/commit/?id=1e21e78bf7a5>removed
2768 so the chrt command there will always say -ENOSYS. (It works fine built against
2771 <p><b>Bugfixes</b>: Remounting (mount -o remount,rw) should work properly now,
2774 mostly noticeable in long-running "top" exiting; error value was treated
2775 as a pointer). Elliott Hughes fixed a -Wformat warning in expr.c,
2779 Josh Gao made netcat -l exit after handling a request, and reported a
2781 broken URL in the README. Rob fixed env -0 checking the flag wrong so
2801 stub function so compile-time probes for its existence think it's there, and
2802 you can't run the result to test behavior when cross compiling).</p>
2804 <a name="19-06-2017" /><a href="#19-06-2017"><hr><h2><b>June 19, 2017</b></h2></a>
2805 <blockquote><p>It is a well-known fact that those people who most want to rule people are, ipso fac…
2807 <p>- The Hitchhiker's Guide to the Galaxy</p>
2810 <p><a href=downloads/toybox-0.7.4.tar.gz>Toybox 0.7.4</a>
2817 -M and -S to match and skip wildcards respectively (useful with -r).
2818 Elliott's updated dmesg has -T and --color. The file
2819 command can recognize gzip now, uptime grew -s, date grew %N, env knows - as a first argument
2820 means -i (posix!) and grew -0, ls defaults to -b
2821 instead of -q now when there's a tty, and ls has a new -ll option (with
2822 --full-time as a compatibility synonym) showing nanoseconds and (for some
2824 "uudecode -o -" support. Illya Kuzmich taught head -v and -q. The cpio
2827 (Use the new --trailer option if you want the legacy behavior.)
2832 the kernel <a href=https://landley.net/notes-2013.html#28-03-2013>inexplicably</a>
2837 <p>Lots of work on the test suite, mostly from the Android guys who are now
2839 pass, made more tests run on a toybox-only system, and so on. The test suite
2850 <a href=http://lists.busybox.net/pipermail/buildroot/2016-December/180102.html>last release</a>.</p>
2858 help text for argument errors but instead just say "See %s --help" with the
2860 Elliott did a big period-ectomy on all the --help text, and
2862 non-html help -a output now has separators with the command name.
2870 was causing long-running top instances to occasionally exit),
2873 (so "ps -A | cat" doesn't vary), date's chkmktime() was replaced with
2880 Elliott fixed touch -a/-m (they were backwards), and allowed ':' in
2881 setprop's property names. Grep now exits with 2 for errors (so -q can
2891 <a name="21-02-2017" /><a href="#21-02-2017"><hr><h2><b>February 21, 2017</b></h2></a>
2895 <p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
2897 <p>Despite everything, <a href=downloads/toybox-0.7.3.tar.gz>Toybox 0.7.3</a>
2910 <p><u>New features</u>: Rob added units to <b>find</b> -atime and friends
2911 (with the legacy -amin alias). Elliott added color and -w to dmesg, fallocate
2912 -o, and improved file's ELF parsing. Steve Muckle added -d and finit_module
2916 df -a isn't entirely new, but wasn't documented and needed a bugfix.</p>
2919 Last release broke oneit because -c didn't get moved to xopen_stdio() (oops).
2922 that case but also switches on -w to avoid field truncation. The "tty"
2926 And while we're there, replace "ADDR" with "BIT" in ps -l so there are
2929 <p>Izabera pointed out that split -b and -l can't mix, and suggested seq should
2931 increments. Wang Xiao Jian fixed a bug in sort -k.
2934 Elliott also improved some error reporting and improved top -H's display
2938 in chmod -R (and the resulting generic fix to dirtree_notdotdot() fixed
2943 Rob fixed an option parsing bug (where switching off a --longopt in menuconfig
2945 (ala "abc[-ab][!abc]" with "command -a -b") would segfault.</p>
2947 <p>There's some sort of gcc stack over-optimization bug where musl-libc's
2949 stack varabiles in the same function after that get semi-randomly overwritten
2967 when you "ps -A | head" about EPIPE on output. (Older versions of bionic
2988 but it's a work in progress (<a href=http://lists.landley.net/pipermail/toybox-landley.net/2016-Dec…
2992 <p>Cross-compiling from Macs needs to use "gsed" instead of apple's
2999 The new dirtree flag DIRTREE_PROC skips non-numeric entries so things
3002 <a name="21-10-2016" /><a href="#21-10-2016"><hr><h2><b>October 21, 2016</b></h2></a>
3005 own problem.</p><p> - The Hitchhiker's Guide to the Galaxy</p></blockquote>
3007 <p><a href=downloads/toybox-0.7.2.tar.gz>Toybox 0.7.2</a>
3011 …ott Hughes <a href=http://androidbackstage.blogspot.com/2016/07/episode-53-adb-on-adb.html>got int…
3013 …linuxluddites.com/shows/episode-88/>got interviewed on Linux Luddites</a> (<a href=http://linuxlud…
3026 <p><b>Upgrades</b>: All commands now parse --version when they understand
3027 --help, but "true" and "false" should now ignore their arguments entirely.
3028 We taught stat to handle "%12x" and "%.12x" printf-style escapes, which
3030 device driver. Added patch -d and --dry-run, wc can now do -cm together,
3031 find has a NOP -noleaf so scripts that use that don't break, add -c to md5sum
3032 and sha1sum. Elliott taught ps to treat extra aguments as additional -p
3033 pids, implemented xxd -s, did a number of upgrades to file (added -HL,
3036 Elliott also added optional build-time support for using openssl's
3037 assembly-optimized md5sum/sha1sum implementations (leading to a new
3043 …sourceware.org/bugzilla/show_bug.cgi?id=17829>glibc bug 17829</a>, made sed -i preserve ownership …
3044 made du max out at 2 terabytes instead of 2 gigabytes on 32-bit systems
3048 octal digits and handling the (posix-mandated) difference between %b and
3049 non-%b octal output, reading from "-" no longer closes stdin when done,
3050 netcat -L works with nommu (although it may need more portability work),
3056 appropriate). "LC_ALL=C ls -Cs --color" produces the same output
3057 as other versions (two spaces padding, -k hardwired on).<p>
3063 changing, fixed ls -sh, and added a lot of
3065 Izabera pointed out cmp -l and -s can't be selected at the same time,
3066 that timeout was never actually checking -v, that ls should default to -q
3067 when output is to a tty, and that "file -" would sometimes try to open "-"
3071 hardwired 512-byte units, so stat.c was wrong. David Hedges pointed out
3078 test fails (and thus returns a nonzero error code).
3085 (although <a href=http://lists.landley.net/pipermail/toybox-landley.net/2016-September/008664.html>…
3087 <p>Several commands were over-using xprintf(), which flushes its output
3114 understands that "-" means stdin. New flag WARN_ONLY tells these functions
3115 to just print a warning on failure, and return -1 instead of exiting.
3121 <p>New TOYFLAG_NOHELP disables --help processing (which "true" and "false"
3124 <p>The test suite now has NOSPACE=1 to ignore whitespace (using diff -b to
3129 the command name ($C) to the test command line as well as the test
3132 <a name="02-06-2016" /><a href="#02-06-2016"><hr><h2><b>June 2, 2016</b></h2></a>
3137 brain to see what is likely to be well received. However, no-one knows
3140 <p> - The Hitchhiker's Guide to the Galaxy</p></blockquote>
3142 <p><a href=downloads/toybox-0.7.1.tar.gz>Toybox 0.7.1</a>
3144 is out. (Yes, I forgot to update the --version string, but I already
3158 <p>Izabera implemented env -u, suggested adding seq -w, made factor
3160 -w0 should disable wrapping, and sped up wc -c.
3161 Elliott Hughes added mount -o relatime, xxd -p -r, and od -w.
3162 Sameer Pradhan (or possibly Bilal Qureshi) suggested adding stat -tL -c %m%t%T.
3163 Tom Cherry added getprop -Z. Paul Barker added hostname -b and -F.
3164 Rob added ls -b, made ls -q work with utf8,
3165 made sed -f - read from stdin, and added top -O (like ps -O).</p>
3168 with -o TID, TNAME. We also added -o PCY (android scheduling policy),
3169 -o BIT (process is 32 or 64 bit), and -o TNAME now shows the parent
3184 <p>Grep -H and -n should now work properly with -ABC. Andy Chu pointed out an
3186 in diff -r, and fixed operator precedence in expr (although Rob is rewriting
3188 Patrick Ohly fixed the too-aggressive suid permission dropping logic.
3189 Josh Gao fixed a segfault when find -iname got no argument, and
3190 made tail -f work right with just one file argument.
3192 the tar tests, and reported another find bug (with -iname -o -iname not
3195 <p>Elliott Hughes fixed wc -c to not trust zero length files to actually be
3196 zero length (/proc does that), fixed "mount -o rw,remount /system" on
3197 Android, removed trailing spaces on ps -o cmdline, fixed pkill -9 and
3198 the corresponding tests, made "insmod -" work, fixed top -b and tail -NUM,
3203 Fixed mount -o to properly pass in leftover string data, and
3204 <a href=http://lists.landley.net/pipermail/toybox-landley.net/2016-March/004790.html>documented how…
3210 John Regehr. Andy Chu found a segfault in "sed -e 'c\'" with no trailing
3211 line, and implemented mv -n and cp -n. The cyanogenmod guys pointed out that
3212 cp -a shouldn't complain if a non-root user can't chown, and we added
3213 the output path to cp -r error messages while we were there (before was just
3218 suffix. Davis Mosenkovs fixed touch -t seconds parsing.
3225 produces a broken ps that ignores -A (because ps.o wasn't getting rebuilt
3226 even though top had the FLAG macros for -A zeroed).</p>
3234 "make ls cat ps", and you can run the test suite for each standalone
3247 <p>Lots of work on the test suite, much of it due to Andy Chu. It now
3249 test (and the common infrastructure does that, not each individual test), and
3255 The testsuite now has test files with 3 different types of "not utf8 output"
3273 infinite recursion depth support (needed by rm -r), updated the
3283 <a href=https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html>has vowed
3302 toys.h (to make cross-compiling from systems we don't run on easier).</p>
3305 "sed -e 'a\'" (with no next line of the pattern, so an unterminated
3310 is undocumented, non-obvious, and doesn't really make logical sense.)</p>
3317 <a name="02-02-2016" /><a href="#02-02-2016"><hr><h2><b>February 2, 2016</b></h2></a>
3321 </p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
3323 <p><a href=downloads/toybox-0.7.0.tar.gz>Toybox 0.7.0</a>
3329 (most replacing corresponding versions from pending). Added grep -ABC,
3330 swapon -d (discard), mkswap -L (label) and UUID support, and find -delete.
3331 Izabera added free -h and unshare -f. Josh Gao implemented tail -f.
3332 Jose Bollo submitted cp --preserve=context,attr. Kylie McClain added
3333 mktemp -u.</p>
3340 <p>Lots of updates to ps: several new -o options, -k (--sort) -O and -M,
3347 <p>Dreamhost restored the <a href="#12-21-2015">missing 11 months</a>
3354 <a href=http://landley.net/notes-2012.html#15-10-2012>never
3359 <a href=https://engineering.twitter.com/opensource/code-of-conduct>borrowing twitter's</a>) because…
3364 first one in the range, so [[] didn't terminate). Fixed sort -f and added test cases.
3365 Assume 80 columns in "ls -m | cat", ls -L is no longer backwards,
3368 to find (Gilad Arnold fixed -perm, Daniel K. Levy fixed "find . -exec echo {}",
3369 and while we're there I fixed find --prune, made "find . -execdir
3370 echo {} + -execdir ls {} +" work, and ripped out the environment size
3373 years and documented the %s escape, fixed hwclock -u, and pointed out
3377 values, and added a --no-preserve-owner option. Fixed the SUID permission
3378 dropping logic (which was a bit over-zealous, preventing some commands from
3381 <p>I'm told that debian-testing broke its libc so the nsenter build breaks,
3382 but my attempts to install the debian-testing network cd image under
3384 reproduce the problem. (Debootstrap under unbuntu builds an ubuntu-flavored
3388 <p>Rewrite of the about.html page, tweaks to design.html, and a re-triage of
3401 <li><p>Renamed dirtree->data to dirfd and stopped storing symlink length
3403 didn't give a valid directory filehandle, noticeable with ls -Z).</p></li>
3411 window size probes. New utf8 test files in tests/files/utf8 including
3423 <p>We're getting close to having a self-hosting development environment
3429 less ping route sh sha512sum tar test tr unxz vi wget xzcat zcat
3432 <p>And the remaining non-busybox commands in Aboriginal Linux's build/host
3450 <a name="12-21-2015" /><a href="#12-21-2015"><hr><h2><b>December 21, 2015</b></h2></a>
3475 to ask Dreamhost. I know I have. More than a dozen times.</p>
3477 <a name="03-11-2015" /><a href="#03-11-2015"><hr><h2><b>November 3, 2015</b></h2></a>
3480 of Betelgeuse?" Arthur shrugged in a so-so sort of way. "I don't know," he
3481 said, taking a pull of beer. "Why - do you think it's the sort of thing you're
3482 likely to say?"</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
3484 <p><a href=downloads/toybox-0.6.1.tar.gz>Toybox 0.6.1</a>
3488 <p>We have a new <b>ps</b> command with all the -o fields posix wants (although
3489 it doesn't accept BSD non-dash option syntax yet), and <b>bunzip2</b> (not just
3490 bzcat but the proper extract-in-place command).
3494 <p>The people waiting for <b>human readable number support</b> (du -hH, ls -h,
3506 all knowledge and wisdom about nommu. The old site <a href=#12-02-2012>contains
3522 reboot, init, login, and modprobe, and fixed a distro-specific build break in
3523 scripts/mkflags.h. Elliott Hughes and Lipi Lee made netstat -p handle
3524 command lines longer than 21 characters, and Elliott fixed netstat -e and
3538 either), fixed several ls -l display issues (user/group field ordering,
3541 class, fixed a mv overwrite bug, made df's columns auto-size, added
3542 --ppid and -Z to ps, and teamed up with Daniel K. Levy to fix
3543 a segfault in find's handling of -newer -group or -user.</p>
3545 <p>Hyejin Kim added stat -c %T support. Colin Cross worked
3548 units. Isabella Parakiss reported that sed -e "/x/c\" -e "y" added an extra
3549 newline and that grep -w '\(x\)\1' didn't work, both now fixed.
3555 <p>Isabella Parakiss reported that sed -e "/x/c\" -e "y" added an extra
3556 newline and that grep -w '\(x\)\1' didn't work, both now fixed.
3562 <p>Two large thinko fixes in oneit: -3 was always enabled (which would
3565 set up right (for requesting semi-graceful halt/poweroff/reboot).
3566 Calling install without a mode is now 0755, and install -g 0 no longer clashes
3567 with cp --preserve. Better error message for ls -r on unreadable
3568 directories, and ls -Z now uses O_PATH (with the /proc/self/fd/%d
3571 <p>Date now understands @unixtime[.fraction] and uses -D for
3572 the set-side format (matching busybox's extension for this). The seq -f
3574 attributes (and a whole bunch of test cases for it). Fixed a bug
3583 a NULL argv (see cpio -p for example usage). Replaced toys.recurse
3584 with toys.stacktop so the recurse or re-exec decision is now based
3585 on bytes of stack space used. Marked a bunch of command-local functions
3592 The login command finally got a long-overdue cleanup (it's one of the
3599 "make CROSS_COMPILE=prefix-" (as well as "CROSS_COMPILE=prefix- make",
3600 which still works). Toybox is now installed chmod -w so broken installers
3609 …a href=http://landley.net/aboriginal/downloads/binaries/old/1.4.3/cross-compiler-sh2eb.tar.gz>the …
3610 but <a href=http://github.com/richfelker/musl-cross-make>with musl-libc</a>
3612 fact they provide a non-functional fork() implementation that always returns
3613 -ENOSYS, to prevent you from compile-time probing for nommu support when
3614 cross-compiling. Unfortunately "preventing you from probing" seems to be
3618 enable musl-specific bug workarounds.</p>
3620 <a name="23-07-2015" /><a href="#23-07-2015"><hr><h2><b>July 23, 2015</b></h2></a>
3621 <p>I recreated the <a href=downloads/toybox-0.6.0.tar.gz>0.6.0 source tarball</a>
3623 because I forgot to add --prefix to the git archive command when I updated
3627 <a name="19-07-2015" /><a href="#19-07-2015"><hr><h2><b>July 19, 2015</b></h2></a>
3632 around in.</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
3634 <p><a href=downloads/toybox-0.6.0.tar.gz>Toybox 0.6.0</a>
3636 is out. (Yes, git. See the <a href=#05-04-2015>previous news entry</a>.)</p>
3646 <a href=http://landley.net/talks/celf-2015.txt>outline</a>), in which I
3647 repeat my <a href=http://landley.net/notes-2013.html#07-11-2013>perennial</a>
3656 <a href=#15-11-2011>most</a>
3658 <a href=http://landley.net/notes-2011.html#13-11-2011>research</a> on
3668 (<a href=http://landley.net/talks/ohio-2013.txt>outline</a>,
3669 <a href=https://archive.org/download/OhioLinuxfest2013/24-Rob_Landley-The_Rise_and_Fall_of_Copyleft…
3686 let it coexist with cat -v.
3692 <p><b>New options:</b> Added sed -E as a BSD-compatible synonym for -r.
3693 Upgraded oneit with -r (restart), -3 (send exiting PID values to child),
3694 and signal handling. Added -v option to timeout, -m to mknod, -u to shred,
3695 -t to dmesg, and -123 to head and tail. Added implicit "." to grep -r without
3696 any files to work on. Hyejin Kim requested prefix support for truncate -s.
3697 Greg Hackman added -inum to find.
3698 Jan Cybulski added the smack side of ls -Z support. Various patches also
3699 added -Z to mkdir, mknod, and mkfifo.
3700 Basic cp --preserve support went in, but not yet the xattr/LSM parts.</p>
3702 <p>The toybox command now has a --version option,
3711 update-alternatives". (There's some argument over
3715 <a href=http://landley.net/writing/hackermonthly-issue022-pg33.pdf>for
3729 to make --longopts take an optional =value part, and more about TOYBOX_DEBUG
3742 Fixed mount -a segfaulting without -O (reported by Janus Troelsen),
3745 Fixed printf -- and printf ---. Lots of tweaks to ls -l spacing with
3746 different options. Make touch -d and -t actually set time when you don't
3757 numeric uid/gids, and that sort -z affects both input and output.
3759 David Halls fixed bugs in install -D and find -exec. Samuel Holland
3760 fixed unshare -r. Hyejin Kim fixed makedevs with a count of 1, fold -w
3761 range checking, an error path in scripts/mkflags.c, added -i to dhcpd,
3763 Jan Cybulski spotted wrong indentation when combining ls -s and -i with -C and
3764 -x. José Bollo fixed stat %G. Sameer Pradhan fixed a bug in mkfifo -Z.</p>
3772 useradd.test, add missing arguments to error_exit() calls and clean up
3774 fix dmesg -c error reporting, fix a segfault in comma_scan where the option
3775 was the last item in optlist (triggered by mount -o ro,remount), fix
3776 hwclock -w, made ifconfig print lowercase MAC addresses (it was bothering
3778 (LINES, not ROWS). And he suggested the test suite notice high command exit
3785 support to mdev. Yeongdeok Suh added RFC-3315 ipv6 support to dhcpd.</p>
3797 a standard syntax). Don't depend on malloc(0) to return non-null in ls.
3809 The build now checks $LDFLAGS for linker-only flags, and allows the strip
3814 security modules stuff, if (lsm_enabled()) should turn into a compile-time
3830 <p>The not-curses infrastructure introduced by hexedit mostly moved to
3841 with its GNU counterparts" means when CP_MORE adds 7 non-posix options
3845 GNU is special is there are a half-dozen other independent
3851 …f=http://archive.linuxfromscratch.org/lfs-museum/7.6/LFS-BOOK-7.6-NOCHUNKS.html#ch-tools-gcc-pass1…
3852 then I impelement mv -v
3855 util-linux isn't a gnu package, nor are info-zip, e2fsprogs, kmod, less,
3858 <a name="05-04-2015" /><a href="#05-04-2015"><hr><h2><b>April 5, 2015</b></h2></a>
3861 and <a href=https://github.com/kraj/meta-musl/tree/master/recipes-core/toybox>openembedded</a>
3862 and <a href=https://packages.gentoo.org/package/sys-apps/toybox>gentoo</a>
3868 <a name="25-02-2015" /><a href="#25-02-2015"><hr><h2><b>February 25, 2015</b></h2></a>
3871 complete fools."</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
3873 <p><a href=downloads/toybox-0.5.2.tar.gz>Toybox 0.5.2</a>
3884 involved a lot of fixups to portability.[ch] and fixes to over a dozen
3901 <a href=http://www.mail-archive.com/[email protected]/>two</a>
3919 <p>Some commands grew new option flags, such as cp --remove-destination
3920 and touch -h.</p>
3923 re-exec itself to regain suid root permissions and hasn't got the suid bit,
3926 <p>Added a test to "mount" to not mount the same device/directory combination
3933 no longer defined -d but still had it in option groups at the end).
3934 Workaround for glibc redefining dirname() and basename() to random non-posix
3938 <p>Fix an ifconfig test that was preventing assigning an ipv4 address to
3943 did rm -r on it without -f, after the prompt it would complain it was a
3988 <a name="18-02-2015" /><a href="#18-02-2015"><hr><h2><b>February 18, 2015</b></h2></a>
3990 here's <a href=http://www.mail-archive.com/[email protected]/>another
3996 <a href=http://www.dreamhoststatus.com/2015/01/14/discussion-list-hardware-maintenance/>hardware up…
4001 web archive, from Dec 15-Jan 3, and then another hole from Jan 16-Feb 18.
4005 <a name="30-12-2014" /><a href="#30-12-2014"><hr><h2><b>December 30, 2014</b></h2></a>
4013 <a href=http://lists.landley.net/listinfo.cgi/toybox-landley.net>the first link</a>.</p>
4017 <a name="19-11-2014" /><a href="#19-11-2014"><hr><h2><b>November 19, 2014</b></h2></a>
4019 …ght, it would work, and no one would have to get nailed to anything."</p><p>- The Hitchhiker's Gui…
4021 <p><a href=downloads/toybox-0.5.1.tar.bz2>Toybox 0.5.1</a>
4031 Busybox's sed test suite that aren't explicitly testing for gnu bugs we
4036 Did you know "echo hello | sed p - -" segfaults gnu sed in Ubuntu 12.04?
4046 nproc, shred, shuf, stdbuf, stty, test, tr, unexpand,
4055 Isaac Dunham implemented acpi -ctV options, and spotted the bug that ls -d
4056 was inappropraitely following command line symlinks without -H or -L (it
4057 should act like ls -l does), and ls -F handles symlinks wrong too.
4065 static analysis. (These fixes are mostly to seldom-used codepaths like the
4066 TOYBOX_FREE config option, but test coverage is always appreciated.) Ashwini
4067 also suggested upgrading ln -f to leave the original target alone if link
4068 creation fails, and reported that mv -f and -i weren't implemented (now fixed).</p>
4081 probes for functions missing from bionic-libc, and annotated the commands that
4085 <p>Running the test suite now color codes the PASS/SKIP/FAIL notifications
4093 <p>The printf-style escape parsing ("\n" and friends) got factored out into
4096 <a name="02-10-2014" /><a href="#02-10-2014"><hr><h2><b>October 2, 2014</b></h2></a>
4100 difficulties."</p><p>- The Hitchhiker's Guide to the Galaxy<p></blockquote>
4102 <p><a href=downloads/toybox-0.5.0.tar.bz2>Toybox 0.5.0</a>
4110 <p>cp now implements -HL and -F to force delete of pending files, cpio now
4111 ignores -m and implements -p, ls -C now has utf8 support (using wcwidth
4128 about linker options passed with -c, and the entire "generated" directory now
4137 sub-options (so CP has CP_MORE), enables I18N and FLOAT support to build
4138 full-featured commands, and includes --help text (at least when
4158 <p>Standalone builds are used by the test suite when testing individual
4173 done with the directory filehandle still open (new dir->again variable added
4176 Use daemon() out of libc instead of hand-rolled daemonize() in various
4186 toy_exec() sometimes needs to re-exec from $PATH rather than recurse
4192 option parsing bug where [-abc] would forget _all_ command line arguments
4195 Lukasz Szpakowski fixed rm -f on a broken symlink (failed), and killall
4200 <p>A somewhat fiddly fix to rm -rf (which needs to chmod directories to u+rwx
4204 to portability.h with a workaround, you may need CFLAGS=-D__MUSL__ in your
4213 another release, so locally patching around posix-2008 violations is silly).</p>
4219 "$" at the end), but this prevents UTF-8 usernames. Posix' stated logic
4235 <h3>Test Suite</h3>
4237 <p>Moved out of scripts/test into top level "tests" directory, and the
4238 testing.sh script is now in scripts rather than mixed into the *.test files.</p>
4242 sort on the host broke in non-C locales.</p>
4247 <a name="07-07-2014" /><a href="#07-07-2014"><hr><h2><b>July 7, 2014</b></h2></a>
4248 <blockquote><p>"This planet has - or rather had - a problem, which was this:
4253 unhappy."</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
4255 <p><a href=downloads/toybox-0.4.9.tar.bz2>Toybox 0.4.9</a> (<a href=/hg/toybox/shortlog/1385>commit…
4261 host from Rich felker, and I did nbd-client and the first 2/3 of mount.</p>
4265 fallocate, and nbd-client.</p>
4296 <p>Fix od bug reported by Samuel Holland ("od -v -b" was appending the default
4302 the start of password entry count as EOF. Make the "we are not root" test
4310 a pipe). Bugfix so "help -a" works again. Option parsing on nohup now stops
4312 which was actually a bug in lib function find_in_path(). Made rm -rf of
4328 added tests for cpio, link, and du, added lspci -i, made the pci database
4332 it actually smaller in the process. I added -b flags to md5sum and sha1sum
4337 the build now switches on all the sub-options of the command so we get
4340 <p>Add -ds flags to date and document +FORMAT escapes. Add the shell NOP
4346 <p>The umount command now does an losetup -d on the device by default, so
4350 <p>Divya Kothari sent in test suite entries for ls, ln, rm, mv, printf, dd,
4358 to toys.signalfd with the signal number if signalfd isn't -1 (which it's
4364 decimal kilo/mega/gigabytes (so when du -u says 5.0G it means 5.0 billion
4369 <a name="20-04-2014" /><a href="#20-04-2014"><hr><h2><b>April 20, 2014</b></h2></a>
4374 turn it off.</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
4376 <p><a href=downloads/toybox-0.4.8.tar.bz2>Toybox 0.4.8</a> is based on
4396 compress.c, and still need to do a corresponding deflate (compression-side)
4405 <p><b>Upgrades:</b> Ifconfig grew /prefix netmask support (ala 1.2.3.4/24). Grep now has -zZ to
4406 handle null terminated data, cksum grew -H for hex output. Upgraded od so the
4407 fields align better when producing multiple output types. Help has -a and -h
4411 compiling, so it's back to an #ifdef test in portability.h. Nathan McSween
4413 Ashwini Sharma spotted a bug in pidof -o, and added verbose (-v) options
4414 to mkdir and ln, and suggested killall should have an -s option and
4415 allow -l to take zero arguments. Ashwini Sharma and Felix Janda upgraded
4435 <p>Regression tested against Ubuntu 8.04 to fix up bit-rot in defconfig
4436 build on older systems. (We depend on Posix-2008, but not necessarily
4447 help text for all the defconfig commands, using the new help -ah output.
4455 <a name="18-11-2013" /><a href="#18-11-2013"><hr><h2><b>November 18, 2013</b></h2></a>
4456 … think it's a long way down the street to the chemist's, but that's just peanuts to space."</p><p>-
4459 <p><a href=downloads/toybox-0.4.7.tar.bz2>Toybox 0.4.7</a> is based on
4473 added -e to watch, removed a memory leak, and fixed a terminal size problem.
4476 where grep didn't malloc enough space with -E (leading to a segfault).
4478 the code I wrote), in od to fix -t co, -J, and -c options. Add uname -o as a
4479 synonym for -s. Build fix to never use $CC without prefixing it with
4483 <p>The compile-time command line option parsing got rewritten (ported from
4485 --longopts to drop out properly when disabled in the configuration. Terminal
4486 querying got refactored. Patch's -x option is now more informative (a
4489 micromanging uClibc options isn't very interesting anymore. The test suite
4492 <a name="17-09-2013" /><a href="#17-09-2013"><hr><h2><b>September 17, 2013</b></h2></a>
4496 and this might turn out to be it.</p><p>- The Hitchhiker's Guide to the Galaxy</p>
4499 <p><a href=downloads/toybox-0.4.6.tar.bz2>Toybox 0.4.6</a> is based on
4508 <p>The ls command now has a --color=auto option (suggested by Rich Felker).
4509 The multiplexer now has a --help option so you can say "./toybox --help blah"
4510 instead of using the built-in "help" command. (Which is a shell built-in.
4512 other project has conditioned people to expect --help, so...) I forget who
4523 test by Felix Janda, lspci by Isaac Dunham, nl, su, and renice by strake (I.E.
4524 M. Farkas-Dyck), and sysvinit by Kyungwan Han.</p>
4564 <p>General improvements and bug fixes to argument parsing. The [-abc] exclude
4565 logic should now clear arguments slots when disabling options. Bare --longopts
4568 --color and --color=auto but not --color auto).</p>
4583 (-fno-asynchronous-unwind-tables)
4586 "-fstop-being-stupid" is a thing you have to hit gcc with from time to time.</p>
4591 finally make it work right (we think). Still need to implement tail -f
4592 someday (the tricky bit is making -f follow multiple files at once).
4612 didn't match anybody else's behavior and thus made the test suite hiccup
4613 between TEST_HOST and testing toybox. (If you go "TEST_HOST=1 scripts/test.sh
4616 <p>Last release, "mkdir sub/sub && chmod 007 sub/sub && rm -rf sub" didn't
4621 <a name="26-07-2013" /><a href="#26-07-2013"><hr><h2><b>July 26, 2013</b></h2></a>
4627 <a name="02-07-2013" /><a href="#02-07-2013"><hr><h2><b>July 2, 2013</b></h2></a>
4630 like you."</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
4632 <p><a href=downloads/toybox-0.4.5.tar.bz2>Toybox 0.4.5</a> is based on
4641 each command can now understand --help (including both "toybox --help"
4642 and "toybox --help command" in the multiplexer).</p>
4644 <p>The "pending" directory has several commands (find, xzcat, nbd-client,
4654 <p>Fixed _another_ "ls -C" segfault when terminal size can't be detected,
4655 condensed the ls help text to fit on one page, implented --color, and taught
4656 -l to print the major, minor numbers when showing block/char devices.
4657 Argument parsing now handles "--" properly (to end option checking),
4658 and the infrastructure can now handle bare --longopts that have no
4660 Fixed an old bug in "patch", chmod grew -f, who grew -a. Isaac Dunham
4661 fixed "-" vs "_" handling in modinfo, added a "firmware" output
4662 field, added -b and -k support, and taught it that the ".ko" extension means
4667 (ala readlink -f /dev/sda as a normal user).
4686 <p><b>LICENSE TWEAK</b>: After <a href=http://lists.landley.net/pipermail/toybox-landley.net/2013-M…
4705 <a name="21-03-2013" /><a href="#21-03-2013"><hr><h2><b>March 21, 2013</b></h2></a>
4709 <a href=http://landley.net/talks/celf-2013.txt>talk outline</a> and an
4710 <a href=/aboriginal/about.html#selfhost>android self-hosting writeup</a>.</p>
4718 …=http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=4m22s>Software needed to become self-hosting</a></li>
4740 <a name="14-03-2013" /><a href="#14-03-2013"><hr><h2><b>March 14, 2013</b></h2></a>
4741 <blockquote><p>"Ford, you're turning into a penguin. Stop it." -
4744 <p><a href=downloads/toybox-0.4.4.tar.bz2>Toybox 0.4.4</a> is based on
4748 <p>The "cp" command now implements the -s symlink option, plus bugfixes
4750 "id -Gn root" should now print root's groups
4753 can expect to find posix-2008 features in).</p>
4763 <a name="18-01-2013" /><a href="#18-01-2013"><hr><h2><b>January 18, 2013</b></h2></a>
4764 <blockquote><p>This must be Thursday. I never could get the hang of Thursdays.</p><p>- The Hitchhik…
4766 <p><a href=downloads/toybox-0.4.3.tar.bz2>Toybox 0.4.3</a> is based on
4771 <p>Elie De Brauwer added the rev command, cleaned up tac, implemented the -s
4772 and -f flags for seq, added -v and -i to killall (and fixed killall not to
4773 kill itself before finishing its pid list), and added to the test suite.
4774 Felix Janda added -m to mkdir, pwd -L and -P, and more test suite entries.</p>
4779 default to -C and a screen size of 0 made column view unhappy), and cp got an
4782 code in the library now handles a symlink after ".." properly (and the test
4785 <p>Infrastructure-wise the code is better about automatically setting the
4802 to -Os by default now.</p>
4804 <a name="15-12-2012" /><a href="#15-12-2012"><hr><h2><b>December 15, 2012</b></h2></a>
4808 </p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
4810 <p><a href=downloads/toybox-0.4.2.tar.bz2>Toybox 0.4.2</a> is based on
4818 bug in login), and rm (from Rob Landley). Felix Janda added UTF-8
4819 support infrastructure (for non-ascii character sets) with a config option.
4820 Elie De Brauwer added tests for cat and sha1sum, and -so options to pidof.
4821 The "ls" command defaults to -C (column view) now, and "readlink" now supports
4822 -fenq.</p>
4852 but am waiting for somebody to complain first. The default "ulimit -n" is 1024
4855 <a name="13-11-2012" /><a href="#13-11-2012"><hr><h2><b>November 13, 2012</b></h2></a>
4857 </p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
4859 <p><a href=downloads/toybox-0.4.1.tar.bz2>Toybox 0.4.1</a> is based on
4867 <p>The patch command now supports -l, and gethostname is now enabled by
4869 Felix Janda added -m support to wc (for utf8).</p>
4872 "posix", "lsb", and "other" subdirectories (for things required by Posix-2008,
4883 <p>An upgrade to the build infrastructure now allows commands with _ and -
4896 fixes (thinko in xpidfile). Fixed uname -m when running a 32 bit x86 binary
4897 on an x86-64 host (it lies and says the system is i686, i586, or i486 depending
4902 wasn't updated to match until now). Felix Janda filled out the test suite
4919 <a name="23-07-2012" /><a href="#23-07-2012"><hr><h2><b>July 23, 2012</b></h2></a>
4922 out."</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
4924 <p><a href=downloads/toybox-0.4.0.tar.bz2>Toybox 0.4.0</a> is based on
4937 <a href=code.html#lib_dirtree>dirtree</a> infrastructure, added an -r option
4938 to date (and fixed a bug where -u wouldn't override /etc/localtime),
4944 <a name="25-06-2012" /><a href="#25-06-2012"><hr><h2><b>June 25, 2012</b></h2></a>
4945 …g happened. Then, after a second or so, nothing continued to happen."</p><p>- The Hitchhiker's Gui…
4947 <p><a href=downloads/toybox-0.3.1.tar.bz2>Toybox 0.3.1</a> is based on commit
4949 mostly a bugfix release for ls -l (which was unhappy on targets other than
4950 x86-64), plus a new "date" from Andre Renaud and rewritten chgrp/chown which
4951 now support the full set of posix flags, plus a little work on the test
4960 <a name="12-06-2012" /><a href="#12-06-2012"><hr><h2><b>June 12, 2012</b></h2></a>
4962 he was more intelligent than dolphins because he had achieved so much - the
4963 wheel, New York, wars and so on - whilst all the dolphins had ever done was
4965 always believed that they were far more intelligent than man - for precisely
4966 the same reasons."</p><p>- The Hitchhiker's Guide to the Galaxy</p></blockquote>
4968 <p>It's well past time for <a href=downloads/toybox-0.3.0.tar.bz2>toybox 0.3.0</a>,
4987 you need a quarter-second sleep, it can do that now), and fixed a build bug
4991 mkdir -m). Ilya Kuzmich contributed comm. Elie De Brauwer added mountpoint,
5006 yes 'n' | cp -i should no longer bypass stdin and prompt via the tty, the
5008 multiplexer command, and a bugfix to xargs -0 means it should no longer
5010 posix whitespace handling that -0 obsoleted, but I'll deal with that next
5025 <a name="03-03-2012" /><a href="#03-03-2012"><hr><h2><b>March 3, 2012</b></h2></a>
5030 for all these years."</p><p>- The Hitchhiker's Guide to the Galaxy</p>
5033 <p>Here's <a href=downloads/toybox-0.2.1.tar.bz2>toybox 0.2.1</a> based
5045 for cmp. Frank Bergmann sent a warning fix. Bryce Fricke added -i to cp.
5052 bloat-o-meter.)</p>
5065 <a name="12-02-2012" /><a href="#12-02-2012"><hr><h2><b>February 12, 2012</b></h2></a>
5070 <p> - The Hitchhiker's Guide to the Galaxy</p></blockquote>
5073 <a href=downloads/toybox-0.2.0.tar.bz2>toybox-0.2.0</a>, more a synchronization
5075 ready-to-use state (what "make defconfig" builds), another ten or so partially
5082 <a name="15-11-2011" /><a href="#15-11-2011"><hr><h2><b>November 15, 2011</b></h2></a>
5083 - Back from the dead, Toybox is now under a 2
5093 <!--#include file="footer.html" -->