1The stable Postfix release is called postfix-2.4.x where 2=major
2release number, 4=minor release number, x=patchlevel.  The stable
3release never changes except for patches that address bugs or
4emergencies. Patches change the patchlevel and the release date.
5
6New features are developed in snapshot releases. These are called
7postfix-2.5-yyyymmdd where yyyymmdd is the release date (yyyy=year,
8mm=month, dd=day).  Patches are never issued for snapshot releases;
9instead, a new snapshot is released.
10
11The mail_release_date configuration parameter (format: yyyymmdd)
12specifies the release date of a stable release or snapshot release.
13
14Major changes - critical
15------------------------
16
17See RELEASE_NOTES-2.3 if you upgrade from Postfix 2.2 or earlier.
18
19[Incompat 20070122] To take advantage of the new support for BSD
20kqueue, Linux epoll, or Solaris /dev/poll, you must restart (not
21reload) Postfix after upgrading from Postfix 2.3.
22
23[Incompat 20061209] If you upgrade Postfix without restarting, you
24MUST execute "postfix reload", otherwise the queue manager may log
25a warnings with:
26
27    warning: connect to transport retry: Connection refused
28
29[Incompat 20061209] The upgrade procedure adds a new "retry" service
30to the master.cf file.  If you make the mistake of copying old
31Postfix configuration files over the new files, the queue manager
32may log warnings with:
33
34    warning: connect to transport retry: Connection refused
35
36To fix your master.cf file, use "postfix upgrade-configuration"
37followed by "postfix reload".
38
39Major changes - safety
40----------------------
41
42[Incompat 20070222] As a safety measure, Postfix now by default
43creates mailbox dotlock files on all systems. This prevents problems
44with GNU POP3D which subverts kernel locking by creating a new
45mailbox file and deleting the old one.
46
47Major changes - Milter support
48------------------------------
49
50[Feature 20070121] The support for Milter header modification
51requests was revised.  With minimal change in the on-disk representation,
52the code was greatly simplified, and regression tests were updated
53to ensure that old errors were not re-introduced.  The queue file
54format is entirely backwards compatible with Postfix 2.3.
55
56[Feature 20070116] Support for Milter requests to replace the message
57body.  Postfix now implements all the header/body modification
58requests that are available with Sendmail 8.13.
59
60[Incompat 20070116] A new field is added to the queue file "size"
61record that specifies the message content length.  Postfix 2.3 and
62older Postfix 2.4 snapshots will ignore this field, and will report
63the message size as it was before the body was replaced.
64
65Major changes - TLS support
66---------------------------
67
68[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
69attributes (client ccert_subject, ccert_issuer) only after successful
70client certificate verification. The reason is that the certification
71verification status itself is not available in the policy request.
72
73[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
74fingerprint information even when the certificate itself was not
75verified.
76
77[Incompat 20061214] The remote SMTP client TLS certificate fingerprint
78can be used for access control even when the certificate itself was
79not verified.
80
81[Incompat 20061006] The format of SMTP server TLS session cache
82lookup keys has changed.  The lookup key now includes the master.cf
83service name.
84
85Major changes - performance
86---------------------------
87
88[Feature 20070212] Better support for systems that run thousands
89of Postfix processes.  Postfix now supports FreeBSD kqueue(2),
90Solaris poll(7d) and Linux epoll(4) as more scalable alternatives
91to the traditional select(2) system call, and uses poll(2) when
92examining a single file descriptor for readability or writability.
93These features are supported on sufficiently recent versions of
94FreeBSD, NetBSD, OpenBSD, Solaris and Linux; support for other
95systems will be added as evidence becomes available that usable
96implementations exist.
97
98[Incompat 20070201] Some default settings have been adjusted to
99better match contemporary requirements:
100
101- queue_run_delay and minimal_backoff_time were reduced from 1000s
102  to 300s so that deliveries are retried earlier after the first
103  failure.
104
105- ipc_idle was reduced from 100s to 5s, so that tlsmgr and scache
106  clients will more quickly release unused file handles.
107
108[Feature 20061209] Improved worst-case (old and new) queue manager
109performance when deferring or bouncing large amounts of mail. Instead
110of talking to the bounce or defer service synchronously, this work
111is now done in the background by the error or retry service.
112
113[Feature 20061209] Improved worst-case (new) queue manager performance
114when delivering multi-recipient mail. The queue manager now proactively
115reads recipients from the queue file, instead of waiting for the
116slowest deliveries to complete before reading in new recipients.
117This introduces two parameters: default_recipient_refill_limit (how
118many recipient slots to refill at a time) and
119default_recipient_refill_delay (how long to wait between refill
120operations). These two parameters act as defaults for optional
121per-transport settings.
122
123Major changes - delivery status notifications
124---------------------------------------------
125
126[Incompat 20061209] Small changes were made to the default bounce
127message templates, to prevent HTML-aware software from hiding or
128removing the text "<postmaster>", and producing misleading text.
129
130[Incompat 20060806] Postfix no longer announces its name in delivery
131status notifications.  Users believe that Wietse provides a free
132help desk service that solves all their email problems.
133
134Major changes - ETRN support
135----------------------------
136
137[Feature 20061217] More precise queue flushing with the ETRN,
138"postqueue -s site", and "sendmail -qRsite" commands, after
139minimization of race conditions.  New per-queue-file flushing with
140"postqueue -i queueid" and "sendmail -qIqueueid".
141
142Major changes - small office/home office support
143------------------------------------------------
144
145[Incompat 20061217] Postfix no longer requires a domain name. It
146uses "localdomain" as the default Internet domain name when no
147domain is specified via main.cf or via the machine's hostname.
148
149Major changes - SMTP access control
150-----------------------------------
151
152[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
153attributes (client ccert_subject, ccert_issuer) only after successful
154client certificate verification. The reason is that the certification
155verification status itself is not available in the policy request.
156
157[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
158fingerprint information even when the certificate itself was not
159verified.
160
161[Incompat 20061214] The remote SMTP client TLS certificate fingerprint
162can be used for
163access control even when the certificate itself was not verified.
164
165[Incompat 20061209] The Postfix installation procedure no longer
166updates main.cf with "unknown_local_recipient_reject_code = 450".
167Four years after the introduction of mandatory recipient validation,
168this transitional tool is no longer neeed.
169
170Major changes - workarounds
171---------------------------
172
173[Incompat 20070222] As a safety measure, Postfix now by default
174creates mailbox dotlock files on all systems. This prevents problems
175with GNU POP3D which subverts kernel locking by creating a new
176mailbox file and deleting the old one.
177
178[Feature 20061209] Better interoperability with non-conforming SMTP
179servers that reply and disconnect before Postfix has sent the
180complete message content.
181
182[Feature 20061209] Better support for queue file systems on file
183servers with drifting clocks. Clock skew can be a problem, because
184Postfix does not deliver mail until the local clock catches up with
185the queue file's last modification time stamp. On systems with
186usable futimes() or equivalent (Solaris, *BSD, MacOS, but not Linux),
187Postfix now always explicitly sets the queue file last modification
188time stamps while creating a queue file.  On systems without usable
189futimes() (Linux, and ancient versions of Solaris, SunOS and *BSD)
190Postfix keeps using the slower utime() system call to update queue
191file time stamps when the file system clock is off with respect to
192the local system clock, and logs a warning.
193
194[Feature 20061006] Individual CISCO PIX bug workarounds are now
195on/off configurable.  This introduces new parameters: smtp_pix_workarounds
196(default: disable_esmtp, delay_dotcrlf) and smtp_pix_workaround_maps
197(workarounds indexed by server IP address).  The default settings
198are backwards compatible.
199