1{ 2 lib, 3 stdenv, 4 makeDesktopItem, 5 fetchurl, 6 jdk21, 7 wrapGAppsHook3, 8 glib, 9 nix-update-script, 10}: 11 12stdenv.mkDerivation rec { 13 pname = "pdfsam-basic"; 14 version = "5.3.2"; 15 16 src = fetchurl { 17 url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam-basic_${version}-1_amd64.deb"; 18 hash = "sha256-Y0Q9uT6cyxIYTX0JxoS0r3TamPT1iLXr94Zex30AeWo="; 19 }; 20 21 unpackPhase = '' 22 ar vx ${src} 23 tar xvf data.tar.gz 24 ''; 25 26 nativeBuildInputs = [ wrapGAppsHook3 ]; 27 buildInputs = [ glib ]; 28 29 preFixup = '' 30 gappsWrapperArgs+=(--set JAVA_HOME "${jdk21}" --set PDFSAM_JAVA_PATH "${jdk21}") 31 ''; 32 33 installPhase = '' 34 cp -R opt/pdfsam-basic/ $out/ 35 mkdir -p "$out"/share/icons 36 cp --recursive ${desktopItem}/share/applications $out/share 37 cp $out/icon.svg "$out"/share/icons/pdfsam-basic.svg 38 ''; 39 40 desktopItem = makeDesktopItem { 41 name = pname; 42 exec = pname; 43 icon = pname; 44 comment = meta.description; 45 desktopName = "PDFsam Basic"; 46 genericName = "PDF Split and Merge"; 47 mimeTypes = [ "application/pdf" ]; 48 categories = [ "Office" ]; 49 }; 50 51 passthru.updateScript = nix-update-script { }; 52 53 meta = with lib; { 54 homepage = "https://github.com/torakiki/pdfsam"; 55 description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files"; 56 mainProgram = "pdfsam-basic"; 57 sourceProvenance = with sourceTypes; [ 58 binaryBytecode 59 binaryNativeCode 60 ]; 61 license = licenses.agpl3Plus; 62 platforms = [ "x86_64-linux" ]; 63 maintainers = with maintainers; [ _1000101 ]; 64 }; 65}