diff --git a/postfix/HISTORY b/postfix/HISTORY index 342974176..9557aef4a 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -13166,6 +13166,19 @@ Apologies for any names omitted. minor updates: global/dict_ldap.c, mantools/postlink, tlsmgs/tlsmgr.c, conf/master.cf. LaMont Jones. +20070101 + + Portability: GNU Hurd support for multiple kernel environments. + LaMont Jones. Files: util/sys_defs.h, makedefs. + + Cleanup: some default settings were adjusted to better fit + today's environment: queue_run_delay and minimal_backoff_time + were reduced from 1000s to 300s, so that deliveries are + retried earlier after the first failure; ipc_idle was reduced + from 100s to 5s, so that tlsmgr and scache clients will + more quickly release unused file handles. Files: + global/mail_params.h, proto/postconf.5.html + Wish list: Update message content length when adding/removing headers. @@ -13186,8 +13199,9 @@ Wish list: Make postmap header/body aware so people can test multi-line header checks. - Investigate if clients of single-instance servers such as - tlsmgr, verify, can close sockets earlier. + Eliminate Linux 1024 select() file handle bottleneck and + eliminate select()/poll() scaling problems by implementing + kqueue(2) and epoll(2) support. REDIRECT should override original recipient info, and probably override DSN as well. diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES index 8a7ad29d4..31d0925a8 100644 --- a/postfix/RELEASE_NOTES +++ b/postfix/RELEASE_NOTES @@ -17,6 +17,19 @@ Incompatibility with Postfix 2.2 and earlier If you upgrade from Postfix 2.2 or earlier, read RELEASE_NOTES-2.3 before proceeding. +Incompatibility with Postfix snapshot 20070201 +============================================== + +Some default settings have been adjusted to better match contemporary +requirements: + +- queue_run_delay and minimal_backoff_time were reduced from 1000s +to 300s so that deliveries are retried earlier after the first +failure. + +- ipc_idle was reduced from 100s to 5s, so that tlsmgr and scache +clients will more quickly release unused file handles. + Major changes with Postfix snapshot 20070121 ============================================ diff --git a/postfix/html/oqmgr.8.html b/postfix/html/oqmgr.8.html index 7c8dd8484..a17925cd1 100644 --- a/postfix/html/oqmgr.8.html +++ b/postfix/html/oqmgr.8.html @@ -232,7 +232,7 @@ OQMGR(8) OQMGR(8) Idem, for delivery via the named message transport. OTHER RESOURCE AND RATE CONTROLS - minimal_backoff_time (1000s) + minimal_backoff_time (version dependent) The minimal time between attempts to deliver a deferred message. @@ -244,7 +244,7 @@ OQMGR(8) OQMGR(8) The maximal time a message is queued before it is sent back as undeliverable. - queue_run_delay (1000s) + queue_run_delay (version dependent) The time between deferred queue scans by the queue manager. diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index e2dd877d8..b18668161 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -3032,7 +3032,7 @@ Do not change this unless you have a complete understanding of ipc_idle -(default: 100s)
+(default: version dependent)

The time after which a client closes an idle internal communication @@ -3041,6 +3041,8 @@ after they become idle. This is used, for example, by the address resolving and rewriting clients.

+

With Postfix 2.4 the default value was reduced from 100s to 5s.

+

Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). The default time unit is s (seconds). @@ -5250,7 +5252,7 @@ This feature is available in Postfix 2.0 and later.

minimal_backoff_time -(default: 1000s)
+(default: version dependent)

The minimal time between attempts to deliver a deferred message. @@ -5258,6 +5260,9 @@ This parameter also limits the time an unreachable destination is kept in the short-term, in-memory, destination status cache.

+

With Postfix 2.4 the default value was reduced from 1000s to +300s.

+

This parameter should be set greater than or equal to $queue_run_delay. See also $maximal_backoff_time.

@@ -6050,12 +6055,16 @@ zero means there is no minimum required amount of free space.
queue_run_delay -(default: 1000s)
+(default: version dependent)

The time between deferred queue scans by the queue manager.

+

+With Postfix 2.4 the default value was reduced from 1000s to 300s. +

+

This parameter should be set less than or equal to $minimal_backoff_time. See also $maximal_backoff_time.

diff --git a/postfix/html/qmgr.8.html b/postfix/html/qmgr.8.html index e3c75a45d..6679ec2cc 100644 --- a/postfix/html/qmgr.8.html +++ b/postfix/html/qmgr.8.html @@ -305,7 +305,7 @@ QMGR(8) QMGR(8) Idem, for delivery via the named message transport. OTHER RESOURCE AND RATE CONTROLS - minimal_backoff_time (1000s) + minimal_backoff_time (version dependent) The minimal time between attempts to deliver a deferred message. @@ -317,7 +317,7 @@ QMGR(8) QMGR(8) The maximal time a message is queued before it is sent back as undeliverable. - queue_run_delay (1000s) + queue_run_delay (version dependent) The time between deferred queue scans by the queue manager. diff --git a/postfix/makedefs b/postfix/makedefs index e4ed531a2..31b1c9ead 100644 --- a/postfix/makedefs +++ b/postfix/makedefs @@ -266,6 +266,42 @@ case "$SYSTEM.$RELEASE" in 2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";; esac ;; + GNU.0.*) + SYSTYPE=GNU0 + # Postfix no longer needs DB 1.85 compatibility + if [ -f /usr/include/db.h ] + then + : we are all set + elif [ -f /usr/include/db/db.h ] + then + CCARGS="$CCARGS -I/usr/include/db" + else + # No, we're not going to try db1 db2 db3 etc. + # On a properly installed system, Postfix builds + # by including and by linking with -ldb + echo "No include file found." 1>&2 + echo "Install the appropriate db*-devel package first." 1>&2 + echo "See the RELEASE_NOTES file for more information." 1>&2 + exit 1 + fi + SYSLIBS="-ldb" + for name in nsl resolv + do + for lib in /usr/lib64 /lib64 /usr/lib /lib + do + test -e $lib/lib$name.a -o -e $lib/lib$name.so && { + SYSLIBS="$SYSLIBS -l$name" + break + } + done + done + case "`uname -s`" in + GNU) + # currently no IPv6 support on Hurd + CCARGS="$CCARGS -DNO_IPV6" + ;; + esac + ;; IRIX*.5.*) SYSTYPE=IRIX5 # Use the native compiler by default : ${CC=cc} ${DEBUG="-g3"} diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 197513cdd..3522cd1ef 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -1644,12 +1644,14 @@ HELO or EHLO command parameter is rejected by the reject_invalid_helo_hostname restriction. .PP Do not change this unless you have a complete understanding of RFC 821. -.SH ipc_idle (default: 100s) +.SH ipc_idle (default: version dependent) The time after which a client closes an idle internal communication channel. The purpose is to allow servers to terminate voluntarily after they become idle. This is used, for example, by the address resolving and rewriting clients. .PP +With Postfix 2.4 the default value was reduced from 100s to 5s. +.PP Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). The default time unit is s (seconds). .SH ipc_timeout (default: 3600s) @@ -2846,11 +2848,14 @@ The maximal recursion level that the MIME processor will handle. Postfix refuses mail that is nested deeper than the specified limit. .PP This feature is available in Postfix 2.0 and later. -.SH minimal_backoff_time (default: 1000s) +.SH minimal_backoff_time (default: version dependent) The minimal time between attempts to deliver a deferred message. This parameter also limits the time an unreachable destination is kept in the short-term, in-memory, destination status cache. .PP +With Postfix 2.4 the default value was reduced from 1000s to +300s. +.PP This parameter should be set greater than or equal to $queue_run_delay. See also $maximal_backoff_time. .PP @@ -3299,9 +3304,11 @@ value that is at least 1.5*$message_size_limit. .PP With Postfix versions 2.0 and earlier, a queue_minfree value of zero means there is no minimum required amount of free space. -.SH queue_run_delay (default: 1000s) +.SH queue_run_delay (default: version dependent) The time between deferred queue scans by the queue manager. .PP +With Postfix 2.4 the default value was reduced from 1000s to 300s. +.PP This parameter should be set less than or equal to $minimal_backoff_time. See also $maximal_backoff_time. .PP diff --git a/postfix/man/man8/oqmgr.8 b/postfix/man/man8/oqmgr.8 index bd2ceafa9..8130f93dd 100644 --- a/postfix/man/man8/oqmgr.8 +++ b/postfix/man/man8/oqmgr.8 @@ -226,14 +226,14 @@ Idem, for delivery via the named message \fItransport\fR. .nf .ad .fi -.IP "\fBminimal_backoff_time (1000s)\fR" +.IP "\fBminimal_backoff_time (version dependent)\fR" The minimal time between attempts to deliver a deferred message. .IP "\fBmaximal_backoff_time (4000s)\fR" The maximal time between attempts to deliver a deferred message. .IP "\fBmaximal_queue_lifetime (5d)\fR" The maximal time a message is queued before it is sent back as undeliverable. -.IP "\fBqueue_run_delay (1000s)\fR" +.IP "\fBqueue_run_delay (version dependent)\fR" The time between deferred queue scans by the queue manager. .IP "\fBtransport_retry_time (60s)\fR" The time between attempts by the Postfix queue manager to contact diff --git a/postfix/man/man8/qmgr.8 b/postfix/man/man8/qmgr.8 index 9ad381d9b..ca129d64d 100644 --- a/postfix/man/man8/qmgr.8 +++ b/postfix/man/man8/qmgr.8 @@ -274,14 +274,14 @@ Idem, for delivery via the named message \fItransport\fR. .nf .ad .fi -.IP "\fBminimal_backoff_time (1000s)\fR" +.IP "\fBminimal_backoff_time (version dependent)\fR" The minimal time between attempts to deliver a deferred message. .IP "\fBmaximal_backoff_time (4000s)\fR" The maximal time between attempts to deliver a deferred message. .IP "\fBmaximal_queue_lifetime (5d)\fR" The maximal time a message is queued before it is sent back as undeliverable. -.IP "\fBqueue_run_delay (1000s)\fR" +.IP "\fBqueue_run_delay (version dependent)\fR" The time between deferred queue scans by the queue manager. .IP "\fBtransport_retry_time (60s)\fR" The time between attempts by the Postfix queue manager to contact diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto index 0df64f8f3..33c9ac46f 100644 --- a/postfix/proto/postconf.proto +++ b/postfix/proto/postconf.proto @@ -1819,7 +1819,7 @@ restriction. Do not change this unless you have a complete understanding of RFC 821.

-%PARAM ipc_idle 100s +%PARAM ipc_idle version dependent

The time after which a client closes an idle internal communication @@ -1828,6 +1828,8 @@ after they become idle. This is used, for example, by the address resolving and rewriting clients.

+

With Postfix 2.4 the default value was reduced from 100s to 5s.

+

Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). The default time unit is s (seconds). @@ -2618,7 +2620,7 @@ Specify 0 when mail delivery should be tried only once. The maximal size in bytes of a message, including envelope information.

-%PARAM minimal_backoff_time 1000s +%PARAM minimal_backoff_time version dependent

The minimal time between attempts to deliver a deferred message. @@ -2626,6 +2628,9 @@ This parameter also limits the time an unreachable destination is kept in the short-term, in-memory, destination status cache.

+

With Postfix 2.4 the default value was reduced from 1000s to +300s.

+

This parameter should be set greater than or equal to $queue_run_delay. See also $maximal_backoff_time.

@@ -3069,12 +3074,16 @@ With Postfix versions 2.0 and earlier, a queue_minfree value of zero means there is no minimum required amount of free space.

-%PARAM queue_run_delay 1000s +%PARAM queue_run_delay version dependent

The time between deferred queue scans by the queue manager.

+

+With Postfix 2.4 the default value was reduced from 1000s to 300s. +

+

This parameter should be set less than or equal to $minimal_backoff_time. See also $maximal_backoff_time.

diff --git a/postfix/src/global/mail_params.h b/postfix/src/global/mail_params.h index 34c2ed951..75cd22c99 100644 --- a/postfix/src/global/mail_params.h +++ b/postfix/src/global/mail_params.h @@ -632,10 +632,10 @@ extern char *var_relocated_maps; * queue before it is sent back. */ #define VAR_QUEUE_RUN_DELAY "queue_run_delay" -#define DEF_QUEUE_RUN_DELAY "1000s" +#define DEF_QUEUE_RUN_DELAY "300s" #define VAR_MIN_BACKOFF_TIME "minimal_backoff_time" -#define DEF_MIN_BACKOFF_TIME "1000s" +#define DEF_MIN_BACKOFF_TIME DEF_QUEUE_RUN_DELAY extern int var_min_backoff_time; #define VAR_MAX_BACKOFF_TIME "maximal_backoff_time" @@ -813,7 +813,7 @@ extern int var_event_drain; * IPC connection before closing it because it is idle for too much time. */ #define VAR_IPC_IDLE "ipc_idle" -#define DEF_IPC_IDLE "100s" +#define DEF_IPC_IDLE "5s" extern int var_ipc_idle_limit; /* diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 99c1fcd15..6cfd84f5e 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,7 +20,7 @@ * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ -#define MAIL_RELEASE_DATE "20070131" +#define MAIL_RELEASE_DATE "20070201" #define MAIL_VERSION_NUMBER "2.4" #ifdef SNAPSHOT diff --git a/postfix/src/oqmgr/qmgr.c b/postfix/src/oqmgr/qmgr.c index a61ad4064..84baa7cac 100644 --- a/postfix/src/oqmgr/qmgr.c +++ b/postfix/src/oqmgr/qmgr.c @@ -192,14 +192,14 @@ /* OTHER RESOURCE AND RATE CONTROLS /* .ad /* .fi -/* .IP "\fBminimal_backoff_time (1000s)\fR" +/* .IP "\fBminimal_backoff_time (version dependent)\fR" /* The minimal time between attempts to deliver a deferred message. /* .IP "\fBmaximal_backoff_time (4000s)\fR" /* The maximal time between attempts to deliver a deferred message. /* .IP "\fBmaximal_queue_lifetime (5d)\fR" /* The maximal time a message is queued before it is sent back as /* undeliverable. -/* .IP "\fBqueue_run_delay (1000s)\fR" +/* .IP "\fBqueue_run_delay (version dependent)\fR" /* The time between deferred queue scans by the queue manager. /* .IP "\fBtransport_retry_time (60s)\fR" /* The time between attempts by the Postfix queue manager to contact diff --git a/postfix/src/qmgr/qmgr.c b/postfix/src/qmgr/qmgr.c index 8a2349784..4ab22b02d 100644 --- a/postfix/src/qmgr/qmgr.c +++ b/postfix/src/qmgr/qmgr.c @@ -238,14 +238,14 @@ /* OTHER RESOURCE AND RATE CONTROLS /* .ad /* .fi -/* .IP "\fBminimal_backoff_time (1000s)\fR" +/* .IP "\fBminimal_backoff_time (version dependent)\fR" /* The minimal time between attempts to deliver a deferred message. /* .IP "\fBmaximal_backoff_time (4000s)\fR" /* The maximal time between attempts to deliver a deferred message. /* .IP "\fBmaximal_queue_lifetime (5d)\fR" /* The maximal time a message is queued before it is sent back as /* undeliverable. -/* .IP "\fBqueue_run_delay (1000s)\fR" +/* .IP "\fBqueue_run_delay (version dependent)\fR" /* The time between deferred queue scans by the queue manager. /* .IP "\fBtransport_retry_time (60s)\fR" /* The time between attempts by the Postfix queue manager to contact diff --git a/postfix/src/util/sys_defs.h b/postfix/src/util/sys_defs.h index c8ca62672..63e9e3c90 100644 --- a/postfix/src/util/sys_defs.h +++ b/postfix/src/util/sys_defs.h @@ -736,6 +736,69 @@ extern int initgroups(const char *, int); #define NATIVE_DAEMON_DIR "/usr/libexec/postfix" #define CANT_USE_SEND_RECV_MSG #define DEF_SMTP_CACHE_DEMAND 0 +#endif + + /* + * GNU. + */ +#ifdef GNU0 +#define SUPPORTED +#include +#include +#define USE_PATHS_H +#define HAS_FCNTL_LOCK +#define INTERNAL_LOCK MYFLOCK_STYLE_FCNTL +#define DEF_MAILBOX_LOCK "fcntl, dotlock" /* RedHat >= 4.x */ +#define HAS_FSYNC +#define HAS_DB +#define DEF_DB_TYPE "hash" +#define ALIAS_DB_MAP "hash:/etc/aliases" +#define HAS_NIS +#define GETTIMEOFDAY(t) gettimeofday(t,(struct timezone *) 0) +#define ROOT_PATH "/bin:/usr/bin:/sbin:/usr/sbin" +#define FIONREAD_IN_TERMIOS_H +#define USE_STATFS +#define STATFS_IN_SYS_VFS_H +#define UNIX_DOMAIN_CONNECT_BLOCKS_FOR_ACCEPT +#define PREPEND_PLUS_TO_OPTSTRING +#define HAS_POSIX_REGEXP +#define HAS_DLOPEN +#define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" +#define NATIVE_MAILQ_PATH "/usr/bin/mailq" +#define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" +#define NATIVE_COMMAND_DIR "/usr/sbin" +#ifdef DEBIAN +#define NATIVE_DAEMON_DIR "/usr/lib/postfix" +#ifndef DEF_MANPAGE_DIR +#define DEF_MANPAGE_DIR "/usr/share/man" +#endif +#ifndef DEF_SAMPLE_DIR +#define DEF_SAMPLE_DIR "/usr/share/doc/postfix/examples" +#endif +#ifndef DEF_README_DIR +#define DEF_README_DIR "/usr/share/doc/postfix" +#endif +#else +#define NATIVE_DAEMON_DIR "/usr/libexec/postfix" +#endif +#define SOCKADDR_SIZE socklen_t +#define SOCKOPT_SIZE socklen_t +#ifdef __FreeBSD_kernel__ +# define HAS_DUPLEX_PIPE +# define HAS_ISSETUGID +#endif +#ifndef NO_IPV6 +# define HAS_IPV6 +# ifdef __FreeBSD_kernel__ +# define HAVE_GETIFADDRS +# else +# define HAS_PROCNET_IFINET6 +# define _PATH_PROCNET_IFINET6 "/proc/net/if_inet6" +# endif +#endif +#define CANT_USE_SEND_RECV_MSG +#define DEF_SMTP_CACHE_DEMAND 0 +#define HAS_DEV_URANDOM #endif /*