Skip to content

0.10.0

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Aug 21:45
41e7a59

πŸ“¦ Findutils 0.10.0 Release

Findutils 0.10.0 is a GNU-compatibility and robustness release. It sharpens several find behaviors that silently differed from GNU (-printf %T+ formatting, -newerXY predicate validation, --files0-from input validation), fixes an xargs bug where the default command line size could make execvp() fail with E2BIG, improves xargs length accounting on Windows, and continues the campaign of turning panics on malformed input into proper error messages.

Five people made their first contribution to findutils in this cycle: @SAY-5, @lhecker, @l46983284-cpu, @wtcpython and @aki-kong.

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

Compatibility is tracked per individual test (PASS/FAIL/SKIP by test name). 0.10.0 stands at:

Result find (GNU suite) bfs suite
Pass 417 267
Fail 77 41
Skip 1 6
Total 495 314

Compared to 0.9.1, one more GNU test passes (417 vs 416). The bfs suite gained a test upstream (314 vs 313) which findutils does not pass yet, so the pass count is unchanged.

For more details, visit https://github.com/uutils/findutils-tracking/.

Highlights

GNU compatibility fixes

  • find -printf: print a fixed-width fraction for %T+ β€” chrono's %.f drops the fraction (and the leading dot) when the sub-second part is zero, while GNU always prints a dot followed by ten fractional digits, by @sylvestre in #792
  • find: reject invalid -newerXY predicates like GNU β€” the parser used an unanchored regex, so tokens such as -neweraBcmty were accepted as a truncated -neweraB, by @l46983284-cpu in #784
  • find: reject invalid UTF-8 in --files0-from by @wtcpython in #798
  • xargs: cap the default command line size at 128 KiB β€” sizing command lines up to ARG_MAX made execvp() fail with E2BIG, since the kernel also charges the argv/envp pointer arrays against the limit. An explicit -s may still raise the limit, as with GNU. By @sylvestre in #791
  • xargs: account for quoting on Windows when computing length limits by @lhecker in #788

Robustness β€” errors instead of panics

  • find: report an unparsable -newerXt year instead of panicking by @leeewee in #762
  • locate: report write errors instead of panicking by @SAY-5 in #785
  • locate: ignore an unrepresentable --max-database-age instead of panicking by @leeewee in #768
  • find: skip broken pipe errors in wasm executions by @aki-kong in #802

Error messages

  • find: avoid the duplicated find: find: prefix in two error messages by @cakebaker in #774

Project & CI

  • clippy: fix warnings (byte_char_slices, useless_borrows_in_formatting, question_mark, manual_assert_eq) by @cakebaker in #755
  • Release 0.10.0 by @sylvestre in #804

Dependencies

Dependency and GitHub Action bumps via Dependabot and manual refreshes by @cakebaker: anyhow (1.0.102 β†’ 1.0.103, #751), crossbeam-epoch (0.9.18 β†’ 0.9.20, #754), clap (4.6.1 β†’ 4.6.4, #763/#787/#790), regex (1.12.4 β†’ 1.13.1, #765), ctor (1.0.7 β†’ 1.0.12, #752/#764/#789/#796/#800), thiserror (2.0.18 β†’ 2.0.19, #786), and CodSpeedHQ/action (4 β†’ 5.0.1, #799/#803).

New Contributors

Full Changelog: 0.9.1...0.10.0

Install findutils 0.10.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.10.0/findutils-installer.sh | sh

Download findutils 0.10.0

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