diff options
Diffstat (limited to 'pkgs/games/globulation/default.nix')
-rw-r--r-- | pkgs/games/globulation/default.nix | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/games/globulation/default.nix b/pkgs/games/globulation/default.nix new file mode 100644 index 000000000000..2b60abd00925 --- /dev/null +++ b/pkgs/games/globulation/default.nix @@ -0,0 +1,79 @@ +x@{builderDefsPackage + , mesa, SDL, scons, SDL_ttf, SDL_image, zlib, SDL_net, speex, libvorbis + , libogg, boost, fribidi, bsdiff + , ...}: +builderDefsPackage +(a : +let + helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ + []; + + buildInputs = map (n: builtins.getAttr n x) + (builtins.attrNames (builtins.removeAttrs x helperArgNames)); + sourceInfo = rec { + baseName="glob2"; + version="0.9.4"; + patchlevel="4"; + name="${baseName}-${version}.${patchlevel}"; + url="http://dl.sv.nongnu.org/releases/glob2/${version}/${name}.tar.gz"; + hash="1f0l2cqp2g3llhr9jl6jj15k0wb5q8n29vqj99xy4p5hqs78jk8g"; + }; +in +rec { + src = a.fetchurl { + url = sourceInfo.url; + sha256 = sourceInfo.hash; + }; + + tutorial4patch = a.fetchurl { + url = "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=34;filename=tutorial-part4.map.bspatch;att=1;bug=595448"; + name = "globulation2-tutorial4-map-patch-debian.bspatch"; + sha256 = "d3511ac0f822d512c42abd34b3122f2990862d3d0af6ce464ff372f5bd7f35e9"; + }; + + inherit (sourceInfo) name version; + inherit buildInputs; + + /* doConfigure should be removed if not needed */ + phaseNames = ["doUnpack" "doPatch" "doBspatch" "workaroundScons" "doScons"]; + + patches = [./header-order.patch]; + + doBspatch = a.fullDepEntry '' + cp campaigns/tutorial-part4.map{,.orig} + bspatch campaigns/tutorial-part4.map{.orig,} ${tutorial4patch} + '' ["minInit" "doUnpack" "addInputs"]; + + # FIXME + # I officially fail to understand what goes on, but that seems to work + # too well not to use. Yes, it is ugly, I know... + workaroundScons = a.fullDepEntry '' + echo '#! ${a.stdenv.shell}' >> o + echo 'g++ -o "$@"' >> o + chmod a+x o + export PATH="$PATH:$PWD" + '' ["minInit"]; + + sconsFlags = [ + "DATADIR=$out/share/globulation2/glob2" + "BINDIR=$out/bin" + "INSTALLDIR=$out/share/globulation2" + ]; + + meta = { + description = "RTS without micromanagement"; + maintainers = with a.lib.maintainers; + [ + raskin + ]; + platforms = with a.lib.platforms; + linux; + license = a.lib.licenses.gpl3; + }; + passthru = { + updateInfo = { + downloadPage = "http://globulation2.org/wiki/Download_and_Install"; + }; + }; +}) x + |