tabula-java: build from source

+24 -12
+24 -12
pkgs/applications/misc/tabula-java/default.nix
··· 1 - { stdenv, lib, fetchurl, jre, makeWrapper }: 1 + { lib 2 + , maven 3 + , fetchFromGitHub 4 + , makeWrapper 5 + , jre 6 + }: 2 7 3 - stdenv.mkDerivation rec { 8 + maven.buildMavenPackage rec { 4 9 pname = "tabula-java"; 5 10 version = "1.0.5"; 6 11 7 - src = fetchurl { 8 - url = "https://github.com/tabulapdf/tabula-java/releases/download/v${version}/tabula-${version}-jar-with-dependencies.jar"; 9 - sha256 = "sha256-IWHj//ZZOdfOCBJHnPnKNoYNtWl/f8H6ARYe1AkqB0U="; 12 + src = fetchFromGitHub { 13 + owner = "tabulapdf"; 14 + repo = "tabula-java"; 15 + rev = "v${version}"; 16 + hash = "sha256-lg8/diyGhfkUU0w7PEOlxb1WNpJZVDDllxMMsTIU/Cw="; 10 17 }; 11 18 12 - nativeBuildInputs = [ makeWrapper ]; 19 + mvnHash = "sha256-yULCBHgctZZU3Deod+nQujssmUy+kgdFdgE3NUuFhOw="; 20 + mvnParameters = "compile assembly:single -Dmaven.test.skip=true"; 13 21 14 - dontUnpack = true; 15 - dontBuild = true; 22 + nativeBuildInputs = [ makeWrapper ]; 16 23 17 24 installPhase = '' 18 - mkdir -pv $out/share/tabula-java 19 - cp -v $src $out/share/tabula-java/tabula-java.jar 25 + runHook preInstall 20 26 21 - makeWrapper ${jre}/bin/java $out/bin/tabula-java --add-flags "-jar $out/share/tabula-java/tabula-java.jar" 27 + mkdir -p $out/{bin,lib} 28 + cp target/tabula-${version}-jar-with-dependencies.jar $out/lib/tabula.jar 29 + 30 + makeWrapper ${jre}/bin/java $out/bin/tabula-java \ 31 + --add-flags "-cp $out/lib/tabula.jar" \ 32 + --add-flags "technology.tabula.CommandLineApp" 33 + 34 + runHook postInstall 22 35 ''; 23 36 24 37 meta = with lib; { ··· 29 42 programmatically extract tables from PDFs. 30 43 ''; 31 44 homepage = "https://tabula.technology/"; 32 - sourceProvenance = with sourceTypes; [ binaryBytecode ]; 33 45 license = licenses.mit; 34 46 maintainers = [ maintainers.jakewaksbaum ]; 35 47 platforms = platforms.all;