pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / gogui / default.nix
blobe83516d1c7d0e4e98acba8b33fbd9e3aa0983c22
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , ant
5 , jdk
6 , jre
7 , docbook-xsl-ns
8 , docbook_xml_dtd_42
9 , imagemagick
10 , libxslt
11 , stripJavaArchivesHook
12 , makeWrapper
15 stdenv.mkDerivation (finalAttrs: {
16   pname = "gogui";
17   version = "1.5.4a";
19   src = fetchFromGitHub {
20     owner = "Remi-Coulom";
21     repo = "gogui";
22     rev = "v${finalAttrs.version}";
23     hash = "sha256-UFhOk2mAnTtxfwEOHquN64YDCRq7nNUqZAPQf77MEEw=";
24   };
26   nativeBuildInputs = [
27     ant
28     jdk
29     docbook-xsl-ns
30     imagemagick
31     libxslt
32     stripJavaArchivesHook
33     makeWrapper
34   ];
36   buildPhase = ''
37     runHook preBuild
39     substituteInPlace doc/manual/xml/book.xml \
40       --replace-fail http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd \
41       ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd
42     substituteInPlace doc/manual/xml/manpages.xml \
43       --replace-fail http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd \
44       ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd
46     # generate required gui images from svg
47     # see https://github.com/Remi-Coulom/gogui/issues/36
48     sizes=( 16x16 24x24 32x32 48x48 64x64 )
49     for i in src/net/sf/gogui/images/*.svg; do
50       for j in ''${sizes[@]}; do
51         convert $i -resize $j src/net/sf/gogui/images/$(basename $i .svg)-''${j}.png
52       done
53     done
55     for i in src/net/sf/gogui/images/gogui-{black,white,setup}.svg; do
56       convert $i -resize 8x8 src/net/sf/gogui/images/$(basename $i .svg)-8x8.png
57     done
59     ant -Ddocbook-xsl.dir=${docbook-xsl-ns}/xml/xsl/docbook
61     runHook postBuild
62   '';
64   installPhase = ''
65     runHook preInstall
67     # copy documentation
68     mkdir -p $out/share/doc
69     mv -vi doc $out/share/doc/gogui
71     # make man pages available
72     mkdir -p $out/share/man/
73     ln -s $out/share/doc/gogui/manual/man $out/share/man/man1
75     # copy programs
76     mv -vi bin lib $out/
78     # wrap programs
79     for x in $out/bin/*; do
80         wrapProgram $x \
81             --prefix PATH : ${jre}/bin \
82             --set GOGUI_JAVA_HOME ${jre}
83     done
85     runHook postInstall
86   '';
88   meta = {
89     description = "Graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go";
90     homepage = "https://github.com/Remi-Coulom/gogui";
91     license = lib.licenses.gpl3Plus;
92     mainProgram = "gogui";
93     maintainers = with lib.maintainers; [ cleverca22 omnipotententity ];
94     platforms = lib.platforms.unix;
95   };