From 904c8cfa0a2e3f013a194fe86425490a2310fc66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Aug 2010 14:25:07 +0000 Subject: [PATCH] Castle-Combat: Start fixing; rewrite using `buildPythonPackage'. svn path=/nixpkgs/trunk/; revision=23225 --- pkgs/games/castle-combat/default.nix | 61 ++++++++++++++-------------- pkgs/top-level/all-packages.nix | 2 +- pkgs/top-level/release.nix | 2 +- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/pkgs/games/castle-combat/default.nix b/pkgs/games/castle-combat/default.nix index 29ebb00f1078..07778363fd54 100644 --- a/pkgs/games/castle-combat/default.nix +++ b/pkgs/games/castle-combat/default.nix @@ -1,54 +1,53 @@ -{ fetchurl, stdenv, python, pygame, twisted, numeric, lib, makeWrapper }: +{ fetchurl, stdenv, buildPythonPackage, pygame, twisted, numeric, makeWrapper }: -stdenv.mkDerivation rec { +buildPythonPackage rec { name = "castle-combat-0.8.1"; + namePrefix = ""; src = fetchurl { url = "mirror://sourceforge/castle-combat/${name}.tar.gz"; sha256 = "1hp4y5dgj88j9g44h4dqiakrgj8lip1krlrdl2qpffin08agrvik"; }; - buildInputs = [ python pygame twisted makeWrapper ]; + buildInputs = [ makeWrapper ]; + propagatedBuildInputs = + [ pygame twisted + + # XXX: `Numeric.pth' should be found by Python but it's not. + # Gobolinux has the same problem: + # http://bugs.python.org/issue1431 . + numeric + ]; patchPhase = '' sed -i "src/common.py" \ -e "s|^data_path *=.*$|data_path = \"$out/share/${name}\"|g" - ''; - buildPhase = ''python setup.py build --build-base "$out"''; - installPhase = '' - python setup.py install --prefix "$out" - - ensureDir "$out/share/${name}" - cp -rv data/* "$out/share/${name}" - - ${postInstall} + mv -v "src/"*.py . + sed -i "setup.py" -e's/"src"/""/g' ''; postInstall = '' - mv "$out/bin/castle-combat.py" "$out/bin/castle-combat" - wrapProgram "$out/bin/castle-combat" \ - --prefix PYTHONPATH ":" \ - ${lib.concatStringsSep ":" - ([ "$out/lib/python2.5/site-packages/src" + ensureDir "$out/share/${name}" + cp -rv "data/"* "$out/share/${name}" - # XXX: `Numeric.pth' should be found by Python but it's not. - # Gobolinux has the same problem: - # http://bugs.python.org/issue1431 . - "${numeric}/lib/python2.5/site-packages/Numeric" ] ++ - (map (path: path + "/lib/python2.5/site-packages") - ([ "${pygame}" "${twisted}" ] - ++ twisted.propagatedBuildInputs)))} \ - \ - --prefix LD_LIBRARY_PATH ":" \ - "$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib" + mv -v "$out/bin/castle-combat.py" "$out/bin/castle-combat" + ''; + postPhases = "fixLoaderPath"; + + fixLoaderPath = + let dollar = "\$"; in + '' sed -i "$out/bin/castle-combat" \ + -e "/^exec/ iexport LD_LIBRARY_PATH=\"$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib\:"'${dollar}'"LD_LIBRARY_PATH\"\\ +export LD_LIBRARY_PATH=\"$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib64\:"'${dollar}'"LD_LIBRARY_PATH\"" + ''; # ^ # `--- The run-time says: "libgcc_s.so.1 must be installed for - # pthread_cancel to work", which means it need help to find it. + # pthread_cancel to work", which means it needs help to find it. - rm -rf "$out/lib/src" - ''; + # No test suite. + doCheck = false; meta = { description = "Castle-Combat, a clone of the old arcade game Rampart"; @@ -64,5 +63,7 @@ stdenv.mkDerivation rec { homepage = http://www.linux-games.com/castle-combat/; license = "unknown"; + + maintainers = [ stdenv.lib.maintainers.ludo ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 041d55712f75..5cad7d29e103 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6395,7 +6395,7 @@ let bsdgames = callPackage ../games/bsdgames { }; - castleCombat = callPackage ../games/castle-combat { }; + castle_combat = callPackage ../games/castle-combat { }; construoBase = callPackage ../games/construo { mesa = null; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index dc5d0f387e90..0ebde53ca396 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -48,7 +48,7 @@ with (import ./release-lib.nix); bvi = all; bzip2 = all; cabextract = all; - castleCombat = linux; + castle_combat = linux; cdrkit = linux; chatzilla = linux; cksfv = all;