Skip to content

chore(deps): update rust crate uutests to 0.10.0 - #616

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/uutests-0.x
Open

chore(deps): update rust crate uutests to 0.10.0#616
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/uutests-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
uutests (source) workspace.dependencies minor 0.9.00.10.0

Release Notes

uutils/coreutils (uutests)

v0.10.0

Compare Source

Rust Coreutils 0.10.0 Release:

We are happy to announce the release of Rust Coreutils 0.10.0 - a release focused on GNU compatibility and robustness. The GNU test suite results improved sharply this cycle (645 passing, 29 failing, down from 56), we landed a second wave of security hardening (TOCTOU races, safe recursive descent, SELinux labeling at creation, backup guards), and we ran a broad anti-panic campaign across the utilities. On top of that: new features (mv --exchange, install --reflink, an OpenSSL backend for the checksum utilities), more zero-copy/read-ahead performance work, and wasm32-wasip2 support.


GNU Test Suite Compatibility:
Result 0.9.0 0.10.0 Change 0.9.0 to 0.10.0 % Total 0.9.0 % Total 0.10.0 % Change 0.9.0 to 0.10.0
Pass 625 645 +20 90.58% 93.48% +2.90%
Skip 8 15 +7 1.16% 2.17% +1.01%
Fail 56 29 -27 8.12% 4.20% -3.92%
Error 1 1 0 0.14% 0.14% 0%
Total 690 690 0

Note: 0.9.0 bumped the GNU reference to 9.11, which added 25 new tests and temporarily pushed the failure count up. This cycle absorbed most of that debt: failures dropped from 56 to 29 and passes reached an all-time high of 645.
As we contributed many tests to the GNU implementation, we are also the source of some of these regressions!


GNU testsuite evolution


Highlights:
  • GNU Compatibility

    • 645 passing GNU tests (+20) and 27 fewer failures, the largest single-cycle drop we have had
    • Dozens of behavior alignments: pr (-w/-W/-l/-e/-o, merge mode, page ranges), nproc (cgroups v2 quota, affinity mask, offline cores, OMP_* handling), date (out-of-range years, -d -, O modifier, timezone strings), numfmt, ls, du, install, od, truncate, fold, head/tail, sum, stat
    • Many error messages now carry the file name and the real OS error instead of a vague or stripped message
  • Security Hardening

    • Continued the TOCTOU work started in 0.9.0: touch no longer uses O_TRUNC on create, mkfifo drops the path-based chmod, head checks the open fd instead of the path, split hardens the output-open path, chcon anchors recursive relabeling to the traversal dirfd
    • Safe recursive descent fixes for chmod/chown (symlink cycles, --preserve-root re-checked during the descent), and cp no longer descends into a destination subdirectory that is a symlink
    • SELinux labels are now applied at creation in mkdir, mkfifo and mknod instead of being applied afterwards
    • mv fails closed when recreating a cross-device directory destination, compares file identity in the --backup=simple guard, and strips setuid/setgid when a cross-device copy cannot preserve ownership
    • chroot chroots exactly the path --skip-chdir validated; stdbuf refuses a libstdbuf path that cannot be represented in LD_PRELOAD; install finalizes ownership before mode
    • Added SECURITY.md documenting our threat model, scope and reporting process
  • Robustness: Anti-Panic Campaign

    • Removed panics and aborts across a long list of utilities: shuf, printf, numfmt, fmt, pr, chroot, dircolors, install, ln, touch, stat, split, expand, more, kill, cp, du, rm, runcon, sort, chown/chgrp, dirname, expr, cksum, dd, truncate, hashsum
    • Recurring classes fixed: write failures on /dev/full, char-boundary panics on multibyte input, integer overflow on extreme widths/precisions/sizes, and unbounded allocations for huge arguments
    • expr now uses an iterative parser, so deeply nested expressions no longer overflow the stack
  • New Features

    • mv --exchange to atomically swap two paths
    • install --reflink support, and install -C now works with --preserve-timestamps
    • OpenSSL backend for the faster checksum utilities
    • cut -O as a short option for --output-delimiter
    • rm --one-file-system
    • timeout now works on Windows, and tail -f/-F finally follows files on Windows
  • Performance

    • Read-ahead hints across the cksum family, sum, split, expand/unexpand and the base* utilities
    • tee zero-copy fast path; cat throughput improvements; faster non-reflink cp; cross-device mv via the fast copy path
    • expr: index went from O(N*M) to O(N+M); uniq and du improvements; tsort now buffers its output
    • New benchmarks for expr, tr, cut, uniq and locale-aware sort merges
  • Internationalization

    • cut supports multibyte characters in non-UTF-8 locales
    • ls uses Unicode quotes for the locale/clocale styles in UTF-8 locales and escapes non-ASCII control characters
    • Fixed C.UTF-8 being detected as ASCII, and incomplete Fluent fallback bundles
    • cksum quotes file names in a locale-aware way
  • Cross-platform Reach

    • New wasm32-wasip2 target support
    • Windows: timeout implementation, sparse copy support in cp, tail -f, cksum CRLF fix
    • ls --numeric-uid-gid on non-unix platforms, uptime uses CLOCK_BOOTTIME on more platforms
  • Code Quality

    • clippy::collapsible_if and clippy::match_same_arms are now clean and enabled workspace-wide
    • Continued nixrustix migration (dd, kill, sync, uptime) and further removal of unsafe and to_string_lossy
  • Contributions: This release was made possible by 50 new contributors joining our community


Call to Action:

Try it in your browser - Online Playground powered by WebAssembly
Help us translate - Contribute to Rust Coreutils on Weblate
Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils

What's Changed

arch

base32, base64, basenc

cat

chgrp

chmod

chown

chroot

cksum

comm

cp

csplit

cut

date

dd

df

dir

dircolors

dirname

du

env

expand

expr

fmt

fold

groups

hashsum

head

hostid

id

install

join

kill

ln

ls

mkdir

mkfifo

mktemp

more

mv

nice

nohup

nproc

numfmt

od

paste

pr

printf

ptx

pwd

realpath

rm

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants