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

40
versions.mk Normal file
View File

@@ -0,0 +1,40 @@
# ─────────────────────────────────────────────────────────────────────────────
# Arcline OS — version pins & build constants
#
# Single source of truth for what a build produces. Every script sources this
# (directly or via scripts/common.sh) so there is exactly one place to bump a
# version or switch the Debian base.
# ─────────────────────────────────────────────────────────────────────────────
# Distro identity
DISTRO_NAME := Arcline OS
DISTRO_ID := arclineos
VERSION := 0.1.0
RELEASE_NAME := arclines
# Debian base we build on. Bookworm = Debian 12 stable.
DEBIAN_SUITE := bookworm
DEBIAN_MIRROR := http://deb.debian.org/debian
SECURITY_MIRROR := http://security.debian.org/debian-security
# Architecture we target first. amd64 is the primary; arm64 builds are a
# stretch goal. Kept in one place so adding arm64 is a one-line change.
ARCH := amd64
# Kernel flavour shipped by the base. Bookworm ships 6.1 LTS.
KERNEL_PACKAGE := linux-image-amd64
KERNEL_VERSION := 6.1
# Edition codenames (the "what do I install" flavours).
EDITIONS := server workstation cloud
# Output layout under build/
BUILD_DIR := build
ROOTFS_DIR := $(BUILD_DIR)/rootfs
IMAGE_DIR := $(BUILD_DIR)/iso
DEB_DIR := $(BUILD_DIR)/debs
LOG_DIR := $(BUILD_DIR)/logs
ARTIFACT_DIR := $(BUILD_DIR)/artifacts
# Toolchain: the 11 Go tools that ship with Arcline OS (see toolchain/).
TOOLCHAIN_REPO := https://git.arcline.it/arcline/tools.git