Skip to content

Preserve rustup-managed files in Ubuntu runner images - #798

Merged
alex merged 2 commits into
mainfrom
fix/ubuntu-rustup-component-manifests
Oct 2, 2026
Merged

alex merged 2 commits into
mainfrom
fix/ubuntu-rustup-component-manifests

Conversation

@reaperhulk

@reaperhulk reaperhulk commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Updating the stable Rust toolchain in the Ubuntu armv7 runner fails while uninstalling Cargo because the image deleted share/man/man1/cargo.1, which is still recorded in rustup’s component manifest. This blocks the Thumb stable job in verified-garbage #453 before compilation (failure log).

Preserve the Rust documentation/manpages, LLVM tools, sanitizer runtimes, and wasm linker recorded in rustup’s manifests. Keep binary stripping and libLLVM deduplication. This increases image size but allows rustup to uninstall and update the baked-in toolchain correctly.

Enable rustup’s RUSTUP_PERMIT_COPY_RENAME fallback so toolchain updates can move directories on Docker overlay filesystems. Without it, the ppc64le runner fails with Invalid cross-device link while backing up share/doc/cargo.

Add an Ubuntu image CI check that removes Cargo, LLVM tools, rustc, and rust-std in a disposable container. This exercises the failure path deterministically even when stable has not changed since the image was built. PR builds test the locally built image; main builds pull the newly published image rather than testing the previous cached tag.

Validation:

  • Reproduced the exact missing cargo.1 failure with rustup 1.29.1 after deleting manpages from an isolated macOS toolchain copy.
  • Removing all four components succeeds from an isolated copy with files preserved.
  • Dockerfile Rust installation shell syntax, workflow validation (actionlint -shellcheck=), and git diff --check pass. Full actionlint reports a pre-existing SC2086 warning in the Node version setup step.
  • Docker is unavailable locally; Linux image builds and the new component-uninstall check will run in this PR’s CI.

alex
alex previously approved these changes Oct 1, 2026
@alex
alex merged commit 947cb3a into main Oct 2, 2026
31 checks passed
@alex
alex deleted the fix/ubuntu-rustup-component-manifests branch October 2, 2026 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants