aboutsummaryrefslogtreecommitdiff
path: root/pkgs/games/scid
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2012-12-12 10:39:35 +0100
committeraszlig <aszlig@redmoonstudios.org>2012-12-12 12:36:20 +0100
commit5054e8ec29f06dae986297debc6d0c4e60c9da7a (patch)
treea8b62053467aad2d6de6a9e07e095b6ace62e1b4 /pkgs/games/scid
parent9337078fde929e5379625d12322007f227f734c3 (diff)
scid: New package, version 4.3.
Just saw Michael Raskin's GNU Chess and XBoard updates and did a short check if Scid is already in nixpkgs. It wasn't, so I decided to add it, so thanks to @7c6f434c :-) The package involves a lot of patching, as usual with Tcl/Tk on NixOS. In this case the program is written in C++ and embeds the Tcl/Wish interpreter. Unfortunately this doesn't make it easier to inject TCLLIBPATH, as there doesn't seem to be a direct library call (well in theory you could `lappend TCLLIBPATH`, but that won't help with TK_LIBRARY). Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/games/scid')
-rw-r--r--pkgs/games/scid/default.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/pkgs/games/scid/default.nix b/pkgs/games/scid/default.nix
new file mode 100644
index 000000000000..91ceb74b0c56
--- /dev/null
+++ b/pkgs/games/scid/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, tcl, tk, libX11, zlib, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ name = "scid-${version}";
+ version = "4.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/scid/scid-4.3.tar.bz2";
+ sha256 = "0zb5qp04x8w4gn2kvfdfq2p44kmzfcqn7v167dixz6nlyxg41hrw";
+ };
+
+ buildInputs = [ tcl tk libX11 zlib makeWrapper ];
+
+ prePatch = ''
+ sed -i -e '/^ *set headerPath *{/a ${tcl}/include ${tk}/include' \
+ -e '/^ *set libraryPath *{/a ${tcl}/lib ${tk}/lib' \
+ -e '/^ *set x11Path *{/a ${libX11}/lib/' \
+ configure
+
+ sed -i -e '/^ *set scidShareDir/s|\[file.*|"'"$out/share"'"|' \
+ tcl/config.tcl
+ '';
+
+ configureFlags = [
+ "BINDIR=$(out)/bin"
+ "SHAREDIR=$(out)/share"
+ ];
+
+ dontPatchShebangs = true;
+
+ postFixup = ''
+ for cmd in sc_addmove sc_eco sc_epgn scidpgn \
+ sc_import sc_spell sc_tree spliteco
+ do
+ sed -i -e '1c#!'"$out"'/bin/tcscid' "$out/bin/$cmd"
+ done
+
+ sed -i -e '1c#!${tcl}/bin/tcslsh' "$out/bin/spf2spi"
+ sed -i -e '1c#!${tk}/bin/wish' "$out/bin/sc_remote"
+ sed -i -e '1c#!'"$out"'/bin/tkscid' "$out/bin/scid"
+
+ for cmd in $out/bin/*
+ do
+ wrapProgram "$cmd" \
+ --set TCLLIBPATH "${tcl}/${tcl.libdir}" \
+ --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
+ done
+ '';
+
+ meta = {
+ description = "Chess database with play and training functionality";
+ homepage = "http://scid.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ };
+}