Files
darkforge/src/iso
Danny 3a5c200a28 Add dpack sign command, test runner, ISO builders, fix build errors
dpack fixes:
- Fixed missing SourceInfo fields in CRUX/Gentoo converters (git, branch,
  tag, commit, update_check fields added to struct initializers)
- Added 'sign' command: downloads source tarballs and computes real SHA256
  checksums, updating .toml definitions in-place. Replaces placeholder
  checksums. Usage: dpack sign zlib  or  dpack sign all

Testing:
- tests/run-tests.sh: comprehensive integration test runner for Arch Linux
  host. 7 test suites covering host env, dpack build/tests, package defs,
  toolchain scripts, kernel config, init system, and QEMU boot.
  Generates JSON + text reports for automated debugging.
  Usage: bash tests/run-tests.sh [--quick]

ISO builders:
- src/iso/build-iso-arch.sh: builds live ISO from Arch Linux host
  Creates rootfs from pre-built base system or busybox fallback,
  includes installer + dpack + package repos, UEFI-only boot
- src/iso/build-iso-darkforge.sh: builds live ISO from running DarkForge
  Snapshots the live system via rsync, creates redistributable ISO

Package repository (submodule updated):
- 14 new self-hosting packages: qemu, edk2-ovmf, squashfs-tools,
  xorriso, mtools, efibootmgr, efivar, rsync, lz4, nasm,
  neovim, htop, tmux, libevent
- Total: 138 packages across 4 repos

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:11:59 +01:00
..

DarkForge ISO Builder

Builds a bootable live USB/CD image containing the DarkForge installer and a minimal live environment.

Overview

The ISO builder compresses the base system into a squashfs image, creates a UEFI-bootable ISO via xorriso, and includes the installer scripts for deploying DarkForge to disk.

Requirements

Environment: Linux only. The ISO builder is a bash script that uses Linux-specific tools. It cannot run on macOS or Windows.

Host packages:

# Arch Linux
sudo pacman -S squashfs-tools xorriso dosfstools mtools

# Ubuntu / Debian
sudo apt install squashfs-tools xorriso dosfstools mtools

# Fedora
sudo dnf install squashfs-tools xorriso dosfstools mtools

Build prerequisites:

  • A completed base system build (Phase 3) in build/base-system/
  • A compiled kernel at kernel/vmlinuz (Phase 4)
  • The DarkForge toolchain chroot (Phase 0) or an equivalent build environment

Usage

bash src/iso/build-iso.sh

Output: darkforge-live.iso in the project root.

ISO Layout

darkforge-live.iso
├── EFI/BOOT/BOOTX64.EFI     # Kernel (EFISTUB boot)
├── boot/cmdline.txt          # Kernel command line
├── LiveOS/rootfs.img         # squashfs compressed root
└── install/                  # Installer scripts

Boot Method

The ISO boots via UEFI only (El Torito with EFI System Partition). No legacy BIOS support. The kernel loads directly via EFISTUB.

Testing

Test the ISO in QEMU:

qemu-system-x86_64 \
    -enable-kvm \
    -m 4G \
    -bios /usr/share/ovmf/OVMF.fd \
    -cdrom darkforge-live.iso \
    -boot d

Repository

git@git.dannyhaslund.dk:danny8632/darkforge.git