diff options
Diffstat (limited to 'nixpkgs/pkgs/games/crafty/default.nix')
-rw-r--r-- | nixpkgs/pkgs/games/crafty/default.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/crafty/default.nix b/nixpkgs/pkgs/games/crafty/default.nix new file mode 100644 index 000000000000..9526512f15cc --- /dev/null +++ b/nixpkgs/pkgs/games/crafty/default.nix @@ -0,0 +1,73 @@ +{ 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 ]; + }; +} |