1{ lib, stdenv, fetchurl, unzip, jre, jre8 }:
2
3let
4 common = { pname, version, src, description, java ? jre
5 , prog ? null, jar ? null, license ? lib.licenses.mpl20 }:
6 stdenv.mkDerivation {
7 name = "${pname}-${version}";
8 inherit pname version src;
9
10 nativeBuildInputs = [ unzip ];
11
12 buildCommand = let
13 prog' = if prog == null then pname else prog;
14 jar' = if jar == null then pname else jar;
15 in ''
16 unzip $src -d $out
17 mkdir -p $out/bin $out/share $out/share/java
18 cp -s "$out"/*.jar "$out/share/java/" # */
19 rm -rf $out/notices
20 mv $out/doc $out/share
21 cat > $out/bin/${prog'} <<EOF
22 #! $shell
23 export JAVA_HOME=${jre}
24 exec ${jre}/bin/java -jar $out/${jar'}.jar "\$@"
25 EOF
26 chmod a+x $out/bin/${prog'}
27 '';
28
29 meta = with lib; {
30 inherit description license;
31 homepage = "https://saxon.sourceforge.net/";
32 sourceProvenance = with sourceTypes; [ binaryBytecode ];
33 maintainers = with maintainers; [ rvl ];
34 platforms = platforms.all;
35 };
36 };
37
38in {
39 saxon = common {
40 pname = "saxon";
41 version = "6.5.3";
42 src = fetchurl {
43 url = "mirror://sourceforge/saxon/saxon6_5_3.zip";
44 sha256 = "0l5y3y2z4wqgh80f26dwwxwncs8v3nkz3nidv14z024lmk730vs3";
45 };
46 description = "XSLT 1.0 processor";
47 # https://saxon.sourceforge.net/saxon6.5.3/conditions.html
48 license = lib.licenses.mpl10;
49 java = jre8;
50 };
51
52 saxonb_8_8 = common {
53 pname = "saxonb";
54 version = "8.8";
55 jar = "saxon8";
56 src = fetchurl {
57 url = "mirror://sourceforge/saxon/saxonb8-8j.zip";
58 sha256 = "15bzrfyd2f1045rsp9dp4znyhmizh1pm97q8ji2bc0b43q23xsb8";
59 };
60 description = "Complete and conformant processor of XSLT 2.0, XQuery 1.0, and XPath 2.0";
61 java = jre8;
62 };
63
64 saxonb_9_1 = common {
65 pname = "saxonb";
66 version = "9.1.0.8";
67 jar = "saxon9";
68 src = fetchurl {
69 url = "mirror://sourceforge/saxon/Saxon-B/9.1.0.8/saxonb9-1-0-8j.zip";
70 sha256 = "1d39jdnwr3v3pzswm81zry6yikqlqy9dp2l2wmpqdiw00r5drg4j";
71 };
72 description = "Complete and conformant processor of XSLT 2.0, XQuery 1.0, and XPath 2.0";
73 };
74
75 saxon-he = common {
76 pname = "saxon-he";
77 version = "9.9.0.1";
78 prog = "saxon-he";
79 jar = "saxon9he";
80 src = fetchurl {
81 url = "mirror://sourceforge/saxon/Saxon-HE/9.9/SaxonHE9-9-0-1J.zip";
82 sha256 = "1inxd7ia7rl9fxfrw8dy9sb7rqv76ipblaki5262688wf2dscs60";
83 };
84 description = "Processor for XSLT 3.0, XPath 2.0 and 3.1, and XQuery 3.1";
85 };
86}