summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2010-12-26 13:14:15 +0000
committerMichael Raskin <7c6f434c@mail.ru>2010-12-26 13:14:15 +0000
commit88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0 (patch)
tree99b29183f587da43ca14277eb701016288f345b5 /pkgs/games
parent4bbb72da2f7104328854df8862e40027d1513fb8 (diff)
downloadnixlib-88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0.tar
nixlib-88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0.tar.gz
nixlib-88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0.tar.bz2
nixlib-88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0.tar.lz
nixlib-88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0.tar.xz
nixlib-88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0.tar.zst
nixlib-88d5eeda98f89bbdb3c75b59caa21d76ebbb8cb0.zip
Adding sauerbraten
svn path=/nixpkgs/trunk/; revision=25278
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/sauerbraten/default.nix77
1 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix
new file mode 100644
index 000000000000..aca16d14e36c
--- /dev/null
+++ b/pkgs/games/sauerbraten/default.nix
@@ -0,0 +1,77 @@
+x@{builderDefsPackage
+  , fetchsvn, mesa, SDL, SDL_image, SDL_mixer
+  , libpng, zlib, libjpeg, imagemagick, libX11
+  , ...}:
+builderDefsPackage
+(a :  
+let 
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
+    ["fetchsvn"];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="sauerbraten";
+    version="3331";
+    name="${baseName}-r${version}";
+    url="https://sauerbraten.svn.sourceforge.net/svnroot/sauerbraten";
+    hash="0904hk9rz2x941c9587bfxa4rca81260j3m2hjjrp984w67x2w7y";
+  };
+in
+rec {
+  srcDrv = a.fetchsvn {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+    rev = sourceInfo.version;
+  };
+
+  src = srcDrv + "/";
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  phaseNames = ["setVars" "doMakeInstall" "doCreateScripts"];
+
+  setVars = a.noDepEntry ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"
+  '';
+
+  doUnpack = a.fullDepEntry ''
+    ensureDir $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 ..
+    ensureDir $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
+    chmod a+x $out/bin/sauerbraten_*
+  '' ["minInit" "defEnsureDir"];
+      
+  meta = {
+    description = "";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      # raskin: tested amd64-linux;
+      # not setting platforms because it is 0.5+ GiB of game data
+      [];
+    license = "freeware"; # as an aggregate - data files have different licenses
+                          # code is under zlib license
+  };
+}) x
+