Saphira Linux
Saphira Linux has a home of its own
Saphira Linux is AKADATA’s source-built, musl/OpenRC server distribution for self-hosted infrastructure. Development, downloads, documentation, packages and the Dragon feature sets now live on the dedicated Saphira Linux website.
Saphira Linux
Build it yourself is coming soon
This AKADATA archive keeps the build-guide material available. The self-build path, releases, and current Saphira Linux development now have their own home.
Top-level controller
Build through build.sh
The supported entry point is ./build.sh [--dry-run] COMMAND [PACKAGE...]. Aggregate targets belong after the build command; they are not standalone shell commands.
./build.sh build sdk
./build.sh build stage0
./build.sh build stage1
./build.sh build stage2
./build.sh build stage3
./build.sh build stage4
./build.sh build base
./build.sh build allAggregate targets
Choose the boundary you intend to complete
| Target | Controller effect | Command |
|---|---|---|
sdk | Construct the cross-development SDK. | ./build.sh build sdk |
stage0 | Run the Stage0 SDK acceptance boundary and manifest. | ./build.sh build stage0 |
stage1 | Build the complete bootstrap rootfs package set. | ./build.sh build stage1 |
stage2 | Build the complete native final-system package set. | ./build.sh build stage2 |
stage3 | Build and validate the Stage3 image unit. | ./build.sh build stage3 |
stage4 | Build every Stage4 unit, install packages, create the repository and image, then validate. | ./build.sh build stage4 |
base | Run SDK through Stage3 in dependency order. | ./build.sh build base |
all | Run SDK through Stage4 in dependency order. | ./build.sh build all |
sdk constructs the cross-development SDK. stage0 is the separate acceptance and manifest boundary. base ends at the accepted Stage3 image; all continues through Stage4.
Controlled full run
Inspect, dry-run, then build
Status and settings are read-only. The dry run prints the planned trajectory without compiling, cleaning, imaging, or booting.
./build.sh status
./build.sh settings show
./build.sh --dry-run build all
./build.sh build allThe default policy is two jobs, load limit two, x86-64-v3, O3, and pipe=on. Use ./build.sh settings set profile performance when the host should use its calculated performance parallelism.
Resume and repair
Operate on the smallest meaningful unit
Package identifiers carry a stage prefix. Completion markers and fingerprints allow the controller to skip accepted work and identify the next ready unit.
./build.sh status stage2
./build.sh next stage2
./build.sh rebuild stage2
./build.sh validate stage2:manifestrebuild performs clean, rebuild, and validation for the requested unit or aggregate, while invalidating dependent evidence. Use it only when that destructive scope is intended.
Stage4 lower-level workflow
Use explicit actions when developing the package layer
./build.sh build stage4 is the aggregate route. The following lower-level commands are useful when developing, diagnosing, or deliberately separating Stage4’s package, repository, install, image, and validation operations.
./stage4/fetch-sources.sh --missing
./stage4/fetch-sources.sh --fetch
./stage4/fetch-sources.sh --verify
./build.sh stage4-create-keys
./build.sh stage4-validate-keys
./build.sh stage4-select akadata-stage4-server
./build.sh stage4-preflight
./build.sh stage4-build
./build.sh stage4-install
./build.sh stage4-repository
./build.sh stage4-image
./build.sh stage4-validateSource fetching is the only network-acquisition step and remains outside build.sh. Stage4 build, install, repository, image, validation, and boot actions remain independently callable.
Images and boot
Creation and execution remain separate
./build.sh image
./build.sh image-grub-akadata
./build.sh boot
./build.sh rescue
./build.sh stage4-image
./build.sh stage4-bootimage builds or validates the Stage3 qcow2. boot uses its installed GRUB. rescue uses the external kernel and bypasses normal OpenRC/password startup. Stage4 has its own derived image and explicit boot command.
