From 451040c2996d4d338559126a17fd7e07ff4c52dc Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Tue, 19 Apr 2011 16:02:29 +0000 Subject: Adding globulation svn path=/nixpkgs/trunk/; revision=26892 --- pkgs/games/globulation/default.nix | 68 +++++++++++++++++++++++++++++++ pkgs/games/globulation/header-order.patch | 23 +++++++++++ 2 files changed, 91 insertions(+) create mode 100644 pkgs/games/globulation/default.nix create mode 100644 pkgs/games/globulation/header-order.patch (limited to 'pkgs/games') diff --git a/pkgs/games/globulation/default.nix b/pkgs/games/globulation/default.nix new file mode 100644 index 0000000000000..efdf5d4708928 --- /dev/null +++ b/pkgs/games/globulation/default.nix @@ -0,0 +1,68 @@ +x@{builderDefsPackage + , mesa, SDL, scons, SDL_ttf, SDL_image, zlib, SDL_net, speex, libvorbis + , libogg, boost, fribidi + , ...}: +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; + }; + + inherit (sourceInfo) name version; + inherit buildInputs; + + /* doConfigure should be removed if not needed */ + phaseNames = ["doUnpack" "doPatch" "workaroundScons" "doScons"]; + + patches = [./header-order.patch]; + + # 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 + diff --git a/pkgs/games/globulation/header-order.patch b/pkgs/games/globulation/header-order.patch new file mode 100644 index 0000000000000..6c8dd922c2553 --- /dev/null +++ b/pkgs/games/globulation/header-order.patch @@ -0,0 +1,23 @@ +With gcc 4.4, compilation of libgag/src/TextStream.cpp fails with the error: +'class GAGCore::StreamBackend' has no member named 'getc'. Reordering +#include's solves the problem. + +Patch from Debian. + +Index: glob2-0.9.4.1/libgag/src/TextStream.cpp +=================================================================== +--- glob2-0.9.4.1.orig/libgag/src/TextStream.cpp 2009-06-27 20:19:38.000000000 +0400 ++++ glob2-0.9.4.1/libgag/src/TextStream.cpp 2009-06-27 20:20:22.000000000 +0400 +@@ -17,11 +17,11 @@ + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +-#include + #include + #include + #include + #include ++#include + #ifdef WIN32 + #define snprintf _snprintf + #define vsnprintf _vsnprintf -- cgit 1.4.1