From a202c81a0c84e5c75cf9b634721fb4eecfb0f583 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 5 Jan 2026 15:31:30 +0100 Subject: [PATCH] Allow ISOs to be build against the edge mirror/package repository --- bin/omarchy-iso-make | 8 ++++- builder/build-iso.sh | 12 +++++-- configs/pacman-online-edge.conf | 31 +++++++++++++++++++ ...-online.conf => pacman-online-stable.conf} | 0 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 configs/pacman-online-edge.conf rename configs/{pacman-online.conf => pacman-online-stable.conf} (100%) diff --git a/bin/omarchy-iso-make b/bin/omarchy-iso-make index 50638ed..2ddb894 100755 --- a/bin/omarchy-iso-make +++ b/bin/omarchy-iso-make @@ -23,9 +23,13 @@ while [[ $# -gt 0 ]]; do OMARCHY_INSTALLER_REF=dev shift ;; + --edge) + OMARCHY_MIRROR=edge + shift + ;; *) echo "Unknown option: $1" - echo "Usage: $0 [--no-cache] [--no-boot-offer] [--local-source] [--dev]" + echo "Usage: $0 [--no-cache] [--no-boot-offer] [--local-source] [--dev] [--edge]" exit 1 ;; esac @@ -42,12 +46,14 @@ mkdir -p "$BUILD_RELEASE_PATH" OMARCHY_INSTALLER_REPO="${OMARCHY_INSTALLER_REPO:-basecamp/omarchy}" OMARCHY_INSTALLER_REF="${OMARCHY_INSTALLER_REF:-master}" +OMARCHY_MIRROR="${OMARCHY_MIRROR:-stable}" DOCKER_ARGS=( --rm --privileged -e "OMARCHY_INSTALLER_REPO=$OMARCHY_INSTALLER_REPO" -e "OMARCHY_INSTALLER_REF=$OMARCHY_INSTALLER_REF" + -e "OMARCHY_MIRROR=$OMARCHY_MIRROR" -e "HOST_UID=$(id -u)" -e "HOST_GID=$(id -g)" -v "$BUILD_RELEASE_PATH/:/out/" diff --git a/builder/build-iso.sh b/builder/build-iso.sh index 6c34289..0c5c1a3 100755 --- a/builder/build-iso.sh +++ b/builder/build-iso.sh @@ -9,7 +9,11 @@ pacman --noconfirm -Sy archiso git sudo base-devel jq grub # Install omarchy-keyring for package verification during build # The [omarchy] repo is defined in /configs/pacman-online.conf with SigLevel = Optional TrustAll -pacman --config /configs/pacman-online.conf --noconfirm -Sy omarchy-keyring +if [[ $OMARCHY_MIRROR == "edge" ]]; then + pacman --config /configs/pacman-online-edge.conf --noconfirm -Sy omarchy-keyring +else + pacman --config /configs/pacman-online-stable.conf --noconfirm -Sy omarchy-keyring +fi pacman-key --populate omarchy # Setup build locations @@ -78,7 +82,11 @@ all_packages+=($(grep -v '^#' /builder/archinstall.packages | grep -v '^$')) # Download all the packages to the offline mirror inside the ISO mkdir -p /tmp/offlinedb -pacman --config /configs/pacman-online.conf --noconfirm -Syw "${all_packages[@]}" --cachedir $offline_mirror_dir/ --dbpath /tmp/offlinedb +if [[ $OMARCHY_MIRROR == "edge" ]]; then + pacman --config /configs/pacman-online-edge.conf --noconfirm -Syw "${all_packages[@]}" --cachedir $offline_mirror_dir/ --dbpath /tmp/offlinedb +else + pacman --config /configs/pacman-online-stable.conf --noconfirm -Syw "${all_packages[@]}" --cachedir $offline_mirror_dir/ --dbpath /tmp/offlinedb +fi repo-add --new "$offline_mirror_dir/offline.db.tar.gz" "$offline_mirror_dir/"*.pkg.tar.zst # Create a symlink to the offline mirror instead of duplicating it. diff --git a/configs/pacman-online-edge.conf b/configs/pacman-online-edge.conf new file mode 100644 index 0000000..e788174 --- /dev/null +++ b/configs/pacman-online-edge.conf @@ -0,0 +1,31 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +[options] +HoldPkg = pacman glibc +Architecture = auto +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional + +[core] +Server = https://mirror.omarchy.org/$repo/os/$arch + +[extra] +Server = https://mirror.omarchy.org/$repo/os/$arch + +[multilib] +Server = https://mirror.omarchy.org/$repo/os/$arch + +[omarchy] +SigLevel = Optional TrustAll +Server = https://pkgs.omarchy.org/edge/$arch + +[arch-mact2] +Server = https://github.com/NoaHimesaka1873/arch-mact2-mirror/releases/download/release +SigLevel = Never diff --git a/configs/pacman-online.conf b/configs/pacman-online-stable.conf similarity index 100% rename from configs/pacman-online.conf rename to configs/pacman-online-stable.conf