Nixpkgs: Steam does not run anymore

Created on 5 Sep 2020  路  12Comments  路  Source: NixOS/nixpkgs

Describe the bug
After upgrading my system, I'm unable to run steam. The output is

bwrap: Can't find source path /System: No such file or directory

I have no idea why it is expecting to have a Folder at /System...

To Reproduce

  1. Build a nixos system with the latest NixOS unstable, and with steam
  2. run steam

Expected behavior
Steam should open as usual

Screenshots
If applicable, add screenshots to help explain your problem.
image

Additional context
Steam worked fine after my upgrade at 2020-08-22 on NixOS unstable, nixos-system-nixos-20.09pre239053.1e3f09feaa5

Notify maintainers
@jagajaga @Atemu

Metadata

  • system: "x86_64-linux"
  • host os: Linux 5.7.16, NixOS, 20.09pre239318.c59ea8b8a0e (Nightingale)
  • multi-user?: yes
  • sandbox: yes
  • version: nix-env (Nix) 2.3.7
  • channels(patrik): "nixos-19.09pre190978.8d1510abfb5"
  • channels(root): "nixos-20.09pre239318.c59ea8b8a0e"
  • nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:

# a list of nixpkgs attributes affected by the problem
attribute: steam?
# a list of nixos modules affected by the problem
module:
bug steam

Most helpful comment

I think this is a bug in buildFHSUserEnvBubblewrap. Running Steam with bash -x steam to get some debugging info on the wrapper script, auto_mounts ends up being set to the following value:

auto_mounts=' --bind /boot /boot --bind /home /home --bind /lost+found /lost+found --bind /opt /opt --bind /root /root --bind /run /run --bind /srv /srv --bind /sys /sys --bind /System Volume Information /System Volume Information --bind /tmp /tmp --bind /var /var'

My guess is that because the folder name has spaces in it, and it's not being quoted, those spaces are messing up the arguments to bwrap.

All 12 comments

I am not able to reproduce this on my machine or a clean VM built from my config.

Does it work in a clean VM built from your config? (Needs an image file >1G and >256M RAM)

I can't reproduce this either. Can you bisect which commit broke it?

@Atemu @blitz Interesting...

Yes, I'll try it out in a VM and also try to bisect it.

This is the commit which broke your setup.

It shouldn't though.

Could you tell us a bit about the state of the steam installation in your home dir? Where did it come from and when?

@Atemu It was created when I started using NixOS in version 19.03 over a year ago and worked flawlessly until that commit. I'm not sure if it has something to do with the files in my homedir. As a test, I moved ~/.steam to ~/_.steam and ~/.local/share/Steam to ~/.local/share/_Steam but got the same result. And as soon as I boot to my old generation, steam works fine again.

Can you maybe tell me how I build a VM from my current config?
edit
Found it out. Investigating now...

Using nix-build '<nixpkgs/nixos>' -A vm -I nixos-config=./configuration.nix I was able to start Steam (or at least the updater, which then crashed because of too less storage space). But I had to do some tweaks to the configuration to make it work, most notably swithing to xfce and lightdm from gnome and gdm and using modesetting instead of the nvidia driver. Otherwise, it wouldn't have started.

I had this issue as well - turns out Windows was the culprit. When accessing my root partition from Windows (using ext2fsd), it created a "System Volume Information" folder in /. Deleting it resolved this issue for me.

@Sorixelle Thx, that did it for me as well!

@Atemu Is this a bug and should be fixed or is this considered correct behavior? In the latter case, I'll close this.

This sounds like an upstream bubblewrap bug tbh.

Does the same thing happen in Lutris and android studio?

I think this is a bug in buildFHSUserEnvBubblewrap. Running Steam with bash -x steam to get some debugging info on the wrapper script, auto_mounts ends up being set to the following value:

auto_mounts=' --bind /boot /boot --bind /home /home --bind /lost+found /lost+found --bind /opt /opt --bind /root /root --bind /run /run --bind /srv /srv --bind /sys /sys --bind /System Volume Information /System Volume Information --bind /tmp /tmp --bind /var /var'

My guess is that because the folder name has spaces in it, and it's not being quoted, those spaces are messing up the arguments to bwrap.

Thanks a bunch for the investigation @Sorixelle, fixed in #98325!

Has been fixed by #101967.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

yawnt picture yawnt  路  3Comments

vaibhavsagar picture vaibhavsagar  路  3Comments

grahamc picture grahamc  路  3Comments

domenkozar picture domenkozar  路  3Comments

edolstra picture edolstra  路  3Comments