diff --git a/pkgs/by-name/op/open-pdf-sign/package.nix b/pkgs/by-name/op/open-pdf-sign/package.nix index cc7470ea4f59..a18188ecbd93 100644 --- a/pkgs/by-name/op/open-pdf-sign/package.nix +++ b/pkgs/by-name/op/open-pdf-sign/package.nix @@ -1,31 +1,53 @@ { - fetchurl, jre, lib, makeBinaryWrapper, nix-update-script, - stdenv, + fetchFromGitHub, + maven, }: -stdenv.mkDerivation (finalAttrs: { +maven.buildMavenPackage rec { version = "0.3.0"; pname = "open-pdf-sign"; - src = fetchurl { - url = "https://github.com/open-pdf-sign/open-pdf-sign/releases/download/v${finalAttrs.version}/open-pdf-sign.jar"; - hash = "sha256-tGTWKw/xLhC1B+uogTUmWHUtHNNdE3BLuxToWvrduXs="; + src = fetchFromGitHub { + owner = "open-pdf-sign"; + repo = "open-pdf-sign"; + tag = "v${version}"; + hash = "sha256-4PkTm9nsIsCrXaLJePDvGalO726BVKhbK2bpFzg9ec0="; }; + postPatch = '' + # Get package version from CLI, not from git(which doesn't exist in the build environment) + substituteInPlace pom.xml \ + --replace-fail 'hint="git"' 'hint="sysprop"' \ + + sed -i '/dirtyQualifier/d' ./pom.xml + ''; + + mvnHash = "sha256-5DgCjqKPc/y4vDX8pl4Qnm1KsCOpCdUVNiihpvcCzBU="; + + # Disable test requires the network, we also set the version + mvnParameters = lib.escapeShellArgs [ + "-Dtest=!SignerTest#testSignPdf" + "-Dexternal.version=${version}" + ]; + nativeBuildInputs = [ makeBinaryWrapper ]; - buildCommand = '' - install -Dm644 $src $out/lib/open-pdf-sign.jar + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/open-pdf-sign + mv target/openpdfsign-${version}-jar-with-dependencies.jar $out/share/open-pdf-sign/open-pdf-sign.jar - mkdir -p $out/bin makeWrapper ${lib.getExe jre} $out/bin/open-pdf-sign \ - --add-flags "-jar $out/lib/open-pdf-sign.jar" + --add-flags "-jar $out/share/open-pdf-sign/open-pdf-sign.jar" + + runHook postInstall ''; passthru = { @@ -37,8 +59,6 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/open-pdf-sign/open-pdf-sign"; license = lib.licenses.asl20; maintainers = [ ]; - platforms = lib.platforms.unix; - sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; mainProgram = "open-pdf-sign"; }; -}) +}