1{
2 lib,
3 stdenvNoCC,
4 fetchurl,
5 jre,
6 rhino,
7 stripJavaArchivesHook,
8 makeWrapper,
9}:
10
11stdenvNoCC.mkDerivation (finalAttrs: {
12 pname = "batik";
13 version = "1.19";
14
15 src = fetchurl {
16 url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${finalAttrs.version}.tar.gz";
17 hash = "sha256-1KuzhFSEv+GJqA83QZuUx35mvUuLueW/cs5wvIZe2yI=";
18 };
19
20 nativeBuildInputs = [
21 stripJavaArchivesHook
22 makeWrapper
23 ];
24
25 buildInputs = [
26 jre
27 rhino
28 ];
29
30 patchPhase = ''
31 # Vendored dependencies
32 rm lib/rhino-*.jar
33 '';
34
35 installPhase = ''
36 mkdir -p $out/bin $out/share/java
37 cp *.jar lib/*.jar $out/share/java
38 chmod +x $out/share/java/*.jar
39 classpath="$(find $out/share/java -name '*.jar' -printf '${rhino}/share/java/js.jar:%h/%f')"
40 for appName in rasterizer slideshow squiggle svgpp ttf2svg; do
41 makeWrapper ${lib.getExe jre} $out/bin/batik-$appName \
42 --add-flags "-jar $out/share/java/batik-all-${finalAttrs.version}.jar" \
43 --add-flags "-classpath $classpath" \
44 --add-flags "org.apache.batik.apps.$appName.Main"
45 done
46 '';
47
48 meta = with lib; {
49 description = "Java based toolkit for handling SVG";
50 homepage = "https://xmlgraphics.apache.org/batik";
51 license = licenses.asl20;
52 platforms = platforms.unix;
53 sourceProvenance = with sourceTypes; [ binaryBytecode ];
54 };
55})