diff options
| author | tranch <tranch.xiao@gmail.com> | 2026-10-23 16:58:49 +0800 |
|---|---|---|
| committer | tranch <tranch.xiao@gmail.com> | 2026-10-23 16:58:49 +0800 |
| commit | 885d1c77ac036bf2807c6a49a0cb49db5091a492 (patch) | |
| tree | 08db84e0fbe681f708800118f4a3988cee96f9af /build_files | |
| parent | 5725363f633c31a0f96e70f1400fba4958a4356c (diff) | |
| parent | fca1daca7dbe218dde1240b6c406a4257c70bd05 (diff) | |
| download | AeroCore-OS-885d1c77ac036bf2807c6a49a0cb49db5091a492.tar.gz AeroCore-OS-885d1c77ac036bf2807c6a49a0cb49db5091a492.zip | |
Merge testing changes before news trigger44.20261023
Diffstat (limited to 'build_files')
| -rwxr-xr-x | build_files/build.sh | 20 | ||||
| -rwxr-xr-x | build_files/patch-bazzite-os-branch-select.sh | 58 |
2 files changed, 78 insertions, 0 deletions
diff --git a/build_files/build.sh b/build_files/build.sh index 40b9efd..94a5ef5 100755 --- a/build_files/build.sh +++ b/build_files/build.sh @@ -14,6 +14,25 @@ esac # Copy the contents of system_files/ of the git repo to / cp -avf "/ctx/system_files"/. / +# Keep Bazzite's game mode news hook unchanged; select the matching feed branch. +NEWS_HOOK_CONFIG=/etc/gamemode-news-hook.conf +if [[ ! -f "${NEWS_HOOK_CONFIG}" ]]; then + echo "Unable to locate game mode news hook config: ${NEWS_HOOK_CONFIG}" >&2 + exit 1 +fi +NEWS_BRANCH="${IMAGE_BRANCH:-stable}" +case "${NEWS_BRANCH}" in + testing|unstable) ;; + *) NEWS_BRANCH=stable ;; +esac +NEWS_FEED_URL="https://git.mirror.aerocore.com.cn/AeroCore-IO/aerocore-os-gamemode-news/plain/announcements.json?h=${NEWS_BRANCH}" +sed -i \ + "s|^github = .*|github = ${NEWS_FEED_URL}|" \ + "${NEWS_HOOK_CONFIG}" +grep -Fxq \ + "github = ${NEWS_FEED_URL}" \ + "${NEWS_HOOK_CONFIG}" + # Bazzite's Kinoite/Plasma desktop shortcut used to start a privileged # return-to-gamemode.service. Current Bazzite invokes the user-session entry # point directly; keep the shortcut correct when the base image still ships @@ -157,3 +176,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 +/ctx/patch-bazzite-os-branch-select.sh diff --git a/build_files/patch-bazzite-os-branch-select.sh b/build_files/patch-bazzite-os-branch-select.sh new file mode 100755 index 0000000..a360a2e --- /dev/null +++ b/build_files/patch-bazzite-os-branch-select.sh @@ -0,0 +1,58 @@ +#!/usr/bin/bash + +set -euo pipefail + +file=/usr/libexec/os-branch-select + +if [[ ! -f "$file" ]]; then + echo "Unable to locate Bazzite OS branch selector: $file" >&2 + exit 1 +fi + +old=' branch=$(cut -d ":" -f4 <<< "$(rpm-ostree status --booted | grep -m 1 $ID)")' +if ! grep -Fxq "$old" "$file"; then + echo "Bazzite OS branch selector changed; review the downstream patch" >&2 + exit 1 +fi + +patched_file=$(mktemp) +awk -v old="$old" ' + $0 == old { + print " # Read the booted deployment directly; its image name need not match os-release ID." + print " image_ref=$(rpm-ostree status --booted --json | jq -r '\''[.deployments[] | select(.booted) | .[\"container-image-reference\"] // empty][0] // empty'\'')" + print " branch=\"\"" + print " if [[ $image_ref =~ :([^/:]+)$ ]]; then" + print " branch=${BASH_REMATCH[1]}" + print " fi" + found++ + next + } + { print } + END { if (found != 1) exit 1 } +' "$file" > "$patched_file" + +install -m 0755 "$patched_file" "$file" +rm -f "$patched_file" + +# Match the channel names used by Bazzite's Game Mode announcement feeds. +# Steam's rc/beta and bc/main aliases still select the same image branches. +python3 - "$file" <<'PY' +from pathlib import Path +import sys + +path = Path(sys.argv[1]) +text = path.read_text() +replacements = { + " testing)\n echo rc\n": " testing)\n echo beta\n", + " unstable)\n echo main\n": " unstable)\n echo preview\n", + " echo rc\n echo beta\n echo bc\n echo main\n": + " echo rc\n echo beta\n echo bc\n echo preview\n echo main\n", + " bc|main|unstable)\n": " bc|preview|main|unstable)\n", +} +for old in replacements: + if text.count(old) != 1: + raise SystemExit(f"Bazzite branch selector changed; expected exactly one {old!r}") +for old, new in replacements.items(): + text = text.replace(old, new, 1) +path.write_text(text) +PY |
