BC-250 console image: custom GNOME recipe with remote admin
Build Bazzite BC-250 / Check Bazzite channel digests (push) Has been cancelled
Build Bazzite BC-250 / Build Custom Image (push) Has been cancelled
Build Bazzite BC-250 / Build Custom 40CU Image (push) Has been cancelled
Build Bazzite BC-250 / Save Bazzite channel digest cache (push) Has been cancelled
Build Bazzite BC-250 / Publish GitHub Release (push) Has been cancelled

Based on 62fixolab/Latest-Bazzite-AMD-BC-250-Patched-Images @ 347fd4d.

Adds on top of the fork:
- recipes/bc250-console-gnome.yml: governor + gnome-remote-desktop +
  openssh-server, sshd enabled, hhd.service masked, no signing module
  (local build + ISO path)
- files/console/usr/bin/bc250-remote-setup: one-time on-box SSH/RDP setup
- files/console/usr/lib/bootc/kargs.d/50-bc250-ttm.toml: ttm memory kargs
- BUILD-CONSOLE.md: build -> ISO -> validation instructions

files/console/ is separate from files/system/ so the 40-CU unlock tooling
stays out of this stable 24-CU image.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 18:54:30 -04:00
co-authored by Claude Fable 5
commit 4e452acc7d
66 changed files with 13574 additions and 0 deletions
+135
View File
@@ -0,0 +1,135 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(git rev-parse --show-toplevel)"
DATE=""
PUBLISH=0
OWNER=""
REPO=""
TARGET=""
RUN_URL=""
OUTPUT=""
usage() {
cat <<'EOF'
Usage:
scripts/publish-release.sh --date YYYY.MM.DD [--publish]
Options:
--date DATE Release date, accepts YYYY.MM.DD, YYYY-MM-DD, or YYYYMMDD.
--publish Create or update the GitHub Release. Omit for dry-run.
--owner OWNER GitHub/GHCR owner. Defaults to current repo owner.
--repo REPO GitHub repo name. Defaults to current repo name.
--target SHA Target commit for the Release tag. Defaults to HEAD.
--run-url URL Optional workflow run URL for release notes.
--output FILE Dry-run notes output path.
EOF
}
while [[ $# -gt 0 ]]; do
case "$1" in
--date)
DATE="${2:?Missing value for --date}"
shift 2
;;
--publish)
PUBLISH=1
shift
;;
--owner)
OWNER="${2:?Missing value for --owner}"
shift 2
;;
--repo)
REPO="${2:?Missing value for --repo}"
shift 2
;;
--target)
TARGET="${2:?Missing value for --target}"
shift 2
;;
--run-url)
RUN_URL="${2:?Missing value for --run-url}"
shift 2
;;
--output)
OUTPUT="${2:?Missing value for --output}"
shift 2
;;
-h|--help)
usage
exit 0
;;
*)
echo "Unknown argument: $1" >&2
usage >&2
exit 2
;;
esac
done
if [[ -z "$DATE" ]]; then
echo "--date is required" >&2
usage >&2
exit 2
fi
if [[ -z "$OWNER" || -z "$REPO" ]]; then
OWNER="${OWNER:-$(gh repo view --json owner --jq '.owner.login')}"
REPO="${REPO:-$(gh repo view --json name --jq '.name')}"
fi
release_tag="$(
python3 - "$DATE" <<'PY'
import re
import sys
raw = sys.argv[1]
match = re.fullmatch(r"(\d{4})[.-]?(\d{2})[.-]?(\d{2})", raw)
if not match:
raise SystemExit(f"Invalid date: {raw}")
print(".".join(match.groups()))
PY
)"
if [[ -z "$OUTPUT" ]]; then
OUTPUT="$ROOT/release-preview/$release_tag.md"
fi
args=(
"$ROOT/scripts/generate-release-notes.py"
--owner "$OWNER"
--repo "$REPO"
--date "$release_tag"
--output "$OUTPUT"
)
if [[ -n "$TARGET" ]]; then
args+=(--commit "$TARGET")
fi
if [[ -n "$RUN_URL" ]]; then
args+=(--run-url "$RUN_URL")
fi
python3 "${args[@]}"
if [[ "$PUBLISH" -eq 0 ]]; then
echo "Dry-run release notes written to: $OUTPUT"
exit 0
fi
if gh release view "$release_tag" >/dev/null 2>&1; then
edit_args=(release edit "$release_tag" --title "$release_tag" --notes-file "$OUTPUT")
if [[ -n "$TARGET" ]]; then
edit_args+=(--target "$TARGET")
fi
gh "${edit_args[@]}"
else
create_args=(release create "$release_tag" --title "$release_tag" --notes-file "$OUTPUT")
if [[ -n "$TARGET" ]]; then
create_args+=(--target "$TARGET")
fi
gh "${create_args[@]}"
fi
echo "Published GitHub Release: $release_tag"