summary refs log tree commit diff
path: root/pkgs/games/steam/chrootenv.nix
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-07-28 13:42:11 +0300
committerNikolay Amiantov <ab@fmap.me>2015-10-10 14:59:06 +0300
commit8b218b7143f139e01f6b3b60b84649c60ca69650 (patch)
tree2fc19c5b14326a4256554a560994cdab2ad36b5f /pkgs/games/steam/chrootenv.nix
parenta3ef4b930e3220bf82cd2881a4b95d108f814143 (diff)
downloadnixpkgs-8b218b7143f139e01f6b3b60b84649c60ca69650.tar
nixpkgs-8b218b7143f139e01f6b3b60b84649c60ca69650.tar.gz
nixpkgs-8b218b7143f139e01f6b3b60b84649c60ca69650.tar.bz2
nixpkgs-8b218b7143f139e01f6b3b60b84649c60ca69650.tar.lz
nixpkgs-8b218b7143f139e01f6b3b60b84649c60ca69650.tar.xz
nixpkgs-8b218b7143f139e01f6b3b60b84649c60ca69650.tar.zst
nixpkgs-8b218b7143f139e01f6b3b60b84649c60ca69650.zip
steam: cut dependencies when using Runtime, migrate from config to boolean arguments
Diffstat (limited to 'pkgs/games/steam/chrootenv.nix')
-rw-r--r--pkgs/games/steam/chrootenv.nix31
1 files changed, 20 insertions, 11 deletions
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index 583e731113d..a7cdfa9e7c1 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -1,4 +1,8 @@
-{ lib, buildFHSUserEnv, config }:
+{ lib, buildFHSUserEnv
+, withRuntime ? false
+, withJava ? false
+, withPrimus ? false
+}:
 
 buildFHSUserEnv {
   name = "steam";
@@ -12,12 +16,12 @@ buildFHSUserEnv {
       pkgs.xlibs.xrandr
       pkgs.which
     ]
-    ++ lib.optional (config.steam.java or false) pkgs.jdk
-    ++ lib.optional (config.steam.primus or false) pkgs.primus
+    ++ lib.optional withJava pkgs.jdk
+    ++ lib.optional withPrimus pkgs.primus
     ;
 
-  multiPkgs = pkgs:
-    [ # These are required by steam with proper errors
+  multiPkgs = pkgs: [
+      # These are required by steam with proper errors
       pkgs.xlibs.libXcomposite
       pkgs.xlibs.libXtst
       pkgs.xlibs.libXrandr
@@ -32,6 +36,10 @@ buildFHSUserEnv {
       pkgs.libpulseaudio
       pkgs.gdk_pixbuf
 
+      # Not formally in runtime but needed by some games
+      pkgs.gst_all_1.gstreamer
+      pkgs.gst_all_1.gst-plugins-ugly
+    ] ++ lib.optionals withRuntime [
       # Without these it silently fails
       pkgs.xlibs.libXinerama
       pkgs.xlibs.libXdamage
@@ -97,10 +105,6 @@ buildFHSUserEnv {
       pkgs.SDL2_mixer
       pkgs.gstreamer
       pkgs.gst_plugins_base
-
-      # Not formally in runtime but needed by some games
-      pkgs.gst_all_1.gstreamer
-      pkgs.gst_all_1.gst-plugins-ugly
     ];
 
   extraBuildCommandsMulti = ''
@@ -111,8 +115,13 @@ buildFHSUserEnv {
     ln -s libcurl.so.4 libcurl-gnutls.so.4
   '';
 
-  profile = ''
-    ${if config.steam.enableRuntime or false then "" else "export STEAM_RUNTIME=0"}
+  profile = if withRuntime then ''
+    export STEAM_RUNTIME=0
+  '' else ''
+    # Ugly workaround for https://github.com/ValveSoftware/steam-for-linux/issues/3504
+    export LD_PRELOAD=/lib32/libpulse.so:/lib64/libpulse.so:/lib32/libasound.so:/lib64/libasound.so:$LD_PRELOAD
+    # Another one for https://github.com/ValveSoftware/steam-for-linux/issues/3801
+    export LD_PRELOAD=/lib32/libstdc++.so:/lib64/libstdc++.so:$LD_PRELOAD
   '';
 
   runScript = "steam";