Subject: CVS commit: pkgsrc/mail/exim
To: None <pkgsrc-changes@NetBSD.org>
From: David Brownlee <abs@netbsd.org>
List: pkgsrc-changes
Date: 06/24/2007 10:55:41
Module Name:	pkgsrc
Committed By:	abs
Date:		Sun Jun 24 10:55:41 UTC 2007

Modified Files:
	pkgsrc/mail/exim: Makefile distinfo
	pkgsrc/mail/exim/patches: patch-aa

Log Message:
Update mail/exim to 4.67:

	Prompted by report from Peter Avalos that exim 4.66 would not build
	against openssl 0.9.8e

Changelog:

MH/01 Fix for bug #448, segfault in Dovecot authenticator when interface_address
      is unset (happens when testing with -bh and -oMi isn't used). Thanks to
      Jan Srzednicki.

PH/01 Added a new log selector smtp_no_mail, to log SMTP sessions that do not
      issue a MAIL command.

PH/02 In an ACL statement such as

        deny dnslists = X!=127.0.0.2 : X=127.0.0.2

      if a client was not listed at all, or was listed with a value other than
      127.0.0.2, in the X list, but was listed with 127.0.0.2 in the Y list,
      the condition was not true (as it should be), so access was not denied.
      The bug was that the ! inversion was incorrectly passed on to the second
      item. This has been fixed.

PH/03 Added additional dnslists conditions == and =& which are different from
      = and & when the dns lookup returns more than one IP address.

PH/04 Added gnutls_require_{kx,mac,protocols} to give more control over the
      cipher suites used by GnuTLS. These options are ignored by OpenSSL.

PH/05 After discussion on the list, added a compile time option ENABLE_DISABLE_
      FSYNC, which compiles an option called disable_fsync that allows for
      bypassing fsync(). The documentation is heavily laced with warnings.

SC/01 Updated eximstats to collate all SpamAssassin rejects into one bucket.

PH/06 Some tidies to the infrastructure of the Test Suite that is concerned
      with the auxiliary C programs that it uses: (1) Arrange for BIND_8_COMPAT
      to be defined when compiling on OSX (Darwin); (2) Tidies to the Makefile,
      including adding "make clean"; (3) Added -fPIC when compiling the test
      dynamically loaded module, to get rid of a warning.

MH/02 Fix for bug #451, causing paniclog entries to be written if a bounce
      message fails, move_frozen_messages = true and ignore_bounce_errors_after
      = 0s. The bug is otherwise harmless.

PH/07 There was a bug in the dovecot authenticator such that the value of
      $auth1 could be overwritten, and so not correctly preserved, after a
      successful authentication. This usually meant that the value preserved by
      the server_setid option was incorrect.

PH/08 Added $smtp_count_at_connection_start, deliberately with a long name.

PH/09 Installed PCRE release 7.0.

PH/10 The acl_not_smtp_start ACL was, contrary to the documentation, not being
      run for batched SMTP input. It is now run at the start of every message
      in the batch. While fixing this I discovered that the process information
      (output by running exiwhat) was not always getting set for -bs and -bS
      input. This is fixed, and it now also says "batched" for BSMTP.

PH/11 Added control=no_pipelining.

PH/12 Added $sending_ip_address and $sending_port (mostly Magnus Holmgren's
      patch, slightly modified), and move the expansion of helo_data till after
      the connection is made in the smtp transport (so it can use these
      values).

PH/13 Added ${rfc2047d: to decoded RFC 2047 strings.

PH/14 Added log_selector = +pid.

PH/15 Flush SMTP output before delaying, unless control=no_delay_flush is set.

PH/16 Add ${if forany and ${if forall.

PH/17 Added dsn_from option to vary the From: line in DSNs.

PH/18 Flush SMTP output before performing a callout, unless control =
      no_callout_flush is set.

PH/19 Change 4.64/PH/36 introduced a bug: when address_retry_include_sender
      was true (the default) a successful delivery failed to delete the retry
      item, thus causing premature timeout of the address. The bug is now
      fixed.

PH/20 Added hosts_avoid_pipelining to the smtp transport.

PH/21 Long custom messages for fakedefer and fakereject are now split up
      into multiline reponses in the same way that messages for "deny" and
      other ACL rejections are.

PH/22 Applied Jori Hamalainen's speed-up changes and typo fixes to exigrep,
      with slight modification.

PH/23 Applied sieve patches from the maintainer "tracking the latest notify
      draft, changing the syntax and factoring some duplicate code".

PH/24 When the log selector "outgoing_port" was set, the port was shown as -1
      for deliveries of the second and subsequent messages over the same SMTP
      connection.

PH/25 Applied Magnus Holmgren's patch for ${addresses, ${map, ${filter, and
      ${reduce, with only minor "tidies".

SC/02 Applied Daniel Tiefnig's patch to improve the '($parent) =' pattern match.

PH/26 Added a "continue" ACL modifier that does nothing, for the benefit of its
      expansion side effects.

PH/27 When a message times out after an over-quota error from an Exim-imposed
      quota, the bounce message says "mailbox is full". This message was not
      being given when it was a system quota that was exceeded. It now should
      be the same.

MH/03 Made $recipients available in local_scan(). local_scan() already has
      better access to the recipient list through recipients_list[], but
      $recipients can be useful in postmaster-provided expansion strings.

PH/28 The $smtp_command and $smtp_command_argument variables were not correct
      in the case of a MAIL command with additional options following the
      address, for example: MAIL FROM:<foo@bar> SIZE=1234. The option settings
      were accidentally chopped off.

PH/29 SMTP synchronization checks are implemented when a command is read -
      there is a check that no more input is waiting when there shouldn't be
      any. However, for some commands, a delay in an ACL can mean that it is
      some time before the response is written. In this time, more input might
      arrive, invalidly. So now there are extra checks after an ACL has run for
      HELO/EHLO and after the predata ACL, and likewise for MAIL and RCPT when
      pipelining has not been advertised.

PH/30 MH's patch to allow iscntrl() characters to be list separators.

PH/31 Unlike :fail:, a custom message specified with :defer: was not being
      returned in the SMTP response when smtp_return_error_details was false.
      This has been fixed.

PH/32 Change the Dovecot authenticator to use read() and write() on the socket
      instead of the C I/O that was originally supplied, because problems were
      reported on Solaris.

PH/33 Compile failed with OpenSSL 0.9.8e. This was due to a coding error in
      Exim which did not show up earlier: it was assuming that a call to
      SSL_CTX_set_info_callback() might give an error value. In fact, there is
      no error. In previous releases of OpenSSL, SSL_CTX_set_info_callback()
      was a macro that became an assignment, so it seemed to work. This has
      changed to a proper function call with a void return, hence the compile
      error. Exim's code has been fixed.

PH/34 Change HDA_SIZE in oracle.c from 256 to 512. This is needed for 64-bit
      cpus.

PH/35 Applied a patch from the Sieve maintainer which fixes a bug in "notify".

PH/36 Applied John Jetmore's patch to add -v functionality to exigrep.

PH/37 If a message is not accepted after it has had an id assigned (e.g.
      because it turns out to be too big or there is a timeout) there is no
      "Completed" line in the log. When some messages of this type were
      selected by exigrep, they were listed as "not completed". Others were
      picked up by some special patterns. I have improved the selection
      criteria to be more general.

PH/38 The host_find_failed option in the manualroute router can now be set
      to "ignore", to completely ignore a host whose IP address cannot be
      found. If all hosts are ignored, the behaviour is controlled by the new
      host_all_ignored option.

PH/39 In a list of hosts for manualroute, if one item (either because of multi-
      homing or because of multiple MX records with /mx) generated more than
      one IP address, and the following item turned out to be the local host,
      all the secondary addresses of the first item were incorrectly removed
      from the list, along with the local host and any following hosts (which
      is what is supposed to happen).

PH/40 When Exim receives a message, it writes the login name, uid, and gid of
      whoever called Exim into the -H file. In the case of the daemon it was
      behaving confusingly. When first started, it used values for whoever
      started the daemon, but after a SIGHUP it used the Exim user (because it
      calls itself on a restart). I have changed the code so that it now always
      uses the Exim user.

PH/41 (Following a suggestion from Tony Finch) If all the RCPT commands in a
      message are rejected with the same error (e.g. no authentication or bad
      sender address), and a DATA command is nevertheless sent (as can happen
      with PIPELINING or a stupid MUA), the error message that was given to the
      RCPT commands is included in the rejection of the DATA command. This is
      intended to be helpful for MUAs that show only the final error to their
      users.

PH/42 Another patch from the Sieve maintainer.

SC/02 Eximstats - Differentiate between permanent and temporary rejects.
      Eximstats - Fixed some broken HTML links and added missing column headers
                  (Jez Hancock).
      Eximstats - Fixed Grand Total Summary Domains, Edomains, and Email
                  columns for Rejects, Temp Rejects, Ham, and Spam rows.

SC/03 Eximstats - V1.58 Fix to get <> and blackhole to show in edomain tables.

PH/43 Yet another patch from the Sieve maintainer.

PH/44 I found a way to check for a TCP/IP connection going away before sending
      the response to the final '.' that terminates a message, but only in the
      case where the client has not sent further data following the '.'
      (unfortunately, this is allowed). However, in many cases there won't be
      any further data because there won't be any more messages to send. A call
      to select() can be used: if it shows that the input is "ready", there is
      either input waiting, or the socket has been closed. An attempt to read
      the next input character can distinguish the two cases. Previously, Exim
      would have sent an OK response which the client would never have see.
      This could lead to message repetition. This fix should cure that, at
      least in a lot of common cases.

PH/45 Do not advertise STARTTLS in response to HELP unless it would be
      advertised in response to EHLO.


To generate a diff of this commit:
cvs rdiff -r1.83 -r1.84 pkgsrc/mail/exim/Makefile
cvs rdiff -r1.36 -r1.37 pkgsrc/mail/exim/distinfo
cvs rdiff -r1.18 -r1.19 pkgsrc/mail/exim/patches/patch-aa

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.