Building DevelOS
This guide covers building the DevelOS live ISO and boot-testing it in QEMU.
Requirements
Build from an Arch Linux or Arch-derived host with podman, base-devel, pacman-contrib, qemu or qemu-full, and OVMF firmware for UEFI install testing.
sudo pacman -S --needed base-devel pacman-contrib podman qemu-full edk2-ovmfArch-derived hosts are supported through the containerized build path. Local DevelOS packages and external live-only packages are built inside an Arch container so host distribution packages do not leak into the ISO.
Build The ISO
From the repository root:
make isoThe build script does the following:
- Copies
archiso/packages.live.x86_64toarchiso/packages.x86_64formkarchiso. - Builds local DevelOS packages from
packages/andinstall/. - Builds external live-only
calamaresandckbcomppackages from AUR PKGBUILDs inside the Arch container. - Creates a local pacman repo under
archiso/airootfs/opt/develos/repo. - Builds the ISO inside a Podman Arch container.
- Writes the ISO to
output/.
Package-Only Build
To rebuild local package artifacts without building a full ISO:
make packagesUse this after changing files under packages/ or source trees under install/.
Local Repo Build
To recreate the local pacman repo from already-built package artifacts:
make repoLive Boot Test
After building an ISO, boot the live environment with:
make qemu-live ISO=output/<iso-name>.isoIf ISO is omitted, the newest ISO under output/is used. This only tests whether the ISO boots. It does not test installation.
Full Install Test
To boot the ISO, install to a virtual disk, and then boot that installed disk:
./scripts/run-qemu-install.sh output/<iso-name>.iso vm/develos.qcow2The helper uses UEFI/OVMF and resets the VM firmware vars for each run so old boot entries do not pollute install testing.
Useful Files
Makefile: primary build entry point for ISO, package, repo, and QEMU live targets.scripts/build-iso.sh: ISO build orchestration.scripts/build-packages.sh: local package build pipeline.scripts/build-repo.sh: local pacman repo creation.scripts/common.sh: shared shell helpers.archiso/packages.live.x86_64: packages included in the live ISO.archiso/packages.installed.x86_64: packages installed onto target systems.packages/: DevelOS PKGBUILDs and package-owned files.install/: vendored suckless source trees used by package builds.