From 5dd893e2aaa570a2aa5227ff2356043dc8a27e5c Mon Sep 17 00:00:00 2001 From: Matteo Pacini Date: Thu, 27 Jun 2024 21:08:07 +0100 Subject: [PATCH] protonmail-desktop: darwin support, add maintainer --- .../by-name/pr/protonmail-desktop/package.nix | 76 +++++++++++++------ 1 file changed, 53 insertions(+), 23 deletions(-) diff --git a/pkgs/by-name/pr/protonmail-desktop/package.nix b/pkgs/by-name/pr/protonmail-desktop/package.nix index d9bf72cfae21..3a500fe0c769 100644 --- a/pkgs/by-name/pr/protonmail-desktop/package.nix +++ b/pkgs/by-name/pr/protonmail-desktop/package.nix @@ -1,36 +1,63 @@ -{ lib -, stdenv -, fetchurl -, makeWrapper -, dpkg -, electron +{ + lib, + stdenv, + fetchurl, + makeWrapper, + dpkg, + electron, + unzip, }: let mainProgram = "proton-mail"; -in stdenv.mkDerivation rec { +in +stdenv.mkDerivation rec { pname = "protonmail-desktop"; version = "1.0.4"; - src = fetchurl { - url = "https://github.com/ProtonMail/inbox-desktop/releases/download/v${version}/proton-mail_${version}_amd64.deb"; - hash = "sha256-KY/rjiJozOQW27FYljy5N1VKuKroJz3V485DPaH01JY="; - }; + src = + { + "x86_64-linux" = fetchurl { + url = "https://github.com/ProtonMail/inbox-desktop/releases/download/v${version}/proton-mail_${version}_amd64.deb"; + hash = "sha256-KY/rjiJozOQW27FYljy5N1VKuKroJz3V485DPaH01JY="; + }; + "x86_64-darwin" = fetchurl { + url = "https://github.com/ProtonMail/inbox-desktop/releases/download/v${version}/Proton.Mail-darwin-x64-${version}.zip"; + hash = "sha256-I5Yj1JR3DaAmC6WKI4X/d/q9rvmsck9SE3Mx3AY6yvU="; + }; + "aarch64-darwin" = fetchurl { + url = "https://github.com/ProtonMail/inbox-desktop/releases/download/v${version}/Proton.Mail-darwin-arm64-${version}.zip"; + hash = "sha256-j1F8hhLSq/C1WQXGrYnvFK8nNz4qwoA1ohNzPsS3tiY="; + }; + } + .${stdenv.hostPlatform.system}; + + sourceRoot = lib.optionalString stdenv.isDarwin "."; dontConfigure = true; dontBuild = true; - nativeBuildInputs = [ dpkg makeWrapper ]; + nativeBuildInputs = [ + makeWrapper + ] ++ lib.optional stdenv.isLinux dpkg ++ lib.optional stdenv.isDarwin unzip; - installPhase = '' - runHook preInstall - mkdir -p $out - cp -r usr/share/ $out/ - cp -r usr/lib/proton-mail/resources/app.asar $out/share/ - runHook postInstall - ''; + installPhase = + lib.optionalString stdenv.isLinux '' + runHook preInstall + mkdir -p $out + cp -r usr/share/ $out/ + cp -r usr/lib/proton-mail/resources/app.asar $out/share/ + runHook postInstall + '' + + lib.optionalString stdenv.isDarwin '' + runHook preInstall + mkdir -p $out/{Applications,bin} + cp -r "Proton Mail.app" $out/Applications/ + makeWrapper $out/Applications/"Proton Mail.app"/Contents/MacOS/Proton\ Mail $out/bin/protonmail-desktop + runHook postInstall + ''; - preFixup = '' + preFixup = lib.optionalString stdenv.isLinux '' makeWrapper ${lib.getExe electron} $out/bin/${mainProgram} \ --add-flags $out/share/app.asar \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ @@ -43,10 +70,13 @@ in stdenv.mkDerivation rec { description = "Desktop application for Mail and Calendar, made with Electron"; homepage = "https://github.com/ProtonMail/inbox-desktop"; license = licenses.gpl3Plus; - maintainers = with maintainers; [ rsniezek sebtm ]; - platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ + rsniezek + sebtm + matteopacini + ]; + platforms = [ "x86_64-linux" ] ++ platforms.darwin; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; inherit mainProgram; }; } -