0.9.1
π¦ Findutils 0.9.1 Release
Findutils 0.9.1 is a robustness and portability release. It follows up quickly on the 0.9.0 milestone (which introduced locate/updatedb) by hardening the existing utilities against a series of panics on malformed or unusual input, adding WebAssembly (wasm32-wasip1) build support, shipping statically linked musl binaries for Linux, and reworking how we track GNU/bfs test-suite compatibility in CI.
This release saw the first contribution from @leeewee, who landed most of the panic fixes below.
We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.
GNU Test Suite Compatibility
Starting with this release, compatibility is tracked per individual test (PASS/FAIL/SKIP by test name) rather than by an aggregate count β see βPer-test compatibility trackingβ below. Under the new per-test accounting, 0.9.1 stands at:
| Result | find (GNU suite) | bfs suite |
|---|---|---|
| Pass | 416 | 267 |
| Fail | 78 | 40 |
| Skip | 1 | 6 |
| Total | 495 | 313 |
0.9.1 is primarily a robustness/infrastructure release, so find/xargs matching semantics are essentially unchanged from 0.9.0; the panic fixes harden edge cases (malformed brackets, multibyte escapes, unmapped UIDs, short databases) rather than altering option behavior.
For more details, visit https://github.com/uutils/findutils-tracking/.
Highlights
Robustness β no more panics on malformed input
find -ls: don't panic on an unmapped owner UID/GID by @leeewee in #721find -name: don't panic on a malformed POSIX bracket class by @leeewee in #722find -printf: don't panic on a multibyte char after an octal escape by @leeewee in #723find -printf: correctly test an octal escape before a multibyte char by @leeewee in #727find -printf: reject an over-large field width instead of panicking by @leeewee in #734xargs: do not panic on empty input in replace (-I) mode by @leeewee in #736locate: don't panic on a too-short--databasefile by @leeewee in #718
Portability: WebAssembly and static musl binaries
- Support compiling for non-Unix targets such as wasm, and build + lint the
wasm32-wasip1target in CI by @sylvestre in #725 - Build statically linked musl binaries for
x86_64andaarch64by @sylvestre in #741
xargs
Project, CI & release
- Per-test GNU/bfs comparison and PR comment, modeled on the uutils sed/grep
GnuTestsworkflow by @sylvestre in #726 - Define the
[profile.dist]used by cargo-dist by @sylvestre in #739 - Inherit
lto = "thin"inCargo.tomlby @oech3 in #740 - Add 2 missing binaries to
latest-commitby @oech3 in #743 CONTRIBUTING.md: replace coreutils references with findutils by @oech3 in #738
Dependencies
Dependency and GitHub Action bumps via Dependabot and a manual crate refresh (@xtqqczze, #729): itertools (0.14.0 β 0.15.0, #742), regex (1.12.3 β 1.12.4, #728), cargo-dist (0.28.0 β 0.32.0, #748), actions/checkout (4 β 6 β 7, #711/#744), codecov/codecov-action (6 β 7, #712), and moonrepo/setup-rust (0 β 1, #709).
New Contributors
Full Changelog: 0.9.0...0.9.1
Install findutils 0.9.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.9.1/findutils-installer.sh | shDownload findutils 0.9.1
| File | Platform | Checksum |
|---|---|---|
| findutils-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| findutils-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| findutils-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| findutils-x86_64-unknown-linux-gnu.tar.xz | x64 Linux (glibc) | checksum |
| findutils-x86_64-unknown-linux-musl.tar.xz | x64 Linux (static musl) | checksum |
| findutils-aarch64-unknown-linux-musl.tar.xz | ARM64 Linux (static musl) | checksum |