Reading the feature list out of Cargo.toml needed tr, which Gentoo's portage
had to account for. cargo is already required to build the project, so this
drops an external tool without adding a dependency. Output is unchanged:
the same 78 utilities, verified against the previous implementation on cargo
1.88, 1.93 and 1.95.
The regex selecting the coreutils package id matches the space, pipe, at and
hash separators that cargo has used across versions; without the comment the
pattern is not obvious.
`set -e` alone is a no-op here: the two commands that can fail both sit in
pipelines whose rightmost stage succeeds, so the pipeline status is 0 even
when `sed` or `cargo` failed. `set -eo pipefail` propagates that.
Computing `default_utils` moves into the branch that uses it. It read
`Cargo.toml` relative to the caller's directory and ran before the `cd`, so
from outside the repository it produced an empty list, and under `pipefail`
it would abort a run that otherwise succeeds.
The utility names are all in `.vscode/cspell.dictionaries/workspace.wordlist.txt`,
so the per-file list is redundant. The `OSTYPE` line has been dead since the
`$OSTYPE` check was replaced with a `command -v grealpath` lookup.
The Code Coverage job on macOS logged "realpath: illegal option -- m" on every
run: the script probed with GNU-only flags, then recovered via `||`. The repo
root always exists, so `cd` and `pwd -P` give the same physical path with no
dependency on GNU coreutils.
Running cspell over the whole tree reported 144 unknown words, so the
pre-commit hook failed on any file touching them. Add the words to the
per-file spell-checker:ignore lists (and alnum/reimplementation to the
jargon wordlist), and fix the gerandom and Normalise typos.
Closes#14895
The patches encode the uutils-vs-GNU diagnostic differences, so disabling
them makes the suite fail (e.g. tests/mkdir/restorecon.sh in the SELinux
job). Nine of the fourteen apply to 9.12 unchanged; refresh the five that
do not:
- tests_comm.pl.patch: comm.pl moved from tests/misc/ to tests/comm/
- tests_ls_no_cap.patch / tests_pwd-long.patch: strace switched from
'-e SYSCALL' to '-e trace=SYSCALL'
- tests_env_env-S.pl.patch: env-S.pl now escapes the tab in the expected
'invalid option' diagnostic
- error_msg_uniq.diff: uniq.pl gained test 146 after the patched hunk
Also make the nproc lookup in run-gnu-test.sh survive a missing/failing
nproc, which would otherwise abort the script under 'set -e'.