Skip to content

foundry-linux/foundry-iso

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

foundry-iso

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


Quick start

# 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 sign

See task --list for all available tasks.


Layout

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

CI

Tag push triggers .github/workflows/publish.yml:

  • Matrix: anvil and atelier in parallel
  • Build inside ubuntu:26.04 container (mandatory — shlibdeps + seed resolution pin to build-host library state)
  • Sign with the shared Foundry Linux GPG key
  • Upload to r2://foundry-iso/; update foundry-{edition}-latest-amd64.iso pointer

Monthly cron rebuild keeps ISOs fresh even between tagged releases.

One-time setup

bash scripts/bootstrap-r2.sh

Creates 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.


Branding

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.


Syncing to GitHub

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

About

Foundry Linux ISO builder — live-build config, scripts, and CI

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages