summary refs log tree commit diff
path: root/pkgs/games/zandronum/default.nix
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-12-12 20:29:39 +0300
committerNikolay Amiantov <ab@fmap.me>2015-12-13 15:14:11 +0300
commit2678e0ce022f3ee357c2d4b9f08303b6e210b39b (patch)
tree3ec89d19a6c561d8a48639d4a821b13042629dd6 /pkgs/games/zandronum/default.nix
parent94a07ab3aebd2677a84b6f1ebfb25b4d5fc2199a (diff)
downloadnixlib-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar
nixlib-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.gz
nixlib-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.bz2
nixlib-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.lz
nixlib-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.xz
nixlib-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.zst
nixlib-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.zip
zandronum: unify packages, fix building, cleanup
Diffstat (limited to 'pkgs/games/zandronum/default.nix')
-rw-r--r--pkgs/games/zandronum/default.nix60
1 files changed, 39 insertions, 21 deletions
diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix
index b92551a78bfd..ecdf8cfdbd22 100644
--- a/pkgs/games/zandronum/default.nix
+++ b/pkgs/games/zandronum/default.nix
@@ -1,43 +1,61 @@
-{ stdenv, fetchhg, cmake, SDL, mesa, fmod42416, openssl, sqlite, sqlite-amalgamation }:
+{ stdenv, lib, fetchhg, cmake, pkgconfig, makeWrapper
+, SDL, mesa, bzip2, zlib, fmod, libjpeg, fluidsynth, openssl, sqlite-amalgamation
+, serverOnly ? false
+}:
+
+let suffix = lib.optionalString serverOnly "-server";
+
+# FIXME: drop binary package when upstream fixes their protocol versioning
+in stdenv.mkDerivation {
+  name = "zandronum${suffix}-2.1.2";
 
-stdenv.mkDerivation {
-  name = "zandronum-2.1.2";
   src = fetchhg {
     url = "https://bitbucket.org/Torr_Samaho/zandronum-stable";
     rev = "a3663b0061d5";
     sha256 = "0qwsnbwhcldwrirfk6hpiklmcj3a7dzh6pn36nizci6pcza07p56";
   };
 
-  phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ];
+  # I have no idea why would SDL and libjpeg be needed for the server part!
+  # But they are.
+  buildInputs = [ openssl bzip2 zlib SDL libjpeg ]
+             ++ lib.optionals (!serverOnly) [ mesa fmod fluidsynth ];
 
-  buildInputs = [ cmake SDL mesa fmod42416 openssl sqlite sqlite-amalgamation ];
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
 
   preConfigure = ''
-    cp ${sqlite-amalgamation}/* sqlite/
+    ln -s ${sqlite-amalgamation}/* sqlite/
   '';
 
-  cmakeFlags = [
-    "-DFMOD_LIBRARY=${fmod42416}/lib/libfmodex.so"
-  ];
+  cmakeFlags =
+    lib.optional (!serverOnly) "-DFMOD_LIBRARY=${fmod}/lib/libfmodex.so"
+    ++ lib.optional serverOnly "-DSERVERONLY=ON"
+    ;
+
+  enableParallelBuilding = true;
 
   installPhase = ''
     mkdir -p $out/bin
-    mkdir -p $out/share
-    cp zandronum zandronum.pk3 skulltag_actors.pk3 liboutput_sdl.so $out/share
-
-    cat > $out/bin/zandronum << EOF
-    #!/bin/sh
-
-    LD_LIBRARY_PATH=$out/share $out/share/zandronum "\$@"
-    EOF
+    mkdir -p $out/share/zandronum
+    cp zandronum${suffix} \
+       zandronum.pk3 \
+       skulltag_actors.pk3 \
+       ${lib.optionalString (!serverOnly) "liboutput_sdl.so"} \
+       $out/share/zandronum
+
+    # For some reason, while symlinks work for binary version, they don't for source one.
+    makeWrapper $out/share/zandronum/zandronum${suffix} $out/bin/zandronum${suffix}
+  '';
 
-    chmod +x "$out/bin/zandronum"
+  postFixup = lib.optionalString (!serverOnly) ''
+    patchelf --set-rpath $(patchelf --print-rpath $out/share/zandronum/zandronum):$out/share/zandronum \
+      $out/share/zandronum/zandronum
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://zandronum.com/;
     description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software.";
-    maintainer = [ stdenv.lib.maintainers.lassulus ];
+    maintainer = with maintainers; [ lassulus ];
+    platforms = platforms.linux;
+    license = licenses.bsdOriginal;
   };
 }
-