xconq: fix build and refactor

This commit is contained in:
Pascal Wittmann 2015-07-01 22:06:39 +02:00
parent 0cc53d0711
commit 5f462f0eae

View file

@ -1,55 +1,18 @@
x@{builderDefsPackage
, rpm, cpio, xproto, libX11, libXmu, libXaw, libXt, tcl, tk, libXext
, fontconfig
, makeWrapper
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchurl, cpio, xproto, libX11, libXmu, libXaw, libXt, tcl, tk
, libXext, fontconfig, makeWrapper }:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
baseName="xconq";
version="7.5.0-0pre.0.20050612";
name="${baseName}-${version}";
extension="src.rpm";
project="${baseName}";
url="mirror://sourceforge/project/${project}/${baseName}/${name}/${baseName}-${version}.${extension}";
hash="0i41dz95af2pzmmjz0sc1n0wdxy7gjqlfcl503hw1xd5zza2lw2j";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
stdenv.mkDerivation rec {
name = "${baseName}-${version}";
baseName="xconq";
version = "7.5.0-0pre.0.20050612";
src = fetchurl {
url = "mirror://sourceforge/project/${baseName}/${baseName}/${name}/${name}.tar.gz";
sha256 = "1za78yx57mgwcmmi33wx3533yz1x093dnqis8q2qmqivxav51lca";
};
inherit (sourceInfo) name version;
inherit buildInputs;
/* doConfigure should be removed if not needed */
phaseNames = ["addInputs" "doUnpack" "fixMakefiles" "fixCfiles" "fixTCLfiles"
"doConfigure" "doMakeInstall" "doWrap"];
doWrap = a.makeManyWrappers ''$out/bin/*'' ''--prefix TCLLIBPATH ' ' "${tk}/lib"'';
fixMakefiles = a.fullDepEntry ''
find . -name 'Makefile.in' -exec sed -re 's@^ ( *)(cd|[&][&])@ \1\2@' -i '{}' ';'
find . -name 'Makefile.in' -exec sed -e '/chown/d; /chgrp/d' -i '{}' ';'
sed -e '/^ * *[$][(]tcltkdir[)]\/[*][.][*]/d' -i tcltk/Makefile.in
'' ["minInit" "doUnpack"];
fixCfiles = a.fullDepEntry ''
sed -re 's@[(]int[)]color@(long)color@' -i tcltk/tkmap.c
sed -re '/unitp = view_unit[(]uview[)]/aelse *unitp = NULL\;' -i tcltk/tkmap.c
'' ["minInit" "doUnpack"];
fixTCLfiles = a.fullDepEntry ''
sed -re 's@MediumBlue@LightBlue@g' -i tcltk/tkconq.tcl
'' ["minInit" "doUnpack"];
buildInputs = [ cpio xproto libX11 libXmu libXaw libXt tcl tk libXext
fontconfig makeWrapper ];
configureFlags = [
"--enable-alternate-scoresdir=scores"
@ -57,17 +20,30 @@ rec {
"--with-tkconfig=${tk}/lib"
];
meta = {
description = "A programmable turn-based strategy game";
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
linux;
license = a.lib.licenses.gpl2;
};
passthru = {
};
}) x
patchPhase = ''
# Fix Makefiles
find . -name 'Makefile.in' -exec sed -re 's@^ ( *)(cd|[&][&])@ \1\2@' -i '{}' ';'
find . -name 'Makefile.in' -exec sed -e '/chown/d; /chgrp/d' -i '{}' ';'
sed -e '/^ * *[$][(]tcltkdir[)]\/[*][.][*]/d' -i tcltk/Makefile.in
# Fix C files
sed -re 's@[(]int[)]color@(long)color@' -i tcltk/tkmap.c
sed -re '/unitp = view_unit[(]uview[)]/aelse *unitp = NULL\;' -i tcltk/tkmap.c
# Fix TCL files
sed -re 's@MediumBlue@LightBlue@g' -i tcltk/tkconq.tcl
'';
postInstall = ''
for file in $out/bin/*; do
wrapProgram $file --prefix TCLLIBPATH ' ' "${tk}/lib"
done
'';
meta = with stdenv.lib; {
description = "A programmable turn-based strategy game";
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
license = licenses.gpl2;
};
}