feat: scaffold Arcline OS build system

Scaffold the Arcline OS build system ("the wires"): a transparent,
auditable pipeline that turns a Debian bookworm base into hardened OS
images for the server, workstation, and cloud editions.

- Makefile orchestrates everything (make iso-<edition>, check, test,
  toolchain, clean); versions.mk is the single source of truth for
  versions and paths.
- scripts/ is the plain-bash pipeline: debootstrap -> install packages
  -> apply overlays -> in-chroot configure -> live ISO, plus a rootfs
  archive along the way.
- ARCLINE_TOOLCHAIN=auto|skip|require controls whether the 11 Go tools
  are bundled into an image (auto by default; minimal builds available
  via make iso-<edition>-minimal).
- GPL-3.0 licensed, sponsored by Arcline IT LLC.
This commit is contained in:
Blake Ridgway
2026-08-21 13:15:43 -05:00
commit 14e5ea9e1e
12 changed files with 765 additions and 0 deletions

27
scripts/build-edition.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env bash
# ─────────────────────────────────────────────────────────────────────────────
# Arcline OS — edition build orchestrator
#
# scripts/build-edition.sh <edition> <stage>
# stage: rootfs | iso
#
# Thin dispatcher so the Makefile can stay dumb.
# ─────────────────────────────────────────────────────────────────────────────
set -euo pipefail
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
EDITION="${1:?usage: build-edition.sh <edition> <rootfs|iso>}"
STAGE="${2:?usage: build-edition.sh <edition> <rootfs|iso>}"
validate_edition "$EDITION"
case "$STAGE" in
rootfs)
"$ROOT/scripts/build-rootfs.sh" "$EDITION"
;;
iso)
"$ROOT/scripts/build-iso.sh" "$EDITION"
;;
*)
die "unknown stage '$STAGE' (expected: rootfs | iso)"
;;
esac