diff options
author | Nikolay Amiantov <ab@fmap.me> | 2015-12-12 20:29:39 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2015-12-13 15:14:11 +0300 |
commit | 2678e0ce022f3ee357c2d4b9f08303b6e210b39b (patch) | |
tree | 3ec89d19a6c561d8a48639d4a821b13042629dd6 /pkgs/games/zandronum | |
parent | 94a07ab3aebd2677a84b6f1ebfb25b4d5fc2199a (diff) | |
download | nixpkgs-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar nixpkgs-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.gz nixpkgs-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.bz2 nixpkgs-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.lz nixpkgs-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.xz nixpkgs-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.tar.zst nixpkgs-2678e0ce022f3ee357c2d4b9f08303b6e210b39b.zip |
zandronum: unify packages, fix building, cleanup
Diffstat (limited to 'pkgs/games/zandronum')
-rw-r--r-- | pkgs/games/zandronum/bin.nix | 39 | ||||
-rw-r--r-- | pkgs/games/zandronum/default.nix | 60 | ||||
-rw-r--r-- | pkgs/games/zandronum/server.nix | 44 |
3 files changed, 54 insertions, 89 deletions
diff --git a/pkgs/games/zandronum/bin.nix b/pkgs/games/zandronum/bin.nix index 453f7dc1c1d..cf46877ef71 100644 --- a/pkgs/games/zandronum/bin.nix +++ b/pkgs/games/zandronum/bin.nix @@ -18,10 +18,9 @@ , zlib }: -assert stdenv.system == "x86_64-linux"; - stdenv.mkDerivation rec { name = "zandronum-2.1.2"; + src = fetchurl { url = "http://zandronum.com/downloads/zandronum2.1.2-linux-x86_64.tar.bz2"; sha256 = "1f5aw2m8c0bl3lrvi2k3rrzq3q9x1ikxnxxjgh3k9qvanfn7ykbk"; @@ -49,38 +48,30 @@ stdenv.mkDerivation rec { phases = [ "unpackPhase" "installPhase" ]; - unpackPhase = '' - tar xf $src - ''; + sourceRoot = "."; installPhase = '' mkdir -p $out/bin - mkdir -p $out/share - cp * $out/share - - patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/share/zandronum - patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/share/zandronum-server + mkdir -p $out/share/zandronum + cp *.so *.pk3 zandronum zandronum-server $out/share/zandronum - cat > $out/bin/zandronum << EOF - #!/bin/sh + patchelf \ + --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ + --set-rpath $libPath:$out/share/zandronum \ + $out/share/zandronum/zandronum + patchelf \ + --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ + --set-rpath $libPath \ + $out/share/zandronum/zandronum-server - LD_LIBRARY_PATH=$libPath:$out/share $out/share/zandronum "\$@" - EOF - - cat > $out/bin/zandronum-server << EOF - #!/bin/sh - - LD_LIBRARY_PATH=$libPath:$out/share $out/share/zandronum-server "\$@" - EOF - - chmod +x "$out/bin/zandronum" - chmod +x "$out/bin/zandronum-server" + ln -s $out/share/zandronum/zandronum $out/bin/zandronum + ln -s $out/share/zandronum/zandronum-server $out/bin/zandronum-server ''; meta = { homepage = http://zandronum.com/; description = "multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. Binary version for online play."; maintainer = [ stdenv.lib.maintainers.lassulus ]; + platforms = [ "x86_64-linux" ]; }; } - diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix index b92551a78bf..ecdf8cfdbd2 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; }; } - diff --git a/pkgs/games/zandronum/server.nix b/pkgs/games/zandronum/server.nix deleted file mode 100644 index eec2c3acc9c..00000000000 --- a/pkgs/games/zandronum/server.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, fetchhg, cmake, openssl, sqlite, sqlite-amalgamation, SDL }: - -stdenv.mkDerivation { - name = "zandronum-server-2.1.2"; - src = fetchhg { - url = "https://bitbucket.org/Torr_Samaho/zandronum-stable"; - rev = "a3663b0061d5"; - sha256 = "0qwsnbwhcldwrirfk6hpiklmcj3a7dzh6pn36nizci6pcza07p56"; - }; - - phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ]; - - buildInputs = [ cmake openssl sqlite sqlite-amalgamation SDL ]; - - preConfigure = '' - cp ${sqlite-amalgamation}/* sqlite/ - ''; - - cmakeFlags = [ - "-DSERVERONLY=ON" - ]; - - installPhase = '' - find - mkdir -p $out/bin - mkdir -p $out/share - cp zandronum-server zandronum.pk3 skulltag_actors.pk3 $out/share - - cat > $out/bin/zandronum-server << EOF - #!/bin/sh - - LD_LIBRARY_PATH=$out/share $out/share/zandronum-server "\$@" - EOF - - chmod +x "$out/bin/zandronum-server" - ''; - - meta = { - homepage = http://zandronum.com/; - description = "Server of the multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software"; - maintainer = [ stdenv.lib.maintainers.lassulus ]; - }; -} - |