summaryrefslogtreecommitdiff
path: root/installer/build.sh
diff options
context:
space:
mode:
authortranch <tranch.xiao@gmail.com>2026-07-17 06:56:56 +0800
committertranch <tranch.xiao@gmail.com>2026-07-17 08:09:37 +0800
commit4fc0c9bfe42b5d0e543c5ca44c86d25a19f5e1d9 (patch)
tree19217b1e64cf32bdf2cd0d6e5aae2660cd8b0966 /installer/build.sh
parent04e27e0b977826b475b969f19783c1aad300b560 (diff)
downloadAeroCore-OS-4fc0c9bfe42b5d0e543c5ca44c86d25a19f5e1d9.tar.gz
AeroCore-OS-4fc0c9bfe42b5d0e543c5ca44c86d25a19f5e1d9.zip
Fix live installer ISO build
Build the live installer from the requested local AeroCore image, use a separate Fedora live base, pass the payload through rootful container storage, and write reproducible checksum entries without host paths.
Diffstat (limited to 'installer/build.sh')
-rwxr-xr-xinstaller/build.sh13
1 files changed, 9 insertions, 4 deletions
diff --git a/installer/build.sh b/installer/build.sh
index 7532df8..033fe9b 100755
--- a/installer/build.sh
+++ b/installer/build.sh
@@ -5,10 +5,14 @@ set -euxo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BASE_IMAGE=${BASE_IMAGE:?}
INSTALL_IMAGE_PAYLOAD=${INSTALL_IMAGE_PAYLOAD:?}
+INSTALL_IMAGE_PAYLOAD_ARCHIVE=${INSTALL_IMAGE_PAYLOAD_ARCHIVE:-}
# The installer is a live KDE environment. Keep the installed system payload
# separate: it is the AeroCore image, while BASE_IMAGE provides the live UI.
-dnf install -y \
+# Bazzite excludes some base packages from normal transactions. The live
+# installer needs Anaconda's exact NetworkManager dependencies, so clear the
+# excludes only for this dependency install.
+dnf --setopt=excludepkgs= install -y \
anaconda-live \
libblockdev-btrfs \
libblockdev-dm \
@@ -22,9 +26,10 @@ if [[ -d /src/system_files ]]; then
cp -a /src/system_files/. /
fi
-# Make the install payload available to Anaconda. When the build is running
-# with the host container store mounted, this avoids a second registry pull.
-if mountpoint -q /usr/lib/containers/storage; then
+# Make the install payload available to Anaconda.
+if [[ -n "${INSTALL_IMAGE_PAYLOAD_ARCHIVE}" && -f "${INSTALL_IMAGE_PAYLOAD_ARCHIVE}" ]]; then
+ podman load --storage-opt additionalimagestore='' < "${INSTALL_IMAGE_PAYLOAD_ARCHIVE}"
+elif mountpoint -q /usr/lib/containers/storage; then
podman save --format oci-archive "${INSTALL_IMAGE_PAYLOAD}" | \
podman load --storage-opt additionalimagestore=''
else