Lines Matching +full:fuzz +full:- +full:issue +full:- +full:has +full:- +full:question
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).<…
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>
201 know how to exit qemu yet. (If Linux has got a reboot mechanism it knows
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
255 The website now has a <a href=quick.html>quickstart</a> page,
258 The mkroot dir has a
260 has been updated.
263 Fix <b>sed --help</b> to show full help, <b>patch -F</b> is now mentioned
270 procedure checklist</a> has been updated, and the README generated
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
306 Something called "ecryptfs" has a maximum filename length of 143 bytes,
312 user and group names for any existing files. Added nbd-client.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 < 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//&/ (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
425 consistent order). The dirtree plumbing now has macros for the mode bits
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,
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
521 a !! in there. The help plumbing now has HELP_FLAGS.
525 example if you needed "command -:" then ":" is ascii 58 (hex 3A,
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).
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>
679 "allnoconfig has =y" issue so miniconfig doesn't need to add a magic #comment
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
703 has one /dev/?db (disabled Apple Desktop Bus in the config).
712 <p><u>Pending</u>: Elliott made <b>strace</b> build on 32-bit x86.
713 James Farrell added <b>diff -f</b>.
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
758 understand bashisms like <(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>.
771 now has a simple index.html generated by a
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
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>
894 The <b>lib/args.c</b> command line parser now has two optional modifiers
909 have a function encapsulating the logic, this release also has at least 3
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
973 (ala "truncate -s 3m file; truncate -s 5m file; du file" says it's using
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
991 <p>The fs/init script has better chroot support (not warning about /dev/shm and
998 (This is because toybox hasn't got built-in https support yet, it's on the
1001 path issue.
1006 <a name="23-07-2022" /><a href="#23-07-2022"><hr><h2><b>July 23, 2022</b></h2></a>
1007 <p>Sorry the mailing list has been down since the 19th, Dreamhost
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>
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>
1245 <p><u>Pending</u>: lots more work on <b>toysh</b>: it has basic $((math)) support
1247 types (declare -i, declare -u, etc), several bugfixes, greatly
1260 scripts/mkstatus.py, the old status.html wrapper that server-side-included
1261 status.gen has been removed).
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
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
1304 …inux/commit/d18760560593>kernel fix</a> for the cpio encrypted filesystem issue worked around in 0…
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,
1323 positive warning has been replaced by a QUIET macro that resolves
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>.
1333 xabspath() now has a more granular (flag based) control interface.</p>
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…
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
1380 has some obvious gaps like $((math)) and interactive command line
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,
1420 <p><b>make tests</b> now defaults to VERBOSE=fail (and now has VERBOSE=all to
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
1438 Elliott fixed a sequencing issue in <b>setsid</b>'s system calls,
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,
1445 Ethan Sommer fixed <b>install</b> -Dt,
1447 -tnomsdos,smbfs.
1451 Daniel Santana fixed <b>df</b> combining -P and -k,
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
1490 <b>chmod</b>'s help text explains why o+s doesn't set +t (and has a
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>
1511 qemu. (The vmlinux in each tarball is a vanilla linux-5.9 kernel built
1514 <p>The FAQ got <a href=faq.html>noticeably larger</a>, and the README has
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
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
1583 Elliott fixed chmod -R
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>.
1615 Patch "fuzz" support was outputting context lines from the hunk, not the
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
1631 human_readable() now has HR_NODOT so it can print single digit numbers without going "0.0".
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
1651 now has main.c call setlocale for it.
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
1685 <p>It also has basic module support, meaning arguments that aren't X=Y variable
1697 build bug where "make distclean" doesn't work in a "cp -sfR" symlink
1704 its logs into root/log, and has better trap handling to stop with one
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>
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,
1822 time_t is a long (y2038 issue on 32 bit).
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,
1844 its logs into root/log, and has better trap handling to stop with one
1845 ctrl-c.</p>
1847 <p>Fixed scripts/single.sh to work when PREFIX has no trailing slash,
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
1875 and has a #bits anchor tag.</p>
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),
1979 and fixed a MacOS compatibility issue in the build scripts.
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
2048 when it has more than one argument, and made various
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().
2070 lib/portability.h, because MacOS has different signals.
2073 A MAYFORK command has to clean up after itself (even in error paths) and
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.
2121 <p>Elliott Hughes did a lot of work on the test suite: add kill -l tests,
2128 confused by SELinux, hostname.test can run some tests as non-root,
2142 isn't one in the $PATH, work if $PWD has a space in it,
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
2191 why the double quotes are required is an open question), and <b>sed</b> now
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
2302 the <a href=license.html>license page</a> now has an SPDX identifier, and links to more
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>" …
2310 has a synopsis now,
2325 The test suite now does an rm -rf on testdir between each command so
2331 The find -newer test calls "sleep .1" to avoid intermittently failing with an
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>
2359 <p><u>New options</u>: <b>grep</b> now has --color, supports embedded NUL bytes in its input,
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.
2378 <b>patch</b> has better support for patching a file with a tab in the name.</p>
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,
2412 has the full functionality now. The general future direction or toybox
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>
2424 xchdir() has better error reporting, xconnect()/xbind() had their
2428 yocto 2.6 buils with -Werror=format-security by default).</p>
2439 reformatted a lot of --help text for consistency (removing trailing
2443 The test suite now has its own version of "pending", specifically "make tests"
2450 root-only tests when run as a normal user. The testcmd function prints 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
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.
2550 Our LICENSE file has the SPDX identifier (0BSD) now, and the note about
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>
2593 theory which states that this has already happened.</p>
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
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.
2658 behavior difference between toybox and ubuntu (Ubuntu's ln -sf wouldn't
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
2724 <p>Gael PORTAY asked for mdev to work when Linux has the
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
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>
2839 pass, made more tests run on a toybox-only system, and so on. The test suite
2840 infrastructure now has a second testing function,
2850 <a href=http://lists.busybox.net/pipermail/buildroot/2016-December/180102.html>last release</a>.</p>
2857 The FAQ now has more than one entry. Commands no longer output the full
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
2975 change of ownership). The FAQ now answers a _second_ question. (Woo!)
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
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
3126 Fixes to chattr and date tests. It also has a new variable $C with the
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
3147 <p>The website has https support now, you can "make cat ps ls"
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>
3245 build loop has fewer forks now.</p>
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>
3320 you, is that you've never actually known what the question is."
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>
3409 <li><p>Upgrades to lib/interestingtimes.c: scan_key() now has a timeout
3423 <p>We're getting close to having a self-hosting development environment
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>
3474 list page has been "temporarily disabled" for multiple years now... you'd have
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,
3503 for nommu. The roadmap now has a large section analyzing the uClinux
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
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
3590 The testsuite now has some infrastructure tests based on "example"
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
3659 this point, and has stuck to an incorrect sequence of events for years,
3666 <p>The article has plenty of smaller issues<a href=#asterisk>*</a>, but
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…
3677 the Security Blanket menu under global settings in menuconfig) has
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>
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
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
3842 and toys/other has 84 commands in neither posix nor LSB. I think they're
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>
3896 has a number of bulitin commands (cd, exit, set) that require the
3899 <p>The mailing list's web archive is still screwed up. Dreamhost has
3901 <a href=http://www.mail-archive.com/toybox@lists.landley.net/>two</a>
3903 archives, but neither has quite the same UI as mailman.</p>
3919 <p>Some commands grew new option flags, such as cp --remove-destination
3920 and touch -h.</p>
3922 <p>The parallel build has better error reporting now. When toybox needs to
3923 re-exec itself to regain suid root permissions and hasn't got the suid bit,
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
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/toybox@lists.landley.net/>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>
4036 Did you know "echo hello | sed p - -" segfaults gnu sed in Ubuntu 12.04?
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
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
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
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
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>
4286 <p>The <a href=cleanup.html>cleanup page</a> now has descriptions for the
4296 <p>Fix od bug reported by Samuel Holland ("od -v -b" was appending the default
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
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
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
4425 <p><b>Build stuff:</b> Each FOR_xxxx macro now has a complementary CLEANUP_xxxx macro, so you
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
4439 <p><b>In lib</b>: lib/xwrap.c added xgetpwnam(), xchroot(), and lib/lib.c now has names_to_pid().
4447 help text for all the defconfig commands, using the new help -ah output.
4450 <a href=design.html>design page</a> has some new paragraphs about trading
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
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
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).
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
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
4785 <p>Infrastructure-wise the code is better about automatically setting the
4795 dirtree_handle_callback() now has a prefix like the rest of the dirtree
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>
4832 earlier point instead of exiting. Each toys/* directory now has a README,
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
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
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
5017 <p>A defconfig toybox at the start of the $PATH has successfully built
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>
5067 "for though it has many omissions and contains much that is apocryphal, or at
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" -->