mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-16 18:53:17 +00:00
82b74001f0
* All JARs end up in $out/share/java, and a few wrappers for the applications are made in $out/bin (closes #50932). * stdenv -> stdenvNoCC, since no compilers are needed in any stages. * Remove the vendored Rhino JavaScript engine and replace it with our Nixpkgs one. * Add the stripJavaArchivesHook. This is hopefully a large improvement over the previous derivation (which simply copied the binary tarball into $out).
56 lines
1.3 KiB
Nix
56 lines
1.3 KiB
Nix
{
|
|
lib,
|
|
stdenvNoCC,
|
|
fetchurl,
|
|
jre,
|
|
rhino,
|
|
stripJavaArchivesHook,
|
|
makeWrapper,
|
|
}:
|
|
|
|
stdenvNoCC.mkDerivation (finalAttrs: {
|
|
pname = "batik";
|
|
version = "1.17";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${finalAttrs.version}.tar.gz";
|
|
hash = "sha256-sEJphF3grlwZCEt3gHHm4JF8RpvKKBLLvKXf2lu/dhA=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
stripJavaArchivesHook
|
|
makeWrapper
|
|
];
|
|
|
|
buildInputs = [
|
|
jre
|
|
rhino
|
|
];
|
|
|
|
patchPhase = ''
|
|
# Vendored dependencies
|
|
rm lib/rhino-*.jar
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin $out/share/java
|
|
cp *.jar lib/*.jar $out/share/java
|
|
chmod +x $out/share/java/*.jar
|
|
classpath="$(find $out/share/java -name '*.jar' -printf '${rhino}/share/java/js.jar:%h/%f')"
|
|
for appName in rasterizer slideshow squiggle svgpp ttf2svg; do
|
|
makeWrapper ${lib.getExe jre} $out/bin/batik-$appName \
|
|
--add-flags "-jar $out/share/java/batik-all-${finalAttrs.version}.jar" \
|
|
--add-flags "-classpath $classpath" \
|
|
--add-flags "org.apache.batik.apps.$appName.Main"
|
|
done
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Java based toolkit for handling SVG";
|
|
homepage = "https://xmlgraphics.apache.org/batik";
|
|
license = licenses.asl20;
|
|
platforms = platforms.unix;
|
|
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
|
};
|
|
})
|