Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Dec 2013 16:58:56 +0000 (UTC)
From:      Eygene Ryabinkin <rea@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r335913 - in head/mail/exim: . files
Message-ID:  <201312081658.rB8GwuBP056597@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rea
Date: Sun Dec  8 16:58:55 2013
New Revision: 335913
URL: http://svnweb.freebsd.org/changeset/ports/335913

Log:
  Exim: update to 4.82
  
  New Stuff since 4.80.1 (ftp://exim.inode.at/exim/ChangeLogs/NewStuff-4.82):
  
   1. New command-line option -bI:sieve will list all supported sieve extensions
      of this Exim build on standard output, one per line.
      ManageSieve (RFC 5804) providers managing scripts for use by Exim should
      query this to establish the correct list to include in the protocol's
      SIEVE capability line.
  
   2. If the -n option is combined with the -bP option, then the name of an
      emitted option is not output, only the value (if visible to you).
      For instance, "exim -n -bP pid_file_path" should just emit a pathname
      followed by a newline, and no other text.
  
   3. When built with SUPPORT_TLS and USE_GNUTLS, the SMTP transport driver now
      has a "tls_dh_min_bits" option, to set the minimum acceptable number of
      bits in the Diffie-Hellman prime offered by a server (in DH ciphersuites)
      acceptable for security.  (Option accepted but ignored if using OpenSSL).
      Defaults to 1024, the old value.  May be lowered only to 512, or raised as
      far as you like.  Raising this may hinder TLS interoperability with other
      sites and is not currently recommended.  Lowering this will permit you to
      establish a TLS session which is not as secure as you might like.
  
      Unless you really know what you are doing, leave it alone.
  
   4. If not built with DISABLE_DNSSEC, Exim now has the main option
      dns_dnssec_ok; if set to 1 then Exim will initialise the resolver library
      to send the DO flag to your recursive resolver.  If you have a recursive
      resolver, which can set the Authenticated Data (AD) flag in results, Exim
      can now detect this.  Exim does not perform validation itself, instead
      relying upon a trusted path to the resolver.
  
      Current status: work-in-progress; $sender_host_dnssec variable added.
  
   5. DSCP support for outbound connections: on a transport using the smtp driver,
      set "dscp = ef", for instance, to cause the connections to have the relevant
      DSCP (IPv4 TOS or IPv6 TCLASS) value in the header.
  
      Similarly for inbound connections, there is a new control modifier, dscp,
      so "warn control = dscp/ef" in the connect ACL, or after authentication.
  
      Supported values depend upon system libraries.  "exim -bI:dscp" to list the
      ones Exim knows of.  You can also set a raw number 0..0x3F.
  
   6. The -G command-line flag is no longer ignored; it is now equivalent to an
      ACL setting "control = suppress_local_fixups".  The -L command-line flag
      is now accepted and forces use of syslog, with the provided tag as the
      process name.  A few other flags used by Sendmail are now accepted and
      ignored.
  
   7. New cutthrough routing feature.  Requested by a "control = cutthrough_delivery"
      ACL modifier; works for single-recipient mails which are recieved on and
      deliverable via SMTP.  Using the connection made for a recipient verify,
      if requested before the verify, or a new one made for the purpose while
      the inbound connection is still active.  The bulk of the mail item is copied
      direct from the inbound socket to the outbound (as well as the spool file).
      When the source notifies the end of data, the data acceptance by the destination
      is negociated before the acceptance is sent to the source.  If the destination
      does not accept the mail item, for example due to content-scanning, the item
      is not accepted from the source and therefore there is no need to generate
      a bounce mail.  This is of benefit when providing a secondary-MX service.
      The downside is that delays are under the control of the ultimate destination
      system not your own.
  
      The Recieved-by: header on items delivered by cutthrough is generated
      early in reception rather than at the end; this will affect any timestamp
      included.  The log line showing delivery is recorded before that showing
      reception; it uses a new ">>" tag instead of "=>".
  
      To support the feature, verify-callout connections can now use ESMTP and TLS.
      The usual smtp transport options are honoured, plus a (new, default everything)
      hosts_verify_avoid_tls.
  
      New variable families named tls_in_cipher, tls_out_cipher etc. are introduced
      for specific access to the information for each connection.  The old names
      are present for now but deprecated.
  
      Not yet supported: IGNOREQUOTA, SIZE, PIPELINING.
  
   8. New expansion operators ${listnamed:name} to get the content of a named list
      and ${listcount:string} to count the items in a list.
  
   9. New global option "gnutls_allow_auto_pkcs11", defaults false.  The GnuTLS
      rewrite in 4.80 combines with GnuTLS 2.12.0 or later, to autoload PKCS11
      modules.  For some situations this is desirable, but we expect admin in
      those situations to know they want the feature.  More commonly, it means
      that GUI user modules get loaded and are broken by the setuid Exim being
      unable to access files specified in environment variables and passed
      through, thus breakage.  So we explicitly inhibit the PKCS11 initialisation
      unless this new option is set.
  
      Some older OS's with earlier versions of GnuTLS might not have pkcs11 ability,
      so have also added a build option which can be used to build Exim with GnuTLS
      but without trying to use any kind of PKCS11 support.  Uncomment this in the
      Local/Makefile:
  
      AVOID_GNUTLS_PKCS11=yes
  
  10. The "acl = name" condition on an ACL now supports optional arguments.
      New expansion item "${acl {name}{arg}...}" and expansion condition
      "acl {{name}{arg}...}" are added.  In all cases up to nine arguments
      can be used, appearing in $acl_arg1 to $acl_arg9 for the called ACL.
      Variable $acl_narg contains the number of arguments.  If the ACL sets
      a "message =" value this becomes the result of the expansion item,
      or the value of $value for the expansion condition.  If the ACL returns
      accept the expansion condition is true; if reject, false.  A defer
      return results in a forced fail.
  
  11. Routers and transports can now have multiple headers_add and headers_remove
      option lines.  The concatenated list is used.
  
  12. New ACL modifier "remove_header" can remove headers before message gets
      handled by routers/transports.
  
  13. New dnsdb lookup pseudo-type "a+".  A sequence of "a6" (if configured),
      "aaaa" and "a" lookups is done and the full set of results returned.
  
  14. New expansion variable $headers_added with content from ACL add_header
      modifier (but not yet added to messsage).
  
  15. New 8bitmime status logging option for received messages.  Log field "M8S".
  
  16. New authenticated_sender logging option, adding to log field "A".
  
  17. New expansion variables $router_name and $transport_name.  Useful
      particularly for debug_print as -bt commandline option does not
      require privilege whereas -d does.
  
  18. If built with EXPERIMENTAL_PRDR, per-recipient data responses per a
      proposed extension to SMTP from Eric Hall.
  
  19. The pipe transport has gained the force_command option, to allow
      decorating commands from user .forward pipe aliases with prefix
      wrappers, for instance.
  
  20. Callout connections can now AUTH; the same controls as normal delivery
      connections apply.
  
  21. Support for DMARC, using opendmarc libs, can be enabled. It adds new
      options: dmarc_forensic_sender, dmarc_history_file, and dmarc_tld_file.
      It adds new expansion variables $dmarc_ar_header, $dmarc_status,
      $dmarc_status_text, and $dmarc_used_domain.  It adds a new acl modifier
      dmarc_status.  It adds new control flags dmarc_disable_verify and
      dmarc_enable_forensic.
  
  22. Add expansion variable $authenticated_fail_id, which is the username
      provided to the authentication method which failed.  It is available
      for use in subsequent ACL processing (typically quit or notquit ACLs).
  
  23. New ACL modifer "udpsend" can construct a UDP packet to send to a given
      UDP host and port.
  
  24. New ${hexquote:..string..} expansion operator converts non-printable
      characters in the string to \xNN form.
  
  25. Experimental TPDA (Transport Post Delivery Action) function added.
      Patch provided by Axel Rau.
  
  26. Experimental Redis lookup added. Patch provided by Warren Baker.
  
  Changes since 4.80.1 (ftp://exim.inode.at/exim/ChangeLogs/ChangeLog-4.82):
  
  PP/01 Add -bI: framework, and -bI:sieve for querying sieve capabilities.
  
  PP/02 Make -n do something, by making it not do something.
        When combined with -bP, the name of an option is not output.
  
  PP/03 Added tls_dh_min_bits SMTP transport driver option, only honoured
        by GnuTLS.
  
  PP/04 First step towards DNSSEC, provide $sender_host_dnssec for
        $sender_host_name and config options to manage this, and basic check
        routines.
  
  PP/05 DSCP support for outbound connections and control modifier for inbound.
  
  PP/06 Cyrus SASL: set local and remote IP;port properties for driver.
        (Only plugin which currently uses this is kerberos4, which nobody should
        be using, but we should make it available and other future plugins might
        conceivably use it, even though it would break NAT; stuff *should* be
        using channel bindings instead).
  
  PP/07 Handle "exim -L <tag>" to indicate to use syslog with tag as the process
        name; added for Sendmail compatibility; requires admin caller.
        Handle -G as equivalent to "control = suppress_local_fixups" (we used to
        just ignore it); requires trusted caller.
        Also parse but ignore: -Ac -Am -X<logfile>
        Bugzilla 1117.
  
  TL/01 Bugzilla 1258 - Refactor MAIL FROM optional args processing.
  
  TL/02 Add +smtp_confirmation as a default logging option.
  
  TL/03 Bugzilla 198 - Implement remove_header ACL modifier.
        Patch by Magnus Holmgren from 2007-02-20.
  
  TL/04 Bugzilla 1281 - Spec typo.
        Bugzilla 1283 - Spec typo.
        Bugzilla 1290 - Spec grammar fixes.
  
  TL/05 Bugzilla 1285 - Spec omission, fix docbook errors for spec.txt creation.
  
  TL/06 Add Experimental DMARC support using libopendmarc libraries.
  
  TL/07 Fix an out of order global option causing a segfault.  Reported to dev
        mailing list by by Dmitry Isaikin.
  
  JH/01 Bugzilla 1201 & 304 - New cutthrough-delivery feature, with TLS support.
  
  JH/02 Support "G" suffix to numbers in ${if comparisons.
  
  PP/08 Handle smtp transport tls_sni option forced-fail for OpenSSL.
  
  NM/01 Bugzilla 1197 - Spec typo
        Bugzilla 1196 - Spec examples corrections
  
  JH/03 Add expansion operators ${listnamed:name} and ${listcount:string}
  
  PP/09 Add gnutls_allow_auto_pkcs11 option (was originally called
        gnutls_enable_pkcs11, but renamed to more accurately indicate its
        function.
  
  PP/10 Let Linux makefile inherit CFLAGS/CFLAGS_DYNAMIC.
        Pulled from Debian 30_dontoverridecflags.dpatch by Andreas Metzler.
  
  JH/04 Add expansion item ${acl {name}{arg}...}, expansion condition
        "acl {{name}{arg}...}", and optional args on acl condition
        "acl = name arg..."
  
  JH/05 Permit multiple router/transport headers_add/remove lines.
  
  JH/06 Add dnsdb pseudo-lookup "a+" to do an "aaaa" + "a" combination.
  
  JH/07 Avoid using a waiting database for a single-message-only transport.
        Performance patch from Paul Fisher.  Bugzilla 1262.
  
  JH/08 Strip leading/trailing newlines from add_header ACL modifier data.
        Bugzilla 884.
  
  JH/09 Add $headers_added variable, with content from use of ACL modifier
        add_header (but not yet added to the message).  Bugzilla 199.
  
  JH/10 Add 8bitmime log_selector, for 8bitmime status on the received line.
        Pulled from Bugzilla 817 by Wolfgang Breyha.
  
  PP/11 SECURITY: protect DKIM DNS decoding from remote exploit.
        CVE-2012-5671
        (nb: this is the same fix as in Exim 4.80.1)
  
  JH/11 Add A= logging on delivery lines, and a client_set_id option on
        authenticators.
  
  JH/12 Add optional authenticated_sender logging to A= and a log_selector
        for control.
  
  PP/12 Unbreak server_set_id for NTLM/SPA auth, broken by 4.80 PP/29.
  
  PP/13 Dovecot auth: log better reason to rejectlog if Dovecot did not
        advertise SMTP AUTH mechanism to us, instead of a generic
        protocol violation error.  Also, make Exim more robust to bad
        data from the Dovecot auth socket.
  
  TF/01 Fix ultimate retry timeouts for intermittently deliverable recipients.
  
        When a queue runner is handling a message, Exim first routes the
        recipient addresses, during which it prunes them based on the retry
        hints database. After that it attempts to deliver the message to
        any remaining recipients. It then updates the hints database using
        the retry rules.
  
        So if a recipient address works intermittently, it can get repeatedly
        deferred at routing time. The retry hints record remains fresh so the
        address never reaches the final cutoff time.
  
        This is a fairly common occurrence when a user is bumping up against
        their storage quota. Exim had some logic in its local delivery code
        to deal with this. However it did not apply to per-recipient defers
        in remote deliveries, e.g. over LMTP to a separate IMAP message store.
  
        This change adds a proper retry rule check during routing so that the
        final cutoff time is checked against the message's age. We only do
        this check if there is an address retry record and there is not a
        domain retry record; this implies that previous attempts to handle
        the address had the retry_use_local_parts option turned on. We use
        this as an approximation for the destination being like a local
        delivery, as in LMTP.
  
        I suspect this new check makes the old local delivery cutoff check
        redundant, but I have not verified this so I left the code in place.
  
  TF/02 Correct gecos expansion when From: is a prefix of the username.
  
        Test 0254 submits a message to Exim with the header
  
          Resent-From: f
  
        When I ran the test suite under the user fanf2, Exim expanded
        the header to contain my full name, whereas it should have added
        a Resent-Sender: header. It erroneously treats any prefix of the
        username as equal to the username.
  
        This change corrects that bug.
  
  GF/01 DCC debug and logging tidyup
        Error conditions log to paniclog rather than rejectlog.
        Debug lines prefixed by "DCC: " to remove any ambiguity.
  
  TF/03 Avoid unnecessary rebuilds of lookup-related code.
  
  PP/14 Fix OCSP reinitialisation in SNI handling for Exim/TLS as server.
        Bug spotted by Jeremy Harris; was flawed since initial commit.
        Would have resulted in OCSP responses post-SNI triggering an Exim
        NULL dereference and crash.
  
  JH/13 Add $router_name and $transport_name variables.  Bugzilla 308.
  
  PP/15 Define SIOCGIFCONF_GIVES_ADDR for GNU Hurd.
        Bug detection, analysis and fix by Samuel Thibault.
        Bugzilla 1331, Debian bug #698092.
  
  SC/01 Update eximstats to watch out for senders sending 'HELO [IpAddr]'
  
  JH/14 SMTP PRDR (http://www.eric-a-hall.com/specs/draft-hall-prdr-00.txt).
        Server implementation by Todd Lyons, client by JH.
        Only enabled when compiled with EXPERIMENTAL_PRDR.  A new
        config variable "prdr_enable" controls whether the server
        advertises the facility.  If the client requests PRDR a new
        acl_data_smtp_prdr ACL is called once for each recipient, after
        the body content is received and before the acl_smtp_data ACL.
        The client is controlled by bolth of: a hosts_try_prdr option
        on the smtp transport, and the server advertisement.
        Default client logging of deliveries and rejections involving
        PRDR are flagged with the string "PRDR".
  
  PP/16 Fix problems caused by timeouts during quit ACLs trying to double
        fclose().  Diagnosis by Todd Lyons.
  
  PP/17 Update configure.default to handle IPv6 localhost better.
        Patch by Alain Williams (plus minor tweaks).
        Bugzilla 880.
  
  PP/18 OpenSSL made graceful with empty tls_verify_certificates setting.
        This is now consistent with GnuTLS, and is now documented: the
        previous undocumented portable approach to treating the option as
        unset was to force an expansion failure.  That still works, and
        an empty string is now equivalent.
  
  PP/19 Renamed DNSSEC-enabling option to "dns_dnssec_ok", to make it
        clearer that Exim is using the DO (DNSSEC OK) EDNS0 resolver flag,
        not performing validation itself.
  
  PP/20 Added force_command boolean option to pipe transport.
        Patch from Nick Koston, of cPanel Inc.
  
  JH/15 AUTH support on callouts (and hence cutthrough-deliveries).
        Bugzilla 321, 823.
  
  TF/04 Added udpsend ACL modifer and hexquote expansion operator
  
  PP/21 Fix eximon continuous updating with timestamped log-files.
        Broken in a format-string cleanup in 4.80, missed when I repaired the
        other false fix of the same issue.
        Report and fix from Heiko Schlichting.
        Bugzilla 1363.
  
  PP/22 Guard LDAP TLS usage against Solaris LDAP variant.
        Report from Prashanth Katuri.
  
  PP/23 Support safari_ecdhe_ecdsa_bug for openssl_options.
        It's SecureTransport, so affects any MacOS clients which use the
        system-integrated TLS libraries, including email clients.
  
  PP/24 Fix segfault from trying to fprintf() to a NULL stdio FILE* if
        using a MIME ACL for non-SMTP local injection.
        Report and assistance in diagnosis by Warren Baker.
  
  TL/08 Adjust exiqgrep to be case-insensitive for sender/receiver.
  
  JH/16 Fix comparisons for 64b.  Bugzilla 1385.
  
  TL/09 Add expansion variable $authenticated_fail_id to keep track of
        last id that failed so it may be referenced in subsequent ACL's.
  
  TL/10 Bugzilla 1375 - Prevent TLS rebinding in ldap. Patch provided by
        Alexander Miroch.
  
  TL/11 Bugzilla 1382 - Option ldap_require_cert overrides start_tls
        ldap library initialization, allowing self-signed CA's to be
        used. Also properly sets require_cert option later in code by
        using NULL (global ldap config) instead of ldap handle (per
        session). Bug diagnosis and testing by alxgomz.
  
  TL/12 Enhanced documentation in the ratelimit.pl script provided in
        the src/util/ subdirectory.
  
  TL/13 Bug 1301 - Imported transport SQL logging patch from Axel Rau
        renamed to Transport Post Delivery Action by Jeremy Harris, as
        EXPERIMENTAL_TPDA.
  
  TL/14 Bugzilla 1217 - Redis lookup support has been added. It is only enabled
        when Exim is compiled with EXPERIMENTAL_REDIS. A new config variable
        redis_servers = needs to be configured which will be used by the redis
        lookup.  Patch from Warren Baker, of The Packet Hub.
  
  TL/15 Fix exiqsumm summary for corner case. Patch provided by Richard Hall.
  
  TL/16 Bugzilla 1289 - Clarify host/ip processing when have errors looking up a
        hostname or reverse DNS when processing a host list. Used suggestions
        from multiple comments on this bug.
  
  TL/17 Bugzilla 1057 - Multiple clamd TCP targets patch from Mark Zealey.
  
  TL/18 Had previously added a -CONTINUE option to runtest in the test suite.
        Missed a few lines, added it to make the runtest require no keyboard
        interaction.
  
  TL/19 Bugzilla 1402 - Test 533 fails if any part of the path to the test suite
        contains upper case chars. Make router use caseful_local_part.
  
  TL/20 Bugzilla 1400 - Add AVOID_GNUTLS_PKCS11 build option. Allows GnuTLS
        support when GnuTLS has been built with p11-kit.
  
  Additionally, fix Exim monitor port.
  
  QA page: http://codelabs.ru/fbsd/ports/qa/mail/exim/4.82
  PR: ports/184522 by Larry Rosenman <ler@lerctr.org>

Modified:
  head/mail/exim/Makefile
  head/mail/exim/distinfo
  head/mail/exim/files/patch-src::configure.default

Modified: head/mail/exim/Makefile
==============================================================================
--- head/mail/exim/Makefile	Sun Dec  8 16:53:57 2013	(r335912)
+++ head/mail/exim/Makefile	Sun Dec  8 16:58:55 2013	(r335913)
@@ -3,7 +3,6 @@
 
 PORTNAME=	exim
 PORTVERSION?=	${EXIM_VERSION}
-PORTREVISION=	2
 CATEGORIES=	mail ipv6
 MASTER_SITES=	${MASTER_SITE_EXIM:S/$/:exim/}
 MASTER_SITE_SUBDIR=	exim4/:exim
@@ -75,7 +74,7 @@ PLIST_SUB+=	SO_1024=""
 PLIST_SUB+=	SO_1024="@comment "
 .endif
 
-EXIM_VERSION=	4.80.1
+EXIM_VERSION=	4.82
 SA_EXIM_VERSION=4.2
 SO_1024_VERSION=3.2
 
@@ -91,9 +90,9 @@ CONFLICTS+=	${PKGNAMEPREFIX}${PORTNAME}$
 .if ${PORT_OPTIONS:MEXIMON}
 CONFLICTS+=	${PKGNAMEPREFIX}${PORTNAME}-monitor-4.*
 .endif
-.else
-WITH_EXIMON=	yes
-.endif
+.else # !EXIMON_ONLY
+PORT_OPTIONS+=	EXIMON
+.endif # !EXIMON_ONLY
 
 .if ${PORT_OPTIONS:MEXIMON}
 USE_XORG=	x11 xaw xt
@@ -237,6 +236,9 @@ SEDLIST+=	-e 's,XX_TCP_WRAPPERS_LIBS_XX,
 USES+=		iconv
 SEDLIST+=	-e 's,XX_ICONV_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib ${ICONV_LIB},' \
 		-e 's,^\# (HAVE_ICONV=),\1,'
+.if exists(/usr/include/iconv.h) && exists(${LOCALBASE}/include/iconv.h)
+IGNORE=		You have iconv support in base system, but ${LOCALBASE}/include/iconv.h is present too.  It will hiccup the build.
+.endif
 .else
 SEDLIST+=	-e 's,XX_ICONV_LIBS_XX,,'
 .endif

Modified: head/mail/exim/distinfo
==============================================================================
--- head/mail/exim/distinfo	Sun Dec  8 16:53:57 2013	(r335912)
+++ head/mail/exim/distinfo	Sun Dec  8 16:58:55 2013	(r335913)
@@ -1,5 +1,5 @@
-SHA256 (exim/exim-4.80.1.tar.bz2) = 9565b10f06be224fd03adafae2e07e6fdbb479f8873e3894ddb13f98eeebe78f
-SIZE (exim/exim-4.80.1.tar.bz2) = 1650082
+SHA256 (exim/exim-4.82.tar.bz2) = 46dedfb6ced2aa4a1eddc5d8ce46a790a961508bd389faa2e215302ae80d91cf
+SIZE (exim/exim-4.82.tar.bz2) = 1722771
 SHA256 (exim/sa-exim-4.2.tar.gz) = 72e0a735547f18b05785e6c58a71d24623858f0f5234a5dc0e24cb453999e99a
 SIZE (exim/sa-exim-4.2.tar.gz) = 66575
 SHA256 (exim/spamooborona1024-src-3.2.tar.gz) = ab22a430f3860460045f6b213c68c89700a0cd10cbb6c7a808ece326c53787ee

Modified: head/mail/exim/files/patch-src::configure.default
==============================================================================
--- head/mail/exim/files/patch-src::configure.default	Sun Dec  8 16:53:57 2013	(r335912)
+++ head/mail/exim/files/patch-src::configure.default	Sun Dec  8 16:58:55 2013	(r335913)
@@ -1,14 +1,5 @@
 --- src/configure.default.orig	Wed May  5 12:08:35 2004
 +++ src/configure.default	Wed May  5 15:09:40 2004
-@@ -56,7 +56,7 @@
- 
- domainlist local_domains = @
- domainlist relay_to_domains =
--hostlist   relay_from_hosts = 127.0.0.1
-+hostlist   relay_from_hosts = localhost
- 
- # Most straightforward access control requirements can be obtained by
- # appropriate settings of the above options. In more complicated situations, you
 @@ -153,6 +153,8 @@
  # as if it were a normal user. This isn't usually a problem, as most sites have
  # an alias for root that redirects such mail to a human administrator.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312081658.rB8GwuBP056597>