diff options
-rw-r--r-- | pkgs/build-support/builder-defs/builder-defs.nix | 4 | ||||
-rw-r--r-- | pkgs/games/globulation/default.nix | 68 | ||||
-rw-r--r-- | pkgs/games/globulation/header-order.patch | 23 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
4 files changed, 95 insertions, 2 deletions
diff --git a/pkgs/build-support/builder-defs/builder-defs.nix b/pkgs/build-support/builder-defs/builder-defs.nix index d2407a1dc68c..322d8f615e55 100644 --- a/pkgs/build-support/builder-defs/builder-defs.nix +++ b/pkgs/build-support/builder-defs/builder-defs.nix @@ -403,8 +403,8 @@ let inherit (builtins) head tail trace; in sed -e 's/env *= *Environment *.*/&; env['"'"'ENV'"'"']=os.environ;/' -i SConstruct '' } - scons PREFIX=$out - scons PREFIX=$out install + scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out + scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out install '') ["minInit" "doUnpack" "addInputs" "defEnsureDir"]; /*debug = x:(trace x x); diff --git a/pkgs/games/globulation/default.nix b/pkgs/games/globulation/default.nix new file mode 100644 index 000000000000..efdf5d470892 --- /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 000000000000..6c8dd922c255 --- /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 <TextStream.h> + #include <assert.h> + #include <fstream> + #include <iostream> + #include <stack> ++#include <TextStream.h> + #ifdef WIN32 + #define snprintf _snprintf + #define vsnprintf _vsnprintf diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5e110a177539..d2e094247771 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7167,6 +7167,8 @@ let gl117 = callPackage ../games/gl-117 {}; + globulation2 = callPackage ../games/globulation {}; + gltron = callPackage ../games/gltron { }; gnuchess = callPackage ../games/gnuchess { }; |