1{
2 lib,
3 stdenv,
4 fetchurl,
5 autoPatchelfHook,
6 libsForQt5,
7 cups,
8 libinput,
9 mtdev,
10 nss,
11 pkcs11helper,
12 sane-backends,
13 common-updater-scripts,
14 nix-update,
15 writeShellScript,
16}:
17
18stdenv.mkDerivation (finalAttrs: {
19 pname = "masterpdfeditor";
20 version = "5.9.89";
21
22 src =
23 let
24 selectSystem = attrs: attrs.${stdenv.hostPlatform.system};
25 in
26 fetchurl {
27 url = selectSystem {
28 x86_64-linux = "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.x86_64-qt_include.tar.gz";
29 aarch64-linux = "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.arm64.tar.gz";
30 };
31 hash = selectSystem {
32 x86_64-linux = "sha256-HTYFo3tZD1JiYpsx/q9mr1Sp9JIWA6Kp0ThzmDcvxmo=";
33 aarch64-linux = "sha256-uxCp9iv4923Qbyd2IldHm1/a50GU6VISSG6jfVzQqq4=";
34 };
35 };
36
37 nativeBuildInputs = [
38 autoPatchelfHook
39 libsForQt5.wrapQtAppsHook
40 ];
41
42 buildInputs = [
43 (lib.getLib stdenv.cc.cc)
44 cups
45 libsForQt5.qtbase
46 libsForQt5.qtsvg
47 libinput
48 mtdev
49 nss
50 pkcs11helper
51 sane-backends
52 ];
53
54 dontStrip = true;
55
56 installPhase = ''
57 runHook preInstall
58
59 substituteInPlace usr/share/applications/net.code-industry.masterpdfeditor5.desktop \
60 --replace-fail "Exec=/opt/master-pdf-editor-5/masterpdfeditor5" "Exec=masterpdfeditor5" \
61 --replace-fail "Path=/opt/master-pdf-editor-5" "Path=$out/share/masterpdfeditor" \
62 --replace-fail "/opt/master-pdf-editor-5/masterpdfeditor5.png" "masterpdfeditor5"
63 cp -r usr $out
64 install -Dm755 masterpdfeditor5 -t $out/share/masterpdfeditor
65 cp -r stamps templates lang fonts $out/share/masterpdfeditor
66 mkdir $out/bin
67 ln -s $out/share/masterpdfeditor/masterpdfeditor5 $out/bin/masterpdfeditor5
68
69 runHook postInstall
70 '';
71
72 preFixup = ''
73 patchelf $out/share/masterpdfeditor/masterpdfeditor5 \
74 --add-needed libsmime3.so
75 '';
76
77 passthru.updateScript = writeShellScript "update-masterpdfeditor" ''
78 latestVersion=$(curl -s https://code-industry.net/downloads/ | grep -A1 "fa-linux" | grep -oP 'Version\s+\K[\d.]+' | head -n 1)
79 ${lib.getExe nix-update} masterpdfeditor --version $latestVersion --system x86_64-linux
80 ${lib.getExe' common-updater-scripts "update-source-version"} masterpdfeditor $latestVersion --system=aarch64-linux --ignore-same-version
81 '';
82
83 meta = {
84 description = "Master PDF Editor";
85 homepage = "https://code-industry.net/free-pdf-editor/";
86 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
87 license = lib.licenses.unfreeRedistributable;
88 platforms = [
89 "x86_64-linux"
90 "aarch64-linux"
91 ];
92 maintainers = with lib.maintainers; [ cmcdragonkai ];
93 mainProgram = "masterpdfeditor5";
94 };
95})