base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / text / xml / jing-trang / default.nix
blob0acc471b701742e3c29bf9b8294832880a4a5e3f
1 { lib, stdenv, fetchFromGitHub, jre_headless, jdk_headless, ant, saxon }:
3 stdenv.mkDerivation rec {
4   pname = "jing-trang";
5   version = "20181222";
7   src = fetchFromGitHub {
8     owner = "relaxng";
9     repo = "jing-trang";
10     rev = "V${version}";
11     hash = "sha256-Krupa3MGk5UaaQsaNpPMZuIUzHJytDiksz9ysCPkFS4=";
12     fetchSubmodules = true;
13   };
15   buildInputs = [ jdk_headless ant saxon ];
17   CLASSPATH = "lib/saxon.jar";
19   patches = [
20     ./no-git-during-build.patch
21   ];
23   preBuild = "ant";
25   installPhase = ''
26     mkdir -p "$out"/{share/java,bin}
27     cp ./build/*.jar ./lib/resolver.jar "$out/share/java/"
29     for tool in jing trang; do
30     cat > "$out/bin/$tool" <<EOF
31     #! $SHELL
32     export JAVA_HOME='${jre_headless}'
33     exec '${jre_headless}/bin/java' -jar '$out/share/java/$tool.jar' "\$@"
34     EOF
35     done
37     chmod +x "$out"/bin/*
38   '';
40   doCheck = true;
41   checkPhase = "ant test";
43   meta = with lib; {
44     description = "RELAX NG validator in Java";
45     # The homepage is www.thaiopensource.com, but it links to googlecode.com
46     # for downloads and call it the "project site".
47     homepage = "https://www.thaiopensource.com/relaxng/trang.html";
48     platforms = platforms.unix;
49     sourceProvenance = with sourceTypes; [
50       fromSource
51       binaryBytecode  # source bundles dependencies as jars
52     ];
53     maintainers = [ maintainers.bjornfor ];
54   };