Prereq: "2.2.7" diff -cr /var/tmp/postfix-2.2.7/src/global/mail_version.h ./src/global/mail_version.h *** /var/tmp/postfix-2.2.7/src/global/mail_version.h Thu Dec 8 09:42:11 2005 --- ./src/global/mail_version.h Tue Jan 3 16:42:48 2006 *************** *** 20,27 **** * Patches change the patchlevel and the release date. Snapshots change the * release date only. */ ! #define MAIL_RELEASE_DATE "20051208" ! #define MAIL_VERSION_NUMBER "2.2.7" #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT --- 20,27 ---- * Patches change the patchlevel and the release date. Snapshots change the * release date only. */ ! #define MAIL_RELEASE_DATE "20060103" ! #define MAIL_VERSION_NUMBER "2.2.8" #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT diff -cr /var/tmp/postfix-2.2.7/HISTORY ./HISTORY *** /var/tmp/postfix-2.2.7/HISTORY Thu Dec 8 16:43:24 2005 --- ./HISTORY Tue Jan 3 21:20:04 2006 *************** *** 10752,10754 **** --- 10752,10796 ---- defer logfile record when the target delivery agent was broken. This the analog of queue manager bugfix 20051119. Files: global/deliver_pass.c. + + 20051212 + + Bugfix: an EHLO I/O error after STARTTLS would be reported + as a STARTTLS I/O error. File: smtp/smtp_proto.c. + + 20051213 + + Bugfix: the *SQL, proxy and LDAP maps were not defined in + user-land commands such as postqueue. Leandro Santi. File: + postqueue/postqueue.c. + + 20051225 + + Workaround: the regexp map cleverly avoided scanning constant + results for non-existent $number expressions, but failed + to subject those constant results to $$ -> $ replacement. + Since fixing this requires too much change for a stable + release, the optimization is turned off (it doesn't exist + in the 2.2 PCRE map, either). Files: util/dict_regexp.c. + + 20051231 + + Bugfix: the anvil server would terminate after "max_idle" + seconds, even when this was less than the anvil_rate_time_unit + interval. File: anvil/anvil.c. + + 20060101 + + Portability: 64-bit support for LINUX chroot script by Keith + Owens. File: examples/chroot-setup/LINUX2. + + 20060103 + + Backout: the Postfix 2.2.6 paranoia about garbage in remote + server replies caused "multiple delivery" problems or "no + delivery" problems with broken servers/firewalls. Postfix + still logs a warning but no longer defers delivery. File: + smtp/smtp_chat.c. + + Portability: FreeBSD 6 is a supported platform. Files: + util/sys_defs.h, makedefs. diff -cr /var/tmp/postfix-2.2.7/examples/chroot-setup/LINUX2 ./examples/chroot-setup/LINUX2 *** /var/tmp/postfix-2.2.7/examples/chroot-setup/LINUX2 Tue Jan 22 11:00:34 2002 --- ./examples/chroot-setup/LINUX2 Sun Jan 1 18:53:58 2006 *************** *** 42,47 **** --- 42,49 ---- # Revision 1.4 2001/01/15 09:36:35 emma # add note it was successfully tested on Debian sid # + # 20060101 /lib64 support by Keith Owens. + # CP="cp -p" *************** *** 62,67 **** --- 64,70 ---- cd ${POSTFIX_DIR} mkdir -p etc lib usr/lib/zoneinfo + test -d /lib64 && mkdir -p lib64 # find localtime (SuSE 5.3 does not have /etc/localtime) lt=/etc/localtime *************** *** 79,83 **** --- 82,91 ---- cond_copy '/lib/libnss_*.so*' lib cond_copy '/lib/libresolv.so*' lib cond_copy '/lib/libdb.so*' lib + if test -d /lib64; then + cond_copy '/lib64/libnss_*.so*' lib64 + cond_copy '/lib64/libresolv.so*' lib64 + cond_copy '/lib64/libdb.so*' lib64 + fi postfix reload diff -cr /var/tmp/postfix-2.2.7/makedefs ./makedefs *** /var/tmp/postfix-2.2.7/makedefs Tue Feb 22 07:35:52 2005 --- ./makedefs Tue Jan 3 16:50:25 2006 *************** *** 116,121 **** --- 116,123 ---- ;; FreeBSD.5*) SYSTYPE=FREEBSD5 ;; + FreeBSD.6*) SYSTYPE=FREEBSD6 + ;; OpenBSD.2*) SYSTYPE=OPENBSD2 ;; OpenBSD.3*) SYSTYPE=OPENBSD3 diff -cr /var/tmp/postfix-2.2.7/src/anvil/anvil.c ./src/anvil/anvil.c *** /var/tmp/postfix-2.2.7/src/anvil/anvil.c Mon Feb 14 20:14:50 2005 --- ./src/anvil/anvil.c Tue Jan 3 17:34:03 2006 *************** *** 806,811 **** --- 806,817 ---- * Do not limit the number of client requests. */ var_use_limit = 0; + + /* + * Don't exit before the sampling interval ends. + */ + if (var_idle_limit < var_anvil_time_unit) + var_idle_limit = var_anvil_time_unit; } /* anvil_status_dump - log and reset extreme usage */ diff -cr /var/tmp/postfix-2.2.7/src/postqueue/postqueue.c ./src/postqueue/postqueue.c *** /var/tmp/postfix-2.2.7/src/postqueue/postqueue.c Wed Mar 2 09:35:59 2005 --- ./src/postqueue/postqueue.c Tue Dec 13 22:55:50 2005 *************** *** 451,456 **** --- 451,457 ---- * Further initialization... */ mail_conf_read(); + mail_dict_init(); /* proxy, sql, ldap */ get_mail_conf_str_table(str_table); /* diff -cr /var/tmp/postfix-2.2.7/src/smtp/smtp_chat.c ./src/smtp/smtp_chat.c *** /var/tmp/postfix-2.2.7/src/smtp/smtp_chat.c Tue Nov 29 11:20:17 2005 --- ./src/smtp/smtp_chat.c Tue Jan 3 16:27:18 2006 *************** *** 247,264 **** } /* ! * XXX Do not ignore garbage when ESMTP command pipelining is turned ! * on. After sending ".QUIT", Postfix might recognize ! * the server's 2XX QUIT reply as a 2XX END-OF-DATA reply after ! * garbage, causing mail to be lost. Instead, make a long jump so ! * that all recipients of multi-recipient mail get consistent ! * treatment. */ session->error_mask |= MAIL_ERROR_PROTOCOL; if (session->features & SMTP_FEATURE_PIPELINING) { ! msg_warn("non-SMTP response from %s: %s", session->namaddr, STR(session->buffer)); ! vstream_longjmp(session->stream, SMTP_ERR_PROTO); } } if (three_digs != 0) --- 247,279 ---- } /* ! * XXX Do not simply ignore garbage in the server reply when ESMTP ! * command pipelining is turned on. For example, after sending ! * ".QUIT" and receiving garbage followed by a ! * legitimate 2XX reply, Postfix recognizes the server's QUIT reply ! * as the END-OF-DATA reply after garbage, causing mail to be lost. ! * ! * Without the ability to store per-domain status information in queue ! * files, automatic workarounds are problematic. Automatically ! * deferring the delivery creates "no delivery" or "repeated ! * delivery" problems, and automatically turning off pipelining for ! * "old" mail affects deliveries to sites with correct pipelining ! * implementations. ! * ! * So we leave the decision with the administrator, but we don't force ! * them to take action, like we would with automatic deferral. If ! * loss of mail is not acceptable then they can turn off pipelining ! * for specific sites, or they can turn off pipelining globally when ! * they find that there are just too many broken sites. */ session->error_mask |= MAIL_ERROR_PROTOCOL; if (session->features & SMTP_FEATURE_PIPELINING) { ! msg_warn("non-SMTP response from %s: %.100s", session->namaddr, STR(session->buffer)); ! if (var_helpful_warnings) ! msg_warn("to prevent loss of mail, turn off command pipelining " ! "for %s with the %s parameter", session->addr, ! VAR_SMTP_EHLO_DIS_MAPS); } } if (three_digs != 0) diff -cr /var/tmp/postfix-2.2.7/src/smtp/smtp_proto.c ./src/smtp/smtp_proto.c *** /var/tmp/postfix-2.2.7/src/smtp/smtp_proto.c Tue Jun 21 19:13:25 2005 --- ./src/smtp/smtp_proto.c Tue Jan 3 19:20:21 2006 *************** *** 253,270 **** #endif /* * If not recursing after STARTTLS, examine the server greeting banner * and decide if we are going to send EHLO as the next command. */ if ((misc_flags & SMTP_MISC_FLAG_IN_STARTTLS) == 0) { - - /* - * Prepare for disaster. - */ - smtp_timeout_setup(state->session->stream, var_smtp_helo_tmout); - if ((except = vstream_setjmp(state->session->stream)) != 0) - return (smtp_stream_except(state, except, - "receiving the initial SMTP greeting")); /* * Read and parse the server's SMTP greeting banner. --- 253,270 ---- #endif /* + * Prepare for disaster. + */ + smtp_timeout_setup(state->session->stream, var_smtp_helo_tmout); + if ((except = vstream_setjmp(state->session->stream)) != 0) + return (smtp_stream_except(state, except, + "performing the initial protocol handshake")); + + /* * If not recursing after STARTTLS, examine the server greeting banner * and decide if we are going to send EHLO as the next command. */ if ((misc_flags & SMTP_MISC_FLAG_IN_STARTTLS) == 0) { /* * Read and parse the server's SMTP greeting banner. diff -cr /var/tmp/postfix-2.2.7/src/util/dict_regexp.c ./src/util/dict_regexp.c *** /var/tmp/postfix-2.2.7/src/util/dict_regexp.c Mon Oct 25 16:59:14 2004 --- ./src/util/dict_regexp.c Tue Jan 3 17:44:37 2006 *************** *** 257,265 **** --- 257,274 ---- /* * Skip $number substitutions when the replacement text contains * no $number strings (as learned during the pre-scan). + * + * XXX This is incorrect. Replacement text without $number + * expressions may still require $$ -> $ replacement. Fixing this + * requires that we save the result after pre-scanning the + * replacement text. This change is too invasive for a stable + * release. Since this optimization does not exist in the PCRE + * module, we forego it here too. */ + #if 0 if (match_rule->max_sub == 0) return (match_rule->replacement); + #endif /* * Perform $number substitutions on the replacement text. We diff -cr /var/tmp/postfix-2.2.7/src/util/sys_defs.h ./src/util/sys_defs.h *** /var/tmp/postfix-2.2.7/src/util/sys_defs.h Tue Nov 15 09:46:35 2005 --- ./src/util/sys_defs.h Tue Jan 3 16:52:17 2006 *************** *** 24,30 **** * 4.4BSD and close derivatives. */ #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \ ! || defined(FREEBSD5) \ || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \ || defined(OPENBSD2) || defined(OPENBSD3) \ || defined(NETBSD1) || defined(NETBSD2) \ --- 24,30 ---- * 4.4BSD and close derivatives. */ #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \ ! || defined(FREEBSD5) || defined(FREEBSD6) \ || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \ || defined(OPENBSD2) || defined(OPENBSD3) \ || defined(NETBSD1) || defined(NETBSD2) \