mirror of
https://github.com/games-on-whales/gow.git
synced 2026-10-15 12:52:00 +00:00
[PR #324] [MERGED] steam-fedora: stop migration loop wiping login state every boot #306
Labels
No labels
bug
enhancement
enhancement
github_actions
good first issue
help wanted
help wanted
invalid
needs testers
pull-request
question
x11-images
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/gow#306
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/games-on-whales/gow/pull/324
Author: @JBailes
Created: 4/25/2026
Status: ✅ Merged
Merged: 4/29/2026
Merged by: @ABeltramo
Base:
master← Head:fix/steam-fedora-migration-loop📝 Commits (1)
1439faasteam-fedora: stop migration loop that wiped login state every boot📊 Changes
2 files changed (+29 additions, -11 deletions)
View changed files
📝
apps/steam/build-fedora/scripts/steam.sh(+14 -2)📝
apps/steam/build-fedora/scripts/system-services.sh(+15 -9)📄 Description
Summary
Fixes the fedora Steam image bug where every container restart asked for a fresh login and shuffled
steamappsbetween locations (reported in Discord by Артём; touches the same area as #323).Two interacting bugs:
steam.sh(wrapper) pre-created~/.steam/steamas a real directory, then calledln -sfn $STEAMDIR $STEAMDIR_LEGACY. Against an existing real directory,ln -s(even with-fn) cannot replace it and silently creates the link inside as~/.steam/steam/Steam. The legacy path therefore remained a real directory forever.system-services.sh(migration) guarded only on[ ! -h $STEAMDIR_LEGACY ]. Because of (1) that test was always true, so the migration fired every boot:rm -rf $STEAMDIRwiped the previous boot's.local/share/Steam(login state,steam.sh, any data).mv $STEAMDIR_LEGACY $STEAMDIRmoved the just-recreated broken-shape directory into place.rm -rf ~/.steamfinished the cycle. Next boot, the wrapper'sif [[ ! -f $STEAMDIR/steam.sh ]]was true again (we just deleted it), and the loop restarted.The Ubuntu image is unaffected; only
apps/steam/build-fedora/scripts/is touched.Changes
steam.sh: onlymkdir -pthe parent ofSTEAMDIR_LEGACY. Replace an empty or missing target with a symlink; refuse to clobber a non-empty real directory and emit a warning so already-broken profiles can be inspected manually rather than re-broken.system-services.sh: tighten the migration guard to require (a) legacy is a real directory not a symlink, (b) it actually hassteamapps/, (c) the new location does not. Switch fromrm -rf $STEAMDIR; mv $STEAMDIR_LEGACY $STEAMDIRtocp -aT+ cleanup so a bind-mounted$STEAMDIRsurvives and we never destructively wipe an already-populated new location.Behavior matrix
.steam/steam/Steamsymlink, login wiped each restart.steam/steam -> .local/share/Steamsymlink, login persists.steam/steam/steamapps$STEAMDIRbind-mounted to hostrm -rf $STEAMDIR+mvwould corrupt mountcp -aTpreserves mount semanticsTest plan
~/.steam/steamis a symlink.~/.steam/steam/steamapps/<game>, launch — game appears in new location,~/.steamis gone, second restart does not re-migrate.~/.steam/steamdir with games + populated.local/share/Steam): launch — warning logged, no further data shuffling.~/.local/share/Steamfrom host: legacy migration leaves the mount intact.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.