From a61f9fe68fafdabf2913b9498ce9ae1a086ed11d Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Tue, 14 Oct 2025 11:45:35 -0500 Subject: [PATCH] Release 0.8.13 --- toys.h | 2 +- www/header.html | 2 +- www/news.html | 119 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 2 deletions(-) diff --git a/toys.h b/toys.h index 0e6ffa8c..2d78034f 100644 --- a/toys.h +++ b/toys.h @@ -141,5 +141,5 @@ extern char **environ, *toybox_version, toybuf[4096], libbuf[4096]; #ifndef TOYBOX_VENDOR #define TOYBOX_VENDOR "" #endif -#define TOYBOX_VERSION "0.8.12"TOYBOX_VENDOR +#define TOYBOX_VERSION "0.8.13"TOYBOX_VENDOR #endif diff --git a/www/header.html b/www/header.html index e91265e1..178c1391 100644 --- a/www/header.html +++ b/www/header.html @@ -54,5 +54,5 @@ -

Current release 0.8.12 (January 18, 2025)

+

Current release 0.8.13 (October 14, 2025)


diff --git a/www/news.html b/www/news.html index 042e669d..181e532b 100644 --- a/www/news.html +++ b/www/news.html @@ -37,6 +37,125 @@ bootable under QEMU (built using a Build: --> +

October 14, 2025

+
+

+There was a terribly ghastly silence. There was a terribly ghastly noise. +There was a terribly ghastly silence. +

- The Hitchhiker's Guide to the Galaxy

+
+ +

Toybox 0.8.13 +(git commit) +is out, with prebuilt static binaries and +mkroot images +bootable under QEMU 10.1.0 (built using a lightly patched linux-6.17).

+ +

This development cycle finally started replacing the old kconfig/*.c +plumbing (dating back to the 2.6 kernel) with a new scripts/kconfig.c +(which among other things lets toybox build on macos without homebrew), +and added trap and alias support to toysh.

+ +

New commands: Added nologin and hd (no options, just +traditional 16 byte/line hex+ascii output).

+ +

Features: added chmod -cv, +made kill -l list multiple signals, added +taskset -a as an alias for --all, and calling it without +arguments prints the current mask. +Elliott Hughes implemented dd oflag=append oflag=direct iflags=direct +and xargs -a, Brian Norris added pgrep -a and taught lspci +to support larger register offsets, Aleksander Morgado added log -b, +Jeffery Miller added dd conv=nocreat, Jignesh Patel added +lsusb -t.

+ +

Bugfixes: +tar -T /dev/null creates an empty archive, test -nt -ot +treats an existing file as always newer than a missing file. +toy_exec_which() clears inherited signal handlers for internal command +calls, ps -o psr= $$ no longer outputs a blank header line, +readahead was using the wrong value on some platforms (for sadly +complicated reasons having to do with legacy syscall +padding of 64 bit values on 32 bit platforms), +devmem properly zeroes small reads and supports big endian +targets (reported by Hsiang-Ying Fu), +Hongsheng Peng reported an ftpget bug (spurious error report because a +response wasn't being read), +Jesse Rosenstock pointed out that very long taskset masks (more than 32768 +processors) would overrun toybuf, +LuK1337 fixed an SELinux incompatibility in tar (trailing NUL byte +was included in the record length), +Brian Norris fixed pgrep not to treat unknown arguments as process +filters and made the -f option not imply -a, and made lspci -xxxx +properly display large register offsets, +Tai Groot fixed crontab to retain original file ownership, +and modinfo tag searches now include a leading NUL to avoid +false positives (reported by moetayuko). +

+ +Library: removed poke() and friends (inlined the only caller), +disabled octal support in atolx() (decimal-looking numbers with leading +zeroes not being decimal just confuses people in the 21st century). +Ustav Munedra fixed xsendfile_len() which wasn't reliably exiting with +error when writing to the destination failed (and thus commands like +cp didn't always notice disk errors or short writes, +ttiinn noticed that setgid() was using uid not gid.

+ +

Mkroot: CROSS= now accepts multiple comma separated targets.

+ +

Pending: New hexdump command from Moritz Röhrich... although +we already have posix od, xxd, hexedit, and now a simple hd, none of which +share code with each other. The shell grew trap and signal handling support, +fixed $SHLVL counting, fixed $PATH prefix assignments, wildcards don't expand "." +and "..", allow ! and redirects to interleave with prefix assignments, +the debug printfs use #define DEBUG instead of being commented out, +and Avery Terrel implemented several more $PS1 escapes in the prompt +logic. Elliott Hughes added ip6gre to ip. +Oliver Webb identified several upstream fixes to the public domain xzcat +repo we could use, including the new ARM64 BCJ decoder. +Dmitry Koroban pointed out a fix needed in dhcp, +and Zikai Chen added dhcp -u to use UDP instead of broadcast replies. +Brian Mayer fixed getty printing double backslah. +Kana Steimle made crontab update the timestamp to ensure crond notices +changes.

+ +

Cleanup: Minor cleanups to hexdump, kill, lsusb, +several rounds of cleanup to xzcat, and killall5 no longer +depends on kill.

+ +

Portability: don't call getentropy() on ANDROID_API<29. +The new kconfig plumbing plus the hermetic scripts/build lets you build +toybox on macos without homebrew, although you still need /bin/bash.

+ +

Documentation: The "Binaries" link in the nav bar on the left now +goes to all published binaries, not just the latest version. The status +page now includes a buildroot_cmd category. Various updates to the roadmap and +design pages, and the release checklist. +Jesse Rosenstock documented that toybox's tasket treats PID 0 as +the current process (which is what sched_getaffinity() has always done +and you have to go out of your way to break it).

+ +

Test suite: error reporting now displays multiline command +lines using $'' escape syntax. Added more tests for pgrep, sh, dd, tar, test, +chmod, taskset, xzcat, kill, cp, and xargs.

+ +

Build: replaced most uses of the kconfig/ directory with a new +scripts/kconfig.c (handling defconfig, allnoconfig, allyesconfig, +and randconfig, but not yet menuconfig, with support for $KCONFIG_ALLCONFIG +and $KCONFIG_CONFIG for miniconfig and mkroot and single builds), replaced scripts/config2help.c +with a new TOYFLAG_MOREHELP(CFG_BLAH) macro that lets lines help text prefixed +with ! drop out when the specified config symbol isn't enabled, +logpath now depends on the multiplexer being disabled (instead of +warning when not built standalone), single command builds now disable +TOYFLAG_HELP and TOYFLAG_SUID for commands that don't need them.

+ +

Compiler bugs: gcc --as-needed breaks libasan, for example on debian's +gcc 12.2.0 with binutils 2.40 the following dies with a null pointer dereference calling +crypt(): gcc -fsanitize=address -static-libasan -xc - -Wl,--as-needed -lcrypt +<<<$'#include\nint main(void){crypt("one", "two");}' && +./a.out

+ +

Jan 18, 2025

The regular early morning yell of horror was the sound of Arthur Dent waking