diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix index 8f3fb53f7e3..61a9310ae21 100644 --- a/pkgs/games/sauerbraten/default.nix +++ b/pkgs/games/sauerbraten/default.nix @@ -1,77 +1,56 @@ -x@{builderDefsPackage - , fetchsvn, mesa, SDL, SDL_image, SDL_mixer - , libpng, zlib, libjpeg, imagemagick, libX11 - , ...}: -builderDefsPackage -(a : -let - helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ - ["fetchsvn"]; +{ stdenv, fetchsvn, mesa, SDL, SDL_image, SDL_mixer +, libpng, zlib, libjpeg, imagemagick, libX11 +}: - buildInputs = map (n: builtins.getAttr n x) - (builtins.attrNames (builtins.removeAttrs x helperArgNames)); - sourceInfo = rec { - baseName="sauerbraten"; - version="5000"; - name="${baseName}-r${version}"; - url="https://svn.code.sf.net/p/sauerbraten/code"; - hash="17libj7dslprlwppdk3vyxdcigbsa4czln8gdyz9j264m11z1cbh"; - }; -in -rec { - srcDrv = a.fetchsvn { - url = sourceInfo.url; - sha256 = sourceInfo.hash; - rev = sourceInfo.version; +stdenv.mkDerivation rec { + name = "sauerbraten-r${version}"; + version = "5000"; + + src = fetchsvn { + url = "https://svn.code.sf.net/p/sauerbraten/code"; + sha256 = "17libj7dslprlwppdk3vyxdcigbsa4czln8gdyz9j264m11z1cbh"; + rev = version; }; - src = srcDrv + "/"; + buildInputs = [ + mesa SDL SDL_image SDL_mixer libpng zlib libjpeg imagemagick + libX11 + ]; - inherit (sourceInfo) name version; - inherit buildInputs; - - phaseNames = ["setVars" "doMakeInstall" "doCreateScripts"]; - - setVars = a.noDepEntry '' + preBuild = '' export NIX_LDFLAGS="$NIX_LDFLAGS -lX11" + pushd src ''; - doUnpack = a.fullDepEntry '' - mkdir -p $out/share/sauerbraten/build-dir - ln -s $out/share/sauerbraten/build-dir - cd $out/share/sauerbraten/build-dir - (cd ${src}; find . -type d) | tail -n +2 | xargs -L 1 mkdir - (cd ${src}; find . -type f) | while read; do ln -s ${src}/"$REPLY" "$(dirname "$REPLY")"; done - cd src - ls - make clean - sed -e '/[.]h[.]gch/,/-o/s@-o@-x c++-header -o@' -i Makefile - '' ["minInit" "addInputs" "defEnsureDir"]; - - doCreateScripts = a.fullDepEntry '' - cd .. - mkdir -p $out/bin - echo '#! /bin/sh' >> $out/bin/sauerbraten_server - echo 'cd "'"$out"'/share/sauerbraten/build-dir"' >> $out/bin/sauerbraten_server - echo './bin_unix/native_server "$@"' >> $out/bin/sauerbraten_server - echo '#! /bin/sh' >> $out/bin/sauerbraten_client - echo 'cd "'"$out"'/share/sauerbraten/build-dir"' >> $out/bin/sauerbraten_client - echo './bin_unix/native_client "$@"' >> $out/bin/sauerbraten_client + installPhase = '' + popd + mkdir -p $out/bin $out/share/sauerbraten $out/share/doc/sauerbraten + cp -rv "docs/"* $out/share/doc/sauerbraten/ + cp -v src/sauer_client src/sauer_server $out/share/sauerbraten/ + cp -rv packages $out/share/sauerbraten/ + cp -rv data $out/share/sauerbraten/ + cat > $out/bin/sauerbraten_server < $out/bin/sauerbraten_client <