summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Weinelt <mweinelt@users.noreply.github.com>2020-12-09 17:08:05 +0100
committerGitHub <noreply@github.com>2020-12-09 17:08:05 +0100
commit6a4be92dd86dd589dd5c52145d7fe34353af8479 (patch)
tree034290fd4e6dd5e99abb8b1330b3a4b8023938e0
parent253de1fcdb3b82a74a0bf128a7ae2a7b2fed0932 (diff)
parent2831a66be623796185ccadcacda16eb5bcd2dc8e (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.nix33
-rw-r--r--pkgs/games/steam/fhsenv.nix9
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";