2026-04-30 03:43:33 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# veilor-os — ISO builder
|
|
|
|
|
# Wraps livemedia-creator inside a podman container for reproducibility.
|
|
|
|
|
# Run from repo root.
|
|
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
|
|
|
OUT_DIR="$REPO_ROOT/build/out"
|
|
|
|
|
KS="$REPO_ROOT/kickstart/veilor-os.ks"
|
|
|
|
|
RELEASEVER="${RELEASEVER:-43}"
|
|
|
|
|
DATE="$(date +%Y%m%d)"
|
|
|
|
|
ISO_NAME="veilor-os-${RELEASEVER}-${DATE}.iso"
|
|
|
|
|
|
|
|
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
|
|
|
|
|
|
# ── Validate kickstart ──
|
|
|
|
|
if command -v ksvalidator &>/dev/null; then
|
|
|
|
|
ksvalidator "$KS"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# ── Build container ──
|
|
|
|
|
podman build -t veilor-build:latest "$REPO_ROOT/build"
|
|
|
|
|
|
|
|
|
|
# ── Build ISO ──
|
|
|
|
|
# --make-iso requires --privileged (loop devices, mount).
|
|
|
|
|
podman run --rm --privileged \
|
|
|
|
|
-v "$REPO_ROOT:/work:Z" \
|
|
|
|
|
-v "$OUT_DIR:/out:Z" \
|
|
|
|
|
veilor-build:latest -c "
|
|
|
|
|
set -e
|
2026-04-30 04:08:49 +01:00
|
|
|
rm -rf /out/build-${DATE} /tmp/lmc
|
2026-04-30 03:43:33 +01:00
|
|
|
livemedia-creator \
|
|
|
|
|
--make-iso \
|
|
|
|
|
--no-virt \
|
|
|
|
|
--ks /work/kickstart/veilor-os.ks \
|
|
|
|
|
--resultdir /out/build-${DATE} \
|
|
|
|
|
--project veilor-os \
|
|
|
|
|
--releasever ${RELEASEVER} \
|
2026-04-30 04:07:18 +01:00
|
|
|
--volid VEILOR_OS \
|
2026-04-30 03:43:33 +01:00
|
|
|
--tmp /tmp/lmc \
|
|
|
|
|
--logfile /out/build-${DATE}.log
|
|
|
|
|
cp /out/build-${DATE}/*.iso /out/${ISO_NAME}
|
|
|
|
|
sha256sum /out/${ISO_NAME} > /out/${ISO_NAME}.sha256
|
|
|
|
|
"
|
|
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
echo "════════════════════════════════════════════════════════"
|
|
|
|
|
echo " ISO ready: $OUT_DIR/$ISO_NAME"
|
|
|
|
|
echo " Checksum: $OUT_DIR/$ISO_NAME.sha256"
|
|
|
|
|
echo " Build log: $OUT_DIR/build-${DATE}.log"
|
|
|
|
|
echo "════════════════════════════════════════════════════════"
|
|
|
|
|
echo
|
|
|
|
|
echo " Write to USB: sudo dd if=$OUT_DIR/$ISO_NAME of=/dev/sdX bs=4M status=progress conv=fsync"
|
|
|
|
|
echo " (replace /dev/sdX with your USB device — use lsblk to identify)"
|