3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/games/steam/chrootenv.nix
Nikolay Amiantov 5bbf10409e steam: actually propagate flags to the runtime, now from chrootenv wrapper
Example: instead of

(steamPackages.override { newStdcpp = true; }).steam-chrootenv

(which wasn't working anyway) you now do just:

steam.override { newStdcpp = true; }
2016-01-27 00:58:23 +03:00

69 lines
1.5 KiB
Nix

{ lib, buildFHSUserEnv, steam
, withJava ? false
, withPrimus ? false
, nativeOnly ? false
, runtimeOnly ? false
, newStdcpp ? false
}:
buildFHSUserEnv {
name = "steam";
targetPkgs = pkgs: with pkgs; [
steamPackages.steam
steamPackages.steam-fonts
# License agreement
gnome3.zenity
# Errors in output without those
pciutils
python2
# Games' dependencies
xlibs.xrandr
which
# Needed by gdialog, including in the steam-runtime
perl
]
++ lib.optional withJava jdk
++ lib.optional withPrimus primus
;
multiPkgs = pkgs: with pkgs; [
# These are required by steam with proper errors
xlibs.libXcomposite
xlibs.libXtst
xlibs.libXrandr
xlibs.libXext
xlibs.libX11
xlibs.libXfixes
# Not formally in runtime but needed by some games
gst_all_1.gstreamer
gst_all_1.gst-plugins-ugly
libdrm
(steamPackages.steam-runtime-wrapped.override {
inherit nativeOnly runtimeOnly newStdcpp;
})
];
extraBuildCommands = ''
mkdir -p steamrt
ln -s ../lib64/steam-runtime steamrt/amd64
ln -s ../lib32/steam-runtime steamrt/i386
'';
extraInstallCommands = ''
mkdir -p $out/share/applications
ln -s ${steam}/share/icons $out/share
ln -s ${steam}/share/pixmaps $out/share
sed "s,/usr/bin/steam,$out/bin/steam,g" ${steam}/share/applications/steam.desktop > $out/share/applications/steam.desktop
'';
profile = ''
export STEAM_RUNTIME=/steamrt
'';
runScript = "steam";
}