summary refs log tree commit diff
path: root/pkgs/games/warsow
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2021-02-25 09:34:29 +0100
committerJan Tojnar <jtojnar@gmail.com>2021-02-25 10:12:46 +0100
commit4d8ea30a4fc37036437f73b73cb3bcc3c4b92459 (patch)
tree22a7014bde28051a75cd801e1ac0f746a4193d46 /pkgs/games/warsow
parent57231d7524d94dd992bb8726af8c941d11e2bee3 (diff)
downloadnixpkgs-4d8ea30a4fc37036437f73b73cb3bcc3c4b92459.tar
nixpkgs-4d8ea30a4fc37036437f73b73cb3bcc3c4b92459.tar.gz
nixpkgs-4d8ea30a4fc37036437f73b73cb3bcc3c4b92459.tar.bz2
nixpkgs-4d8ea30a4fc37036437f73b73cb3bcc3c4b92459.tar.lz
nixpkgs-4d8ea30a4fc37036437f73b73cb3bcc3c4b92459.tar.xz
nixpkgs-4d8ea30a4fc37036437f73b73cb3bcc3c4b92459.tar.zst
nixpkgs-4d8ea30a4fc37036437f73b73cb3bcc3c4b92459.zip
warsow: clean up
- Do not contaminate builder environment with libraries, substitute them in the patch directly.
- Switch to pname from name.
- Run installPhase hooks.
- Correct license.
Diffstat (limited to 'pkgs/games/warsow')
-rw-r--r--pkgs/games/warsow/engine.nix35
1 files changed, 19 insertions, 16 deletions
diff --git a/pkgs/games/warsow/engine.nix b/pkgs/games/warsow/engine.nix
index 4c8de4a02d3..e796c589290 100644
--- a/pkgs/games/warsow/engine.nix
+++ b/pkgs/games/warsow/engine.nix
@@ -1,15 +1,9 @@
-{ stdenv, lib, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype
+{ stdenv, lib, substituteAll, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype
 , libjpeg, libpng, SDL2, libGL, openal, zlib
 }:
 
-let
-  # The game loads all those via dlopen().
-  libs = lib.mapAttrs (name: x: lib.getLib x) {
-    inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype;
-  };
-
-in stdenv.mkDerivation (libs // rec {
-  name = "warsow-engine-${version}";
+stdenv.mkDerivation rec {
+  pname = "warsow-engine";
   version = "2.1.0";
 
   src = fetchurl {
@@ -17,6 +11,13 @@ in stdenv.mkDerivation (libs // rec {
     sha256 = "0fj5k7qpf6far8i1xhqxlpfjch10zj26xpilhp95aq2yiz08pj4r";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./libpath.patch;
+      inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype;
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [
@@ -24,28 +25,30 @@ in stdenv.mkDerivation (libs // rec {
     libpng
   ];
 
-  patches = [ ./libpath.patch ];
-  postPatch = ''
+  cmakeFlags = [ "-DQFUSION_GAME=Warsow" ];
+
+  preConfigure = ''
     cd source/source
-    substituteAllInPlace gameshared/q_arch.h
   '';
 
-  cmakeFlags = [ "-DQFUSION_GAME=Warsow" ];
-
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/lib
     cp -r libs $out/lib/warsow
     for i in warsow.* wsw_server.* wswtv_server.*; do
       install -Dm755 "$i" "$out/bin/''${i%.*}"
     done
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Multiplayer FPS game designed for competitive gaming (engine only)";
     homepage = "http://www.warsow.net";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ astsmtl abbradar ];
     platforms = platforms.linux;
     broken = stdenv.isAarch64;
   };
-})
+}