nixpkgs/pkgs/games/crafty/default.nix
Samuel Rivas cc79c1c9f0 crafty: 23.4 -> 25.0.1
Fix crafty and update to latest version

 * Download URLs changed to www.craftychess.com
 * crafty 23.4 doesn't quite build, updated to latest
 * Modify the wrapping script so that the books are in the user's home (so that
   they can be easily modified and also so that crafty can learn)
 * End game table bases are no longer available (should be built) removed from
   now
 * Platform specific targets changed, I can only test linux, so removed darwin
   for now
 * The enormous pgn is no longer available, removed
 * Removed craftyfull

update urls

move the books to HOME

So that learning works and we can modify books to control openings

remove leftovers

Delete unused parts

I have no idea how to build for ios, so I fixed linux build only (ios build was
broken anyway, so I removed it)

I couldn't find the new end game table bases, so I removed them for now.
2016-10-04 20:06:10 +02:00

74 lines
1.9 KiB
Nix

{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
name = "crafty-${version}";
version = "25.0.1";
src = fetchurl {
url = "http://www.craftychess.com/downloads/source/crafty-${version}.zip";
sha256 = "0aqgj2q7kdlgbha01qs869cwyja13bc7q2lh4nfhlba2pklknsm8";
};
bookBin = fetchurl {
url = http://www.craftychess.com/downloads/book/book.bin;
sha256 = "10rrgkr3hxm7pxdbc2jq8b5g74gfhzk4smahks3k8am1cmyq4p7r";
};
startPgn = fetchurl {
url = http://craftychess.com/downloads/book/start.pgn.gz;
sha256 = "12g70mgfifwssfvndzq94pin34dizlixhsga75vgj7dakysi2p7f";
};
buildInputs = [ unzip ];
unpackPhase = ''
mkdir "craftysrc"
unzip $src -d craftysrc
gunzip -c $startPgn > "craftysrc/start.pgn"
'';
buildPhase = ''
cd craftysrc
make unix-gcc
'';
installPhase = ''
BUILDDIR="$PWD"
mkdir -p $out/bin
cp -p ./crafty $out/bin
mkdir -p $out/share/crafty
cd $out/share/crafty
$out/bin/crafty "books create $BUILDDIR/start.pgn 60"
rm -f *.001
cp -p ${bookBin} $out/share/crafty/book.bin
mv $out/bin/crafty $out/bin/.crafty-wrapped
cat - > $out/bin/crafty <<EOF
#! ${stdenv.shell}
#
# The books are copied from share/crafty to ~/.crafty/books the first time
# this script is run. You can restore them at any time just copying them
# again.
if [[ ! -d "\$HOME/.crafty/books" ]]; then
mkdir "\$HOME/.crafty/books" -p
cp "$out/share/crafty/"book*.bin "\$HOME/.crafty/books"
chmod ug+w "\$HOME/.crafty/books/"*
fi
exec $out/bin/.crafty-wrapped bookpath=\$HOME/.crafty/books "\$@"
EOF
chmod +x $out/bin/crafty
'';
meta = {
homepage = http://www.craftychess.com/;
description = "Chess program developed by Dr. Robert M. Hyatt";
license = stdenv.lib.licenses.unfree;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.jwiegley ];
};
}