live-build configuration that produces the Foundry Linux 26.04 bootable ISO.
Two ISOs ship at v1, built from a single config driven by an EDITION env var:
| ISO | Metapackage | Estimated size | Audience |
|---|---|---|---|
foundry-anvil-1.0-amd64.iso |
foundry-anvil |
~3.5 GB | Default — full Foundry kit |
foundry-atelier-1.0-amd64.iso |
foundry-atelier |
~10 GB | Every Foundry metapackage + mobile dev |
Downloads: https://iso.foundrylinux.org
# Build anvil ISO locally (requires Docker)
EDITION=anvil task build
# Build atelier ISO
EDITION=atelier task build
# Boot the ISO in QEMU (smoke test — requires qemu-system-x86)
task smoke
# GPG-sign + checksum a built ISO
EDITION=anvil task signSee task --list for all available tasks.
config/
auto/
config lb config invocation — arch, distro, bootloaders, per-edition package list
build lb build wrapper
clean lb clean wrapper
archives/
foundry.list.chroot apt.foundrylinux.org source line
worldfoundry.list.chroot apt.worldfoundry.org source line
# *.key.chroot fetched from the live apt repos at build time by build-iso.sh
hooks/live/
0010-enable-multiverse.hook.chroot
0020-strip-kubuntu-bloat.hook.chroot
0030-install-foundry-edition.hook.chroot
0040-firstboot-cleanup.hook.chroot
package-lists/
strip.list.chroot.purge packages purged during chroot (KDE PIM, office, snap, …)
# foundry.list.chroot written at lb config time from EDITION env
scripts/
build-iso.sh runs lb build inside ubuntu:26.04 Docker container
sign-iso.sh GPG-sign + sha256sum + JSON manifest
upload-iso.sh rclone copy to Cloudflare R2 (foundry-iso bucket)
bootstrap-r2.sh one-time setup: R2 bucket + iso.foundrylinux.org + GHA secrets
test/
boot-smoke.sh headless QEMU boot; asserts Calamares + getty appear within 120 s
Tag push triggers .github/workflows/publish.yml:
- Matrix:
anvilandatelierin parallel - Build inside
ubuntu:26.04container (mandatory — shlibdeps + seed resolution pin to build-host library state) - Sign with the shared Foundry Linux GPG key
- Upload to
r2://foundry-iso/; updatefoundry-{edition}-latest-amd64.isopointer
Monthly cron rebuild keeps ISOs fresh even between tagged releases.
bash scripts/bootstrap-r2.shCreates the R2 bucket, attaches iso.foundrylinux.org, and wires all GHA secrets.
Requires CF_API_TOKEN (prompts if absent) and gh authenticated to foundry-linux.
Installer branding lives in foundry-apt/packages/calamares-settings-foundry-linux/
and ships as a .deb on apt.foundrylinux.org — pulled into the ISO as a regular
package. Branding assets (logo, banner, slideshow slides, wallpaper, GRUB theme,
Plymouth animation, SDDM login screen) are generated by
packages/calamares-settings-foundry-linux/scripts/generate-assets.py.
This directory is mirrored to github.com/foundry-linux/foundry-iso via the
top-level Taskfile:
task iso-sync # push current HEAD to the remote
task iso-release TAG=v0.0.1 # tag + trigger CI
task iso-bump # sync + auto-increment patch version