Castle-Combat: Start fixing; rewrite using `buildPythonPackage'.

svn path=/nixpkgs/trunk/; revision=23225
This commit is contained in:
Ludovic Courtès 2010-08-18 14:25:07 +00:00
parent e7dd6dcc6a
commit 904c8cfa0a
3 changed files with 33 additions and 32 deletions

View File

@ -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 ];
};
}

View File

@ -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;

View File

@ -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;