1{ stdenv, fetchurl, unzip, jre }:
2
3let
4 common = { pname, version, src, description
5 , prog ? null, jar ? null, license ? stdenv.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 stdenv.lib; {
30 inherit description license;
31 homepage = http://saxon.sourceforge.net/;
32 maintainers = with maintainers; [ rvl ];
33 platforms = platforms.all;
34 };
35 };
36
37in {
38 saxon = common {
39 pname = "saxon";
40 version = "6.5.3";
41 src = fetchurl {
42 url = mirror://sourceforge/saxon/saxon6_5_3.zip;
43 sha256 = "0l5y3y2z4wqgh80f26dwwxwncs8v3nkz3nidv14z024lmk730vs3";
44 };
45 description = "XSLT 1.0 processor";
46 # http://saxon.sourceforge.net/saxon6.5.3/conditions.html
47 license = stdenv.lib.licenses.mpl10;
48 };
49
50 saxonb_8_8 = common {
51 pname = "saxonb";
52 version = "8.8";
53 jar = "saxon8";
54 src = fetchurl {
55 url = mirror://sourceforge/saxon/saxonb8-8j.zip;
56 sha256 = "15bzrfyd2f1045rsp9dp4znyhmizh1pm97q8ji2bc0b43q23xsb8";
57 };
58 description = "Complete and conformant processor of XSLT 2.0, XQuery 1.0, and XPath 2.0";
59 };
60
61 saxonb_9_1 = common {
62 pname = "saxonb";
63 version = "9.1.0.8";
64 jar = "saxon9";
65 src = fetchurl {
66 url = mirror://sourceforge/saxon/Saxon-B/9.1.0.8/saxonb9-1-0-8j.zip;
67 sha256 = "1d39jdnwr3v3pzswm81zry6yikqlqy9dp2l2wmpqdiw00r5drg4j";
68 };
69 description = "Complete and conformant processor of XSLT 2.0, XQuery 1.0, and XPath 2.0";
70 };
71
72 saxon-he = common {
73 pname = "saxon-he";
74 version = "9.8.0.6";
75 prog = "saxon-he";
76 jar = "saxon9he";
77 src = fetchurl {
78 url = mirror://sourceforge/saxon/Saxon-HE/9.8/SaxonHE9-8-0-6J.zip;
79 sha256 = "03r4djm298rxz8q7jph63h9niglrl3rifxskq1b3bclx5rgxi2lk";
80 };
81 description = "Processor for XSLT 3.0, XPath 2.0 and 3.1, and XQuery 3.1";
82 };
83}