vacuum-go: 0.16.1 -> 0.16.2 (#380231)
[NixPkgs.git] / pkgs / applications / networking / mailreaders / mailnag / default.nix
blob25904e5b44b0fcfe125353dfbe864cff37b149f9
2   lib,
3   fetchFromGitHub,
4   gettext,
5   xorg, # for lndir
6   gtk3,
7   python3Packages,
8   gdk-pixbuf,
9   libnotify,
10   gst_all_1,
11   libsecret,
12   wrapGAppsHook3,
13   gsettings-desktop-schemas,
14   glib,
15   gobject-introspection,
16   # Available plugins (can be overridden)
17   availablePlugins,
18   # Used in the withPlugins interface at passthru, can be overrided directly, or
19   # prefarably via e.g: `mailnag.withPlugins([mailnag.availablePlugins.goa])`
20   mailnag,
21   userPlugins ? [ ],
22   pluginsDeps ? [ ],
25 python3Packages.buildPythonApplication rec {
26   pname = "mailnag";
27   version = "2.2.0";
29   src = fetchFromGitHub {
30     owner = "pulb";
31     repo = "mailnag";
32     rev = "v${version}";
33     sha256 = "0m1cyzwzm7z4p2v31dx098a1iar7dbilwyjcxiqnjx05nlmiqvgf";
34   };
36   buildInputs = [
37     gtk3
38     gdk-pixbuf
39     glib
40     libnotify
41     gst_all_1.gstreamer
42     gst_all_1.gst-plugins-base
43     gst_all_1.gst-plugins-good
44     gst_all_1.gst-plugins-bad
45     libsecret
46   ] ++ pluginsDeps;
48   nativeBuildInputs = [
49     gettext
50     wrapGAppsHook3
51     gobject-introspection
52     # To later add plugins to
53     xorg.lndir
54   ];
56   propagatedBuildInputs = with python3Packages; [
57     gsettings-desktop-schemas
58     pygobject3
59     dbus-python
60     pyxdg
61   ];
63   passthru = {
64     inherit availablePlugins;
65     withPlugins =
66       plugs:
67       let
68         # goa plugin requires gio's gnome-online-accounts which requires making sure
69         # mailnag runs with GI_TYPELIB_PATH containing the path to Goa-1.0.typelib.
70         # This is handled best by adding the plugins' deps to buildInputs and let
71         # wrapGAppsHook3 handle that.
72         pluginsDeps = lib.flatten (lib.catAttrs "buildInputs" plugs);
73         self = mailnag;
74       in
75       self.override {
76         userPlugins = plugs;
77         inherit pluginsDeps;
78       };
79   };
81   # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped
82   dontWrapGApps = true;
84   preFixup = ''
85     substituteInPlace $out/${python3Packages.python.sitePackages}/Mailnag/common/dist_cfg.py \
86       --replace "/usr/" $out/
87     for desktop_file in $out/share/applications/*.desktop; do
88       substituteInPlace "$desktop_file" \
89       --replace "/usr/bin" $out/bin
90     done
91     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
92   '';
94   # Actually install plugins
95   postInstall = ''
96     for plug in ${builtins.toString userPlugins}; do
97       lndir $plug/${python3Packages.python.sitePackages} $out/${python3Packages.python.sitePackages}
98     done
99   '';
101   meta = with lib; {
102     description = "Extensible mail notification daemon";
103     homepage = "https://github.com/pulb/mailnag";
104     license = licenses.gpl2;
105     platforms = platforms.linux;
106     maintainers = with maintainers; [ doronbehar ];
107     broken = true; # at 2022-09-23
108   };