From 26848f158c30f700258f4eab5df6e3a448a8d35c Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 29 Jul 2026 08:23:02 +0800 Subject: Fix installer update origin Rewrite installed bootc origins to the configured signed registry reference. --- just_scripts/build-installer-iso.sh | 2 ++ 1 file changed, 2 insertions(+) (limited to 'just_scripts') diff --git a/just_scripts/build-installer-iso.sh b/just_scripts/build-installer-iso.sh index abd668f..2b1f7ae 100755 --- a/just_scripts/build-installer-iso.sh +++ b/just_scripts/build-installer-iso.sh @@ -90,6 +90,8 @@ ensure_rootful_image --build-arg "BASE_IMAGE=${live_base_image}" \ --build-arg "INSTALL_IMAGE_PAYLOAD=${payload}" \ --build-arg "INSTALL_IMAGE_PAYLOAD_ARCHIVE=/install-payload.oci" \ + --build-arg "INSTALL_IMAGE_TAG=${image_tag}" \ + --build-arg "OSTREE_IMAGE_REF=${ostree_image_ref}" \ --tag "${payload}" \ --file installer/Containerfile \ . -- cgit v1.2.3 From 2d1118b6860c0e80ccc78883d6b814d73df4da67 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 29 Jul 2026 14:50:10 +0800 Subject: Align local installer ISO build with CI Use the pinned Titanoboa builder and matching build arguments so just build-installer-iso produces the same media as the GitHub Actions workflow. --- just_scripts/build-installer-iso.sh | 49 +++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 19 deletions(-) (limited to 'just_scripts') diff --git a/just_scripts/build-installer-iso.sh b/just_scripts/build-installer-iso.sh index 2b1f7ae..3226527 100755 --- a/just_scripts/build-installer-iso.sh +++ b/just_scripts/build-installer-iso.sh @@ -8,7 +8,8 @@ cd "${project_root}" image_name="${IMAGE_NAME:-localhost/$(just image_name)}" image_tag="${IMAGE_TAG:-$(just generate-default-tag)}" live_base_image="${LIVE_BASE_IMAGE:-quay.io/fedora/fedora-kinoite:43}" -installer_builder_image="${INSTALLER_BUILDER_IMAGE:-ghcr.io/jasonn3/build-container-installer:v1.5.0}" +titanoboa_repository="${TITANOBOA_REPOSITORY:-https://github.com/Zeglius/titanoboa.git}" +titanoboa_revision="${TITANOBOA_REVISION:-7737f4748458252ac827dca14b3d6dd09298472a}" source_image="${image_name}:${image_tag}" # Keep the payload in local container storage, but use the public update # reference as its local tag so Anaconda writes that reference as the boot @@ -102,24 +103,34 @@ else sudo rm -f "${iso}" "${checksum}" fi -"${podman_cmd[@]}" run --rm --privileged \ - --volume "${api_socket}:/var/run/docker.sock" \ - --volume /var/lib/containers/storage:/var/lib/containers/storage \ - --volume "${project_root}/output:/build-container-installer/build" \ - --volume "${project_root}/installer/lorax_templates:/additional_lorax_templates:ro" \ - "${installer_builder_image}" \ - ADDITIONAL_TEMPLATES="/additional_lorax_templates/remove_root_password_prompt.tmpl /additional_lorax_templates/set_default_user.tmpl" \ - ARCH="x86_64" \ - ENABLE_CACHE_DNF="false" \ - ENABLE_CACHE_SKOPEO="false" \ - ENABLE_FLATPAK_DEPENDENCIES="false" \ - IMAGE_NAME="aerocore-os-installer" \ - IMAGE_REPO="localhost" \ - IMAGE_SRC="containers-storage:${payload}" \ - IMAGE_TAG="latest" \ - ISO_NAME="build/aerocore-os-${image_tag}-amd64.iso" \ - VARIANT="Kinoite" \ - VERSION="${FEDORA_VERSION:-44}" +tmp_titanoboa="$(mktemp -d -t aerocore-titanoboa.XXXXXXXXXX)" +trap 'rm -rf "${tmp_titanoboa}"' EXIT + +git clone --quiet --filter=blob:none --no-checkout \ + "${titanoboa_repository}" "${tmp_titanoboa}" +git -C "${tmp_titanoboa}" fetch --quiet origin "${titanoboa_revision}" +git -C "${tmp_titanoboa}" checkout --quiet "${titanoboa_revision}" + +# Keep this invocation aligned with Zeglius/titanoboa's GitHub Action: +# `just build IMAGE 1 0 none squashfs "" 1`. +( + cd "${tmp_titanoboa}" + CI=1 TITANOBOA_WORKDIR="${tmp_titanoboa}/work" \ + sudo PATH="${PATH}" just build "${payload}" 1 0 none squashfs "" 1 +) + +titanoboa_iso="${tmp_titanoboa}/output.iso" +if [[ ! -f "${titanoboa_iso}" ]]; then + echo "Titanoboa did not produce ${titanoboa_iso}" >&2 + exit 1 +fi +if [[ "${EUID}" -eq 0 ]]; then + rm -f "${iso}" "${checksum}" + mv "${titanoboa_iso}" "${iso}" +else + sudo rm -f "${iso}" "${checksum}" + sudo mv "${titanoboa_iso}" "${iso}" +fi if [[ -f "${iso}" ]]; then if [[ "${EUID}" -ne 0 ]]; then -- cgit v1.2.3 From a2f42fc771aba319e9d9b75e90a6dabeedde9fa1 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 29 Jul 2026 15:26:08 +0800 Subject: Fix Titanoboa Justfile lookup Run the pinned builder with explicit Justfile and working directory paths under sudo. --- just_scripts/build-installer-iso.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'just_scripts') diff --git a/just_scripts/build-installer-iso.sh b/just_scripts/build-installer-iso.sh index 3226527..4e634a6 100755 --- a/just_scripts/build-installer-iso.sh +++ b/just_scripts/build-installer-iso.sh @@ -115,8 +115,13 @@ git -C "${tmp_titanoboa}" checkout --quiet "${titanoboa_revision}" # `just build IMAGE 1 0 none squashfs "" 1`. ( cd "${tmp_titanoboa}" - CI=1 TITANOBOA_WORKDIR="${tmp_titanoboa}/work" \ - sudo PATH="${PATH}" just build "${payload}" 1 0 none squashfs "" 1 + sudo env \ + CI=1 \ + TITANOBOA_WORKDIR="${tmp_titanoboa}/work" \ + just \ + --justfile "${tmp_titanoboa}/Justfile" \ + --working-directory "${tmp_titanoboa}" \ + build "${payload}" 1 0 none squashfs "" 1 ) titanoboa_iso="${tmp_titanoboa}/output.iso" -- cgit v1.2.3 From afe0884c451f5f3698779c7cfe8085ac0c4923a2 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 29 Jul 2026 16:20:38 +0800 Subject: Use Titanoboa main script for ISO builds The pinned Titanoboa revision has no Justfile; invoke its GitHub Action entrypoint and collect the generated ISO. --- just_scripts/build-installer-iso.sh | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'just_scripts') diff --git a/just_scripts/build-installer-iso.sh b/just_scripts/build-installer-iso.sh index 4e634a6..0aacf43 100755 --- a/just_scripts/build-installer-iso.sh +++ b/just_scripts/build-installer-iso.sh @@ -111,22 +111,20 @@ git clone --quiet --filter=blob:none --no-checkout \ git -C "${tmp_titanoboa}" fetch --quiet origin "${titanoboa_revision}" git -C "${tmp_titanoboa}" checkout --quiet "${titanoboa_revision}" -# Keep this invocation aligned with Zeglius/titanoboa's GitHub Action: -# `just build IMAGE 1 0 none squashfs "" 1`. +# Keep this invocation aligned with the pinned revision's GitHub Action. +# This revision exposes main.sh rather than a Justfile. ( cd "${tmp_titanoboa}" - sudo env \ + env \ CI=1 \ - TITANOBOA_WORKDIR="${tmp_titanoboa}/work" \ - just \ - --justfile "${tmp_titanoboa}/Justfile" \ - --working-directory "${tmp_titanoboa}" \ - build "${payload}" 1 0 none squashfs "" 1 + TITANOBOA_CTR_IMAGE="${payload}" \ + TITANOBOA_OUTPUT_DIR="${tmp_titanoboa}/output" \ + "${tmp_titanoboa}/main.sh" ) -titanoboa_iso="${tmp_titanoboa}/output.iso" +titanoboa_iso="$(find "${tmp_titanoboa}/output" -maxdepth 1 -type f -name '*.iso' -print -quit)" if [[ ! -f "${titanoboa_iso}" ]]; then - echo "Titanoboa did not produce ${titanoboa_iso}" >&2 + echo "Titanoboa did not produce an ISO in ${tmp_titanoboa}/output" >&2 exit 1 fi if [[ "${EUID}" -eq 0 ]]; then -- cgit v1.2.3