From a3ef4b930e3220bf82cd2881a4b95d108f814143 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Fri, 12 Jun 2015 02:01:23 +0300 Subject: [PATCH] steam: use native libraries, disable steam-runtime --- pkgs/games/steam/chrootenv.nix | 139 +++++++++++++++++++++------------ 1 file changed, 89 insertions(+), 50 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.gdk_pixbuf - pkgs.pango - - 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.SDL2 - pkgs.libdrm - - pkgs.libgcrypt + pkgs.gtk2 + pkgs.bzip2 pkgs.zlib - - pkgs.alsaLib - pkgs.libvorbis - pkgs.openal pkgs.libpulseaudio + pkgs.gdk_pixbuf - pkgs.gst_all_1.gst-plugins-ugly # "Audiosurf 2" needs this + # 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.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.libusb1 + pkgs.dbus_glib + pkgs.libav + pkgs.atk + # Only libraries are needed from those two + pkgs.udev182 + pkgs.networkmanager098 + + # Verified games requirements + pkgs.xlibs.libXmu + pkgs.xlibs.libxcb + pkgs.xlibs.libpciaccess + pkgs.mesa_glu + pkgs.libuuid + pkgs.libogg + pkgs.libvorbis + pkgs.SDL + pkgs.SDL2_image + pkgs.glew110 + pkgs.openssl + pkgs.libidn + + # 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";