Migrate live ISO to Titanoboa's contract model: Glarion branding + install-from-live #4

Open
opened 2026-07-13 16:27:15 +00:00 by james.oates · 1 comment
Owner

Rebuild the live ISO pipeline on Titanoboa's current "container-native ISO contract" architecture. Unlocks: GRUB menu/ISO label saying "Glarion" (currently "Fedora Linux 44 Live ISO"), an install path inside the live session, and a maintained upstream (we currently pin the abandoned v0.2 with just 1.51.0 as a workaround).

Plan document (source of truth): Obsidian vault, Personal/Projects/glarion/plans/2026-07-13-titanoboa-contract-migration.md.

Checklist:

  • iso/ payload-image directory: Containerfile, src/build.sh (adapted from titanoboa's bazzite example, reusing config/flatpaks.list), src/iso.yaml with Glarion-Live label and branded GRUB entries
  • Investigate the upstream install-from-live UI (bazzite postrootfs hook / current Bazzite ISOs); implement the smallest working install of the embedded image, or defer to a follow-up if upstream has nothing clean
  • Decide on install-payload embedding vs network install (embedding adds ~5 GiB → ~15 GiB ISO, 32 GB stick)
  • Rewrite build-live-iso.yml: build payload image, run Titanoboa pinned to a main-branch SHA, keep checksum + guarded R2 upload
  • test-live-iso.yml: add ~8s screenshot to capture the GRUB menu; verify branding, desktop, flatpaks, install path
  • README updates (stick size, install-from-live once exercised)
  • Validated by booting the live USB on real hardware

Related: #2 (current v0.2-based live ISO, stays published until this lands), #3 (first-boot flatpaks gap — the installed-system side of the same app-set story).

Rebuild the live ISO pipeline on Titanoboa's current "container-native ISO contract" architecture. Unlocks: GRUB menu/ISO label saying "Glarion" (currently "Fedora Linux 44 Live ISO"), an install path inside the live session, and a maintained upstream (we currently pin the abandoned v0.2 with just 1.51.0 as a workaround). Plan document (source of truth): Obsidian vault, `Personal/Projects/glarion/plans/2026-07-13-titanoboa-contract-migration.md`. Checklist: - [ ] `iso/` payload-image directory: Containerfile, `src/build.sh` (adapted from titanoboa's bazzite example, reusing `config/flatpaks.list`), `src/iso.yaml` with Glarion-Live label and branded GRUB entries - [ ] Investigate the upstream install-from-live UI (bazzite postrootfs hook / current Bazzite ISOs); implement the smallest working install of the embedded image, or defer to a follow-up if upstream has nothing clean - [ ] Decide on install-payload embedding vs network install (embedding adds ~5 GiB → ~15 GiB ISO, 32 GB stick) - [ ] Rewrite `build-live-iso.yml`: build payload image, run Titanoboa pinned to a main-branch SHA, keep checksum + guarded R2 upload - [ ] `test-live-iso.yml`: add ~8s screenshot to capture the GRUB menu; verify branding, desktop, flatpaks, install path - [ ] README updates (stick size, install-from-live once exercised) - [ ] Validated by booting the live USB on real hardware Related: #2 (current v0.2-based live ISO, stays published until this lands), #3 (first-boot flatpaks gap — the installed-system side of the same app-set story).
Author
Owner

Scope update from the clean-install product decision (see #3): the live ISO's flatpaks are explicitly demo content only — nothing about them carries to installed systems. config/flatpaks.list is trimmed to Chrome + Steam (commit dbd6edd), which should also shrink the rebuilt live ISO meaningfully from 9.8 GiB. When sizing the install-payload embedding decision, use the smaller demo-set baseline.

Scope update from the clean-install product decision (see #3): the live ISO's flatpaks are explicitly **demo content only** — nothing about them carries to installed systems. `config/flatpaks.list` is trimmed to Chrome + Steam (commit dbd6edd), which should also shrink the rebuilt live ISO meaningfully from 9.8 GiB. When sizing the install-payload embedding decision, use the smaller demo-set baseline.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Glarion/glarion#4
No description provided.