diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/mailreaders/mailnag')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix | 107 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix | 31 |
2 files changed, 138 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix new file mode 100644 index 000000000000..9a2bd563fc8d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix @@ -0,0 +1,107 @@ +{ lib +, fetchFromGitHub +, gettext +, xorg # for lndir +, gtk3 +, python3Packages +, gdk-pixbuf +, libnotify +, gst_all_1 +, libsecret +, wrapGAppsHook +, gsettings-desktop-schemas +, glib +, gobject-introspection +# Available plugins (can be overriden) +, availablePlugins +# Used in the withPlugins interface at passthru, can be overrided directly, or +# prefarably via e.g: `mailnag.withPlugins([mailnag.availablePlugins.goa])` +, mailnag +, userPlugins ? [ ] +, pluginsDeps ? [ ] +}: + +python3Packages.buildPythonApplication rec { + pname = "mailnag"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "pulb"; + repo = "mailnag"; + rev = "v${version}"; + sha256 = "0m1cyzwzm7z4p2v31dx098a1iar7dbilwyjcxiqnjx05nlmiqvgf"; + }; + + buildInputs = [ + gtk3 + gdk-pixbuf + glib + libnotify + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gobject-introspection + libsecret + ] ++ pluginsDeps; + + nativeBuildInputs = [ + gettext + wrapGAppsHook + # To later add plugins to + xorg.lndir + ]; + + propagatedBuildInputs = with python3Packages; [ + gsettings-desktop-schemas + pygobject3 + dbus-python + pyxdg + ]; + + passthru = { + inherit availablePlugins; + withPlugins = + plugs: + let + # goa plugin requires gio's gnome-online-accounts which requires making sure + # mailnag runs with GI_TYPELIB_PATH containing the path to Goa-1.0.typelib. + # This is handled best by adding the plugins' deps to buildInputs and let + # wrapGAppsHook handle that. + pluginsDeps = lib.flatten (lib.catAttrs "buildInputs" plugs); + self = mailnag; + in + self.override { + userPlugins = plugs; + inherit pluginsDeps; + }; + }; + + # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped + dontWrapGApps = true; + + preFixup = '' + substituteInPlace $out/${python3Packages.python.sitePackages}/Mailnag/common/dist_cfg.py \ + --replace "/usr/" $out/ + for desktop_file in $out/share/applications/*.desktop; do + substituteInPlace "$desktop_file" \ + --replace "/usr/bin" $out/bin + done + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + # Actually install plugins + postInstall = '' + for plug in ${builtins.toString userPlugins}; do + lndir $plug/${python3Packages.python.sitePackages} $out/${python3Packages.python.sitePackages} + done + ''; + + meta = with lib; { + description = "An extensible mail notification daemon"; + homepage = "https://github.com/pulb/mailnag"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix new file mode 100644 index 000000000000..1def97bd62d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix @@ -0,0 +1,31 @@ +{ lib +, fetchFromGitHub +, python3Packages +, gobject-introspection +, gnome-online-accounts +}: + +python3Packages.buildPythonPackage rec { + pname = "mailnag-goa-plugin"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "pulb"; + repo = "mailnag-goa-plugin"; + rev = "v${version}"; + sha256 = "0bij6cy96nhq7xzslx0fnhmiac629h0x4wgy67k4i4npwqw10680"; + }; + + buildInputs = [ + gobject-introspection + gnome-online-accounts + ]; + + meta = with lib; { + description = "Mailnag GNOME Online Accounts plugin."; + homepage = "https://github.com/pulb/mailnag-goa-plugin"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ doronbehar ]; + }; +} |