From 42ff593555c9f74429441082a898b7d42bd5b287 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Sun, 7 May 2017 16:05:53 -0700 Subject: [PATCH 01/13] nylas-mail: 2.0.31 Added new email client Nylas-Mail. --- .../mailreaders/nylas-mail/default.nix | 134 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 7 +- 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/networking/mailreaders/nylas-mail/default.nix diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix new file mode 100644 index 00000000000..6914dbdb7bf --- /dev/null +++ b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix @@ -0,0 +1,134 @@ +{ config +, stdenv +, pkgs +, fetchurl +, dpkg +, lib +, gnome2 +, libgnome_keyring +, desktop_file_utils +, python2 +, nodejs +, libnotify +, alsaLib +, atk +, glib +, pango +, gdk_pixbuf +, cairo +, freetype +, fontconfig +, dbus +, nss +, nspr +, cups +, expat +, wget +, udev +, xorg +, libgcrypt +, makeWrapper +, gcc-unwrapped +, coreutils +}: + +stdenv.mkDerivation rec { + name = "${pkgname}-${version}"; + pkgname = "nylas-mail"; + version = "2.0.31"; + subVersion = "e675deb"; + + src = fetchurl { + url = "https://edgehill.s3-us-west-2.amazonaws.com/${version}-${subVersion}/linux-deb/x64/NylasMail.deb"; + sha256 = "b036956174f998bd4a2662a1f59cb4a302465b3ed06c487de88ff2721e372f6e"; + }; + + # Build dependencies + propagatedBuildInputs = [ + gnome2.gtk + gnome2.GConf + libgnome_keyring + desktop_file_utils + python2 + nodejs + libnotify + alsaLib + atk + glib + pango + gdk_pixbuf + cairo + freetype + fontconfig + dbus + nss + nspr + cups + expat + wget + udev + gcc-unwrapped + coreutils + xorg.libXScrnSaver + xorg.libXi + xorg.libXtst + xorg.libXcursor + xorg.libXdamage + xorg.libXrandr + xorg.libXcomposite + xorg.libXext + xorg.libXfixes + xorg.libXrender + xorg.libX11 + xorg.libxkbfile + ]; + + # Runtime dependencies + buildInputs = [ makeWrapper gnome2.gnome_keyring ]; + + phases = [ "unpackPhase" ]; + + unpackPhase = '' + 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 = { + description = "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."; + license = stdenv.lib.licenses.gpl3; + homepage = https://nylas.com; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bebd1058e97..0913505b277 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1022,8 +1022,11 @@ with pkgs; mpdris2 = callPackage ../tools/audio/mpdris2 { }; + nfdump = callPackage ../tools/networking/nfdump { }; + onboard = callPackage ../applications/misc/onboard { }; + playerctl = callPackage ../tools/audio/playerctl { }; socklog = callPackage ../tools/system/socklog { }; @@ -15910,6 +15913,8 @@ with pkgs; thinkingRock = callPackage ../applications/misc/thinking-rock { }; + nylas-mail = callPackage ../applications/networking/mailreaders/nylas-mail { }; + thunderbird = callPackage ../applications/networking/mailreaders/thunderbird { inherit (gnome2) libIDL; libpng = libpng_apng; @@ -17011,7 +17016,7 @@ with pkgs; quake3pointrelease = callPackage ../games/quake3/content/pointrelease.nix { }; quakespasm = callPackage ../games/quakespasm { }; - + ioquake3 = callPackage ../games/quake3/ioquake { }; quantumminigolf = callPackage ../games/quantumminigolf {}; From 2ba83bd2dcb645e91fe9b5db0afcfaf39ad1fa92 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Tue, 9 May 2017 14:37:02 -0700 Subject: [PATCH 02/13] Removed onboard package from all-packages.. Onboard was left in accidentally. --- pkgs/top-level/all-packages.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0913505b277..6c95a907864 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1022,11 +1022,8 @@ with pkgs; mpdris2 = callPackage ../tools/audio/mpdris2 { }; - nfdump = callPackage ../tools/networking/nfdump { }; - onboard = callPackage ../applications/misc/onboard { }; - playerctl = callPackage ../tools/audio/playerctl { }; socklog = callPackage ../tools/system/socklog { }; From 14f4b21fe526fe0c3069a48b6c2350da79d5c027 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 10 May 2017 17:17:33 -0700 Subject: [PATCH 03/13] Added self as maintainer. --- lib/maintainers.nix | 1 + pkgs/applications/networking/mailreaders/nylas-mail/default.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/maintainers.nix b/lib/maintainers.nix index a9d44984e5d..611d5c38ddb 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -249,6 +249,7 @@ joelmo = "Joel Moberg "; joelteon = "Joel Taylor "; johbo = "Johannes Bornhold "; + johnramsden = "John Ramsden " joko = "Ioannis Koutras "; jonafato = "Jon Banafato "; jpbernardy = "Jean-Philippe Bernardy "; diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix index 6914dbdb7bf..6e3c1accbaf 100644 --- a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix +++ b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix @@ -129,6 +129,7 @@ stdenv.mkDerivation rec { meta = { description = "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."; license = stdenv.lib.licenses.gpl3; + maintainers = with maintainers; [ johnramsden ]; homepage = https://nylas.com; }; } From ca95b4fdbd1435e42bc6e72d52dc3ea4b98dc533 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 10 May 2017 19:21:00 -0700 Subject: [PATCH 04/13] Missing semicolon. --- lib/maintainers.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 611d5c38ddb..69c5e4452e5 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -249,7 +249,7 @@ joelmo = "Joel Moberg "; joelteon = "Joel Taylor "; johbo = "Johannes Bornhold "; - johnramsden = "John Ramsden " + johnramsden = "John Ramsden "; joko = "Ioannis Koutras "; jonafato = "Jon Banafato "; jpbernardy = "Jean-Philippe Bernardy "; From 1be1ba542154722e9cd9da4186dc631a8c06f36e Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 10 May 2017 19:47:40 -0700 Subject: [PATCH 05/13] Add longDescription with note about keyring. --- .../networking/mailreaders/nylas-mail/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix index 6e3c1accbaf..a0083bd01a8 100644 --- a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix +++ b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix @@ -126,9 +126,12 @@ stdenv.mkDerivation rec { $out/share/nylas-mail/resources/apm/bin/node ''; - meta = { - description = "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."; - license = stdenv.lib.licenses.gpl3; + meta = with stdenv.lib; { + description = "pen-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 requires gnome3 keyring. It can be enabled with "services.gnome3.gnome-keyring.enable = true;". + ''; + license = licenses.gpl3; maintainers = with maintainers; [ johnramsden ]; homepage = https://nylas.com; }; From 1f10c1112a6bfc4219e4a388be385be514ab1e70 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 10 May 2017 20:13:50 -0700 Subject: [PATCH 06/13] Fixed spelling in description and added info on keyring. --- .../networking/mailreaders/nylas-mail/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix index a0083bd01a8..7c3ee456f25 100644 --- a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix +++ b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix @@ -127,9 +127,9 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "pen-source mail client built on the modern web with Electron, React, and Flux"; + 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 requires gnome3 keyring. It can be enabled with "services.gnome3.gnome-keyring.enable = true;". + 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. To run nylas-mail, an additional manual step is required. 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 ]; From 580f7b47a3aa4a09a5096c74b53e254961f65f51 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Thu, 1 Jun 2017 00:06:20 -0700 Subject: [PATCH 07/13] Update version to 2.0.32-fec7941 and apply proposed changes. --- .../mailreaders/nylas-mail/default.nix | 211 +++++++++--------- 1 file changed, 105 insertions(+), 106 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix index 7c3ee456f25..47f633c7cfc 100644 --- a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix +++ b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix @@ -1,94 +1,93 @@ -{ config -, stdenv -, pkgs -, fetchurl -, dpkg -, lib -, gnome2 -, libgnome_keyring -, desktop_file_utils -, python2 -, nodejs -, libnotify +{ dpkg, fetchurl, lib, pkgs, stdenv, config , alsaLib , atk -, glib -, pango -, gdk_pixbuf , cairo -, freetype -, fontconfig -, dbus -, nss -, nspr -, cups -, expat -, wget -, udev -, xorg -, libgcrypt -, makeWrapper -, gcc-unwrapped , 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"; - version = "2.0.31"; - subVersion = "e675deb"; + name = "${pkgname}-${version}"; + pkgname = "nylas-mail"; + version = "2.0.32"; + subVersion = "fec7941"; - src = fetchurl { - url = "https://edgehill.s3-us-west-2.amazonaws.com/${version}-${subVersion}/linux-deb/x64/NylasMail.deb"; - sha256 = "b036956174f998bd4a2662a1f59cb4a302465b3ed06c487de88ff2721e372f6e"; - }; + 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}"; - # Build dependencies - propagatedBuildInputs = [ - gnome2.gtk - gnome2.GConf - libgnome_keyring - desktop_file_utils - python2 - nodejs - libnotify - alsaLib - atk - glib - pango - gdk_pixbuf - cairo - freetype - fontconfig - dbus - nss - nspr - cups - expat - wget - udev - gcc-unwrapped - coreutils - xorg.libXScrnSaver - xorg.libXi - xorg.libXtst - xorg.libXcursor - xorg.libXdamage - xorg.libXrandr - xorg.libXcomposite - xorg.libXext - xorg.libXfixes - xorg.libXrender - xorg.libX11 - xorg.libxkbfile - ]; + # Build dependencies + 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 + ]; - # Runtime dependencies - buildInputs = [ makeWrapper gnome2.gnome_keyring ]; + # Runtime dependencies + buildInputs = [ makeWrapper gnome2.gnome_keyring ]; - phases = [ "unpackPhase" ]; + phases = [ "unpackPhase" ]; - unpackPhase = '' + unpackPhase = '' mkdir -p $out ${dpkg}/bin/dpkg-deb -x $src unpacked @@ -96,43 +95,43 @@ stdenv.mkDerivation rec { # Fix path in desktop file substituteInPlace $out/share/applications/nylas-mail.desktop \ - --replace /usr/bin/nylas-mail $out/bin/nylas-mail + --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 + # 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 + 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 + # 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} + --replace /bin/bash ${stdenv.shell} wrapProgram $out/share/nylas-mail/resources/apm/bin/apm \ - --set PATH "${coreutils}/bin" + --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 - ''; + --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. To run nylas-mail, an additional manual step is required. 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; - }; + 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. To run nylas-mail, an additional manual step is required. 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" ]; + }; } From 69ecd62a955d8ddd640b2ebb94d451ce3318be7a Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Tue, 27 Jun 2017 16:19:49 -0700 Subject: [PATCH 08/13] Switched from phases to buildCommand, and moved makeWrapper to nativeBuildInputs as reccomended. --- .../networking/mailreaders/nylas-mail/default.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix index 47f633c7cfc..9073899fd6c 100644 --- a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix +++ b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix @@ -42,7 +42,6 @@ stdenv.mkDerivation rec { else throw "NylasMail is not supported on ${stdenv.system}"; - # Build dependencies propagatedBuildInputs = [ alsaLib atk @@ -82,12 +81,12 @@ stdenv.mkDerivation rec { xorg.libxkbfile ]; - # Runtime dependencies - buildInputs = [ makeWrapper gnome2.gnome_keyring ]; - phases = [ "unpackPhase" ]; + buildInputs = [ gnome2.gnome_keyring ]; - unpackPhase = '' + nativeBuildInputs = [ makeWrapper ]; + + buildCommand = '' mkdir -p $out ${dpkg}/bin/dpkg-deb -x $src unpacked From 3fddb48020aab9934752b1f19e5c35d7d3881a05 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 28 Jun 2017 15:56:41 -0700 Subject: [PATCH 09/13] Add Nylas mail module. Still needs keyring configuration --- nixos/modules/programs/nylas-mail.nix | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 nixos/modules/programs/nylas-mail.nix diff --git a/nixos/modules/programs/nylas-mail.nix b/nixos/modules/programs/nylas-mail.nix new file mode 100644 index 00000000000..d1427d89024 --- /dev/null +++ b/nixos/modules/programs/nylas-mail.nix @@ -0,0 +1,43 @@ +{ 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."; + }; + + package = mkOption { + type = types.package; + default = pkgs.nylas-mail; + defaultText = "pkgs.nylas-mail"; + example = literalExample "pkgs.nylas-mail"; + description = '' + nylas-mail package to use. + ''; + }; + }; + }; + + + ###### implementation + + config = mkIf cfg.enable { + + + + }; +} From 9f4c3b2efd02447ffb403678e880cd3340aaaa48 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 28 Jun 2017 16:13:10 -0700 Subject: [PATCH 10/13] Add keyring enable option and add Nylas to systemPackages --- nixos/modules/programs/nylas-mail.nix | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/nixos/modules/programs/nylas-mail.nix b/nixos/modules/programs/nylas-mail.nix index d1427d89024..fc18a9a4760 100644 --- a/nixos/modules/programs/nylas-mail.nix +++ b/nixos/modules/programs/nylas-mail.nix @@ -19,16 +19,6 @@ in { default = true; description = "Enable gnome3 keyring for nylas-mail."; }; - - package = mkOption { - type = types.package; - default = pkgs.nylas-mail; - defaultText = "pkgs.nylas-mail"; - example = literalExample "pkgs.nylas-mail"; - description = '' - nylas-mail package to use. - ''; - }; }; }; @@ -37,7 +27,11 @@ in { config = mkIf cfg.enable { + environment.systemPackages = [pkgs.nylas-mail]; + services.gnome3.gnome-keyring = mkIf cfg.gnome3-keyring { + enable = true; + }; }; } From 8181b075bac51fbce46a7b4d52e339b429f1250a Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 28 Jun 2017 22:29:49 -0700 Subject: [PATCH 11/13] Quoted NIX_CC --- .../networking/mailreaders/nylas-mail/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix index 9073899fd6c..b9d4be3e380 100644 --- a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix +++ b/pkgs/applications/networking/mailreaders/nylas-mail/default.nix @@ -107,7 +107,7 @@ stdenv.mkDerivation rec { # Patch binaries binrp=$(patchelf --print-rpath $out/share/nylas-mail/nylas) - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + 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 @@ -119,7 +119,7 @@ stdenv.mkDerivation rec { wrapProgram $out/share/nylas-mail/resources/apm/bin/apm \ --set PATH "${coreutils}/bin" - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + patchelf --interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) \ --set-rpath ${gcc-unwrapped.lib}/lib $out/share/nylas-mail/resources/apm/bin/node ''; From 407324faa9b1a4a0641cb1146cc910328210ab6e Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 5 Jul 2017 16:28:01 -0700 Subject: [PATCH 12/13] Rename nylas-mail to nylas-mail-bin. Change pkg in module, and name in pkg. --- nixos/modules/programs/nylas-mail.nix | 2 +- .../mailreaders/{nylas-mail => nylas-mail-bin}/default.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename pkgs/applications/networking/mailreaders/{nylas-mail => nylas-mail-bin}/default.nix (90%) diff --git a/nixos/modules/programs/nylas-mail.nix b/nixos/modules/programs/nylas-mail.nix index fc18a9a4760..9a6cf755f2a 100644 --- a/nixos/modules/programs/nylas-mail.nix +++ b/nixos/modules/programs/nylas-mail.nix @@ -27,7 +27,7 @@ in { config = mkIf cfg.enable { - environment.systemPackages = [pkgs.nylas-mail]; + environment.systemPackages = [ pkgs.nylas-mail-bin ]; services.gnome3.gnome-keyring = mkIf cfg.gnome3-keyring { enable = true; diff --git a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix b/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix similarity index 90% rename from pkgs/applications/networking/mailreaders/nylas-mail/default.nix rename to pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix index b9d4be3e380..4c768325fee 100644 --- a/pkgs/applications/networking/mailreaders/nylas-mail/default.nix +++ b/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { name = "${pkgname}-${version}"; - pkgname = "nylas-mail"; + pkgname = "nylas-mail-bin"; version = "2.0.32"; subVersion = "fec7941"; @@ -126,7 +126,7 @@ stdenv.mkDerivation rec { 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. To run nylas-mail, an additional manual step is required. 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". + 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 ]; From c38207983a04c3a6a17ce77e854ce2ffde207283 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Wed, 5 Jul 2017 16:54:30 -0700 Subject: [PATCH 13/13] Missed the attribute name in all-packages.nix during rename. --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6c95a907864..8b2193a45ac 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15910,7 +15910,7 @@ with pkgs; thinkingRock = callPackage ../applications/misc/thinking-rock { }; - nylas-mail = callPackage ../applications/networking/mailreaders/nylas-mail { }; + nylas-mail-bin = callPackage ../applications/networking/mailreaders/nylas-mail-bin { }; thunderbird = callPackage ../applications/networking/mailreaders/thunderbird { inherit (gnome2) libIDL;