Skip to content

fix(apps): library mount resilience (G6) - #4

Draft
Dadud wants to merge 4 commits into
draft/gow-preset-mount-examplesfrom
draft/gow-library-mounts
Draft

fix(apps): library mount resilience (G6)#4
Dadud wants to merge 4 commits into
draft/gow-preset-mount-examplesfrom
draft/gow-library-mounts

Conversation

@Dadud

@Dadud Dadud commented May 29, 2026

Copy link
Copy Markdown
Owner

G6 — library mount resilience (draft on fork)

Stacks on #1 (draft/gow-preset-mount-examples). Container-side complement to unraid-plugin P10.

Problem

Host library paths must be bind-mounted into each Moonlight app session. Even with correct config.toml binds, apps can fail silently when:

  • ES-DE keeps a stale ROMDirectory in existing es_settings.xml
  • Steam expects ~/.steam/steam as a symlink, not a directory
  • Lutris needs a writable /var/lutris
  • Empty or read-only /ROMs mounts are hard to diagnose

Changes

  • es-de (ubuntu + fedora): ~/ROMs / ~/bioses symlinks; normalize ROMDirectory in existing config; warn on empty /ROMs.
  • retroarch / pegasus: ROM symlinks + empty-mount warning.
  • steam: writable check; ~/.steam/steam symlink; Fedora system-services.sh no longer exits on legacy steam dir; mount docs in _index.md.
  • lutris: writable /var/lutris warning; mount docs in _index.md.
  • .gitattributes: enforce LF for shell scripts.

Test plan

  • Rebuild affected :edge images (or test locally).
  • On Dudserver: after plugin P10 + dev-sync, launch ES-DE / Steam / Lutris and confirm libraries visible.
  • Verify startup logs show warnings when mounts are missing (negative test).

Upstream promotion

Merge after G1–G3 stack is green; pairs with unraid-plugin P10.

Dadud and others added 4 commits May 29, 2026 09:15
…ch, pegasus

Symlink ROM/Steam paths at startup, warn on empty or read-only mounts, and document expected bind targets so Moonlight sessions see host libraries reliably.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use steam.sh-style symlink logic so ln does not nest inside existing
~/ROMs or ~/bioses directories. Pegasus no longer aborts under set -e
when ~/bioses exists. Steam startup warns on non-empty ~/.steam/steam.

Co-authored-by: Kyle B <Dadud30@gmail.com>
Drop the anonymous lutris:/var/lutris Docker volume from the Wolf preset so
apply-mount-presets can bind the host Lutris library. Document Unraid dev
install flow in manual-build.

Co-authored-by: Kyle B <Dadud30@gmail.com>
…lone

Reflect mounts = [] preset change. Keep unraid-plugin checkout out of gow commits.

Co-authored-by: Kyle B <Dadud30@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants