Change:
Describe the bug After upgrading my system, I'm unable to run steam. The output is I have no idea why it is expecting to have a Folder at /System... To Reproduce a nixos system with the latest NixOS unstable, and with steam Expected behavior Steam should open as usual Screenshots If applicable, add screenshots to help explain your problem. ! Additional context Steam worked fine after my upgrade at 2020-08-22 on NixOS unstable, nixos-system-nixos-20.09pre239053. Notify maintainers Metadata system: host os: multi-user?: sandbox: version: channels(patrik): channels(root): nixpkgs: Maintainer information:
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?
Interesting... Yes, I'll try it out in a VM and also try to bisect it.
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?
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 to and to 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 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.
Thx, that did it for me as well! 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 to get some debugging info on the wrapper script, ends up being set to the following value: 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 fixed in !
Has been fixed by .

Discussion:
"ssl/certs" "pki" ]; <del> in concatStringsSep " n  " </del> <ins> in concatStringsSep "n  " </ins> (map (file: "--ro-bind-try /etc/${file} /etc/${file}") files); init = run: writeShellScriptBin "${name}-init" ''

''; bwrapCmd = { initArgs ? "" }: '' <del> blacklist="/nix /dev /proc /etc" ro_mounts="" </del> <ins> blacklist=(/nix /dev /proc /etc) ro_mounts=() </ins> for i in ${env}/*; do path="/''${i##*/}" if [[ $path == '/etc' ]]; then continue fi <del> ro_mounts="$ro_mounts --ro-bind $i $path" blacklist="$blacklist $path" </del> <ins> ro_mounts+=(--ro-bind "$i" "$path") blacklist+=("$path") </ins> done if [[ -d ${env}/etc ]]; then for i in ${env}/etc/*; do path="/''${i##*/}" <del> ro_mounts="$ro_mounts --ro-bind $i /etc$path" </del> <ins> ro_mounts+=(--ro-bind "$i" "/etc$path") </ins> done fi

# loop through all directories in the root for dir in /*; do # if it is a directory and it is not in the blacklist <del> if [[ -d "$dir" ]] && grep -v "$dir" <<< "$blacklist" >/dev/null; then </del> <ins> if [[ -d "$dir" ]] && [[ ! "''${blacklist[@]}" =~ "$dir" ]]; then </ins> # add it to the mount list auto_mounts+=(--bind "$dir" "$dir") fi done <del> exec ${bubblewrap}/bin/bwrap  --dev-bind /dev /dev  --proc /proc  --chdir "$(pwd)"  --unshare-all  --share-net  --die-with-parent  --ro-bind /nix /nix  ${etcBindFlags}  $ro_mounts  "''${auto_mounts[@]}"  </del> <ins> cmd=( ${bubblewrap}/bin/bwrap --dev-bind /dev /dev --proc /proc --chdir "$(pwd)" --unshare-all --share-net --die-with-parent --ro-bind /nix /nix ${etcBindFlags} "''${ro_mounts[@]}" "''${auto_mounts[@]}" </ins> ${init runScript}/bin/${name}-init ${initArgs} <ins> ) exec "''${cmd[@]}" </ins> ''; bin = writeShellScriptBin name (bwrapCmd { initArgs = ''"$@"''; });