bread-ecosystem/bakery
Breadway 2affeabce0 bakery: a failed data-archive download must not abort the whole install
`fetch_verify_write` treats a download/checksum failure as a soft
warning and returns Ok without writing — but the `NamedTempFile` is
already created (0 bytes). Gating extraction on `exists()` let the
empty file reach `tar tvf`, which bailed with a misleading "not in
gzip format" and aborted the install. Gate on non-empty instead.
2026-08-31 15:37:52 +08:00
..
src bakery: a failed data-archive download must not abort the whole install 2026-08-31 15:37:52 +08:00
Cargo.toml bakery: add system prefix installs for BOS 2026-08-16 00:00:19 +08:00
README.md bakery: add system prefix installs for BOS 2026-08-16 00:00:19 +08:00

bakery

Package manager for the bread ecosystem. Usage lives in the repo README.

Install prefix

Default root is ~/.local (bins in ~/.local/bin, data in ~/.local/share). That is the hermes / get.sh path and must stay the default.

BOS sets a system prefix so bakery-managed desktop apps live on the @ root subvolume and are included in snapper/grub-btrfs snapshots:

# /etc/bakery/config.toml
prefix = "/usr/local"

BAKERY_PREFIX overrides the config file. A non-home prefix installs:

Thing Path
bins $prefix/bin
share / desktop / licenses / data $prefix/share/...
systemd user units /usr/lib/systemd/user

Per-user state (installed.json and pre-update backups) stays in ~/.local/state/bakery. Writes that need root use sudo -n, then pkexec. bakery doctor prints the active prefix.