Files
LithosAnanke/demo/build-iso.sh
T
Claude 9415d7ede3 fix: put-backs no longer name the untracked version.h (#145)
90c5c140 untracked v3/include/version.h, but six places still put it back
with git checkout. Git refuses the whole checkout when one path is unknown:

- scripts/nightly.sh images (set -e): the stage ended there, so the nightly
  (images, publish, proofs) and release.yml (images, docs, gitea-release)
  would fail. Acceptance does not run images, so it passed.
- scripts/check_images.sh (no -e), demo/build-iso.sh, demo/mint-zuse.sh
  (|| true): silently put nothing back, BLOCK_MAP.md and the SBOM included.
- scripts/qemu_session.py: an error after every boot, otherwise harmless.
- boards/BRINGUP.md: the step said to put it back.

BLOCK_MAP.md stays in every put-back: a signed build (CI's) still rewrites
its Signed column. Found while setting up alpha.5; Captain Bob: fix it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RzZgrf7V7Zk2iczBXDRbm
2026-11-11 18:52:46 +00:00

25 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# SPDX-License-Identifier: LicenseRef-Starship-1.0
# Copyright (c) 2023-2026 Robert A. James
# build-iso.sh -- the demo's ISO: the amd64 kernel's loader on an El Torito ISO, packed as
# `make -f kernel/Makefile ARCH=amd64 qemu` packs it (kernel/Makefile, target qemu).
#
# demo/build-iso.sh <out.iso> [VAR=value ...]
#
# The VAR=value arguments go to the kernel build: EMERGENCY_CONSOLE_ENABLED=1 for a console with
# no identity drive -- one of the two answers to issue #111, not yet ruled. A nightly's
# StarshipOS.iso can be used in place of this, once the ruling says which image the demo serves.
set -euo pipefail
cd "$(dirname "$0")/.."
out=$(realpath -m "${1:?usage: demo/build-iso.sh <out.iso> [VAR=value ...]}"); shift
make --no-print-directory -f kernel/Makefile ARCH=amd64 clean
make --no-print-directory -f kernel/Makefile ARCH=amd64 all "$@"
tmp=$(mktemp -d); trap 'rm -rf "$tmp"' EXIT
dd if=/dev/zero of="$tmp/efi.img" bs=512 count=8192 2>/dev/null
mformat -i "$tmp/efi.img" ::
mmd -i "$tmp/efi.img" ::/EFI ::/EFI/BOOT
mcopy -i "$tmp/efi.img" build/amd64/kernel/starkernel_loader.efi ::/EFI/BOOT/BOOTX64.EFI
xorriso -as mkisofs -r -J -e efi.img -no-emul-boot -o "$out" "$tmp" 2>/dev/null
git checkout -q -- capsules/BLOCK_MAP.md 2>/dev/null || true # a signed build rewrites it; version.h is untracked (#145)
echo "demo: $out"