{ lib , stdenv , fetchFromGitHub , ant , jdk , jre , docbook-xsl-ns , docbook_xml_dtd_42 , imagemagick , libxslt , stripJavaArchivesHook , makeWrapper }: stdenv.mkDerivation (finalAttrs: { pname = "gogui"; version = "1.5.4a"; src = fetchFromGitHub { owner = "Remi-Coulom"; repo = "gogui"; rev = "v${finalAttrs.version}"; hash = "sha256-UFhOk2mAnTtxfwEOHquN64YDCRq7nNUqZAPQf77MEEw="; }; nativeBuildInputs = [ ant jdk docbook-xsl-ns imagemagick libxslt stripJavaArchivesHook makeWrapper ]; buildPhase = '' runHook preBuild substituteInPlace doc/manual/xml/book.xml \ --replace-fail http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd \ ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd substituteInPlace doc/manual/xml/manpages.xml \ --replace-fail http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd \ ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd # generate required gui images from svg # see https://github.com/Remi-Coulom/gogui/issues/36 sizes=( 16x16 24x24 32x32 48x48 64x64 ) for i in src/net/sf/gogui/images/*.svg; do for j in ''${sizes[@]}; do convert $i -resize $j src/net/sf/gogui/images/$(basename $i .svg)-''${j}.png done done for i in src/net/sf/gogui/images/gogui-{black,white,setup}.svg; do convert $i -resize 8x8 src/net/sf/gogui/images/$(basename $i .svg)-8x8.png done ant -Ddocbook-xsl.dir=${docbook-xsl-ns}/xml/xsl/docbook runHook postBuild ''; installPhase = '' runHook preInstall # copy documentation mkdir -p $out/share/doc mv -vi doc $out/share/doc/gogui # make man pages available mkdir -p $out/share/man/ ln -s $out/share/doc/gogui/manual/man $out/share/man/man1 # copy programs mv -vi bin lib $out/ # wrap programs for x in $out/bin/*; do wrapProgram $x \ --prefix PATH : ${jre}/bin \ --set GOGUI_JAVA_HOME ${jre} done runHook postInstall ''; meta = { description = "Graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go"; homepage = "https://github.com/Remi-Coulom/gogui"; license = lib.licenses.gpl3Plus; mainProgram = "gogui"; maintainers = with lib.maintainers; [ cleverca22 omnipotententity ]; platforms = lib.platforms.unix; }; })