Unverified Commit 38b542eb authored by Gaétan Lepage's avatar Gaétan Lepage Committed by GitHub
Browse files

pdfsam-basic: fix (#455540)

parents 21c4f04d b3f62db2
Loading
Loading
Loading
Loading
+68 −36
Original line number Diff line number Diff line
@@ -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 ];
  };
}
})
+1 −3
Original line number Diff line number Diff line
@@ -11911,9 +11911,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;