After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 743109 - Do not require spam software during build time
Do not require spam software during build time
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Plugins
3.12.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: evolution-plugin-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2015-01-18 02:36 UTC by Paul Smith
Modified: 2015-03-02 14:15 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch for configure.ac --enable-bogofilter (586 bytes, patch)
2015-01-18 02:45 UTC, Paul Smith
reviewed Details | Review

Description Paul Smith 2015-01-18 02:36:41 UTC
In Evolution 3.8 a change was made that requires the underlying spam detection software (spamassassin and bogofilter) to be installed on the build system during the build, and in the same place it will appear at runtime:

https://git.gnome.org/browse/evolution/commit/?id=c539a9ec20f46

This is problematic: we don't want to force the build system and the runtime system to be so tightly coupled.  In particular, on Ubuntu the "bogofilter" package is in the Universe area while Evolution is in the main area.  However, main packages can only depend on other main packages during build time.  This means that Evolution in Ubuntu has to disable the bogofilter plugin completely since it cannot be built.  Which is really frustrating since it's the only thing keeping up with my spam.

See: https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/1247366

Also see: https://mail.gnome.org/archives/evolution-list/2015-January/msg00074.html

IMO it should be possible to build the bogofilter plugin even if bogofilter is not installed, and then have it be inert and unused at runtime on systems where it is not available but work correctly when bogofilter is installed.
Comment 1 Paul Smith 2015-01-18 02:39:06 UTC
Also see an earlier change: https://git.gnome.org/browse/evolution/commit/?id=b46da7735a5f58c34
Comment 2 Paul Smith 2015-01-18 02:45:03 UTC
Created attachment 294766 [details] [review]
patch for configure.ac --enable-bogofilter

I created a small patch to configure.ac which allows you to set the bogofilter path on the configure line with --enable-bogofilter=<path>.  This doesn't really help right now since the optional support was removed, but it might be helpful if it's added back.

You can kind of get something like this now by setting the BOGOFILTER environment variable before invoking configure but giving it on the command line is easier in some situations.
Comment 3 Milan Crha 2015-01-23 14:46:22 UTC
(In reply to comment #2)
> This doesn't really help right now since the optional support was removed,
> but it might be helpful if it's added back.

If I understand it right, then the Bogofilter plugin, if chosen, will just emit errors. To be honest, I hoped in a more complete patch, which I would just push in. Such patch might cover spamassassin as well.
Comment 4 Paul Smith 2015-01-23 14:57:14 UTC
For sure.  The patch I attached here was not in any way intended to be a solution to the problem.  It was something I ginned up to make configure.ac simpler to use, BEFORE I realized that the underlying support had been completely removed in the commit I linked in the description above.  I attached it here merely to keep it from being lost.

Once I saw that commit, it became clear that more was needed: I may have time in a couple of weeks to look more into this: unfortunately I'm going to be in the hospital next week for some days and I doubt you'd be interested in any code I write immediately after that :-p :-), and I have a lot of stuff to finish up at work before then.
Comment 5 Milan Crha 2015-02-06 06:52:26 UTC
I reverted commit c539a9ec20f46e0dc66df76fa518f8b659467bcd and changed the configure options to be:
   --with-bogofilter=yes/no/path, defaults to /usr/bin/bogofilter
and
   --with-spamassassin=yes/no/path, defaults to /usr/bin/spamassassin
   --with-sa-learn=path, default to /usr/bin/sa-learn

I also added gsettings keys:
   org.gnome.evolution.bogofilter command
   org.gnome.evolution.spamassassin command
   org.gnome.evolution.spamassassin learn-command
which can be used to overwrite compile time options in runtime.

Created commit 0b91d60 in evo master (3.13.90+) [1]

[1] https://git.gnome.org/browse/evolution/commit/?id=0b91d60
Comment 6 Iain Lane 2015-03-02 11:00:42 UTC
Milan, is this something you'd consider pushing to 3.12 too, or should we cherry-pick it for Ubuntu?
Comment 7 Milan Crha 2015-03-02 14:15:18 UTC
(In reply to Iain Lane from comment #6)
> Milan, is this something you'd consider pushing to 3.12 too, or should we
> cherry-pick it for Ubuntu?

I'm sorry, this will not reach 3.12.x officially, that branch is dead (no more 3.12 releases planned) and the patch brings new translatable strings, which would break a string freeze in the stable branch.