GNOME Bugzilla – Bug 743109
Do not require spam software during build time
Last modified: 2015-03-02 14:15:18 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.
Also see an earlier change: https://git.gnome.org/browse/evolution/commit/?id=b46da7735a5f58c34
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.
(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.
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.
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
Milan, is this something you'd consider pushing to 3.12 too, or should we cherry-pick it for Ubuntu?
(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.