[PR #3] [MERGED] installer: offer the fedora build of the GOW app images #2

Closed
opened 2026-10-15 12:52:33 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/proxmox-community-script/pull/3
Author: @JBailes
Created: 8/9/2026
Status: ✅ Merged
Merged: 8/9/2026
Merged by: @JBailes

Base: fix/installer-state-volume-real-vmid ← Head: feat/installer-image-flavour


📝 Commits (1)

  • fcb05e7 installer: offer the fedora build of the GOW app images

📊 Changes

4 files changed (+119 additions, -16 deletions)

View changed files

📝 .env.example (+12 -4)
📝 README.md (+13 -3)
📝 install.sh (+54 -0)
📝 tests/gather-dryrun.sh (+40 -9)

📄 Description

Stacked on #2 — base is fix/installer-state-volume-real-vmid, so this diff is just the one commit. Retarget to main once #2 merges.

WOLF_IMAGE_TAG was fixed at edge with no way to choose at install time, even though every app image this recipe seeds publishes a Fedora build too. The installer now asks, alongside the other settings.

Scope: apps, not Wolf

The choice covers the app images Wolf launches — firefox, steam, retroarch, xfce, es-de, kodi, lutris, pegasus, prismlauncher — plus the pulseaudio sidecar that startup-app.sh pins to the same tag.

It is not Wolf itself: Wolf and Wolf Den come from WOLF_IMAGE and are untouched, and startup-app.sh's rewrite deliberately leaves wolf-ui alone. install.sh never references WOLF_IMAGE.

Both flavours confirmed published

Checked against ghcr for every image the recipe seeds before offering them. Worth noting for anyone repeating it: tags/list needs ?n=1000 — the default page hides these, which is what made fedora look absent on first inspection.

image edge fedora
steam, firefox, xfce, retroarch, es-de, kodi, lutris, pegasus, prismlauncher, pulseaudio ✅ ✅

Fails fast on a bad tag

The selected tag is checked against ghcr before being written, so a typo or a retired tag fails during install rather than surfacing later as an app that just never launches. A definite "no such tag" is fatal; ghcr being unreachable is not, since that isn't evidence the tag is wrong. Verified against the live registry: real tags → rc 0, definitely-not-a-real-tag-xyz → rc 22.

On NVIDIA, a non-edge choice is called out at selection time — those builds have been seen to fall back to llvmpipe, which Wolf's encode pipeline cannot negotiate (black screen). Switching later is a .env edit plus a restart, since the tags are rewritten in config.toml on every start.

Bug found while testing

The registry probe called image_tag_published bare and then read $? — which set -e turns into an abort before the status can be inspected. Exactly the class of bug this branch chain started from (the zfs probe). It now collects the status with || probe_rc=$?.

Tests

gather-dryrun.sh → 20 assertions: both flavours offered, unpublished tag rejected, malformed tag rejected, unreachable ghcr does not block the install. The registry is stubbed, so the suite never touches the network. The harness also had to define DEST, which install.sh sets above the extracted section — it was aborting on unbound variable and that failure was real, not test noise.

state-volume-dryrun.sh 15/15 unchanged.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/proxmox-community-script/pull/3 **Author:** [@JBailes](https://github.com/JBailes) **Created:** 8/9/2026 **Status:** ✅ Merged **Merged:** 8/9/2026 **Merged by:** [@JBailes](https://github.com/JBailes) **Base:** `fix/installer-state-volume-real-vmid` ← **Head:** `feat/installer-image-flavour` --- ### 📝 Commits (1) - [`fcb05e7`](https://github.com/games-on-whales/proxmox-community-script/commit/fcb05e77fa836a0f509faa0d789487103bbf8a4b) installer: offer the fedora build of the GOW app images ### 📊 Changes **4 files changed** (+119 additions, -16 deletions) <details> <summary>View changed files</summary> 📝 `.env.example` (+12 -4) 📝 `README.md` (+13 -3) 📝 `install.sh` (+54 -0) 📝 `tests/gather-dryrun.sh` (+40 -9) </details> ### 📄 Description Stacked on #2 — base is `fix/installer-state-volume-real-vmid`, so this diff is just the one commit. Retarget to `main` once #2 merges. `WOLF_IMAGE_TAG` was fixed at `edge` with no way to choose at install time, even though every app image this recipe seeds publishes a Fedora build too. The installer now asks, alongside the other settings. ## Scope: apps, not Wolf The choice covers the **app** images Wolf launches — `firefox`, `steam`, `retroarch`, `xfce`, `es-de`, `kodi`, `lutris`, `pegasus`, `prismlauncher` — plus the `pulseaudio` sidecar that `startup-app.sh` pins to the same tag. It is **not** Wolf itself: Wolf and Wolf Den come from `WOLF_IMAGE` and are untouched, and `startup-app.sh`'s rewrite deliberately leaves `wolf-ui` alone. `install.sh` never references `WOLF_IMAGE`. ## Both flavours confirmed published Checked against ghcr for every image the recipe seeds before offering them. Worth noting for anyone repeating it: `tags/list` needs `?n=1000` — the default page hides these, which is what made `fedora` look absent on first inspection. | image | `edge` | `fedora` | |---|---|---| | steam, firefox, xfce, retroarch, es-de, kodi, lutris, pegasus, prismlauncher, pulseaudio | ✅ | ✅ | ## Fails fast on a bad tag The selected tag is checked against ghcr before being written, so a typo or a retired tag fails during install rather than surfacing later as an app that just never launches. A definite "no such tag" is fatal; ghcr being unreachable is **not**, since that isn't evidence the tag is wrong. Verified against the live registry: real tags → rc 0, `definitely-not-a-real-tag-xyz` → rc 22. On NVIDIA, a non-`edge` choice is called out at selection time — those builds have been seen to fall back to llvmpipe, which Wolf's encode pipeline cannot negotiate (black screen). Switching later is a `.env` edit plus a restart, since the tags are rewritten in `config.toml` on every start. ## Bug found while testing The registry probe called `image_tag_published` bare and then read `$?` — which `set -e` turns into an abort before the status can be inspected. Exactly the class of bug this branch chain started from (the `zfs` probe). It now collects the status with `|| probe_rc=$?`. ## Tests `gather-dryrun.sh` → 20 assertions: both flavours offered, unpublished tag rejected, malformed tag rejected, unreachable ghcr does not block the install. The registry is stubbed, so the suite never touches the network. The harness also had to define `DEST`, which `install.sh` sets above the extracted section — it was aborting on `unbound variable` and that failure was real, not test noise. `state-volume-dryrun.sh` 15/15 unchanged. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/proxmox-community-script#2
No description provided.