nixpkgs/pkgs/games/steam/chrootenv.nix

129 lines
3.0 KiB
Nix
Raw Normal View History

{ lib, buildFHSUserEnv
, withRuntime ? false
, withJava ? false
, withPrimus ? false
}:
2015-02-05 18:16:02 +03:00
buildFHSUserEnv {
name = "steam";
2014-04-23 03:03:14 +04:00
targetPkgs = pkgs:
[ pkgs.steam-original
# Errors in output without those
pkgs.pciutils
pkgs.python2
# Games' dependencies
pkgs.xlibs.xrandr
pkgs.which
2014-06-15 17:34:27 +04:00
]
++ lib.optional withJava pkgs.jdk
++ lib.optional withPrimus pkgs.primus
2014-06-15 17:34:27 +04:00
;
2014-04-23 03:03:14 +04:00
multiPkgs = pkgs: [
# 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
2014-07-10 12:25:19 +04:00
pkgs.glib
pkgs.gtk2
pkgs.bzip2
pkgs.zlib
pkgs.libpulseaudio
2014-07-10 12:25:19 +04:00
pkgs.gdk_pixbuf
2014-04-23 03:03:14 +04:00
# 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
pkgs.xlibs.libXcursor
pkgs.xlibs.libXrender
pkgs.xlibs.libXScrnSaver
pkgs.xlibs.libXi
pkgs.xlibs.libSM
pkgs.xlibs.libICE
pkgs.gnome2.GConf
2014-07-10 12:25:19 +04:00
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
2014-07-10 12:25:19 +04:00
pkgs.SDL2
pkgs.libusb1
pkgs.dbus_glib
pkgs.libav
pkgs.atk
# Only libraries are needed from those two
pkgs.udev182
pkgs.networkmanager098
2014-04-23 03:03:14 +04:00
# Verified games requirements
pkgs.xlibs.libXmu
pkgs.xlibs.libxcb
pkgs.xlibs.libpciaccess
pkgs.mesa_glu
pkgs.libuuid
pkgs.libogg
2014-07-10 12:25:19 +04:00
pkgs.libvorbis
pkgs.SDL
pkgs.SDL2_image
pkgs.glew110
pkgs.openssl
pkgs.libidn
2014-04-23 03:03:14 +04:00
# 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
2014-07-10 12:25:19 +04:00
];
2014-04-23 03:03:14 +04:00
2015-07-28 13:55:47 +03:00
extraBuildCommands = ''
[ -d lib64 ] && mv lib64/steam lib
# FIXME: maybe we should replace this with proper libcurl-gnutls
2015-07-28 13:55:47 +03:00
( cd lib; ln -s libcurl.so.4 libcurl-gnutls.so.4 )
[ -d lib64 ] && ( cd lib64; ln -s libcurl.so.4 libcurl-gnutls.so.4 )
2014-04-23 03:03:14 +04:00
'';
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
'';
2015-02-05 18:16:02 +03:00
2015-04-22 16:52:57 +03:00
runScript = "steam";
}