Bug 215871 - mail/exim: "spam =" configuration no longer parses from 4.88 onwards
Summary: mail/exim: "spam =" configuration no longer parses from 4.88 onwards
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Vsevolod Stakhov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-08 11:43 UTC by Mark Hills
Modified: 2017-01-16 14:44 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (vsevolod)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Hills 2017-01-08 11:43:07 UTC
Since upgrading to Exim 4.88, exim would not launch due to not being able to handle parameters 'spamd_address' and 'spam = ' in the configuration.

These parameters don't appear to have been deprecated by upstream as they're still mentioned in all the docs and sample configuration.

  root@jazz:/usr/local/etc/exim # /usr/local/etc/rc.d/exim start
  Starting exim.
  2017-01-08 10:59:13 Exim configuration error in line 151 of /usr/local/etc/exim/configure:
  error in ACL: unknown ACL condition/modifier in "warn    spam = nobody:true" /usr/local/etc/rc.d/exim: WARNING: failed to start exim

I also tried the

* exim-sa-exim 4.88+4.2 package
* exim-sa-exim from ports
* building the 'exim' port with SA_EXIM enabled.

I can see at build time warnings from sa-exim.c about implicit casts taking place; so it does appear to be being built.

I used SVN ports to extract Exim 4.87.1 to get the mail server running again, and this works.
Comment 1 Mark Hills 2017-01-10 14:23:59 UTC
On investigation, I think I know what's going on here; slightly different to what I stated originally.

I think that the port (and package) should have config CONTENT_SCAN enabled by default, to maintain behaviour of previous versions of the port/package.

* I have conflated the purpose of sa-exim. The "spam =" configuration does not
  come from sa-exim, but the local "Content_Scanning" code.

* Prior to 4.88, "Content_Scanning" was enabled in the build, regardless
  of the setting of the port's CONTENT_SCAN configuration

* In exim 4.88, the CONTENT_SCAN needs to be switched on to enable
  "Content_Scanning" in the build and restore the old behaviour.

I am new to looking at ports, so its possible I missed something here or made a mistake. But a build of 4.88 with CONTENT_SCAN is now working for me.

That difference is:

Exim version 4.88 #0 (FreeBSD 10.3) built 04-Jan-2017 03:59:57
Copyright (c) University of Cambridge, 1995 - 2016
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2016
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc OpenSSL DKIM DNSSEC Event I18N OCSP PRDR TCP_Fast_Open
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
2017-01-10 14:14:25 Exim configuration error in line 159 of /usr/local/etc/exim/configure:
  error in ACL: unknown ACL condition/modifier in "warn    spam = nobody:true"

versus:

Exim version 4.88 #0 (FreeBSD 10.3) built 10-Jan-2017 13:49:48
Copyright (c) University of Cambridge, 1995 - 2016
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2016
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM DNSSEC Event I18N OCSP PRDR TCP_Fast_Open
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Configuration file is /usr/local/etc/exim/configure

And for reference, here's a build of the older port. The CONTENT_SCAN configuration was left unchecked (the default) but still slips into the build:

Exim version 4.87_1 #0 (FreeBSD 10.3) built 10-Jan-2017 13:36:03
Copyright (c) University of Cambridge, 1995 - 2016
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2016
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning Old_Demime DKIM DNSSEC I18N OCSP PRDR
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /usr/local/etc/exim/configure
Comment 2 Hank Hampel 2017-01-16 11:57:18 UTC
I have got similar problems with the new package for exim 4.88 as several long-used configuration options don't exist anymore because the "Content_Scanning" option was not enabled during build.

As far as I'm aware this option is not included in any package so I'm kind of stuck with exim 4.87.1 because one should not mix ports and packages as far as I'm aware.

So my humble request would be to either enable "Content_Scanning" again in the main package (as has been the case for years now) or create a new package (e.g. exim-contentscan-4.88) that has this option included.
Comment 3 Vsevolod Stakhov freebsd_committer freebsd_triage 2017-01-16 12:31:45 UTC
This was caused by OLD_DEMIME option that was enabled by default. This option has been removed from Exim, however, it implied CONTENT_SCAN when it was enabled.
Comment 4 commit-hook freebsd_committer freebsd_triage 2017-01-16 13:04:05 UTC
A commit references this bug:

Author: vsevolod
Date: Mon Jan 16 13:03:28 UTC 2017
New revision: 431639
URL: https://svnweb.freebsd.org/changeset/ports/431639

Log:
  - Remove obsoleted OLD_DEMIME option
  - Enable CONTENT_SCAN by default to compensate OLD_DEMIME removal

  PR:		215871
  Submitted by:	Mark Hills mark-freebsd at xwax.org

Changes:
  head/mail/exim/Makefile
  head/mail/exim/options