pdfsam-basic: fix

This commit is contained in:
1000101
2025-10-25 21:46:43 +02:00
parent 856659c776
commit b3f62db201
2 changed files with 69 additions and 39 deletions
+68 -36
View File
@@ -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
View File
@@ -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;