Merge pull request #25600 from johnramsden/nylas-mail

nylas-mail: 2.0.32
This commit is contained in:
Michael Raskin 2017-07-06 02:04:24 +02:00 committed by GitHub
commit 05aa2a58db
4 changed files with 176 additions and 0 deletions

View file

@ -262,6 +262,7 @@
joelmo = "Joel Moberg <joel.moberg@gmail.com>";
joelteon = "Joel Taylor <me@joelt.io>";
johbo = "Johannes Bornhold <johannes@bornhold.name>";
johnramsden = "John Ramsden <johnramsden@riseup.net>";
joko = "Ioannis Koutras <ioannis.koutras@gmail.com>";
jonafato = "Jon Banafato <jon@jonafato.com>";
jpbernardy = "Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>";

View file

@ -0,0 +1,37 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.nylas-mail;
defaultUser = "nylas-mail";
in {
###### interface
options = {
services.nylas-mail = {
enable = mkEnableOption ''
nylas-mail - Open-source mail client built on the modern web with Electron, React, and Flux
'';
gnome3-keyring = mkOption {
type = types.bool;
default = true;
description = "Enable gnome3 keyring for nylas-mail.";
};
};
};
###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.nylas-mail-bin ];
services.gnome3.gnome-keyring = mkIf cfg.gnome3-keyring {
enable = true;
};
};
}

View file

@ -0,0 +1,136 @@
{ dpkg, fetchurl, lib, pkgs, stdenv, config
, alsaLib
, atk
, cairo
, coreutils
, cups
, dbus
, desktop_file_utils
, expat
, fontconfig
, freetype
, gcc-unwrapped
, gdk_pixbuf
, glib
, gnome2
, libgcrypt
, libgnome_keyring
, libnotify
, makeWrapper
, nodejs
, nspr
, nss
, pango
, python2
, udev
, wget
, xorg
}:
stdenv.mkDerivation rec {
name = "${pkgname}-${version}";
pkgname = "nylas-mail-bin";
version = "2.0.32";
subVersion = "fec7941";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "https://edgehill.s3-us-west-2.amazonaws.com/${version}-${subVersion}/linux-deb/x64/NylasMail.deb";
sha256 = "40060aa1dc3b5187b8ed4a07b9de3427e3c5a291df98c2c82395647fa2aa4ada";
}
else
throw "NylasMail is not supported on ${stdenv.system}";
propagatedBuildInputs = [
alsaLib
atk
cairo
coreutils
cups
dbus
desktop_file_utils
expat
fontconfig
freetype
gcc-unwrapped
gdk_pixbuf
glib
gnome2.GConf
gnome2.gtk
libgnome_keyring
libnotify
nodejs
nspr
nss
pango
python2
udev
wget
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxkbfile
];
buildInputs = [ gnome2.gnome_keyring ];
nativeBuildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p $out
${dpkg}/bin/dpkg-deb -x $src unpacked
mv unpacked/usr/* $out/
# Fix path in desktop file
substituteInPlace $out/share/applications/nylas-mail.desktop \
--replace /usr/bin/nylas-mail $out/bin/nylas-mail
# Patch librariess
noderp=$(patchelf --print-rpath $out/share/nylas-mail/libnode.so)
patchelf --set-rpath $noderp:$out/lib:${stdenv.cc.cc.lib}/lib:${xorg.libxkbfile.out}/lib:${lib.makeLibraryPath propagatedBuildInputs } \
$out/share/nylas-mail/libnode.so
ffrp=$(patchelf --print-rpath $out/share/nylas-mail/libffmpeg.so)
patchelf --set-rpath $ffrp:$out/lib:${stdenv.cc.cc.lib}/lib:${lib.makeLibraryPath propagatedBuildInputs } \
$out/share/nylas-mail/libffmpeg.so
# Patch binaries
binrp=$(patchelf --print-rpath $out/share/nylas-mail/nylas)
patchelf --interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) \
--set-rpath $binrp:$out/lib:${stdenv.cc.cc.lib}/lib:${lib.makeLibraryPath propagatedBuildInputs } \
$out/share/nylas-mail/nylas
wrapProgram $out/share/nylas-mail/nylas --set LD_LIBRARY_PATH "${xorg.libxkbfile}/lib:${pkgs.gnome3.libgnome_keyring}/lib";
# Fix path to bash so apm can install plugins.
substituteInPlace $out/share/nylas-mail/resources/apm/bin/apm \
--replace /bin/bash ${stdenv.shell}
wrapProgram $out/share/nylas-mail/resources/apm/bin/apm \
--set PATH "${coreutils}/bin"
patchelf --interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) \
--set-rpath ${gcc-unwrapped.lib}/lib $out/share/nylas-mail/resources/apm/bin/node
'';
meta = with stdenv.lib; {
description = "Open-source mail client built on the modern web with Electron, React, and Flux";
longDescription = ''
Nylas Mail is an open-source mail client built on the modern web with Electron, React, and Flux. It is designed to be extensible, so it's easy to create new experiences and workflows around email. Nylas Mail can be enabled with it's requirements by enabling 'services.nylas-mail.enable=true'. Alternatively, make sure to have services.gnome3.gnome-keyring.enable = true; in your configuration.nix before running nylas-mail. If you happen to miss this step, you should remove ~/.nylas-mail and "~/.config/Nylas Mail" for a blank setup".
'';
license = licenses.gpl3;
maintainers = with maintainers; [ johnramsden ];
homepage = https://nylas.com;
platforms = [ "x86_64-linux" ];
};
}

View file

@ -16196,6 +16196,8 @@ with pkgs;
thinkingRock = callPackage ../applications/misc/thinking-rock { };
nylas-mail-bin = callPackage ../applications/networking/mailreaders/nylas-mail-bin { };
thunderbird = callPackage ../applications/networking/mailreaders/thunderbird {
inherit (gnome2) libIDL;
libpng = libpng_apng;