diff options
author | Elis Hirwing <elis@hirwing.se> | 2017-12-25 14:58:31 +0100 |
---|---|---|
committer | Elis Hirwing <elis@hirwing.se> | 2018-01-04 00:06:28 +0100 |
commit | d732c53c1557abf16bb55c0f173f1bac7d8cdefe (patch) | |
tree | aa10e9df08e3172ff9b2d1e6a621fa9656ee65db | |
parent | c1497cac7209ffae2799a35b6bd28cfd0d690e84 (diff) |
linux-steam-integration: init at 0.7.2
-rw-r--r-- | pkgs/games/linux-steam-integration/default.nix | 80 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
2 files changed, 84 insertions, 0 deletions
diff --git a/pkgs/games/linux-steam-integration/default.nix b/pkgs/games/linux-steam-integration/default.nix new file mode 100644 index 0000000000000..161f4691c8f9a --- /dev/null +++ b/pkgs/games/linux-steam-integration/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, git, gtk, pkgs, gettext, + gcc_multi, libressl }: + +let + version = "0.7.2"; + steamBinPath = "${stdenv.lib.makeBinPath (with pkgs; [ steam ])}/steam"; + zenityBinPath = "${stdenv.lib.makeBinPath (with pkgs; [ gnome3.zenity ])}/zenity"; + +in stdenv.mkDerivation rec { + name = "linux-steam-integration-${version}"; + + nativeBuildInputs = [ meson ninja pkgconfig git gettext gcc_multi ]; + buildInputs = [ gtk libressl ]; + + src = fetchFromGitHub { + owner = "solus-project"; + repo = "linux-steam-integration"; + rev = "v${version}"; + sha256 = "0yn71fvjqi63dxk04jsndb26pgipl0nla10sy94bi7q95pk3sdf6"; + fetchSubmodules = true; + }; + + # Patch lib paths (AUDIT_PATH and REDIRECT_PATH) in shim.c + # Patch path to lsi-steam in lsi-steam.desktop + # Patch path to zenity in lsi.c + postPatch = '' + sed -i -e "s|/usr/|$out/|g" src/shim/shim.c + sed -i -e "s|/usr/|$out/|g" data/lsi-steam.desktop + sed -i -e "s|zenity|${zenityBinPath}|g" src/lsi/lsi.c + ''; + + configurePhase = '' + # Configure 64bit things + meson build \ + -Dwith-shim=co-exist \ + -Dwith-frontend=true \ + -Dwith-steam-binary=${steamBinPath} \ + -Dwith-new-libcxx-abi=true \ + -Dwith-libressl-mode=native \ + --prefix / \ + --libexecdir lib \ + --libdir lib \ + --bindir bin + + # Configure 32bit things + CC="gcc -m32" CXX="g++ -m32" meson build32 \ + -Dwith-shim=none \ + -Dwith-libressl-mode=native \ + --prefix / \ + --libexecdir lib32 \ + --libdir lib32 + ''; + + buildPhase = '' + # Build 64bit things + ninja -C build + + # Build 32bit things + ninja -C build32 + ''; + + installPhase = '' + DESTDIR="$out" ninja -C build install + DESTDIR="$out" ninja -C build32 install + ''; + + meta = with stdenv.lib; { + description = "Steam wrapper to improve compability and performance"; + longDescription = '' + Linux Steam Integration is a helper system to make the Steam Client and + Steam games run better on Linux. In a nutshell, LSI automatically applies + various workarounds to get games working, and fixes long standing bugs in + both games and the client + ''; + homepage = https://github.com/solus-project/linux-steam-integration; + license = licenses.lgpl21; + maintainers = [ maintainers.etu ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 254740c34607f..54cdf4e8ad84a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18429,6 +18429,10 @@ with pkgs; nativeOnly = true; }).run; + linux-steam-integration = callPackage ../games/linux-steam-integration { + gtk = pkgs.gtk3; + }; + stepmania = callPackage ../games/stepmania { ffmpeg = ffmpeg_2; }; |