From b3f62db201c5324ba03df121bc05c9c84ac35d3f Mon Sep 17 00:00:00 2001 From: 1000101 Date: Sat, 25 Oct 2025 14:57:08 +0200 Subject: [PATCH] pdfsam-basic: fix --- .../misc/pdfsam-basic/default.nix | 104 ++++++++++++------ pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 69 insertions(+), 39 deletions(-) diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix index 2d73912750a6..b5c131015efb 100644 --- a/pkgs/applications/misc/pdfsam-basic/default.nix +++ b/pkgs/applications/misc/pdfsam-basic/default.nix @@ -3,63 +3,95 @@ stdenv, makeDesktopItem, fetchurl, - jdk21, + temurin-jre-bin-21, + javaPackages, wrapGAppsHook3, - glib, + dpkg, + xorg, + gtk3, + libGL, + alsa-lib, nix-update-script, + desktop-file-utils, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "pdfsam-basic"; - version = "5.3.2"; + version = "5.4.1"; src = fetchurl { - url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam-basic_${version}-1_amd64.deb"; - hash = "sha256-Y0Q9uT6cyxIYTX0JxoS0r3TamPT1iLXr94Zex30AeWo="; + url = "https://github.com/torakiki/pdfsam/releases/download/v${finalAttrs.version}/pdfsam-basic_${finalAttrs.version}-1_amd64.deb"; + hash = "sha256-iM0avC0YwxaB2prWbiKJZ9Fzd/HcdDWJg5IWRmNlVkM="; }; - unpackPhase = '' - ar vx ${src} - tar xvf data.tar.gz - ''; - - nativeBuildInputs = [ wrapGAppsHook3 ]; - buildInputs = [ glib ]; - - preFixup = '' - gappsWrapperArgs+=(--set JAVA_HOME "${jdk21}" --set PDFSAM_JAVA_PATH "${jdk21}") - ''; + nativeBuildInputs = [ + dpkg + wrapGAppsHook3 + desktop-file-utils + ]; installPhase = '' - cp -R opt/pdfsam-basic/ $out/ - mkdir -p "$out"/share/icons - cp --recursive ${desktopItem}/share/applications $out/share - cp $out/icon.svg "$out"/share/icons/pdfsam-basic.svg + runHook preInstall + desktop-file-edit usr/share/applications/pdfsam-basic.desktop \ + --set-key="Exec" --set-value="pdfsam-basic %F" \ + --set-key="Path" --set-value="$out/share/pdfsam-basic" \ + --set-icon="pdfsam-basic" + mkdir $out + cp -r usr/share $out/share + mkdir $out/share/pdfsam-basic + cp -r opt/pdfsam-basic/lib $out/share/pdfsam-basic/lib + install -Dm0644 opt/pdfsam-basic/splash.png $out/share/pdfsam-basic/splash.png + install -Dm0644 opt/pdfsam-basic/icon.svg $out/share/icons/hicolor/scalable/apps/pdfsam-basic.svg + mkdir $out/bin + makeWrapper ${temurin-jre-bin-21}/bin/java $out/bin/pdfsam-basic \ + "''${gappsWrapperArgs[@]}" \ + --set JAVA_HOME ${temurin-jre-bin-21} \ + --set PDFSAM_JAVA_PATH ${temurin-jre-bin-21} \ + --prefix LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ + javaPackages.openjfx23 # PDFSam Basic requires JDK 21 and JavaFX 23 https://github.com/torakiki/pdfsam/issues/785#issuecomment-3446564717 + xorg.libXxf86vm + xorg.libXtst + gtk3 + libGL + alsa-lib + ] + } \ + --add-flags ${ + lib.escapeShellArg ( + lib.escapeShellArgs [ + "--enable-preview" + "--module-path" + "${placeholder "out"}/share/pdfsam-basic/lib" + "--module" + "org.pdfsam.basic/org.pdfsam.basic.App" + "-Xmx512M" + "-splash:${placeholder "out"}/share/pdfsam-basic/splash.png" + "-Dapp.name=\"pdfsam-basic\"" + "-Dapp.pid=\"$$\"" + "-Dapp.home=\"${placeholder "out"}/share/pdfsam-basic\"" + "-Dbasedir=\"${placeholder "out"}/share/pdfsam-basic\"" + "-Dprism.lcdtext=false" + ] + ) + } + runHook postInstall ''; - desktopItem = makeDesktopItem { - name = pname; - exec = pname; - icon = pname; - comment = meta.description; - desktopName = "PDFsam Basic"; - genericName = "PDF Split and Merge"; - mimeTypes = [ "application/pdf" ]; - categories = [ "Office" ]; - }; + dontWrapGApps = true; passthru.updateScript = nix-update-script { }; - meta = with lib; { + meta = { homepage = "https://github.com/torakiki/pdfsam"; description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files"; mainProgram = "pdfsam-basic"; - sourceProvenance = with sourceTypes; [ + sourceProvenance = with lib.sourceTypes; [ binaryBytecode binaryNativeCode ]; - license = licenses.agpl3Plus; + license = lib.licenses.agpl3Plus; platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ _1000101 ]; + maintainers = with lib.maintainers; [ _1000101 ]; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e474e7028100..600b396b0b5d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11922,9 +11922,7 @@ with pkgs; lua = lua5; }; - pdfsam-basic = callPackage ../applications/misc/pdfsam-basic { - jdk21 = openjdk21.override { enableJavaFX = true; }; - }; + pdfsam-basic = callPackage ../applications/misc/pdfsam-basic { }; mupdf-headless = mupdf.override { enableX11 = false;