nixpkgs/pkgs/games/steam/runtime-wrapped.nix
Nikolay Amiantov 9c8137ca81 steam: improvements for native runtime
* Update dependencies using steam-native-runtime from Arch Linux as a
  reference.
* Remove native-only Steam Runtime, just use installed libraries
  instead.
* Mark native-only Steam as broken (due to segfault inside D-Bus). Seems it was
  already broken for a long time. Doesn't apply to steam-run.
* Some cleanups for chrootenv.
2018-03-16 02:59:07 +03:00

45 lines
993 B
Nix

{ stdenv, steamArch, lib, perl, pkgs, steam-runtime
, runtimeOnly ? false
}:
let
overridePkgs = lib.optionals (!runtimeOnly) (with pkgs; [
libgpgerror
libpulseaudio
alsaLib
openalSoft
libva1-full
libvdpau
vulkan-loader
gcc.cc
nss
nspr
]);
allPkgs = overridePkgs ++ [ steam-runtime ];
gnuArch = if steamArch == "amd64" then "x86_64-linux-gnu"
else if steamArch == "i386" then "i386-linux-gnu"
else abort "Unsupported architecture";
libs = [ "lib/${gnuArch}" "lib" "usr/lib/${gnuArch}" "usr/lib" ];
bins = [ "bin" "usr/bin" ];
in stdenv.mkDerivation rec {
name = "steam-runtime-wrapped";
nativeBuildInputs = [ perl ];
builder = ./build-wrapped.sh;
passthru = {
inherit gnuArch libs bins overridePkgs;
arch = steamArch;
};
installPhase = ''
buildDir "${toString libs}" "${toString (map lib.getLib allPkgs)}"
buildDir "${toString bins}" "${toString (map lib.getBin allPkgs)}"
'';
}