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}