summary refs log tree commit diff
path: root/pkgs/games/steam/chrootenv.nix
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-06-12 02:01:23 +0300
committerNikolay Amiantov <ab@fmap.me>2015-10-10 14:59:06 +0300
commita3ef4b930e3220bf82cd2881a4b95d108f814143 (patch)
treea8cfda145ce27a9f08a7d75509ba4abb8ad8dea1 /pkgs/games/steam/chrootenv.nix
parent6cb8e04a5c03f26ae6c1c524577ab971b769b708 (diff)
downloadnixpkgs-a3ef4b930e3220bf82cd2881a4b95d108f814143.tar
nixpkgs-a3ef4b930e3220bf82cd2881a4b95d108f814143.tar.gz
nixpkgs-a3ef4b930e3220bf82cd2881a4b95d108f814143.tar.bz2
nixpkgs-a3ef4b930e3220bf82cd2881a4b95d108f814143.tar.lz
nixpkgs-a3ef4b930e3220bf82cd2881a4b95d108f814143.tar.xz
nixpkgs-a3ef4b930e3220bf82cd2881a4b95d108f814143.tar.zst
nixpkgs-a3ef4b930e3220bf82cd2881a4b95d108f814143.zip
steam: use native libraries, disable steam-runtime
Diffstat (limited to 'pkgs/games/steam/chrootenv.nix')
-rw-r--r--pkgs/games/steam/chrootenv.nix131
1 files changed, 85 insertions, 46 deletions
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index ffd68562dee..583e731113d 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -5,15 +5,11 @@ buildFHSUserEnv {
 
   targetPkgs = pkgs:
     [ pkgs.steam-original
-      pkgs.corefonts
-      pkgs.curl
-      pkgs.dbus
-      pkgs.dpkg
-      pkgs.mono
-      pkgs.python
-      pkgs.gnome2.zenity
-      pkgs.xdg_utils
-      pkgs.xorg.xrandr
+      # Errors in output without those
+      pkgs.pciutils
+      pkgs.python2
+      # Games' dependencies
+      pkgs.xlibs.xrandr
       pkgs.which
     ]
     ++ lib.optional (config.steam.java or false) pkgs.jdk
@@ -21,59 +17,102 @@ buildFHSUserEnv {
     ;
 
   multiPkgs = pkgs:
-    [ pkgs.cairo
+    [ # These are required by steam with proper errors
+      pkgs.xlibs.libXcomposite
+      pkgs.xlibs.libXtst
+      pkgs.xlibs.libXrandr
+      pkgs.xlibs.libXext
+      pkgs.xlibs.libX11
+      pkgs.xlibs.libXfixes
+
       pkgs.glib
-      pkgs.gtk
+      pkgs.gtk2
+      pkgs.bzip2
+      pkgs.zlib
+      pkgs.libpulseaudio
       pkgs.gdk_pixbuf
-      pkgs.pango
 
+      # Without these it silently fails
+      pkgs.xlibs.libXinerama
+      pkgs.xlibs.libXdamage
+      pkgs.xlibs.libXcursor
+      pkgs.xlibs.libXrender
+      pkgs.xlibs.libXScrnSaver
+      pkgs.xlibs.libXi
+      pkgs.xlibs.libSM
+      pkgs.xlibs.libICE
+      pkgs.gnome2.GConf
       pkgs.freetype
-      pkgs.xorg.libICE
-      pkgs.xorg.libSM
-      pkgs.xorg.libX11
-      pkgs.xorg.libXau
-      pkgs.xorg.libxcb
-      pkgs.xorg.libXcursor
-      pkgs.xorg.libXdamage
-      pkgs.xorg.libXdmcp
-      pkgs.xorg.libXext
-      pkgs.xorg.libXfixes
-      pkgs.xorg.libXi
-      pkgs.xorg.libXinerama
-      pkgs.xorg.libXrandr
-      pkgs.xorg.libXrender
-      pkgs.xorg.libXScrnSaver
-      pkgs.xorg.libXtst
-      pkgs.xorg.libXxf86vm
-
-      pkgs.ffmpeg
-      pkgs.libpng12
-      pkgs.mesa
-      pkgs.SDL
+      pkgs.openalSoft
+      pkgs.curl
+      pkgs.nspr
+      pkgs.nss
+      pkgs.fontconfig
+      pkgs.cairo
+      pkgs.pango
+      pkgs.alsaLib
+      pkgs.expat
+      pkgs.dbus
+      pkgs.cups
+      pkgs.libcap
       pkgs.SDL2
-      pkgs.libdrm
+      pkgs.libusb1
+      pkgs.dbus_glib
+      pkgs.libav
+      pkgs.atk
+      # Only libraries are needed from those two
+      pkgs.udev182
+      pkgs.networkmanager098
 
-      pkgs.libgcrypt
-      pkgs.zlib
-
-      pkgs.alsaLib
+      # Verified games requirements
+      pkgs.xlibs.libXmu
+      pkgs.xlibs.libxcb
+      pkgs.xlibs.libpciaccess
+      pkgs.mesa_glu
+      pkgs.libuuid
+      pkgs.libogg
       pkgs.libvorbis
-      pkgs.openal
-      pkgs.libpulseaudio
+      pkgs.SDL
+      pkgs.SDL2_image
+      pkgs.glew110
+      pkgs.openssl
+      pkgs.libidn
 
-      pkgs.gst_all_1.gst-plugins-ugly # "Audiosurf 2" needs this
+      # Other things from runtime
+      pkgs.xlibs.libXinerama
+      pkgs.flac
+      pkgs.freeglut
+      pkgs.libjpeg
+      pkgs.libpng12
+      pkgs.libsamplerate
+      pkgs.libmikmod
+      pkgs.libtheora
+      pkgs.pixman
+      pkgs.speex
+      pkgs.SDL_image
+      pkgs.SDL_ttf
+      pkgs.SDL_mixer
+      pkgs.SDL2_net
+      pkgs.SDL2_ttf
+      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 = ''
     cd usr/lib
     ln -sf ../lib64/steam steam
+
+    # FIXME: maybe we should replace this with proper libcurl-gnutls
+    ln -s libcurl.so.4 libcurl-gnutls.so.4
   '';
 
   profile = ''
-    # 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
+    ${if config.steam.enableRuntime or false then "" else "export STEAM_RUNTIME=0"}
   '';
 
   runScript = "steam";