Builds a Gershwin desktop live ISO on top of NextBSD.
CI assembles the NextBSD base+kernel+userland from packages — one
pkg install NextBSD-everything out of the nextbsd-pkg
flat repo, seeded with the admin-owned /etc from
nextbsd-overlays (the same
package-driven model NextBSD's own build now uses) — chroot-builds Gershwin into
that rootfs (from a FreeBSD VM), adds Gershwin's loginwindow alongside the base
getty, and repackages the result into a live ISO that boots exactly like
NextBSD's own — a tiny mfsroot assembles an on-demand uzip-compressed root plus a
tmpfs/unionfs writable overlay, then sysctl vfs.pivot adopts the union as /
and execs launchd.
A fresh ISO is published to the rolling continuous
release on every push to main.
(Screenshot auto-captured by CI after booting the live ISO and logging in.)
| Path | Purpose |
|---|---|
build.sh |
pkg install NextBSD-everything → chroot-build Gershwin → bake pkglist.txt → repackage live ISO. Runs inside a FreeBSD VM. |
pkglist.txt |
Runtime packages baked into the ISO that Gershwin needs but doesn't install itself — the XLibre X server + input/video drivers. |
.github/workflows/build.yml |
build → boot-test → publish continuous release. |
tests/boot-test.sh |
Boots the ISO under qemu/OVMF and asserts the vfs.pivot live-root pipeline. |
overlays/System/Library/LaunchDaemons/ |
Gershwin launchd jobs added to the image (loginwindow, dshelper, gdomap, D-Bus system bus). |