open-pdf-sign: build from source (#466064)

This commit is contained in:
isabel
2025-11-29 11:32:07 +00:00
committed by GitHub
+33 -13
View File
@@ -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";
};
})
}