diff --git a/pkgs/by-name/ve/verapdf-gui/package.nix b/pkgs/by-name/ve/verapdf-gui/package.nix new file mode 100644 index 000000000000..67d9771c918c --- /dev/null +++ b/pkgs/by-name/ve/verapdf-gui/package.nix @@ -0,0 +1,5 @@ +{ verapdf }: +verapdf.override { + withCli = false; + withGui = true; +} diff --git a/pkgs/by-name/ve/verapdf/package.nix b/pkgs/by-name/ve/verapdf/package.nix index e6d74bc67432..2cb5874cc115 100644 --- a/pkgs/by-name/ve/verapdf/package.nix +++ b/pkgs/by-name/ve/verapdf/package.nix @@ -7,10 +7,14 @@ makeDesktopItem, copyDesktopItems, jre, + versionCheckHook, + withCli ? true, + withGui ? false, }: maven.buildMavenPackage rec { - pname = "verapdf"; - version = "1.28.2"; + pname = "verapdf" + lib.optionalString (withGui && !withCli) "-gui"; + version = "1.30.1"; + __structuredAttrs = true; mvnParameters = "-pl '!installer' -Dverapdf.timestamp=1980-01-01T00:00:02Z -Dproject.build.outputTimestamp=1980-01-01T00:00:02Z " @@ -27,13 +31,15 @@ maven.buildMavenPackage rec { src = fetchFromGitHub { owner = "veraPDF"; repo = "veraPDF-apps"; - rev = "v${version}"; - hash = "sha256-tv5iffIQkyjHyulnmagcJuSGbc4tXRYTwB3hSEGLQrc="; + tag = "v${version}"; + hash = "sha256-IoQbAYEUJuK5FxGSxiLfcn5X1KOJca70hu4cMaYXfmw="; }; patches = [ ./stable-maven-plugins.patch ]; - mvnHash = "sha256-CrpiomKsAyD7SyVzwbjVXy8BoVnkejQVcim+kwVP5Ng="; + mvnHash = "sha256-hY+zPuSujMr3RntuLOZVEN8GN4n8201+S5OYvwB1+j4="; + + strictDeps = true; nativeBuildInputs = [ makeWrapper @@ -45,18 +51,22 @@ maven.buildMavenPackage rec { runHook preInstall mkdir -p $out/bin $out/share - - install -Dm644 greenfield-apps/target/greenfield-apps-${lib.versions.majorMinor version}.0.jar $out/share/verapdf.jar - - makeWrapper ${jre}/bin/java $out/bin/verapdf-gui --add-flags "-jar $out/share/verapdf.jar" - makeWrapper ${jre}/bin/java $out/bin/verapdf --add-flags "-cp $out/share/verapdf.jar org.verapdf.apps.GreenfieldCliWrapper" + '' + + lib.optionalString withCli '' + install -Dm644 cli/target/cli-${lib.versions.majorMinor version}.0.jar $out/share/verapdf.jar + makeWrapper ${lib.getExe jre} $out/bin/verapdf --add-flags "-jar $out/share/verapdf.jar" + '' + + lib.optionalString withGui '' + install -Dm644 gui/target/gui-${lib.versions.majorMinor version}.0.jar $out/share/verapdf-gui.jar + makeWrapper ${lib.getExe jre} $out/bin/verapdf-gui --add-flags "-jar $out/share/verapdf-gui.jar" install -Dm644 gui/src/main/resources/org/verapdf/gui/images/icon.png $out/share/icons/hicolor/256x256/apps/verapdf.png - + '' + + '' runHook postInstall ''; - desktopItems = [ + desktopItems = lib.optionals withGui [ (makeDesktopItem { name = "veraPDF"; comment = meta.description; @@ -73,7 +83,21 @@ maven.buildMavenPackage rec { }) ]; + # GUI has no --version flag + doInstallCheck = withCli; + + nativeInstallCheckInputs = [ + versionCheckHook + ]; + + versionCheckProgram = "${placeholder "out"}/bin/verapdf"; + + preVersionCheck = '' + version=${lib.versions.majorMinor version}.0 + ''; + meta = { + changelog = "https://github.com/veraPDF/veraPDF-library/blob/${src.tag}/RELEASENOTES.md"; description = "Command line and GUI industry supported PDF/A and PDF/UA Validation"; homepage = "https://github.com/veraPDF/veraPDF-apps"; license = [ @@ -81,10 +105,15 @@ maven.buildMavenPackage rec { # or lib.licenses.mpl20 ]; - mainProgram = "verapdf-gui"; maintainers = [ lib.maintainers.mohe2015 lib.maintainers.kilianar ]; + } + // lib.optionalAttrs (withCli && !withGui) { + mainProgram = "verapdf"; + } + // lib.optionalAttrs (withGui && !withCli) { + mainProgram = "verapdf-gui"; }; }