Files
euri-iso/build-iso-podman.sh

41 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# Euri Linux ISO build inside the Artix container (see Containerfile).
# Rootful podman is required: artools' chroot mounts devtmpfs, which rootless
# containers cannot do.
cd "$(dirname "$0")"
# 1. Ensure the build image exists (rootful — the run step below is rootful,
# and rootless podman uses a separate image store)
if ! sudo podman image exists localhost/euri-build:latest; then
sudo podman build -t euri-build .
fi
# 2. Run the build (privileged, workspace mounted, tmpfs workdir, ISO exported)
sudo podman run --rm --privileged --entrypoint sh \
-v "$(pwd):/workspace" \
-e WORKSPACE_DIR=/workspace \
-e INITSYS=dinit \
localhost/euri-build:latest -c '
set -euo pipefail
mkdir -p /var/lib/artools/buildiso
mount -t tmpfs -o size=12G,exec,suid,dev tmpfs /var/lib/artools/buildiso
modprobe loop 2>/dev/null || true
[ -e /dev/loop-control ] || mknod -m 0660 /dev/loop-control c 10 237
for i in $(seq 0 15); do
[ -e "/dev/loop$i" ] || mknod -m 0660 "/dev/loop$i" b 7 "$i"
done
/workspace/buildiso -p euri
echo "=== BUILD FINISHED ==="
mkdir -p /workspace/iso-output
cp -a /workspace/iso/euri/. /workspace/iso-output/ 2>/dev/null || true
cd /workspace/iso-output
ISO=$(ls euri-*.iso 2>/dev/null | head -1)
[[ -z "$ISO" || ! -f "$ISO" ]] && { echo "No ISO found in iso-output/"; exit 1; }
sha256sum "$ISO" > "$ISO.sha256"
cat "$ISO.sha256"
ls -la /workspace/iso-output/ | head -20
'