From d9a4206447178d6311fbbf4bd83e177b7b4d8dea Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Sat, 14 Feb 2026 21:56:43 +0100 Subject: [PATCH] Add OmniOS builder VM definition and provisioning scripts VMFile.kdl defines the omnios-builder VM with cloud-init, SSH config, and a 3-stage provision pipeline (bootstrap packages + Rust, upload forger source tarball, build and install forger). Makefile provides convenience targets wrapping vmctl commands. pack-forger.sh creates a minimal tarball of just the forger + spec-parser crates and image specs from refraction-forger for upload to the VM. Co-Authored-By: Claude Opus 4.6 --- scripts/pack-forger.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/pack-forger.sh b/scripts/pack-forger.sh index 5d86e10..327328d 100755 --- a/scripts/pack-forger.sh +++ b/scripts/pack-forger.sh @@ -19,6 +19,8 @@ trap 'rm -rf "$STAGING"' EXIT echo "[pack-forger] Staging forger source ..." +mkdir -p "$STAGING/crates" + # Copy crates cp -a "$FORGER_ROOT/crates/forger" "$STAGING/crates/forger" cp -a "$FORGER_ROOT/crates/spec-parser" "$STAGING/crates/spec-parser" @@ -26,8 +28,10 @@ cp -a "$FORGER_ROOT/crates/spec-parser" "$STAGING/crates/spec-parser" # Copy image specs cp -a "$FORGER_ROOT/images" "$STAGING/images" -# Copy lockfile -cp "$FORGER_ROOT/Cargo.lock" "$STAGING/Cargo.lock" +# Copy lockfile if present (reproducible builds) +if [ -f "$FORGER_ROOT/Cargo.lock" ]; then + cp "$FORGER_ROOT/Cargo.lock" "$STAGING/Cargo.lock" +fi # Generate a minimal workspace Cargo.toml (only forger + spec-parser) cat > "$STAGING/Cargo.toml" <<'TOML'