ISO: flip [breadway] to the signed dl.breadway.dev/arch repo
The signed repo is live: https://dl.breadway.dev/arch/x86_64/ serves breadway.db + .files + every .pkg.tar.zst with a detached .sig from the BOS release key (56203B86A110695AE7F310934AF3323D678EB5E2 = KEYS.asc), rebuilt from the Forgejo Arch registry by signed-repo.yml + scripts/ci-publish-signed-repo.sh. Verified: db/pkg sigs all GPG-good against KEYS.asc. Executes the "After the signed repo exists" plan in docs/signed-repo.md: - `iso/pacman.conf` + `iso/airootfs/etc/pacman.conf`: section renamed `[Breadway.os.git.breadway.dev]` → `[breadway]` (matches breadway.db), `Server = https://dl.breadway.dev/arch/$arch`, `SigLevel = Required`. The old "Forgejo has no db sigs / KEYS.asc is not a repo key / do NOT flip" comments are gone — both are now false. - `iso/airootfs/etc/pacman.d/breadway-repo.asc`: the public key, baked into the image. - `build-local.sh`: trust the key in the build host's pacman keyring before mkarchiso (so pacstrap can verify [breadway] while assembling the airootfs); drop the now-obsolete Forgejo-registry URL rewrite. - `iso/airootfs/root/customize_airootfs.sh` (new): trust the key in the image keyring so the live medium — and, via calamares unpackfs, the installed target — verify [breadway]. (archiso warns this hook is deprecated; there is no replacement for "add a repo key to the image keyring" and BOS ships no pacman-init.service.) - `calamares/post-install.sh`: `pacman-key --add` + `--lsign-key` the BOS key in the target chroot as a fallback (unpackfs can skip /etc/pacman.d/gnupg). - README.md / DESIGN.md / docs/signed-repo.md updated. NOT yet done: build the ISO (`sudo ./build-local.sh`) and VM-verify `pacman -Sy` + a `[breadway]` install with no signature prompt, on both the live medium and a fresh install. The build-time keyring path (pacstrap -G vs host keyring vs customize_airootfs) may need a tweak once the real build runs.
This commit is contained in:
parent
b38bbbac1a
commit
98cfe9d60b
9 changed files with 137 additions and 67 deletions
|
|
@ -32,18 +32,17 @@ Include = /etc/pacman.d/mirrorlist
|
|||
# are NOT here; they are bakery-baked into /usr/local at ISO build time.
|
||||
#
|
||||
# Packages are published to the Forgejo Arch registry (group "os") by the
|
||||
# .forgejo/workflows/*.yml workflows in this repo (and breadlock's).
|
||||
# .forgejo/workflows/*.yml workflows; scripts/ci-publish-signed-repo.sh then
|
||||
# collects them, detach-signs each .pkg.tar.zst with the BOS release key
|
||||
# (releases@breadway.dev), runs `repo-add -s`, and publishes the signed db
|
||||
# at https://dl.breadway.dev/arch/$arch (signed-repo.yml).
|
||||
#
|
||||
# Forgejo's Arch package registry does not serve pacman-compatible db
|
||||
# signatures. SigLevel = Never is TLS-only integrity: the connection is
|
||||
# HTTPS (or rewritten to hestia's localhost:3002 in CI). breadlock (PAM)
|
||||
# rides this repo. Do NOT flip to SigLevel = Required unless a signed db
|
||||
# has been verified to work — Required without signatures breaks the ISO
|
||||
# and every install that uses [breadway]. KEYS.asc is the ISO SHA256SUMS
|
||||
# signing key, not a pacman repo key.
|
||||
# SigLevel = Required: every package AND the db carry a .sig from key
|
||||
# 56203B86A110695AE7F310934AF3323D678EB5E2 — the same key committed as
|
||||
# KEYS.asc / etc/pacman.d/breadway-repo.asc, imported into the pacman
|
||||
# keyring at build time (build-local.sh), on the live medium, and on the
|
||||
# installed target (calamares/post-install.sh).
|
||||
# -----------------------------------------------------------------------
|
||||
# The section name must match Forgejo's served db filename
|
||||
# ({owner}.{group}.{domain}.db) — pacman fetches "<section>.db" from Server.
|
||||
[Breadway.os.git.breadway.dev]
|
||||
SigLevel = Never
|
||||
Server = https://git.breadway.dev/api/packages/Breadway/arch/os/$arch
|
||||
[breadway]
|
||||
SigLevel = Required
|
||||
Server = https://dl.breadway.dev/arch/$arch
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue