about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/gogui
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-08-08 16:04:42 +0000
committerAlyssa Ross <hi@alyssa.is>2023-08-13 06:35:37 +0000
commit12aaa58dac35800b5b7d77f81cf2a87c21ee55da (patch)
treebe0add9e5c22a85d20b5d78206aa74f956eb2a1b /nixpkgs/pkgs/games/gogui
parent45892a5591202f75a1c2f1ca7c62a92c7566e3c5 (diff)
parent5a8e9243812ba528000995b294292d3b5e120947 (diff)
downloadnixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar
nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.gz
nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.bz2
nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.lz
nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.xz
nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.zst
nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts:
	nixpkgs/pkgs/applications/window-managers/sway/default.nix
	nixpkgs/pkgs/build-support/go/module.nix
	nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
	nixpkgs/pkgs/development/libraries/mesa/default.nix
	nixpkgs/pkgs/servers/dict/dictd-db.nix

Link: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/391
Diffstat (limited to 'nixpkgs/pkgs/games/gogui')
-rw-r--r--nixpkgs/pkgs/games/gogui/default.nix88
1 files changed, 77 insertions, 11 deletions
diff --git a/nixpkgs/pkgs/games/gogui/default.nix b/nixpkgs/pkgs/games/gogui/default.nix
index d2c25e031d2e..212f0af0e8e3 100644
--- a/nixpkgs/pkgs/games/gogui/default.nix
+++ b/nixpkgs/pkgs/games/gogui/default.nix
@@ -1,28 +1,94 @@
-{ fetchurl, lib, stdenv, openjdk, unzip, makeWrapper }:
+{ ant
+, docbook-xsl-ns
+, docbook_xml_dtd_42
+, fetchFromGitHub
+, imagemagick
+, lib
+, libxslt
+, makeWrapper
+, openjdk
+, stdenv
+}:
 
 let
-  version = "1.4.9";
+  version = "1.5.3";
 in stdenv.mkDerivation {
   pname = "gogui";
   inherit version;
-  nativeBuildInputs = [ makeWrapper unzip ];
-  src = fetchurl {
-    url = "mirror://sourceforge/project/gogui/gogui/${version}/gogui-${version}.zip";
-    sha256 = "0qk6p1bhi1816n638bg11ljyj6zxvm75jdf02aabzdmmd9slns1j";
+
+  src = fetchFromGitHub {
+    owner = "Remi-Coulom";
+    repo = "gogui";
+    rev = "v${version}";
+    hash = "sha256-GezFhNYB542JnAIUeUVa188+SR5mCedwj0hZN8L83UQ=";
   };
-  dontConfigure = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+    ant
+  ];
+
+  buildInputs = [
+    docbook-xsl-ns
+    imagemagick
+    libxslt
+    openjdk
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    substituteInPlace doc/manual/xml/book.xml \
+      --replace 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 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 {bin,lib} $out/
     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 ":" ${openjdk}/bin
+      wrapProgram $x --prefix PATH ":" ${openjdk}/bin --set GOGUI_JAVA_HOME ${openjdk}
     done
+
+    runHook postInstall
   '';
+
   meta = {
-    maintainers = [ lib.maintainers.cleverca22 ];
+    maintainers = [ lib.maintainers.cleverca22 lib.maintainers.omnipotententity];
     description = "A graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go";
-    homepage = "https://gogui.sourceforge.net/";
+    homepage = "https://github.com/Remi-Coulom/gogui";
     platforms = lib.platforms.unix;
     license = lib.licenses.gpl3;
   };