Skip to content

Updating rust-coreutils to version 0.9.0, using /usr/lib/uutils/ and adding shell profiles - #18231

Open
fede2cr wants to merge 1 commit into
microsoft:4.0from
fede2cr:rust-coreutils-update
Open

Updating rust-coreutils to version 0.9.0, using /usr/lib/uutils/ and adding shell profiles#18231
fede2cr wants to merge 1 commit into
microsoft:4.0from
fede2cr:rust-coreutils-update

Conversation

@fede2cr

@fede2cr fede2cr commented Jul 28, 2026

Copy link
Copy Markdown

Updating uutils-coreutils to version 0.9.0 from upstream, with a couple of usability differences from Fedora. The dir /usr/lib/uutils has been added so that the coreutils version can be "switched" from GNU to uutils by just changing the PATH, and also profiles have been added for a couple of shells, so that the default can be easily changed.

Version 0.9.0 has many speed improvements and compatibility closer to GNU's, but has also been security audited.

This are still optional packages, so this will not make any changes to the distro unless the packages get installed, and it's easy to move to or away from GNU or uutils' versions of coreutils, or just to test individual commands.

@fede2cr
fede2cr requested a review from a team as a code owner July 28, 2026 02:32
Copilot AI review requested due to automatic review settings July 28, 2026 02:32
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions

Copy link
Copy Markdown

Hello, and thank you for opening this pull request! 👋🏼 We appreciate the contribution.

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.

Commits in this repo will typically be prefixed with fix:, feat:, docs:, chore:, refactor:, test:, or ci: to indicate the type of change being proposed. The linked specification has more details.

Details:

No release type found in pull request title "Updating rust-coreutils to version 0.9.0, using /usr/lib/uutils/ and adding shell profiles". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates rust-coreutils to 0.9.0 and adds PATH-based coexistence with GNU coreutils.

Changes:

  • Adds vendored-build and version-update overlays.
  • Installs private uutils command links and shell profiles.
  • Moves rust-coreutils to a dedicated component definition.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
base/comps/rust-coreutils/rust-coreutils.comp.toml Defines source, build, packaging, and PATH overlays.
base/comps/rust-coreutils/uutils-coreutils.sh Configures PATH for Bourne-compatible shells.
base/comps/rust-coreutils/uutils-coreutils.csh Configures PATH for csh/tcsh.
base/comps/rust-coreutils/uutils-coreutils.fish Configures PATH for fish.
base/comps/components.toml Removes the inline rust-coreutils entry and adds unrelated entries.
Comments suppressed due to low confidence (2)

base/comps/rust-coreutils/rust-coreutils.comp.toml:52

  • vendor.tar.xz is not present under base/comps/rust-coreutils/, and there is no source-files entry that can fetch it. Because file-add resolves source relative to this component file, rendering stops before the package can build. Add the vendored archive through the repository's hashed source-files/lookaside mechanism (or commit the referenced input).
description = "Add the cargo-vendored dependency tarball for offline build"
type = "file-add"
file = "vendor.tar.xz"
source = "vendor.tar.xz"

base/comps/rust-coreutils/rust-coreutils.comp.toml:144

  • coreutils-0.9.0.tar.gz is also absent from the component directory, and the promised source-files block does not exist anywhere below line 115. This file-add therefore cannot resolve its source, so render/build cannot obtain the 0.9.0 code. Add a hashed download entry for the upstream release (or otherwise provide the referenced file).
[[components.rust-coreutils.overlays]]
description = "Add the 0.9.0 source tarball from local component sources for build validation"
type = "file-add"
file = "coreutils-0.9.0.tar.gz"
source = "coreutils-0.9.0.tar.gz"

# Pin to the latest Fedora dist-git commit, which packages upstream 0.7.0.
# The overlays below carry us forward to 0.9.0, which Fedora has not yet
# packaged but is the version Azure Linux ships.
spec = { type = "upstream", upstream-commit = "b86e8fd647f6f28854879e33db45721a9d566919" }
Comment on lines +7 to +12
# Bump from Fedora's 0.7.0 to upstream uutils/coreutils 0.9.0.
[[components.rust-coreutils.overlays]]
description = "Bump uutils-coreutils from Fedora's 0.7.0 to upstream 0.9.0"
type = "spec-update-tag"
tag = "Version"
value = "0.9.0"
Comment on lines +109 to +112
"# README.package.md is Fedora-specific; create an empty placeholder.",
"touch %{buildroot}%{crate_instdir}/README.package.md",
"# Placeholder for the %ghost Cargo.toml referenced by +<feature>-devel subpackages.",
"touch %{buildroot}%{crate_instdir}/Cargo.toml",
Comment on lines +6 to +10
if test -d /usr/lib/uutils/bin
if not contains /usr/lib/uutils/bin $PATH
set -gx PATH /usr/lib/uutils/bin $PATH
end
end
[components.ghostscript]
[components.gi-docgen]
[components.git]
[components.git-lfs]
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.

2 participants