Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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})