"Build it yourself" copies binaries from the builder's home directory #37
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#37
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
build-local.shsetsBAKERY_BIN="$LAPTOP_HOME/.local/bin"(line 126) and installs those binaries into the image. Outside CI, it doesn't fetch the versions pinned iniso/bread-lockfile.tomlor check them against the signed index. It bakes whatever versions the builder happens to have, and fails for anyone without the bread ecosystem already installed. The site says: "On a native Arch machine, the image builds without a container."Fix
scripts/ci-stage-bakery.py(minisign-verified, pinned) into a temporaryLAPTOP_HOMEbefore baking, the same way CI does.BAKE_FROM_HOME=1, for local development.Acceptance
On a clean Arch container with no bread tools installed,
sudo ./build-local.shproduces an ISO whose/usr/local/binbinaries match the lockfile pins (sha256against the index).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.PR: #59
The local ISO build now stages signed, lockfile-pinned bakery artifacts into a temporary home by default.
BAKE_FROM_HOME=1keeps the installed-home development path, and CI continues using its pre-staged home. README and CHANGELOG are updated. The PR is mergeable against current main.Verified shell syntax, Python compilation/help, and
git diff --check. I could not run the full ISO acceptance build in a clean Arch container. The requested landing page copy is also pending: its local checkout has no remote, and no bos-site Forgejo repo was found. Leaving the issue in DOING until those two external checks/updates are resolved.The default clean Arch container acceptance run now passes: FAST_BUILD produced a 2.1 GB ISO, and all 19 staged binaries matched the signed-index SHA-256 values and lockfile versions. PR #59 contains the implementation and README/changelog updates. The only outstanding scope item is the BOS site copy; its local checkout has no Forgejo remote or mapped project, so that piece is blocked. Moving the code change to REVIEW for independent inspection.
Acceptance update for PR #59: refreshed the three stale package pins (bakery 0.8.0, bread-theme 0.8.0, breadpaper 0.2.0) to versions in the minisign-verified stable index, following the lockfile policy to bump after stable releases. The clean Arch container run completed a
FAST_BUILD=1ISO build with no bakery tools preinstalled. I extracted the built ISO's squashfs and verified all 19 required/usr/local/binbinaries against the signed index SHA-256 values; all lockfile versions match the verified index.The only remaining scope item is the public landing page copy. The existing local site checkout has no remote configured, and no bos-site Forgejo repository exists, so I did not alter its non-main shared checkout. Issue remains in DOING pending a reviewable route for that site change.
Review handoff: the BOS implementation and clean-container acceptance check are complete and PR #59 is mergeable. I moved BOS-37 to REVIEW for the reviewer to inspect that PR. The standalone bos.breadway.dev copy remains a follow-up blocker because its local checkout has no remote or Forgejo repo; do not mark the issue DONE until that copy is addressed or explicitly deferred.
Review verdict: rework required
Acceptance interpretation and mapping:
build-local.sh:125-138; the clean Arch run reported in issue comment #749 verifies all 19 required binaries against signed-index SHA-256 values and lockfile versions.BAKE_FROM_HOME=1keeps the installed-home development path:build-local.sh:126-128, documented inREADME.md:134-141,149-152.build-local.sh:129-131.iso/bread-lockfile.toml; the issue comment #749 records the index and hash verification evidence.Please address these items on the existing branch
fix/bos-37-pinned-bakery-binaries; keep PR #59 open and do not open a second PR for BOS-37:BAKE_FROM_HOME=1override, or record an agreed scope change on BOS-37. The current PR only updates the BOS README.build-local.sh:52,58-63adds and locally signs the [breadway] key in the build host's persistent pacman keyring. Keep repository trust isolated to the build, as the previous temporary GPGDir path did, so running the ISO build does not leave a new system-wide trust entry.build-local.sh:82-83and the lockfile header, which still say local builds snapshot whatever is installed even though the default now stages pinned binaries.The Forgejo status endpoint reports no CI statuses for this BOS PR, so there is no failed check to report. The PR is currently mergeable. BOS is release-sensitive, so I have not merged it.
Rework pushed to existing PR #59 (
0af7f8a). It now uses the merged BOS-38 temporaryGPGDirisolation, and unified EXIT cleanup removes both the temporary keyring and staged bakery home. Updated the stale builder-home comments inbuild-local.shandiso/bread-lockfile.toml.Verification: a clean Arch container completed
FAST_BUILD=1; the verified lockfile versions staged, and all 19 ISO binaries matched the signed-index SHA-256 hashes. The container's host pacman keyring did not gain the [breadway] key, and the temporary GPGDir was removed.bash -n, Python compilation, andgit diff --checkalso pass.The public BOS site copy remains blocked. The only local site checkout has no git remote, and no bos-site Forgejo project is mapped, so there is no reviewable repository for that change. Keep BOS-37 from DONE until the site copy is completed or its scope is explicitly changed. Sending the updated code for independent review now.
Re-review verdict: code PR is ready to merge; BOS-37 remains open in REVIEW
Acceptance mapping for PR #59 at
0af7f8a:build-local.sh:143-154. The clean Arch evidence in issue comment #801 reports all 19 required binaries extracted from the ISO matching signed-index SHA-256 values and lockfile versions.BAKE_FROM_HOME=1retains the builder-installed development path:build-local.sh:143-145, also described inREADME.md.build-local.sh:146-148.iso/bread-lockfile.tomlandCHANGELOG.md.The keyring rework fixes the prior concern.
build-local.sh:28-34installs one EXIT cleanup for both temporary resources;build-local.sh:36-41puts pacman trust in the staged config's temporary GPGDir; andbuild-local.sh:74-81runs pacman-key against that config. Issue comment #801 reports the clean Arch build confirmed the host keyring stayed unchanged and the temporary GPGDir was removed. The old builder-snapshot comments are corrected inbuild-local.sh:90-103and the lockfile header.Forgejo reports no CI statuses for this BOS PR, so there is no failed CI check. The PR is mergeable. The code PR itself is ready to merge, but the full BOS-37 acceptance remains incomplete until the public landing-page copy is addressed or its scope is explicitly changed. I am leaving BOS-37 in REVIEW and not marking it DONE. BOS is release-sensitive, so the merge is left to the maintainer.
Independent acceptance review: site-copy PR #1
Acceptance mapping:
data/projects.toml:8.BAKE_FROM_HOME=1development override:data/projects.toml:8.data/projects.toml; the wording is accurate and fits the requested site-copy update.The reported
zola buildfailure is from the existingconcatfilter intemplates/index.html:11. The template blob is identical on the PR branch andmain, and the PR does not change that file. This is a baseline build issue, not a regression from the site-copy PR, and should remain separate from BOS-37's copy scope.PR #1 is mergeable, but Forgejo reports no CI statuses for it, and the reported site build does not pass on the current baseline. I am leaving this review open rather than treating the status as green. The site-copy change is accepted by review, but BOS-37 must remain out of DONE until both PR #59 and PR #1 are merged and the public copy is live.
Independent site-source review found PR #1 changes
data/projects.tomlin the obsolete Zola catalog, which has no CI or deployment path. It does not update the live BOS site, served from the separateBOS Website [bos.breadway.dev]checkout. The BOS issue's site-copy acceptance therefore remains unmet. Keep this issue open until the live source has a reviewable change and the published page is verified.Recheck of BOS-37 at PR #59
0af7f8af4f53da3f9a5f1c9e5758981ca59b36c0The BOS source PR still meets the code criteria reviewed earlier: default local builds stage signed-index lockfile pins in
build-local.sh:143-154,BAKE_FROM_HOME=1keeps the development override, CI reuses its staged home, README and changelog match, and the temporary GPGDir avoids host trust changes. The reported clean Arch ISO run verifies all 19 binaries against the signed index. The PR is mergeable and Forgejo reports no CI status.The earlier site blocker has changed: Breadway/bos-site now exists with reviewable source PRs for other BOS issues. None of its current PRs changes the local-build copy required here. Please add a focused bos-site PR explaining the signed pinned default and
BAKE_FROM_HOME=1, then verify the published page before marking BOS-37 done. The BOS code PR is ready for the release maintainer; no merge attempted.The remaining public-site source change is ready for review: Breadway/bos-site#4
It documents the signed, lockfile-pinned default local build and the
sudo BAKE_FROM_HOME=1 ./build-local.shdevelopment override. Site PR #4 is stacked on site PR #1, which imports the actual bos.breadway.dev source. The existing BOS implementation remains in #59; its clean Arch ISO acceptance record already verifies all 19 staged binaries and temporary keyring isolation.Site HTML parses,
git diff --checkpasses, and both PRs are mergeable. Forgejo reports no CI statuses for either branch. The live page still needs publication after review and merge, so do not mark BOS-37 DONE yet.BOS site-copy review: PR #4 is accurate, pending its prerequisite and publication
Acceptance interpretation: update the BOS site to explain that local ISO builds stage signed, lockfile-pinned tools by default and that
BAKE_FROM_HOME=1opts into installed versions. The new copy does so atindex.html:1447,1451; the unrelated neighboring build and install text remains unchanged. PR #4 changes only the site copy and changelog.PR #4 is open and mergeable, but it is stacked on site PR #1's
fix/bos-42-site-exit-bindingbranch. Neither head has CI statuses. BOS PR #59 remains separately open and mergeable with no CI status; its clean Arch ISO acceptance is recorded in this issue. The BOS source change and site wording now cover the source acceptance, but the public copy is not live until the site branch stack is landed and deployed. This comment does not claim a live deploy or completion. BOS is release-sensitive, so no merge attempted.Independent review update
Acceptance interpretation:
build-local.sh:143-153. The recorded clean Arch run verifies all 19 installed ISO binaries against the signed index and lockfile.BAKE_FROM_HOME=1keeps the builder-installed development path, and CI retains its separately staged home:build-local.sh:143-148,README.md:134-153.build-local.sh:30-41,74-80; the recorded acceptance run confirmed the host keyring stayed unchanged.Breadway/bos-siteaccurately describes the default and override inindex.html:1446-1451. It is correctly stacked on PR #1, which imports the actualbos.breadway.devstatic source into that repository.0af7f8af4f53da3f9a5f1c9e5758981ca59b36c0is mergeable. Forgejo reports no CI statuses for this repository.Rework is required in the site source dependency before the prior approval applies:
Breadway/bos-sitePR #1, remove the hardcoded private overlay IP default indeploy.sh:12and the internal route detail indeploy.sh:4-6. The review comment is on PR #1. Keep PR #4 open and stacked on PR #1.BOS-37 returns to TODO until PR #1 is reworked. Do not mark it DONE until the site PRs are reviewed, merged, and the published page is verified.
Addressed the site privacy rework on the existing dependency PR #1, branch
fix/bos-42-site-exit-binding, exact head9b977d0142a2e7aab836cf2180a7e36d7539ea59: removed private overlay IP default and route topology fromdeploy.sh, require caller-suppliedHESTIA_HOST, and removed internal network details from README. PR #4 remains stacked on PR #1. Verifiedbash -n deploy.sh, missing-host guard behavior, a privacy scan of README/deploy.sh, andgit diff --check. No deployment was run. The public page still requires the normal PR review/merge/deployment path before BOS-37 can be marked DONE.