From a61904dfa1570c6d36aadeb55a764deacf46012b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 10 Dec 2025 14:06:10 +0200 Subject: [PATCH 1/2] pdfsam-basic: add doronbehar to maintainers --- pkgs/by-name/pd/pdfsam-basic/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/pd/pdfsam-basic/package.nix b/pkgs/by-name/pd/pdfsam-basic/package.nix index f6b12b600ba7..4f687d017bde 100644 --- a/pkgs/by-name/pd/pdfsam-basic/package.nix +++ b/pkgs/by-name/pd/pdfsam-basic/package.nix @@ -92,6 +92,9 @@ stdenv.mkDerivation (finalAttrs: { ]; license = lib.licenses.agpl3Plus; platforms = [ "x86_64-linux" ]; - maintainers = with lib.maintainers; [ _1000101 ]; + maintainers = with lib.maintainers; [ + doronbehar + _1000101 + ]; }; }) From d46a735b970b943acc495ea25e0335d5f20e4107 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 14 Apr 2024 13:07:36 +0300 Subject: [PATCH 2/2] pdfsam-basic: build from source Fixes #435448 . --- pkgs/by-name/pd/pdfsam-basic/package.nix | 143 +++++++++++++---------- 1 file changed, 81 insertions(+), 62 deletions(-) diff --git a/pkgs/by-name/pd/pdfsam-basic/package.nix b/pkgs/by-name/pd/pdfsam-basic/package.nix index 4f687d017bde..df21b569d00e 100644 --- a/pkgs/by-name/pd/pdfsam-basic/package.nix +++ b/pkgs/by-name/pd/pdfsam-basic/package.nix @@ -1,86 +1,105 @@ { lib, - stdenv, + maven, makeDesktopItem, - fetchurl, + fetchFromGitHub, temurin-jre-bin-21, - javaPackages, - wrapGAppsHook3, - dpkg, - xorg, + temurin-bin-21, + glib, + libxxf86vm, + libxtst, gtk3, libGL, - alsa-lib, - nix-update-script, - desktop-file-utils, + + # native + copyDesktopItems, + wrapGAppsHook3, + gettext, }: -stdenv.mkDerivation (finalAttrs: { +let + mavenOurJdk = maven.override { + jdk_headless = temurin-jre-bin-21; + }; +in +mavenOurJdk.buildMavenPackage rec { pname = "pdfsam-basic"; version = "5.4.1"; - src = fetchurl { - url = "https://github.com/torakiki/pdfsam/releases/download/v${finalAttrs.version}/pdfsam-basic_${finalAttrs.version}-1_amd64.deb"; - hash = "sha256-iM0avC0YwxaB2prWbiKJZ9Fzd/HcdDWJg5IWRmNlVkM="; + src = fetchFromGitHub { + owner = "torakiki"; + repo = "pdfsam"; + rev = "v${version}"; + hash = "sha256-9IzYnWYE0OD1b4xybl3NdaBvVSw6C4+1ORUnrotqSuc="; }; + mvnParameters = "-Drelease -Dmaven.test.skip"; + mvnHash = "sha256-Y/wz/XuzDpT7qnk/pRBkv6PeI0GmqKXh54gqb7cWHHw="; + + buildInputs = [ + glib + libxxf86vm + ]; + nativeBuildInputs = [ - dpkg + # Used as the main java implementation. Also the build relies upon jlink + # which is included in this package. + temurin-bin-21 + gettext wrapGAppsHook3 - desktop-file-utils + copyDesktopItems ]; installPhase = '' 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.openjfx25 # 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" - ] - ) - } + + install -Dm0644 pdfsam-basic/src/deb/icon.svg $out/share/icons/pdfsam-basic.svg + mkdir $out/lib + tar -xf pdfsam-basic/target/pdfsam-basic-${version}-linux-x64.tar.gz -C $out/lib + mv $out/lib/pdfsam-basic-${version}-linux-x64 $out/lib/pdfsam-basic + # Based upon upstream's default $out/lib/pdfsam-basic/bin/pdfsam.sh file, + # but with Nix specific dynamically loaded libraries + makeWrapper ${temurin-jre-bin-21}/bin/java $out/bin/pdfsam-basic \ + "''${gappsWrapperArgs[@]}" \ + --prefix LD_LIBRARY_PATH : "${ + lib.makeLibraryPath [ + libxxf86vm + libxtst + gtk3 + libGL + ] + }" \ + --argv0 pdfsam-basic \ + --add-flags --enable-preview \ + --add-flags "--module-path $out/lib/pdfsam-basic/lib" \ + --add-flags "--module org.pdfsam.basic/org.pdfsam.basic.App" \ + --add-flags "-Xmx512M" \ + --add-flags "-Dprism.lcdtext=false" \ + --add-flags "-splash:$out/lib/pdfsam-basic/splash.png" \ + --add-flags "-Dapp.name=pdfsam-basic" \ + --add-flags "-Dapp.home=$out/lib/pdfsam-basic" \ + --add-flags "-Dbasedir=$out/lib/pdfsam-basic" + # Remove bundled executables, shared objects etc, that are not needed on + # Nix (we just need the jar files). + rm -r $out/lib/pdfsam-basic/{doc,bin,runtime} + runHook postInstall ''; - dontWrapGApps = true; - - passthru.updateScript = nix-update-script { }; + # Based on upstream's desktop file: + # https://github.com/torakiki/pdfsam/blob/master/pdfsam-basic/src/deb/pdfsam-basic.desktop + desktopItems = [ + (makeDesktopItem { + name = "PDFsam Basic"; + exec = "pdfsam-basic"; + icon = "pdfsam-basic"; + comment = meta.description; + desktopName = "PDFsam Basic"; + genericName = "PDF Split and Merge"; + mimeTypes = [ "application/pdf" ]; + categories = [ "Office" ]; + }) + ]; meta = { homepage = "https://github.com/torakiki/pdfsam"; @@ -97,4 +116,4 @@ stdenv.mkDerivation (finalAttrs: { _1000101 ]; }; -}) +}