Reduce the number of patches needed by Postfix by using the subst
framework and also by explicitly specifying more default values for
Postfix parameters. Also pass -I/usr/pkg/include/sasl to the compiler
when building using Cyrus SASLv2, which allows me to remove the patches
that added an unnecessary USE_SASL2_AUTH check.
pkgsrc changes:
- install smtpd-policy script as example.
- adapot NetBSD 2.X and later.
- make local(8) handle EDQUOT as temporary error.
- enable RECEIVED_ENVELOPE_FROM.
Postfix changes:
20040324
Portability: ekkoBSD support by Philip Reynolds.
Files: makedefs, util/sys_defs.h.
20040325
Cleanup: smtp_skip_4xx_greeting and smtp_skip_5xx_greeting
functionality is moved from connection management to SMTP
protocol processing, so that Postfix now logs the server
response when a server refuses to provide service. Files:
smtp/smtp_connect.c, smtp/smtp_proto.c.
Cleanup: smtp_skip_4xx_greeting is no longer configurable;
it is now permanently turned on.
20040326
Workaround: in the trivial-rewrite server, turn on the code
to strip trailing "." while rewriting addresses, and change
the address resolver to strip trailing "." in a compatible
manner. This does not eliminate the problem that the SMTP
server may use a different address for recipient validation
than what the cleanup server uses for virtual alias mapping.
20040329
Bugfix: the SMTP server did not log client (and SASL)
information with the real-time content filter was enabled.
Files: smtpd/smtpd.c, smtpd/smtpd_sasl_proto.c.
Compatibility: smtpd_reject_unlisted_sender is turned off
by default, to avoid trouble with with in-house software
that sends out mail software with an unreplyable address.
20040331
Bugfix: postdrop should not abandon mail submission after
receiving a SIGHUP signal when SIGHUP was ignored by the
parent process. Victor Duchovni, Morgan Stanley. File:
postdrop/postdrop.c.
Bugfix: parsing bug in PgSQL dictionaries causing UNIX
sockets to be ignored. Liviu Daia. Files: global/dict*sql.c.
Performance: allow MySQL and PgSQL database connections to
be closed when idle for more than 1 minute; Liviu Daia.
Files: global/dict*sql.c.
20040401
Sanity: the SMTP server no longer accepts sender or recipient
addresses that end in the "@" null domain, as well as
addresses that rewrite into such a form. Specify
"resolve_null_domain=yes" to get the old behavior back.
File: trivial-rewrite/resolve.c.
20040402
Cleanup: added WARN action support for access maps, for
consistency with the WARN action in header and body checks.
File: smtpd/smtpd_check.c.
20040407
Bugfix: missing return statement at the end of the
FREE_MEMORY_AND_RETURN error handling macro. Adi Prasaja.
File: trivial-rewrite/resolve.c.
20040411
Future proofing: client_rate_time_unit is renamed to
anvil_rate_time_unit, so that it is no longer limited to
clients only. File: src/global/mail_params.h.
Cleanup: postalias and postmap now log problems to syslogd.
Files: postalias/postalias.c, postmap/postmap.c.
20040413
Feature: "postfix set-permissions" (re)sets ownership and
access permissions of Postfix files and directories.
Feature: "postfix upgrade-configuration" updates main.cf
and master.cf. This is for people who people copy over
their old files after installing a newer Postfix version.
Feature: HTML files are now optionally installed under
control of the html_directory configuration parameter.
Files: postfix-install, conf/postfix-files, conf/post-install.
Cleanup: README file installation is now optional. Files:
postfix-install, conf/postfix-files, conf/post-install.
20040414
Cleanup: references to sample-mumble.cf files removed,
conf/mumble_table files removed, new commands added to
conf/postfix-script.
Cleanups: function declared in but used as void, missing
include file, missing const qualifier, unused variable.
Matthias Andree. Files: bounce/bounce_notify_util.c,
bounce/bounce_service.h, postlog/postlog.c, smtpd/smtpd_check.c,
util/attr_scan64.c.
Bugfix: more robust version of SIGHUP test of 20040331.
Victor Duchovni, Morgan Stanley. File: postdrop/postdrop.c.
Safety: added NOCLOBBER qualifiers to local variables that
might be clobbered by longjmp(). Files: util/sys_defs.h,
smtp/smtp_proto.c, lmtp/lmtp_proto.c, smtpd/smtpd_check.c,
smtpstone/smtp-source.c.
Bugfix: sub-level Makefiles no longer turned on the extra
compiler warnings. Files: Makefile.in.*, makedefs.*.
20040415
Bugfix: the LMTP client attempted to reuse a connection
after timeout, causing protocol synchronization errors.
Reported by Rob Mueller. File: lmtp/lmtp.c.
20040416
Cleanup: non-delivery reports now include the original
recipient information. File: bounce/bounce_notify_util.c.
20040415-18
Typos: many documentation fixes by Rob Foehl.
20040418
Cleanup: "int" versus "const int" prototype mismatch between
the DICT sequence method prototype and possible implementations.
Files: util/dict_db.c, util/dict_dbm.c.
20040419
Bugfix: the code that rejects client/helo RESTRICTIONS with
smtpd_delay_reject=no looked at the wrong evidence and
rejected client/helo ACCESS MAP lookups instead. Michael
Tokarev. Files: smtpd/smtpd.c, smtpd/smtpd_check.c.
Bugfix: missing # in master.cf in optional submission
service.
20040420
Bugfix: smtpd logged the client too often. Michael Tokarev.
File: smtpd/smtpd.c.
Cleanup: client_event_status_update_time renamed to
anvil_status_update_time. Files: mantools/postlink,
proto/postconf.proto, anvil/anvil.c.
20040421
Workaround: allow pipelined SMTP clients to overshoot the
SMTP server recipient limit without triggering the server
hard error limit. The SMTP server does not count "too many
recipients" towards the hard error limit, as long as the
number of excess recipients stays within a configurable
overshoot limit (default: smtpd_recipient_overshoot_limit
= 1000). Solution in cooperation with Victor Duchovni.
Files: smtpd/smtpd.c, smtpd/smtpd_state.c, smtpd/smtpd.h.
20040502
Missing test for a never used flag (the problematic and
thus never completed INSPECT feature that doesn't re-inject
mail into Postfix). Victor Duchovni, Morgan Stanley. File:
virtual/virtual.c.
20040503
Bugfix: missing "sasl enabled" guard in the SMTPD policy
client. File: smtpd/smtpd_check.c.
Major changes with snapshot-20010202
====================================
The mailbox file size limits for the local and virtual delivery
agents can be disabled by setting mailbox_size_limit and/or
virtual_mailbox_limit to zero.
Incompatible changes with snapshot-20010128
===========================================
If this release does not work for you, you can go back to a previous
Postfix version without losing your mail, subject to the "incompatible
changes" listed for previous Postfix releases below.
REJECT in header/body_checks is now flagged as policy violation
rather than bounce, for consistency in postmaster notifications.
New mailbox size limit for local delivery (default: 50MBytes). This
limit affects all file write access by the local delivery agent or
by a process run by the local delivery agent. The purpose of this
parameter is to act as a safety for run-away software. It cannot
be a substitute for a file quota management system.
The default RBL (real-time blackhole lists) domain examples have
been updated from *.vix.com to *.mail-abuse.org.
Major changes with snapshot-20010128
====================================
Updated nqmgr (experimental queue manager with clever queueing
strategy) by Patrik Rak. This code is still new. Once it stops
changing (for a long time!) it will become part of the non-beta
release.
Virtual mailbox delivery agent by Andrew McNamara. This delivery
agent can deliver mail for any number of domains. See the file
VIRTUAL_README for detailed examples. This code is still new. Once
it stops changing it will become part of the non-beta release.
Many "valid_hostname" warnings were eliminated. The warnings that
were not eliminated were replaced by something more informative.
SASL support (RFC 2554) for the LMTP delivery agent. This is required
by recent Cyrus implementations when delivering mail over TCP
sockets. The LMTP_README file has been updated but still contains
some obsolete information.
Workarounds for non-standard RFC 2554 (AUTH command) implementations.
Specify "broken_sasl_auth_clients = yes" to enable SMTP server
support for old Microsoft client applications. The Postfix SMTP
client supports non-standard RFC 2554 servers by default.
Major changes with snapshot-20001217
====================================
This release involves little change in functionality and a lot of
small changes to lots of files. The code is put out as a separate
snapshot release so that I have a tested baseline for further work.
All time-related configuration parameters now accept a one-letter
suffix to indicate the time unit (s: second, m: minute, h: hour,
d: day, w: week). The exceptions are the LDAP and MYSQL modules
which are maintained separately.
The mysql client was partially rewritten in order to elimimate some
memory allocation/deallocation problems. The code needs more work,
and needs to be tested in a real production environment.
The local_transport and default_transport configuration parameters
can now be specified in transport:destination notation, just like
the mailbox_transport and fallback_transport parameters. The
:destination part is optional. However, these parameters take only
one destination, unlike relayhost and fallback-relay which take
any number of destinations.
Incompatible changes with snapshot-20001210
===========================================
If this release does not work for you, you can go back to a previous
Postfix version without losing your mail, subject to the "incompatible
changes" listed for previous Postfix releases below.
When delivering to /file/name (as directed in an alias or .forward
file), the local delivery agent now logs a warning when it is unable
to create a /file/name.lock file. Mail is still delivered as before.
The "sun_mailtool_compatibility" feature is going away (a compatibility
mode that turns off kernel locks on mailbox files). It still works,
but a warning is logged. Instead of using "sun_mailtool_compatibility",
specify the mailbox locking strategy as "mailbox_delivery_lock =
dotlock".
The Postfix SMTP client now skips SMTP server replies that do not
start with "CODE SPACE" or with "CODE HYPHEN" and flags them as
protocol errors. Older Postfix SMTP clients silently treated "CODE
TEXT" as "CODE SPACE TEXT", i.e. as a valid SMTP reply.
This snapshot does not yet change default relay settings. That
change alone affects a dozen files, most of which documentation.
This may be an incompatibility with some people's expectations,
but such are my rules - between code freeze and release no major
functionality changes are allowed.
Several interfaces of libutil and libglobal routines have changed.
This may break third-party code written for Postfix. In particular,
the safe_open() routine has changed, the way the preferred locking
method is specified in the sys_defs.h file, as well as all routines
that perform file locking. When compiling third-party code written
for Postfix, the incompatibilities will be detected by the compiler
provided that #include file dependencies are properly maintained.
Major changes with snapshot-20001210
====================================
This snapshot includes bugfixes that were already released as
patches 12 and 13 for the 19991231 "stable" release:
- The queue manager could deadlock for 10 seconds when bouncing
mail under extreme load from one-to-one mass mailings.
- Local delivery performance was substandard, because the per-user
concurrency limit accidentally applied to the entire local
domain.
The mailbox locking style is now fully configurable at runtime.
The new configuration parameter is called "mailbox_delivery_lock".
Depending on the operating system type, mailboxes can be locked
with one or more of "flock", "fcntl" or "dotlock". The command
"postconf -l" shows the available locking styles. The default
mailbox locking style is system dependent. This change affects
all mailbox and all "/file/name" deliveries by the Postfix local
delivery agent.
The new "import_environment" and "export_environment" configuration
parameters now provide explicit control over what environment
variables Postfix will import, and what environment variables
Postfix will pass on to a non-Postfix process. This is better than
hard-coding my debugging environment into public releases.
The "mailbox_transport" and "fallback_transport" parameters now
understand the form "transport:nexthop", with suitable defaults
when either transport or nexthop are omitted, just like in the
Postfix transport map. This allows you to specify for example,
"mailbox_transport = lmtp:unix:/file/name".
The MYSQL client now supports server connections over UNIX-domain
sockets. Code provided by Piotr Klaban. See the file MYSQL_README
for examples of "host" syntax.
is it in <db_185.h>? no
is it in <db/db.h>? no
is it in <db1/db.h>? yes
and for a good measure they've renamed libdb.a to libdb1.a to make sure
that they break linking, not just compiling.