fix(nb): give podman its subuid mapping inside Steam's FHS sandbox #247
No reviewers
Labels
No labels
bug
enhancement
in-progress
needs-info
needs-triage
p0
ready-for-agent
ready-for-human
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/nixos!247
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/nb-steam-fhs-subuid"
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?
Follow-up to #246, from actually testing the thing that PR left open: whether
rootless podman works inside Steam's FHS sandbox, which decides whether the WoW
card's
session.shcan bring the server up itself.What the test showed
Running
steam-run— the same bubblewrap FHS env Steam launches children in:So podman is reachable in there —
/runis bind-mounted, so/run/current-system/sw/bin/podmanresolves, and my earlier idea of adding itto
programs.steam.extraPackageswas unnecessary (and would have built podmanfor i686 into the bargain).
The real problem is narrower:
buildFHSEnvsynthesises/etcfrom a fixedetcBindEntrieslist that includespasswd,groupandshadowbut omitssubuidandsubgid. podman does not fail on that — it degrades silently,warning
Using rootless single mapping into the namespaceand mapping uid 1000alone.
That is fatal for this card specifically. Its image store and database carry
userns-mapped ownership — mysqld runs as uid 999 in the container, which lands
on host
100998— so under a single mapping those files are unreachable and theserver cannot start.
The fix
steamacceptsextraBwrapArgsas a package argument (by-name/st/steam/package.nix:10),and the NixOS module's
applyonly overridesextraEnv,extraLibrariesandextraPkgs, so an override composes cleanly rather than being clobbered./etc/containerscomes along forpolicy.jsonandregistries.conf, whichpodman wants for any image operation.
This keeps the card's own design intact —
session.shruns unmodified as theSteam launch wrapper, no server split needed.
Testing
scripts/test-configuration nbpasses. The runtime check is to re-run thesteam-runprobe after deploy and confirm/etc/subuidis present and thesingle-mapping warning is gone.