build-local.sh permanently changes the build host's pacman keyring #38
Labels
No labels
P0
P1
P2
P3
audio
bakery
boot
breadbug
bug
build
ci
dependencies
design
disk
docs
encryption
final
firewall
graphics
hardware
idle
installer
keybinds
nvidia
packages
phase-1
polish
recovery
reliability
reproducibility
secure-boot
security
shell
signing
snapshots
supply-chain
swap
tech-debt
theming
ux
website
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Breadway/bos#38
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Lines 60-63 of
build-local.shrunpacman-key --initandpacman-key --lsign-keyfor the BOS release key in the host keyring. From then on the host fully trusts that key for any repo, and the script doesn't mention it.Fix
Use a throwaway keyring for the build (mkarchiso honours the pacman.conf passed via
-C; setGPGDirin the stagediso/pacman.confto a temporary directory, then init and populate it). Or at minimum, prompt first and print how to undo it (pacman-key --delete 5620...).Acceptance
After a local build,
pacman-key --list-keys 56203B86...on the host shows nothing (or the user explicitly agreed).Source: BOS v0.6.2 source review (tag dated 2026-09-19); line numbers refer to that tree. Read AGENTS.md first. One issue per branch/PR, match existing style. Add a CHANGELOG
[Unreleased]entry.Implemented on
fix/bos-38-pacman-keyring: build-local now uses a temporary staged GPGDir, initializes and populates it with Arch and Breadway keys, and removes it on exit. Updated the signed-repo docs and Unreleased changelog.PR: #58
Verified
bash -n build-local.sh,git diff --check, and thatpacman-confresolves the staged GPGDir. Full ISO build was not run per AGENTS.md.Reviewed PR #58 against BOS-38.
Acceptance criteria:
build-local.sh:28-34; keyring initialization, Arch key population, key import, and local signing all use that staged config inbuild-local.sh:59-68.build-local.sh:61-68initializes the isolated ring, populates Arch's keys, and trusts the Breadway key there; mkarchiso uses the staged profile config. The documentation now reflects this scope indocs/signed-repo.md:149-156.CHANGELOG.md:23-25.No tests were added. The reported shell syntax, diff whitespace, and pacman-conf GPGDir checks are useful, but do not exercise a complete ISO build or directly assert the host ring remains unchanged after one. The repo's AGENTS.md says not to run an ISO build unless explicitly asked. The implementation is scoped and the pacman-key calls do select the alternate config. I found no code issue in the diff.
CI status is unavailable: BOS has no ordinary PR CI, and Forgejo reports zero commit statuses for head
c648283f. The PR is mergeable with no reported conflicts. This is the release-sensitive BOS repo, so I am leaving BOS-38 in REVIEW for the maintainer to land once the local validation is accepted.