about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2010-08-18 14:25:07 +0000
committerLudovic Courtès <ludo@gnu.org>2010-08-18 14:25:07 +0000
commit904c8cfa0a2e3f013a194fe86425490a2310fc66 (patch)
tree754788c7799861fb10710e956fb2d0a9f6ebda31
parente7dd6dcc6ac097ccfd74f552a715888e4d56f25c (diff)
downloadnixlib-904c8cfa0a2e3f013a194fe86425490a2310fc66.tar
nixlib-904c8cfa0a2e3f013a194fe86425490a2310fc66.tar.gz
nixlib-904c8cfa0a2e3f013a194fe86425490a2310fc66.tar.bz2
nixlib-904c8cfa0a2e3f013a194fe86425490a2310fc66.tar.lz
nixlib-904c8cfa0a2e3f013a194fe86425490a2310fc66.tar.xz
nixlib-904c8cfa0a2e3f013a194fe86425490a2310fc66.tar.zst
nixlib-904c8cfa0a2e3f013a194fe86425490a2310fc66.zip
Castle-Combat: Start fixing; rewrite using `buildPythonPackage'.
svn path=/nixpkgs/trunk/; revision=23225
-rw-r--r--pkgs/games/castle-combat/default.nix59
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/release.nix2
3 files changed, 32 insertions, 31 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"
+    mv -v "src/"*.py .
+    sed -i "setup.py" -e's/"src"/""/g'
+  '';
 
+  postInstall = ''
     ensureDir "$out/share/${name}"
-    cp -rv data/* "$out/share/${name}"
+    cp -rv "data/"* "$out/share/${name}"
 
-    ${postInstall}
+    mv -v "$out/bin/castle-combat.py" "$out/bin/castle-combat"
   '';
 
-  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"
-
-            # 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"
+  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;