Repository navigation
Fix release artifact permissions across container boundaries - #157
Merged
LunaStev merged 1 commit intoOct 12, 2026
Merged
Conversation
Signed-off-by: LunaStev <luna@lunastev.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix Release #4's RISC-V and LoongArch provenance failures: root-owned archives produced inside QEMU containers retained
NamedTemporaryFilemode0600, so the host runner could not read them (EACCES). Both platform acceptance runs had completed successfully before attestation failed.Why
Archive publication must produce a readable distribution artifact even when packaging and attestation run as different users.
Behavior
Set the completed, verified temporary archive to
0644before its atomic replacement. A permission-setting failure preserves the previous archive and cleans up the temporary file. This applies to tar.gz and zip publication without changing archive bytes or relaxing provenance verification.Validation
PermissionErrorfor a root-owned0600fixture; root-owned fixed RISC-V, LoongArch and ZIP archives remained readable by the non-root host, with identical bytes.python3 tools/repository_checks.pypassed.git diff --checkpassed. No Rust source changes.After merge and required master CI, dispatch a new release run from the corrected master. Re-running Release #4 would still use the old commit.