Merge pull request #106409 from jonringer/fix-steam

steam: fix paradox launchers, and electron apps
This commit is contained in:
Martin Weinelt 2020-12-09 17:08:05 +01:00 committed by GitHub
commit 6a4be92dd8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 12 deletions

View File

@ -1,20 +1,27 @@
{ callPackage, runCommandLocal, writeShellScriptBin, stdenv, coreutils, bubblewrap }: { lib, callPackage, runCommandLocal, writeShellScriptBin, stdenv, coreutils, bubblewrap }:
let buildFHSEnv = callPackage ./env.nix { }; in
args @ { args @ {
name, name
runScript ? "bash", , runScript ? "bash"
extraInstallCommands ? "", , extraInstallCommands ? ""
meta ? {}, , meta ? {}
passthru ? {}, , passthru ? {}
... , unshareUser ? true
, unshareIpc ? true
, unsharePid ? true
, unshareNet ? false
, unshareUts ? true
, unshareCgroup ? true
, ...
}: }:
with builtins; with builtins;
let let
buildFHSEnv = callPackage ./env.nix { };
env = buildFHSEnv (removeAttrs args [ env = buildFHSEnv (removeAttrs args [
"runScript" "extraInstallCommands" "meta" "passthru" "runScript" "extraInstallCommands" "meta" "passthru"
"unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc"
]); ]);
chrootenv = callPackage ./chrootenv {}; chrootenv = callPackage ./chrootenv {};
@ -92,8 +99,12 @@ let
--dev-bind /dev /dev --dev-bind /dev /dev
--proc /proc --proc /proc
--chdir "$(pwd)" --chdir "$(pwd)"
--unshare-all ${lib.optionalString unshareUser "--unshare-user"}
--share-net ${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 --die-with-parent
--ro-bind /nix /nix --ro-bind /nix /nix
${etcBindFlags} ${etcBindFlags}

View File

@ -35,6 +35,10 @@ let
# Steam VR # Steam VR
procps procps
usbutils 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 withJava jdk8 # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
++ lib.optional withPrimus primus ++ lib.optional withPrimus primus
++ extraPkgs pkgs; ++ extraPkgs pkgs;
@ -175,7 +179,6 @@ in buildFHSUserEnv rec {
libidn libidn
tbb tbb
wayland wayland
mesa
libxkbcommon libxkbcommon
# Other things from runtime # Other things from runtime
@ -265,6 +268,10 @@ in buildFHSUserEnv rec {
broken = nativeOnly; 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 { passthru.run = buildFHSUserEnv {
name = "steam-run"; name = "steam-run";