summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortranch <tranch.xiao@gmail.com>2026-09-11 16:56:22 +0800
committertranch <tranch.xiao@gmail.com>2026-09-11 16:56:22 +0800
commitcc6d75a6db0a316de56cb0abc78206fa1bcef1cd (patch)
tree82c25bf2ff5d2d874d533e33cb65618e0777e177
parentaf48d0c1a50d7beeeabaa09f8013c18a3391a384 (diff)
downloadAeroCore-OS-cc6d75a6db0a316de56cb0abc78206fa1bcef1cd.tar.gz
AeroCore-OS-cc6d75a6db0a316de56cb0abc78206fa1bcef1cd.zip
Patch brh to preserve current image registry
-rwxr-xr-xbuild_files/build.sh1
-rw-r--r--build_files/patch-bazzite-rollback-helper.sh43
2 files changed, 44 insertions, 0 deletions
diff --git a/build_files/build.sh b/build_files/build.sh
index e3e94a1..9e13cfd 100755
--- a/build_files/build.sh
+++ b/build_files/build.sh
@@ -147,3 +147,4 @@ find /etc/environment.d /etc/skel/.config/environment.d -name 99-aerocore-mirror
/ctx/install-instruments.sh
/ctx/patch-bazzite-deck-identity.sh
+/ctx/patch-bazzite-rollback-helper.sh
diff --git a/build_files/patch-bazzite-rollback-helper.sh b/build_files/patch-bazzite-rollback-helper.sh
new file mode 100644
index 0000000..d5b3f21
--- /dev/null
+++ b/build_files/patch-bazzite-rollback-helper.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/bash
+
+set -euo pipefail
+
+file=/usr/bin/bazzite-rollback-helper
+
+if [[ ! -f "$file" ]]; then
+ echo "Unable to locate Bazzite rollback helper: $file" >&2
+ exit 1
+fi
+
+if grep -Fq 'current_image_prefix()' "$file"; then
+ exit 0
+fi
+
+patched_file=$(mktemp)
+awk '
+ /^signing_scheme\(\) \{/ {
+ print "signing_scheme() {"
+ print " local current=$(rpm-ostree status -b --json | jq -r '\''.deployments[] | select(.booted == true) | .["container-image-reference"]'\'')"
+ print " local scheme=\"ostree-unverified-registry\""
+ print " [[ \"$current\" == *\"ostree-image-signed\"* ]] && scheme=\"ostree-image-signed\""
+ print " echo \"$scheme:docker://\""
+ print "}"
+ print ""
+ print "current_image_prefix() {"
+ print " local current"
+ print " current=$(rpm-ostree status -b --json | jq -r '\''.deployments[] | select(.booted == true) | .["container-image-reference"]'\'')"
+ print " current=\"${current#ostree-image-signed:}\""
+ print " current=\"${current#ostree-unverified-registry:}\""
+ print " current=\"${current#docker://}\""
+ print " echo \"${current%/*}\""
+ print "}"
+ skip=1
+ next
+ }
+ skip && /^warn_if_de_mismatch\(\) \{/ { skip=0; print; next }
+ skip { next }
+ { gsub("ostree-image-signed:docker://ghcr.io/ublue-os/", "$(signing_scheme)/$(current_image_prefix)/"); print }
+' "$file" > "$patched_file"
+
+install -m 0755 "$patched_file" "$file"
+rm -f "$patched_file"