Align ISO bake and docs with bakery/Tauri product story

Derive BREAD_BINS from iso/bread-lockfile.toml and fail the bake when a
listed binary or breadhelp content is missing. Bake bakery share files
and drop breadcast from the copied installed.json. Add WebKitGTK 4.1 for
Tauri bos-settings, remove rustup, and rewrite README/DESIGN to match the
ISO+skel tree.
This commit is contained in:
Breadway 2026-08-15 21:40:55 +08:00
parent 881ac41cbb
commit a21e81476f
11 changed files with 427 additions and 212 deletions

View file

@ -374,9 +374,8 @@ fi
# The whole bread ecosystem (bakery, bread, breadbar, breadbox, breadcrumbs,
# breadpad, bos-settings, breadhelp, ...) is bakery-managed, not pacman: the
# binaries and bakery manifest live in /etc/skel/.local (baked in at ISO
# build time via build-local.sh's BREAD_BINS array) and are copied into the
# user's home below, so the install works fully offline with no DNS for
# bakery/GitHub.
# build time from iso/bread-lockfile.toml) and are copied into the user's
# home below, so the install works fully offline with no DNS for bakery.
# ---------------------------------------------------------------------------
# Deploy dotfiles + the bakery bread ecosystem into the user's home (Calamares

View file

@ -26,12 +26,13 @@ Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
# -----------------------------------------------------------------------
# Breadway custom repo — provides: bakery and the bread ecosystem packages
# (bread, breadbar, breadbox, breadcrumbs, breadpad, bos-settings).
# (calamares comes from the official extra repo, not here.)
# Breadway custom repo — breadlock plus AUR republishes the ISO needs
# (calamares, zen-browser-bin, bibata-cursor-theme-bin, yay-bin,
# zsh-theme-powerlevel10k). bakery / breadbar / bos-settings / breadhelp
# are NOT here; they are bakery-baked into /etc/skel at ISO build time.
#
# Packages are published to the Forgejo Arch registry (group "os") by the
# .forgejo/workflows/package.yml workflow in each repo, on tag push.
# .forgejo/workflows/*.yml workflows in this repo (and breadlock's).
#
# Forgejo signs the repo db with a key pacman can't look up, so TrustAll
# fails. SigLevel = Never skips verification (acceptable for this private

36
iso/bread-lockfile.toml Normal file
View file

@ -0,0 +1,36 @@
# Bakery binaries that MUST be baked into the live/installed skel.
#
# build-local.sh derives BREAD_BINS from `bins` — this is the name list, not a
# second hardcoded array. A missing binary fails the bake: a hollow ISO is
# worse than a failed build.
#
# CI should populate the builder from the stable bakery index
# (https://dl.breadway.dev/index.json). Local builds still snapshot whatever
# is installed on the builder; this file only names what must be present.
#
# Not shipped (even if present on the builder): breadcast, breadarr.
# breadlock is pacman (see packages.x86_64), not bakery.
bins = [
"bakery",
"bread",
"breadd",
"bread-emit",
"bread-module-host",
"breadman",
"breadbar",
"breadbox",
"breadbox-sync",
"breadcrumbs",
"breadpad",
"breadpaper",
"bread-theme",
"breadmon",
"breadsearch",
"breadmill",
"breadclip",
"breadclipd",
"breadshot",
"bos-settings",
"breadhelp",
]

View file

@ -99,12 +99,17 @@ bluez-utils
# blueman: GUI Bluetooth manager (pair/connect devices; breadbar shows status only).
blueman
# GTK4 runtime
# GTK4 runtime (breadbar, breadbox, breadclip, breadhelp, and other bakery apps)
gtk4
gtk4-layer-shell
librsvg
libpulse
hicolor-icon-theme
# Tauri 2 runtime for bakery-baked bos-settings. Arch's WebKitGTK 4.1 package
# is webkit2gtk-4.1 (libwebkit2gtk-4.1.so); libsoup3 and JavaScriptCore 4.1
# are pulled in as its dependencies. xdg-desktop-portal comes from the
# Hyprland/GTK portal packages listed above.
webkit2gtk-4.1
# GTK3 dark theme (Adwaita-dark); without this package the gtk-theme-name in
# skel settings.ini silently falls back to the light theme for GTK3 apps.
gnome-themes-extra
@ -179,19 +184,16 @@ yay-bin
# Bread ecosystem.
#
# None of the bread apps (bakery, bread, breadbar, breadbox, breadcrumbs,
# breadpad, bos-settings, breadhelp, ...) are pacman packages here anymore —
# they are all bakery-managed binaries baked into /etc/skel/.local/bin at
# build time (see build-local.sh's BREAD_BINS array), so every user gets the
# exact versions from this laptop's bakery install with no network/DNS
# needed at install or runtime. bos-settings/breadhelp's desktop entries are
# hand-committed static files at
# iso/airootfs/etc/skel/.local/share/applications/, matching the pattern
# already used for breadclip/breadman/breadmon/breadsearch. Their runtime
# system deps are pulled in elsewhere in this list (gtk4, gtk4-layer-shell,
# iw, libpulse, librsvg, networkmanager, openssl, zlib, systemd-libs,
# hicolor-icon-theme) — keep those even though no bread package depends on
# them via pacman.
# breadlock is the only bread* pacman package here (it needs a root-owned
# /etc/pam.d/breadlock). Everything else — bakery, bread/breadd/bread-emit/
# bread-module-host, breadbar, breadbox, breadcrumbs, breadpad, breadpaper,
# bread-theme, breadmon, breadsearch, breadclip, breadshot, bos-settings,
# breadhelp — is bakery-managed and baked into /etc/skel/.local at ISO build
# time from iso/bread-lockfile.toml (see build-local.sh). breadcast and
# breadarr are not shipped. bos-settings/breadhelp desktop entries are
# committed under iso/airootfs/etc/skel/.local/share/applications/. Runtime
# deps stay listed even though no bread package depends on them via pacman
# (gtk4, gtk4-layer-shell, webkit2gtk-4.1, iw, libpulse, librsvg, …).
# Input / screen utilities
brightnessctl
@ -324,6 +326,3 @@ qt6ct
# hyprland.lua) needs these or Qt apps fall back to (blurry) XWayland.
qt5-wayland
qt6-wayland
# Dev tools (for bos-settings standalone install)
rustup

View file

@ -26,12 +26,13 @@ Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
# -----------------------------------------------------------------------
# Breadway custom repo — provides: bakery and the bread ecosystem packages
# (bread, breadbar, breadbox, breadcrumbs, breadpad, bos-settings).
# (calamares comes from the official extra repo, not here.)
# Breadway custom repo — breadlock plus AUR republishes the ISO needs
# (calamares, zen-browser-bin, bibata-cursor-theme-bin, yay-bin,
# zsh-theme-powerlevel10k). bakery / breadbar / bos-settings / breadhelp
# are NOT here; they are bakery-baked into /etc/skel at ISO build time.
#
# Packages are published to the Forgejo Arch registry (group "os") by the
# .forgejo/workflows/package.yml workflow in each repo, on tag push.
# .forgejo/workflows/*.yml workflows in this repo (and breadlock's).
#
# Forgejo signs the repo db with a key pacman can't look up, so TrustAll
# fails. SigLevel = Never skips verification (acceptable for this private