Postfix version 1.1 patch 01 cleans up a lot of documentation, fixes one bug, and adds one safety feature: - Bugfix: postqueue -s dereferenced a null pointer when given a numerical domain argument. - Safety: when postmap creates a non-existent file, the new file inherits group/other read permissions from the source file. At almost 40 kbytes the patch is too large for email distribution. The patch, as well as patched Postfix source code, can be found at ftp://ftp.porcupine.org/ 8588 Jan 22 12:12 postfix-1.1-patch01.gz 152 Jan 22 11:32 postfix-1.1.1.tar.gz.sig 1172858 Jan 22 11:32 postfix-1.1.1.tar.gz 50295 Jan 22 11:31 postfix-1.1.1.RELEASE_NOTES 207060 Jan 22 11:22 postfix-1.1.1.HISTORY Soon to appear on the mirror sites listed on www.postfix.org. Wietse Prereq: "1.1.0" diff -cr /tmp/postfix-1.1.0/src/global/mail_version.h ./src/global/mail_version.h *** /tmp/postfix-1.1.0/src/global/mail_version.h Thu Jan 17 14:14:39 2002 --- ./src/global/mail_version.h Tue Jan 22 09:44:07 2002 *************** *** 22,30 **** */ #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT ! #define DEF_MAIL_VERSION "1.1.0-$mail_release_date" #else ! #define DEF_MAIL_VERSION "1.1.0" #endif extern char *var_mail_version; --- 22,30 ---- */ #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT ! #define DEF_MAIL_VERSION "1.1.1-$mail_release_date" #else ! #define DEF_MAIL_VERSION "1.1.1" #endif extern char *var_mail_version; *************** *** 32,38 **** * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020117" extern char *var_mail_release; /* LICENSE --- 32,38 ---- * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020122" extern char *var_mail_release; /* LICENSE diff -cr /tmp/postfix-1.1.0/HISTORY ./HISTORY *** /tmp/postfix-1.1.0/HISTORY Thu Jan 17 12:58:24 2002 --- ./HISTORY Tue Jan 22 11:22:35 2002 *************** *** 5982,5987 **** --- 5982,6011 ---- Portability: patch from LaMont Jones for compiling dict_ldap.c with the Netscape SDK. + Feature: added "r" (recursive chown/chgrp) flag to the + postfix-files database, for more convenient change of + Postfix queue ownership. Files: conf/postfix-files, + conf/post-install. + + 20020122 + + Documentation: lots of little fixes. + + Documentation: updates for the VIRTUAL_README file by Victor + Duchovni, Morgan Stanley. + + Bugfix: postqueue -s dereferenced a null pointer when given + a numerical domain argument. LaMont Jones, HP. + + Cleanup: smtpd now logs a warning when permit_sasl_authenticated + is used while SASL authentication is disabled, instead of + simply ignoring the restriction. LaMont Jones, HP. File: + smtpd/smtpd.c. + + Safety: when postmap creates a non-existent file, the new + file inherits group/other read permissions from the source + file. LaMont Jones, HP. File: postmap/postmap.c. + Open problems: Low: don't do user@domain and @domain lookups in diff -cr /tmp/postfix-1.1.0/README_FILES/DB_README ./README_FILES/DB_README *** /tmp/postfix-1.1.0/README_FILES/DB_README Mon Jan 14 09:59:35 2002 --- ./README_FILES/DB_README Mon Jan 21 08:02:36 2002 *************** *** 24,34 **** The exact pathnames depend on the DB version that you installed. For example, Berkeley DB version 2 installs in /usr/local/BerkeleyDB. ! Beware, the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. Building Postfix on BSD systems with a specific Berkeley DB version =================================================================== --- 24,40 ---- The exact pathnames depend on the DB version that you installed. For example, Berkeley DB version 2 installs in /usr/local/BerkeleyDB. ! Warning: the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. + Warning: if you use Berkeley DB version 2 or later, do not enable + DB 1.85 compatibility mode. Doing so would break fcntl file locking. + + Warning: if you use PERL to manipulate Postfix .db files, then you + need to use the same Berkeley DB version in PERL as in Postfix. + Building Postfix on BSD systems with a specific Berkeley DB version =================================================================== *************** *** 43,57 **** % make makefiles CCARGS=-I/usr/include/db2 AUXLIBS=-ldb2 % make ! Beware, the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. Warning: if you use Berkeley DB version 2 or later, do not enable ! DB 1.85 compatibility mode. Doing so would break file locking on ! Solaris, HP-UX, UNIXWARE, IRIX and other systems, causing mail to ! be lost when you update a table while Postfix is running. Building Postfix on Linux with a specific Berkeley DB version ============================================================= --- 49,64 ---- % make makefiles CCARGS=-I/usr/include/db2 AUXLIBS=-ldb2 % make ! Warning: the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. Warning: if you use Berkeley DB version 2 or later, do not enable ! DB 1.85 compatibility mode. Doing so would break fcntl file locking. ! ! Warning: if you use PERL to manipulate Postfix .db files, then you ! need to use the same Berkeley DB version in PERL as in Postfix. Building Postfix on Linux with a specific Berkeley DB version ============================================================= *************** *** 67,73 **** changes randomly between vendors and between versions, so that Postfix has to choose the file for you. ! Beware, the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. --- 74,86 ---- changes randomly between vendors and between versions, so that Postfix has to choose the file for you. ! Warning: the file format produced by Berkeley DB version 1 is not compatible with that of versions 2 and 3 (versions 2 and 3 have the same format). If you switch between DB versions, then you may have to rebuild all your Postfix DB files. + + Warning: if you use Berkeley DB version 2 or later, do not enable + DB 1.85 compatibility mode. Doing so would break fcntl file locking. + + Warning: if you use PERL to manipulate Postfix .db files, then you + need to use the same Berkeley DB version in PERL as in Postfix. diff -cr /tmp/postfix-1.1.0/README_FILES/FILTER_README ./README_FILES/FILTER_README *** /tmp/postfix-1.1.0/README_FILES/FILTER_README Sun Jan 6 19:52:09 2002 --- ./README_FILES/FILTER_README Tue Jan 22 09:07:57 2002 *************** *** 211,221 **** /etc/postfix/master.cf: localhost:10026 inet n - n - 10 smtpd ! -o content_filter= -o myhostname=localhost.domain.name This is just another SMTP server. It is configured NOT to request ! content filtering for incoming mail, has the same process limit ! as the filter master.cf entry, and is configured to use a different ! hostname in the greeting message (this is necessary for testing ! when I simply use no filtering program and let the SMTP content ! filtering interfaces talk directly to each other). --- 211,229 ---- /etc/postfix/master.cf: localhost:10026 inet n - n - 10 smtpd ! -o content_filter= ! -o local_recipient_maps= ! -o myhostname=localhost.domain.name This is just another SMTP server. It is configured NOT to request ! content filtering for incoming mail. The server has the same process ! limit as the filter master.cf entry. ! ! The "-o local_recipient_maps=" is a safety in case you have specified ! local_recipient_maps in the main.cf file. That setting could ! interfere with content filtering. ! ! The SMTP server is configured to use a different hostname in the ! greeting message (this is necessary for testing when I simply use ! no filtering program and let the SMTP content filtering interfaces ! talk directly to each other). diff -cr /tmp/postfix-1.1.0/README_FILES/VIRTUAL_README ./README_FILES/VIRTUAL_README *** /tmp/postfix-1.1.0/README_FILES/VIRTUAL_README Wed Jan 16 13:22:53 2002 --- ./README_FILES/VIRTUAL_README Tue Jan 22 09:42:32 2002 *************** *** 147,166 **** virtual_uid_maps = hash:/etc/postfix/vuid virtual_gid_maps = hash:/etc/postfix/vgid ! # All domains that have final delivery on this machine ! mydestination = $myhostname localhost.$mydomain ! # Define a virtual delivery agent if the entry doesn't already exist /etc/postfix/master.cf: virtual unix - n n - - virtual ! # Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: - virtual1.domain dummy to prevent relay access denied errors - virtual2.domain dummy to prevent relay access denied errors test1@virtual1.domain test1 test2@virtual2.domain test2/ --- 147,166 ---- virtual_uid_maps = hash:/etc/postfix/vuid virtual_gid_maps = hash:/etc/postfix/vgid ! # All domains that are listed in $mydestination are delivered ! # with $local_transport, which is the virtual delivery agent. ! mydestination = ! $myhostname localhost.$mydomain virtual1.domain virtual2.domain ! Define a virtual delivery agent if the entry doesn't already exist: /etc/postfix/master.cf: virtual unix - n n - - virtual ! Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: test1@virtual1.domain test1 test2@virtual2.domain test2/ *************** *** 205,237 **** virtual_gid_maps = static:5000 transport_maps = hash:/etc/postfix/transport ! # All domains that have final delivery on this machine ! mydestination = ! $myhostname $localhost.$mydomain virtual1.domain virtual2.domain ! # Reject unknown local and virtual recipients at the SMTP port ! local_recipient_maps = ! unix:passwd.byname $alias_maps $virtual_mailbox_maps ! # Define a virtual delivery agent if the entry doesn't already exist /etc/postfix/master.cf: virtual unix - n n - - virtual ! # Route specific domains to the virtual delivery agent; by default, ! # mail for domains in $mydestination goes to the local delivery agent /etc/postfix/transport: virtual1.domain virtual virtual2.domain virtual ! # Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: ! virtual1.domain dummy to prevent relay access denied errors ! virtual2.domain dummy to prevent relay access denied errors test1@virtual1.domain test1 test2@virtual2.domain test2/ --- 205,234 ---- virtual_gid_maps = static:5000 transport_maps = hash:/etc/postfix/transport ! # All domains that are delivered by the local delivery agent. ! mydestination = $myhostname $localhost.$mydomain ! # Reject unknown local recipients at the SMTP port. ! local_recipient_maps = unix:passwd.byname $alias_maps ! Define a virtual delivery agent if the entry doesn't already exist: /etc/postfix/master.cf: virtual unix - n n - - virtual ! Route virtual domains to the virtual delivery agent: /etc/postfix/transport: virtual1.domain virtual virtual2.domain virtual ! Example recipients, one UNIX-style mailbox, one qmail-style maildir: /etc/postfix/vmailbox: ! virtual1.domain required to prevent relay access denied errors ! virtual2.domain required to prevent relay access denied errors test1@virtual1.domain test1 test2@virtual2.domain test2/ diff -cr /tmp/postfix-1.1.0/RELEASE_NOTES ./RELEASE_NOTES *** /tmp/postfix-1.1.0/RELEASE_NOTES Thu Jan 17 14:14:34 2002 --- ./RELEASE_NOTES Thu Jan 17 15:21:10 2002 *************** *** 21,27 **** type that is used only for messages that actually use VERP (variable envelope return path) support. With this sole exception, the queue file format is entirely backwards compatible with the previous ! official Postfix release (20020228, a.k.a. Postfix 1.1.0). [snapshot-20020106] This release modifies the existing master.cf file. The local pickup service is now unprivileged, and the cleanup --- 21,27 ---- type that is used only for messages that actually use VERP (variable envelope return path) support. With this sole exception, the queue file format is entirely backwards compatible with the previous ! official Postfix release (20020228, a.k.a. Postfix 1.0.0). [snapshot-20020106] This release modifies the existing master.cf file. The local pickup service is now unprivileged, and the cleanup diff -cr /tmp/postfix-1.1.0/conf/post-install ./conf/post-install *** /tmp/postfix-1.1.0/conf/post-install Wed Jan 16 09:53:07 2002 --- ./conf/post-install Thu Jan 17 15:08:59 2002 *************** *** 426,431 **** --- 426,432 ---- # Pick up the flags. case $flags in *u*) upgrade_flag=1;; *) upgrade_flag=;; esac case $flags in *c*) create_flag=1;; *) create_flag=;; esac + case $flags in *r*) recursive="-R";; *) recursive=;; esac # Create missing directories with proper owner/group/mode settings. if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ] then *************** *** 442,449 **** set_permission=1 fi test -n "$set_permission" && { ! chown $owner $path || exit 1 ! test -z "$group" || chgrp $group $path || exit 1 chmod $mode $path || exit 1 } done --- 443,450 ---- set_permission=1 fi test -n "$set_permission" && { ! chown $recursive $owner $path || exit 1 ! test -z "$group" || chgrp $recursive $group $path || exit 1 chmod $mode $path || exit 1 } done diff -cr /tmp/postfix-1.1.0/conf/postfix-files ./conf/postfix-files *** /tmp/postfix-1.1.0/conf/postfix-files Thu Jan 17 12:50:55 2002 --- ./conf/postfix-files Thu Jan 17 19:37:39 2002 *************** *** 29,34 **** --- 29,35 ---- # p=preserve existing file, do not replace (postfix-install). # u=update owner/group/mode (post-install upgrade-permissions). # c=create missing directory (post-install create-missing). + # r=apply owner/group recursively (post-install set/upgrade-permissions). # # Note: the "u" flag is for upgrading the permissions of existing files # or directories after changes in Postfix architecture. For robustness *************** *** 40,54 **** $queue_directory:d:root:-:755:uc $sample_directory:d:root:-:755 $readme_directory:d:root:-:755 ! $queue_directory/active:d:$mail_owner:-:700:uc ! $queue_directory/bounce:d:$mail_owner:-:700:uc ! $queue_directory/corrupt:d:$mail_owner:-:700:uc ! $queue_directory/defer:d:$mail_owner:-:700:uc ! $queue_directory/deferred:d:$mail_owner:-:700:uc ! $queue_directory/flush:d:$mail_owner:-:700:uc ! $queue_directory/incoming:d:$mail_owner:-:700:uc $queue_directory/private:d:$mail_owner:-:700:uc ! $queue_directory/saved:d:$mail_owner:-:700:uc $queue_directory/maildrop:d:$mail_owner:$setgid_group:730:uc $queue_directory/public:d:$mail_owner:$setgid_group:710:uc $queue_directory/pid:d:root:-:755:uc --- 41,55 ---- $queue_directory:d:root:-:755:uc $sample_directory:d:root:-:755 $readme_directory:d:root:-:755 ! $queue_directory/active:d:$mail_owner:-:700:ucr ! $queue_directory/bounce:d:$mail_owner:-:700:ucr ! $queue_directory/corrupt:d:$mail_owner:-:700:ucr ! $queue_directory/defer:d:$mail_owner:-:700:ucr ! $queue_directory/deferred:d:$mail_owner:-:700:ucr ! $queue_directory/flush:d:$mail_owner:-:700:ucr ! $queue_directory/incoming:d:$mail_owner:-:700:ucr $queue_directory/private:d:$mail_owner:-:700:uc ! $queue_directory/saved:d:$mail_owner:-:700:ucr $queue_directory/maildrop:d:$mail_owner:$setgid_group:730:uc $queue_directory/public:d:$mail_owner:$setgid_group:710:uc $queue_directory/pid:d:root:-:755:uc diff -cr /tmp/postfix-1.1.0/conf/transport ./conf/transport *** /tmp/postfix-1.1.0/conf/transport Sun Jan 6 18:02:33 2002 --- ./conf/transport Sun Jan 20 13:38:35 2002 *************** *** 148,154 **** # details and for default values. Use the postfix reload # command after a configuration change. # ! # parent_domain_matches_subdomains (versions >= 20011119) # List of Postfix features that use domain.name pat- # terns to match sub.domain.name (as opposed to # requiring .domain.name patterns). --- 148,154 ---- # details and for default values. Use the postfix reload # command after a configuration change. # ! # parent_domain_matches_subdomains # List of Postfix features that use domain.name pat- # terns to match sub.domain.name (as opposed to # requiring .domain.name patterns). diff -cr /tmp/postfix-1.1.0/examples/chroot-setup/LINUX2 ./examples/chroot-setup/LINUX2 *** /tmp/postfix-1.1.0/examples/chroot-setup/LINUX2 Tue Jan 16 20:30:29 2001 --- ./examples/chroot-setup/LINUX2 Tue Jan 22 11:00:34 2002 *************** *** 39,45 **** # remove /etc/localtime in case it's a broken symlink # restrict find to maxdepth 1 (faster) - # $Log: LINUX2,v $ # Revision 1.4 2001/01/15 09:36:35 emma # add note it was successfully tested on Debian sid # --- 39,44 ---- diff -cr /tmp/postfix-1.1.0/html/backstage.html ./html/backstage.html *** /tmp/postfix-1.1.0/html/backstage.html Wed Feb 28 10:50:33 2001 --- ./html/backstage.html Fri Jan 18 08:47:47 2002 *************** *** 62,69 ****
--- 62,68 ----
diff -cr /tmp/postfix-1.1.0/html/postmap.1.html ./html/postmap.1.html *** /tmp/postfix-1.1.0/html/postmap.1.html Sun Dec 23 21:01:10 2001 --- ./html/postmap.1.html Tue Jan 22 11:25:29 2002 *************** *** 16,21 **** --- 16,25 ---- makemap file_type file_name < file_name + If the result files do not exist they will be created with + the same group and other read permissions as the source + file. + While the table update is in progress, signal delivery is postponed, and an exclusive, advisory, lock is placed on the entire table, in order to avoid surprises in spectator diff -cr /tmp/postfix-1.1.0/html/postqueue.1.html ./html/postqueue.1.html *** /tmp/postfix-1.1.0/html/postqueue.1.html Sat Jan 5 20:00:36 2002 --- ./html/postqueue.1.html Tue Jan 22 11:04:43 2002 *************** *** 18,24 **** The following options are recognized: ! -c The main.cf configuration file is in the named directory instead of the default configuration directory. See also the MAIL_CONFIG environment setting below. --- 18,25 ---- The following options are recognized: ! -c config_dir ! The main.cf configuration file is in the named directory instead of the default configuration directory. See also the MAIL_CONFIG environment setting below. diff -cr /tmp/postfix-1.1.0/html/security.html ./html/security.html *** /tmp/postfix-1.1.0/html/security.html Sun Dec 30 17:19:24 2001 --- ./html/security.html Fri Jan 18 08:57:09 2002 *************** *** 82,89 **** Initially, the maildrop queue directory was world-writable, so that local processes could submit mail without assistance from a set-uid or set-gid command or from a mail daemon process. The ! maildrop directory was never used for mail coming in via the network, ! and its queue files were never not readable for other users.
--- 82,89 ---- Initially, the maildrop queue directory was world-writable, so that local processes could submit mail without assistance from a set-uid or set-gid command or from a mail daemon process. The ! maildrop directory was not used for mail coming in via the network, ! and its queue files were not readable for unprivileged users.
diff -cr /tmp/postfix-1.1.0/html/transport.5.html ./html/transport.5.html
*** /tmp/postfix-1.1.0/html/transport.5.html Sun Jan 6 18:02:35 2002
--- ./html/transport.5.html Sun Jan 20 13:38:35 2002
***************
*** 149,155 ****
details and for default values. Use the postfix reload
command after a configuration change.
! parent_domain_matches_subdomains (versions >= 20011119)
List of Postfix features that use domain.name pat-
terns to match sub.domain.name (as opposed to
requiring .domain.name patterns).
--- 149,155 ----
details and for default values. Use the postfix reload
command after a configuration change.
! parent_domain_matches_subdomains
List of Postfix features that use domain.name pat-
terns to match sub.domain.name (as opposed to
requiring .domain.name patterns).
diff -cr /tmp/postfix-1.1.0/html/uce.html ./html/uce.html
*** /tmp/postfix-1.1.0/html/uce.html Tue Nov 27 12:18:25 2001
--- ./html/uce.html Fri Jan 18 07:54:32 2002
***************
*** 162,168 ****
By default, this restriction is applied when the client sends the
RCPT TO command. In order to have the restriction take effect
! as soon as possible, specify smtpd_delay_reject = yes in
the Postfix main.cf configuration file. Doing so may cause
unexpected results with poorly implemented client software.
--- 162,168 ----
By default, this restriction is applied when the client sends the
RCPT TO command. In order to have the restriction take effect
! as soon as possible, specify smtpd_delay_reject = no in
the Postfix main.cf configuration file. Doing so may cause
unexpected results with poorly implemented client software.
***************
*** 560,566 ****
!