diff --git a/pkgs/applications/networking/mailreaders/mailspring/darwin.nix b/pkgs/applications/networking/mailreaders/mailspring/darwin.nix new file mode 100644 index 000000000000..cccc46a4f5eb --- /dev/null +++ b/pkgs/applications/networking/mailreaders/mailspring/darwin.nix @@ -0,0 +1,34 @@ +{ lib +, stdenv +, fetchurl +, pname +, version +, meta +, unzip +, makeWrapper +}: + +stdenv.mkDerivation (finalAttrs: { + inherit pname version meta; + + src = fetchurl { + url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/Mailspring-AppleSilicon.zip"; + hash = "sha256-LYv3643oj58WR+4IE4XmJmCgD9S2AXNbPwW5W0QCuGI="; + }; + dontUnpack = true; + + nativeBuildInputs = [ + unzip + makeWrapper + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications $out/bin + unzip $src -d $out/Applications + makeWrapper $out/Applications/Mailspring.app/Contents/MacOS/Mailspring $out/bin/mailspring + + runHook postInstall + ''; +}) diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix index a211650d3d9a..ba8436717a40 100644 --- a/pkgs/applications/networking/mailreaders/mailspring/default.nix +++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix @@ -1,105 +1,26 @@ -{ stdenv -, lib -, fetchurl -, autoPatchelfHook -, alsa-lib -, coreutils -, db -, dpkg -, glib -, gtk3 -, wrapGAppsHook -, libkrb5 -, libsecret -, nss -, openssl -, udev -, xorg -, mesa -, libdrm -, libappindicator +{ lib +, stdenv +, callPackage }: - -stdenv.mkDerivation (finalAttrs: { +let pname = "mailspring"; version = "1.13.3"; - src = fetchurl { - url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/mailspring-${finalAttrs.version}-amd64.deb"; - hash = "sha256-2F5k8zRRI6x1EQ0k8wvIq1Q3Lnrn2ROp/Mq+H7Vqzlc="; - }; - - nativeBuildInputs = [ - autoPatchelfHook - dpkg - wrapGAppsHook - ]; - - buildInputs = [ - alsa-lib - db - glib - gtk3 - libkrb5 - libsecret - nss - xorg.libxkbfile - xorg.libXdamage - xorg.libXScrnSaver - xorg.libXtst - xorg.libxshmfence - mesa - libdrm - ]; - - runtimeDependencies = [ - coreutils - openssl - (lib.getLib udev) - libappindicator - libsecret - ]; - - unpackPhase = '' - runHook preUnpack - - dpkg -x $src . - - runHook postUnpack - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/{bin,lib} - cp -ar ./usr/share $out - - substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \ - --replace dirname ${coreutils}/bin/dirname - - ln -s $out/share/mailspring/mailspring $out/bin/mailspring - ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0 - - runHook postInstall - ''; - - postFixup = /* sh */ '' - substituteInPlace $out/share/applications/Mailspring.desktop \ - --replace Exec=mailspring Exec=$out/bin/mailspring - ''; - - meta = { + meta = with lib; { description = "A beautiful, fast and maintained fork of Nylas Mail by one of the original authors"; downloadPage = "https://github.com/Foundry376/Mailspring"; homepage = "https://getmailspring.com"; - license = lib.licenses.gpl3Plus; + license = licenses.gpl3Plus; longDescription = '' Mailspring is an open-source mail client forked from Nylas Mail and built with Electron. Mailspring's sync engine runs locally, but its source is not open. ''; mainProgram = "mailspring"; - maintainers = with lib.maintainers; [ toschmidt ]; - platforms = [ "x86_64-linux" ]; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + maintainers = with maintainers; [ toschmidt ]; + platforms = [ "x86_64-linux" "aarch64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; -}) + + linux = callPackage ./linux.nix { inherit pname version meta; }; + darwin = callPackage ./darwin.nix { inherit pname version meta; }; +in if stdenv.hostPlatform.isDarwin then darwin else linux diff --git a/pkgs/applications/networking/mailreaders/mailspring/linux.nix b/pkgs/applications/networking/mailreaders/mailspring/linux.nix new file mode 100644 index 000000000000..dff8796f6ce2 --- /dev/null +++ b/pkgs/applications/networking/mailreaders/mailspring/linux.nix @@ -0,0 +1,92 @@ +{ stdenv +, lib +, pname +, version +, meta +, fetchurl +, autoPatchelfHook +, alsa-lib +, coreutils +, db +, dpkg +, glib +, gtk3 +, wrapGAppsHook +, libkrb5 +, libsecret +, nss +, openssl +, udev +, xorg +, mesa +, libdrm +, libappindicator +}: + +stdenv.mkDerivation (finalAttrs: { + inherit pname version meta; + + src = fetchurl { + url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/mailspring-${finalAttrs.version}-amd64.deb"; + hash = "sha256-2F5k8zRRI6x1EQ0k8wvIq1Q3Lnrn2ROp/Mq+H7Vqzlc="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + db + glib + gtk3 + libkrb5 + libsecret + nss + xorg.libxkbfile + xorg.libXdamage + xorg.libXScrnSaver + xorg.libXtst + xorg.libxshmfence + mesa + libdrm + ]; + + runtimeDependencies = [ + coreutils + openssl + (lib.getLib udev) + libappindicator + libsecret + ]; + + unpackPhase = '' + runHook preUnpack + + dpkg -x $src . + + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,lib} + cp -ar ./usr/share $out + + substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \ + --replace-fail dirname ${coreutils}/bin/dirname + + ln -s $out/share/mailspring/mailspring $out/bin/mailspring + ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0 + + runHook postInstall + ''; + + postFixup = /* sh */ '' + substituteInPlace $out/share/applications/Mailspring.desktop \ + --replace-fail Exec=mailspring Exec=$out/bin/mailspring + ''; +})