The stable Postfix release is called postfix-2.8.x where 2=major
release number, 8=minor release number, x=patchlevel.  The stable
release never changes except for patches that address bugs or
emergencies. Patches change the patchlevel and the release date.

New features are developed in snapshot releases. These are called
postfix-2.9-yyyymmdd where yyyymmdd is the release date (yyyy=year,
mm=month, dd=day).  Patches are never issued for snapshot releases;
instead, a new snapshot is released.

The mail_release_date configuration parameter (format: yyyymmdd)
specifies the release date of a stable release or snapshot release.

If you upgrade from Postfix 2.7 or earlier, read RELEASE_NOTES-2.8
before proceeding.

Incompatible changes with snapshot 20110321
===========================================

You need to "postfix reload" after upgrade from snapshot 20110320.
The hash_queue_names algorithm was changed for better performance
with long queue IDs.

Incompatible changes with snapshot 20110320
===========================================

If you enable support for long queue file names, you need to be
aware that these file names are not compatible with Postfix <= 2.8.
If you must migrate to Postfix <= 2.8, you must first convert all
long queue file names into short names, otherwise the old Postfix
version will complain.

The conversion procedure before migration to Postfix <= 2.8 is:

    # postfix stop
    # postconf enable_long_queue_ids=no
    # postsuper

Run the postsuper command repeatedly until it no longer reports
queue file name changes.

Major changes with snapshot 20110320
====================================

Support for long, non-repeating, queue IDs (queue file names).  The
benefit of non-repeating names is simpler logfile analysis, and
easier queue migration (there is no need to run "postsuper" to
change queue file names that don't match their message file inode
number).

Specify "enable_long_queue_ids = yes" to enable the feature. This
does not change the names of existing queue files. See postconf(5)
or postconf.5.html#enable_long_queue_ids for a detailed description
of the differences with the old short queue IDs.

This changes new Postfix queue IDs from the short form 0FCEE9247A9
into the longer form 3Ps0FS1Zhtz1PFjb, and changes new Message-ID
header values from YYMMDDHHMMSS.queueid@myhostname into the shorter
form queueid@myhostname.

See the note on "Incompatible changes" for a backwards migration
procedure to convert long queue file names into a form that is
compatible with Postfix <= 2.8.

Incompatible changes with snapshot 20110313
===========================================

Use "postfix reload" after "make upgrade" on a running Postfix
system. This is needed because the protocol between postscreen(8)
and dnsblog(8) has changed.

Major changes with snapshot 20110228
====================================

postscreen(8) support to force remote SMTP clients to implement
proper MX lookup policy.  By listening on both primary and backup
MX addresses, postscreen(8) can deny the temporary whitelist status
to clients that connect only to backup MX hosts, and prevent them
from talking to a Postfix SMTP server process.

Example: when 1.2.3.4 is a local backup IP address, specify
"postscreen_whitelist_interfaces = !1.2.3.4 static:all".

Incompatible changes with snapshot 20110219
===========================================

The Postfix SMTP and QMQP servers now log "hostname X does not
resolve to address Y", when a "reverse hostname" lookup result does
not resolve to the client IP address. Until now these servers logged
"Y: hostname X verification failed" or "Y: address not listed for
hostname X" depending on the details of the error.

Major changes with snapshot 20110219
====================================

Postfix now uses long integers for message_size_limit, mailbox_size_limit
and virtual_mailbox_limit. On LP64 systems (64-bit long and pointer,
but 32-bit integer), these limits can now exceed 2GB.

Major changes with snapshot 20110212
====================================

Support for per-record deadlines.  These change the behavior of
Postfix timeout parameters, from a time limit per read or write
system call, to a time limit to send or receive a complete record
(an SMTP command line, SMTP response line, SMTP message content
line, or TLS protocol message).  This limits the impact from hostile
peers that trickle data one byte at a time.

The new configuration parameters and their default settings are:
smtpd_per_record_deadline (normal: no, overload: yes),
smtp_per_record_deadline (no), and lmtp_per_record_deadline (no).

Note: when per-record deadlines are enabled, a short timeout may
cause problems with TLS over very slow network connections.  The
reasons are that a TLS protocol message can be up to 16 kbytes long
(with TLSv1), and that an entire TLS protocol message must be sent
or received within the per-record deadline.

Per-record deadlines were introduced with postscreen(8). This program
does not receive mail, and therefore has no problems with TLS over
slow connections.

Incompatible changes with snapshot 20110130
===========================================

The VSTREAM error flags are now split into separate read and write
error flags. As a result of this change, all programs that use
VSTREAMs MUST be recompiled.
