diff options
author | Martin Weinelt <mweinelt@users.noreply.github.com> | 2020-12-09 17:08:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-09 17:08:05 +0100 |
commit | 6a4be92dd86dd589dd5c52145d7fe34353af8479 (patch) | |
tree | 034290fd4e6dd5e99abb8b1330b3a4b8023938e0 | |
parent | 253de1fcdb3b82a74a0bf128a7ae2a7b2fed0932 (diff) | |
parent | 2831a66be623796185ccadcacda16eb5bcd2dc8e (diff) |
Merge pull request #106409 from jonringer/fix-steam
steam: fix paradox launchers, and electron apps
-rw-r--r-- | pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix | 33 | ||||
-rw-r--r-- | pkgs/games/steam/fhsenv.nix | 9 |
2 files changed, 30 insertions, 12 deletions
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix index 3a3c9e932fdb..b40569a479bc 100644 --- a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix @@ -1,20 +1,27 @@ -{ callPackage, runCommandLocal, writeShellScriptBin, stdenv, coreutils, bubblewrap }: - -let buildFHSEnv = callPackage ./env.nix { }; in +{ lib, callPackage, runCommandLocal, writeShellScriptBin, stdenv, coreutils, bubblewrap }: args @ { - name, - runScript ? "bash", - extraInstallCommands ? "", - meta ? {}, - passthru ? {}, - ... + name +, runScript ? "bash" +, extraInstallCommands ? "" +, meta ? {} +, passthru ? {} +, unshareUser ? true +, unshareIpc ? true +, unsharePid ? true +, unshareNet ? false +, unshareUts ? true +, unshareCgroup ? true +, ... }: with builtins; let + buildFHSEnv = callPackage ./env.nix { }; + env = buildFHSEnv (removeAttrs args [ "runScript" "extraInstallCommands" "meta" "passthru" + "unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc" ]); chrootenv = callPackage ./chrootenv {}; @@ -92,8 +99,12 @@ let --dev-bind /dev /dev --proc /proc --chdir "$(pwd)" - --unshare-all - --share-net + ${lib.optionalString unshareUser "--unshare-user"} + ${lib.optionalString unshareIpc "--unshare-ipc"} + ${lib.optionalString unsharePid "--unshare-pid"} + ${lib.optionalString unshareNet "--unshare-net"} + ${lib.optionalString unshareUts "--unshare-uts"} + ${lib.optionalString unshareCgroup "--unshare-cgroup"} --die-with-parent --ro-bind /nix /nix ${etcBindFlags} diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix index ecd318e64c66..d3d5b3a2271e 100644 --- a/pkgs/games/steam/fhsenv.nix +++ b/pkgs/games/steam/fhsenv.nix @@ -35,6 +35,10 @@ let # Steam VR procps usbutils + + # electron based launchers need newer versions of these libraries than what runtime provides + mesa + sqlite ] ++ lib.optional withJava jdk8 # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731 ++ lib.optional withPrimus primus ++ extraPkgs pkgs; @@ -175,7 +179,6 @@ in buildFHSUserEnv rec { libidn tbb wayland - mesa libxkbcommon # Other things from runtime @@ -265,6 +268,10 @@ in buildFHSUserEnv rec { broken = nativeOnly; }; + # allows for some gui applications to share IPC + # this fixes certain issues where they don't render correctly + unshareIpc = false; + passthru.run = buildFHSUserEnv { name = "steam-run"; |