I have 32-bit stuff in configuration.nix:
hardware = {
opengl.driSupport32Bit = true;
pulseaudio.support32Bit = true;
};
When I try to run Steam, this happens:

$ steam
cp: cannot create regular file '/home/chronos/.local/share/Steam/bootstrap.tar.xz': Permission denied
Running Steam on nixos 18.03.git.467b9b7 64-bit
STEAM_RUNTIME has been set by the user to: /steamrt
Pins potentially out-of-date, rebuilding...
mkdir: cannot create directory ‘/nix/store/dy0nrgdhzdfy44ss16scqw9kp2s3cdx4-steam-fhs/steamrt/pinned_libs_32’: Read-only file system
mkdir: cannot create directory ‘/nix/store/dy0nrgdhzdfy44ss16scqw9kp2s3cdx4-steam-fhs/steamrt/pinned_libs_64’: Read-only file system
/home/chronos/.local/share/Steam/steam.sh: line 874: /steamrt/run.sh: No such file or directory
Error: You are missing the following 32-bit libraries, and Steam may not run:
libgobject-2.0.so.0
libglib-2.0.so.0
libgio-2.0.so.0
libgtk-x11-2.0.so.0
libpulse.so.0
libgdk_pixbuf-2.0.so.0
libva.so.1
libbz2.so.1.0
libz.so.1
libvdpau.so.1
libva.so.1
libva-x11.so.1
Error:
You are missing the following 32-bit libraries, and Steam may not run:
libgobject-2.0.so.0
libglib-2.0.so.0
libgio-2.0.so.0
libgtk-x11-2.0.so.0
libpulse.so.0
libgdk_pixbuf-2.0.so.0
libva.so.1
libbz2.so.1.0
libz.so.1
libvdpau.so.1
libva.so.1
libva-x11.so.1
Press enter to continue:
Installing breakpad exception handler for appid(steam)/version(1510099762)
Installing breakpad exception handler for appid(steam)/version(1510099762)
Installing breakpad exception handler for appid(steam)/version(1510099762)
Failed to load steamui.so - dlerror(): libgobject-2.0.so.0: cannot open shared object file: No such file or directory
Installing breakpad exception handler for appid(steam)/version(1510099762)
Installing breakpad exception handler for appid(steam)/version(1510099762)
[2017-11-08 07:30:09] Startup - updater built Nov 7 2017 13:43:41
[2017-11-08 07:30:09] Opted in to client beta 'publicbeta' via beta file
You are in the 'publicbeta' client beta.
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2017-11-08 07:30:09] Checking for update on startup
[2017-11-08 07:30:09] Checking for available updates...
[2017-11-08 07:30:10] Download skipped by HTTP 304 Not Modified
[2017-11-08 07:30:10] Nothing to do
[2017-11-08 07:30:10] Verifying installation...
[2017-11-08 07:30:10] Performing checksum verification of executable files
[2017-11-08 07:30:11] Verification complete
This was broken in the latest Steam client beta update. Temporary solution would be to run:
$ rm ~/.local/share/Steam/package/beta
/cc @abbradar
Sorry for summoning you way too often, but it seems that my interest often lies in parts of the tree that you effectively maintain :-)
There is still some time before Steam runtime updates propagate into release and Steam package breaks completely, so this is mostly a heads-up. I might look into it, but I don't have any idea how to fix it, yet. And I'm not sure if there's a fix that doesn't break Steam for stable version users.
I'm okay with summons ~_^
Do I get it correctly that this is reproducible on Steam beta?
Yes, it is. Just enable public beta to break Steam. To recover, delete ~/.local/share/Steam/package/beta.
It also seems to be broken for Solus: solus-project/linux-steam-integration#29
Solus maintainers have already fixed that in unstable: https://dev.solus-project.com/R2962:25ae74046546a8d544ab67df5f68fcd83a0a1b32
I can reproduce this issue with Steam beta.
Seems that Steam Beta uses new Steam Runtime version which we don't have. Maybe they'll push it to general channel when it gets out of beta -- not sure how else could we fetch it.
In general I think that maybe we can drop our own Steam Runtime for Steam -- it would help with this case but may break games and needs extensive testing. Steam runs for me without our Runtime (Beta too).
If you make some changes I'd be more than happy to test them out.
It should be in http://repo.steamstatic.com/steamrt/dists/scout_beta/ but I don't see it updated. Or perhaps, the date they set at this server is just wrong...
In general I think that maybe we can drop our own Steam Runtime for Steam -- it would help with this case but may break games and needs extensive testing.
What is the alternative to building the runtime by ourselves?
Just use native Steam runtime. I'm not sure how well it works -- initially we moved _from_ it because we needed to override several libraries. However recently Steam made some changes which should help their Runtime to interact better with e.g. new Mesa drivers.
I'll try it out with my games and I'll make a table of games that do or do not work: I have a few games in my library that currently do not work, would be interesting to see how they do in steam-native.
Sorry, I may have been misunderstood. What I meant is not "native" Steam Runtime (composed from NixOS libraries) but not using our Steam Runtime build at all. You can achieve it by e.g. commenting out export STEAM_RUNTIME in chrootenv.nix.
Oh, I see, thanks! Going to try that out.
Most helpful comment