From f7c485bb41ff653e88230933ec837673c8fcd101a2a3c5bcafc7aa4e188f6094 Mon Sep 17 00:00:00 2001 From: Christian Wittmer Date: Sat, 26 Nov 2016 16:56:05 +0000 Subject: [PATCH] Accepting request 442124 from home:computersalat:devel:mail several improvements for config.postfix OBS-URL: https://build.opensuse.org/request/show/442124 OBS-URL: https://build.opensuse.org/package/show/server:mail/postfix?expand=0&rev=245 --- pointer_to_literals.patch | 31 +-- postfix-SuSE.tar.gz | 4 +- postfix-main.cf.patch | 10 +- postfix-master.cf.patch | 14 +- postfix-no-md5.patch | 10 +- postfix-ssl-release-buffers.patch | 16 +- ....10.0.patch => postfix-vda-v14-3.0.3.patch | 206 +++++++++++------- postfix.changes | 40 ++++ postfix.spec | 17 +- 9 files changed, 225 insertions(+), 123 deletions(-) rename postfix-vda-v13-3.10.0.patch => postfix-vda-v14-3.0.3.patch (92%) diff --git a/pointer_to_literals.patch b/pointer_to_literals.patch index 18a7344..880d565 100644 --- a/pointer_to_literals.patch +++ b/pointer_to_literals.patch @@ -1,7 +1,8 @@ -diff -Nur postfix-2.11.0/src/cleanup/cleanup_message.c postfix-2.11.0-patched/src/cleanup/cleanup_message.c ---- postfix-2.11.0/src/cleanup/cleanup_message.c 2013-11-12 18:53:03.000000000 +0100 -+++ postfix-2.11.0-patched/src/cleanup/cleanup_message.c 2014-02-12 15:17:28.172612478 +0100 -@@ -290,7 +290,7 @@ +Index: src/cleanup/cleanup_message.c +=================================================================== +--- src/cleanup/cleanup_message.c.orig ++++ src/cleanup/cleanup_message.c +@@ -290,7 +290,7 @@ static const char *cleanup_act(CLEANUP_S while (*optional_text && ISSPACE(*optional_text)) optional_text++; @@ -10,10 +11,11 @@ diff -Nur postfix-2.11.0/src/cleanup/cleanup_message.c postfix-2.11.0-patched/sr #define CLEANUP_ACT_DROP 0 /* -diff -Nur postfix-2.11.0/src/local/local_expand.c postfix-2.11.0-patched/src/local/local_expand.c ---- postfix-2.11.0/src/local/local_expand.c 2013-04-05 23:27:48.000000000 +0200 -+++ postfix-2.11.0-patched/src/local/local_expand.c 2014-02-12 15:22:23.684849057 +0100 -@@ -115,7 +115,7 @@ +Index: src/local/local_expand.c +=================================================================== +--- src/local/local_expand.c.orig ++++ src/local/local_expand.c +@@ -115,7 +115,7 @@ static const char *local_expand_lookup(c LOCAL_EXP *local = (LOCAL_EXP *) ptr; static char rcpt_delim[2]; @@ -22,10 +24,11 @@ diff -Nur postfix-2.11.0/src/local/local_expand.c postfix-2.11.0-patched/src/loc if (STREQ(name, "user")) { return (local->state->msg_attr.user); -diff -Nur postfix-2.11.0/src/smtpd/smtpd_check.c postfix-2.11.0-patched/src/smtpd/smtpd_check.c ---- postfix-2.11.0/src/smtpd/smtpd_check.c 2013-11-12 19:00:11.000000000 +0100 -+++ postfix-2.11.0-patched/src/smtpd/smtpd_check.c 2014-02-12 15:17:28.174612493 +0100 -@@ -363,6 +363,10 @@ +Index: src/smtpd/smtpd_check.c +=================================================================== +--- src/smtpd/smtpd_check.c.orig ++++ src/smtpd/smtpd_check.c +@@ -368,6 +368,10 @@ static STRING_LIST *smtpd_acl_perm_log; #define CONST_STR(x) ((const char *) vstring_str(x)) #define UPDATE_STRING(ptr,val) { if (ptr) myfree(ptr); ptr = mystrdup(val); } @@ -36,7 +39,7 @@ diff -Nur postfix-2.11.0/src/smtpd/smtpd_check.c postfix-2.11.0-patched/src/smtp /* * If some decision can't be made due to a temporary error, then change * other decisions into deferrals. -@@ -2073,8 +2077,6 @@ +@@ -2297,8 +2301,6 @@ static int check_table_result(SMTPD_STAT if (msg_verbose) msg_info("%s: %s %s %s", myname, table, value, datum); @@ -45,7 +48,7 @@ diff -Nur postfix-2.11.0/src/smtpd/smtpd_check.c postfix-2.11.0-patched/src/smtp /* * DUNNO means skip this table. Silently ignore optional text. */ -@@ -3087,8 +3089,6 @@ +@@ -3374,8 +3376,6 @@ static const char *rbl_expand_lookup(con SMTPD_RBL_EXPAND_CONTEXT *rbl_exp = (SMTPD_RBL_EXPAND_CONTEXT *) context; SMTPD_STATE *state = rbl_exp->state; diff --git a/postfix-SuSE.tar.gz b/postfix-SuSE.tar.gz index a4fb798..5d3e58b 100644 --- a/postfix-SuSE.tar.gz +++ b/postfix-SuSE.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e752d76f5bb7e3df93dbc9a6218c189d7acaa8b27426e5e74ac0bd88d853554c -size 35336 +oid sha256:25a19602ccd22e65ca85a85ad75866d8ac4147ff02b5d441028cfa8e762ff323 +size 71056 diff --git a/postfix-main.cf.patch b/postfix-main.cf.patch index 10704af..27b56eb 100644 --- a/postfix-main.cf.patch +++ b/postfix-main.cf.patch @@ -1,6 +1,8 @@ ---- conf/main.cf.orig 2015-04-01 10:56:39.000000000 +0000 -+++ conf/main.cf 2016-03-16 09:28:51.968093319 +0000 -@@ -567,6 +567,7 @@ +Index: conf/main.cf +=================================================================== +--- conf/main.cf.orig ++++ conf/main.cf +@@ -567,6 +567,7 @@ unknown_local_recipient_reject_code = 55 # #smtpd_banner = $myhostname ESMTP $mail_name #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) @@ -8,7 +10,7 @@ # PARALLEL DELIVERY TO THE SAME DESTINATION # -@@ -673,4 +674,120 @@ +@@ -673,4 +674,120 @@ sample_directory = # readme_directory: The location of the Postfix README files. # readme_directory = diff --git a/postfix-master.cf.patch b/postfix-master.cf.patch index 5f6d01e..e94cd86 100644 --- a/postfix-master.cf.patch +++ b/postfix-master.cf.patch @@ -1,5 +1,7 @@ ---- conf/master.cf.orig 2016-03-16 09:28:26.256321206 +0100 -+++ conf/master.cf 2016-03-16 09:35:02.748681617 +0100 +Index: conf/master.cf +=================================================================== +--- conf/master.cf.orig ++++ conf/master.cf @@ -10,6 +10,11 @@ # (yes) (yes) (no) (never) (100) # ========================================================================== @@ -12,7 +14,7 @@ #smtp inet n - n - 1 postscreen #smtpd pass - - n - - smtpd #dnsblog unix - - n - 0 dnsblog -@@ -28,6 +33,7 @@ +@@ -28,6 +33,7 @@ smtp inet n - n #smtps inet n - n - - smtpd # -o syslog_name=postfix/smtps # -o smtpd_tls_wrappermode=yes @@ -20,7 +22,7 @@ # -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions -@@ -62,6 +68,27 @@ +@@ -62,6 +68,27 @@ virtual unix - n n lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache @@ -48,7 +50,7 @@ # # ==================================================================== # Interfaces to non-Postfix software. Be sure to examine the manual -@@ -95,7 +122,7 @@ +@@ -95,7 +122,7 @@ scache unix - - n # Also specify in main.cf: cyrus_destination_recipient_limit=1 # #cyrus unix - n n - - pipe @@ -57,7 +59,7 @@ # # ==================================================================== # -@@ -128,3 +155,10 @@ +@@ -128,3 +155,10 @@ scache unix - - n #mailman unix - n n - - pipe # flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py # ${nexthop} ${user} diff --git a/postfix-no-md5.patch b/postfix-no-md5.patch index db9abe6..ec42bfe 100644 --- a/postfix-no-md5.patch +++ b/postfix-no-md5.patch @@ -1,8 +1,8 @@ -Index: postfix-2.11.0/src/global/mail_params.h +Index: src/global/mail_params.h =================================================================== ---- postfix-2.11.0.orig/src/global/mail_params.h -+++ postfix-2.11.0/src/global/mail_params.h -@@ -1300,7 +1300,7 @@ extern char *var_smtpd_tls_excl_ciph; +--- src/global/mail_params.h.orig ++++ src/global/mail_params.h +@@ -1333,7 +1333,7 @@ extern char *var_smtpd_tls_excl_ciph; extern char *var_smtpd_tls_mand_excl; #define VAR_SMTPD_TLS_FPT_DGST "smtpd_tls_fingerprint_digest" @@ -11,7 +11,7 @@ Index: postfix-2.11.0/src/global/mail_params.h extern char *var_smtpd_tls_fpt_dgst; #define VAR_SMTPD_TLS_512_FILE "smtpd_tls_dh512_param_file" -@@ -1449,9 +1449,9 @@ extern char *var_smtp_tls_excl_ciph; +@@ -1488,9 +1488,9 @@ extern char *var_smtp_tls_excl_ciph; extern char *var_smtp_tls_mand_excl; #define VAR_SMTP_TLS_FPT_DGST "smtp_tls_fingerprint_digest" diff --git a/postfix-ssl-release-buffers.patch b/postfix-ssl-release-buffers.patch index f1ad420..54adf7d 100644 --- a/postfix-ssl-release-buffers.patch +++ b/postfix-ssl-release-buffers.patch @@ -1,6 +1,8 @@ ---- src/tls/tls_client.c.orig 2016-03-16 09:45:17.686921418 +0100 -+++ src/tls/tls_client.c 2016-03-16 09:46:24.431617807 +0100 -@@ -369,6 +369,12 @@ +Index: src/tls/tls_client.c +=================================================================== +--- src/tls/tls_client.c.orig ++++ src/tls/tls_client.c +@@ -371,6 +371,12 @@ TLS_APPL_STATE *tls_client_init(const TL SSL_CTX_set_security_level(client_ctx, 0); #endif @@ -13,9 +15,11 @@ /* * See the verify callback in tls_verify.c */ ---- src/tls/tls_server.c.orig 2016-03-16 09:45:39.487150299 +0100 -+++ src/tls/tls_server.c 2016-03-16 09:51:32.230678857 +0100 -@@ -451,6 +451,12 @@ +Index: src/tls/tls_server.c +=================================================================== +--- src/tls/tls_server.c.orig ++++ src/tls/tls_server.c +@@ -462,6 +462,12 @@ TLS_APPL_STATE *tls_server_init(const TL SSL_CTX_set_security_level(server_ctx, 0); #endif diff --git a/postfix-vda-v13-3.10.0.patch b/postfix-vda-v14-3.0.3.patch similarity index 92% rename from postfix-vda-v13-3.10.0.patch rename to postfix-vda-v14-3.0.3.patch index 16b7bf0..b249e63 100644 --- a/postfix-vda-v13-3.10.0.patch +++ b/postfix-vda-v14-3.0.3.patch @@ -1,21 +1,25 @@ -diff -uNr postfix-2.10.0.orig/README_FILES/VDA_README postfix-2.10.0/README_FILES/VDA_README ---- postfix-2.10.0.orig/README_FILES/VDA_README 1970-01-01 01:00:00.000000000 +0100 -+++ postfix-2.10.0/README_FILES/VDA_README 2013-06-07 13:21:22.837143270 +0200 -@@ -0,0 +1,10 @@ -+Postfix VDA patch for maildir++ quota support by +Index: README_FILES/VDA_README +=================================================================== +--- /dev/null ++++ README_FILES/VDA_README +@@ -0,0 +1,12 @@ ++Postfix VDA patch for maildir++ quota support by + Anderson Nadal + Tomas Macek + Lucca Longinotti + +See VDA patch official website http://vda.sf.net for instructions -+howto patch the Postfix's sourcetree and configure the options ++howto patch the Postfix's sourcetree and configure the options +provided by this patch. + ++ Cristian Sava *** port to postfix-3.0.3 + -diff -uNr postfix-2.10.0.orig/src/global/mail_params.h postfix-2.10.0/src/global/mail_params.h ---- postfix-2.10.0.orig/src/global/mail_params.h 2013-02-03 19:22:21.000000000 +0100 -+++ postfix-2.10.0/src/global/mail_params.h 2013-06-07 13:21:22.838143270 +0200 -@@ -2367,6 +2367,54 @@ ++ +Index: src/global/mail_params.h +=================================================================== +--- src/global/mail_params.h.orig ++++ src/global/mail_params.h +@@ -2474,6 +2474,54 @@ extern char *var_virt_uid_maps; #define DEF_VIRT_GID_MAPS "" extern char *var_virt_gid_maps; @@ -70,10 +74,11 @@ diff -uNr postfix-2.10.0.orig/src/global/mail_params.h postfix-2.10.0/src/global #define VAR_VIRT_MINUID "virtual_minimum_uid" #define DEF_VIRT_MINUID 100 extern int var_virt_minimum_uid; -diff -uNr postfix-2.10.0.orig/src/util/file_limit.c postfix-2.10.0/src/util/file_limit.c ---- postfix-2.10.0.orig/src/util/file_limit.c 2003-10-22 20:48:36.000000000 +0200 -+++ postfix-2.10.0/src/util/file_limit.c 2013-06-07 13:21:22.839143270 +0200 -@@ -85,7 +85,11 @@ +Index: src/util/file_limit.c +=================================================================== +--- src/util/file_limit.c.orig ++++ src/util/file_limit.c +@@ -85,7 +85,11 @@ void set_file_limit(off_t limit) #else struct rlimit rlim; @@ -86,9 +91,10 @@ diff -uNr postfix-2.10.0.orig/src/util/file_limit.c postfix-2.10.0/src/util/file if (setrlimit(RLIMIT_FSIZE, &rlim) < 0) msg_fatal("setrlimit: %m"); #ifdef SIGXFSZ -diff -uNr postfix-2.10.0.orig/src/virtual/mailbox.c postfix-2.10.0/src/virtual/mailbox.c ---- postfix-2.10.0.orig/src/virtual/mailbox.c 2011-12-24 03:13:32.000000000 +0100 -+++ postfix-2.10.0/src/virtual/mailbox.c 2013-06-07 13:23:03.044139705 +0200 +Index: src/virtual/mailbox.c +=================================================================== +--- src/virtual/mailbox.c.orig ++++ src/virtual/mailbox.c @@ -52,6 +52,7 @@ #include #include @@ -168,7 +174,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/mailbox.c postfix-2.10.0/src/virtual/m /* deliver_mailbox_file - deliver to recipient mailbox */ static int deliver_mailbox_file(LOCAL_STATE state, USER_ATTR usr_attr) -@@ -80,7 +145,6 @@ +@@ -80,7 +145,6 @@ static int deliver_mailbox_file(LOCAL_ST int mail_copy_status; int deliver_status; int copy_flags; @@ -176,7 +182,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/mailbox.c postfix-2.10.0/src/virtual/m struct stat st; /* -@@ -132,7 +196,7 @@ +@@ -132,7 +196,7 @@ static int deliver_mailbox_file(LOCAL_ST msg_warn("specify \"%s = no\" to ignore mailbox ownership mismatch", VAR_STRICT_MBOX_OWNER); } else { @@ -185,7 +191,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/mailbox.c postfix-2.10.0/src/virtual/m mail_copy_status = mail_copy(COPY_ATTR(state.msg_attr), mp->fp, copy_flags, "\n", why); } -@@ -213,62 +277,72 @@ +@@ -213,62 +277,72 @@ int deliver_mailbox(LOCAL_STATE stat * Look up the mailbox owner rights. Defer in case of trouble. */ uid_res = mail_addr_find(virtual_uid_maps, state.msg_attr.user, @@ -293,9 +299,10 @@ diff -uNr postfix-2.10.0.orig/src/virtual/mailbox.c postfix-2.10.0/src/virtual/m /* * Cleanup. -diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/maildir.c ---- postfix-2.10.0.orig/src/virtual/maildir.c 2012-01-25 01:41:08.000000000 +0100 -+++ postfix-2.10.0/src/virtual/maildir.c 2013-06-07 13:21:22.840143270 +0200 +Index: src/virtual/maildir.c +=================================================================== +--- src/virtual/maildir.c.orig ++++ src/virtual/maildir.c @@ -64,28 +64,420 @@ #include #include @@ -345,27 +352,27 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + int len, first; + long sum = 0, count = 0, ret_value = -1; + -+ if (msg_verbose) ++ if (msg_verbose) + msg_info("%s: we will use sizefile = '%s'", myname, filename); -+ ++ + sizefile = vstream_fopen(filename, O_RDONLY, 0); + if (!sizefile) { + if (msg_verbose) + msg_info("%s: cannot open %s: %m (maybe file does not exist)", myname, filename); -+ ++ + return -1; + } else if (stat(filename, &statbuf) < 0 || statbuf.st_size > SIZEFILE_MAX) { + if (sizefile) { + vstream_fclose(sizefile); + unlink(filename); + } -+ -+ if (msg_verbose) ++ ++ if (msg_verbose) + msg_info("%s: stat() returned < 0 or filesize > SIZEFILE_MAX (filename = %s, filesize = %ld)", myname, filename, statbuf.st_size); -+ ++ + return -1; + } -+ ++ + VSTRING *sizebuf = vstring_alloc(SIZEFILE_MAX); + len = vstream_fread(sizefile, STR(sizebuf), SIZEFILE_MAX); + @@ -407,24 +414,25 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + + *countptr = count; + *sumptr = sum; -+ ++ + if (sum < 0 || count < 0 || (sum == 0 && count != 0) || (sum != 0 && count == 0)) { + if (msg_verbose) { + msg_info("%s: we will return -1 and unlink %s, because file count or sum is <= 0 (sum = %ld, count = %ld)", myname, filename, sum, count); + } -+ ++ + unlink(filename); + ret_value = -1; + } else { -+ if (msg_verbose) ++ if (msg_verbose) + msg_info("%s: we will return Maildir size = %ld, count = %ld", myname, *sumptr, *countptr); + -+ ret_value = sum; ++ ret_value = sum; + } -+ + +-int deliver_maildir(LOCAL_STATE state, USER_ATTR usr_attr) + vstream_fclose(sizefile); + vstring_free(sizebuf); -+ ++ + return ret_value; +} + @@ -574,8 +582,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + } + } + closedir(dir); - --int deliver_maildir(LOCAL_STATE state, USER_ATTR usr_attr) ++ + if (msg_verbose) + msg_info("%s: full scan done: dir=%s sum=%ld count=%ld", myname, dirname, sum, *countptr); + @@ -729,7 +736,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m GETTIMEOFDAY(&starttime); -@@ -94,15 +486,14 @@ +@@ -94,15 +486,14 @@ int deliver_maildir(LOCAL_STATE stat */ state.level++; if (msg_verbose) @@ -748,7 +755,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m } /* -@@ -110,18 +501,116 @@ +@@ -110,17 +501,115 @@ int deliver_maildir(LOCAL_STATE stat * attribute to reflect the final recipient. */ if (vstream_fseek(state.msg_attr.fp, state.msg_attr.offset, SEEK_SET) < 0) @@ -781,7 +788,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + tmpdir = concatenate(tmpdir, "tmp/", (char *) 0); + curdir = concatenate(curdir, "cur/", (char *) 0); + } - ++ + /* get the sizefilename, no matter if we use var_virt_maildir_extended */ + if (*var_virt_maildir_suffix == 0) { + sizefilename = concatenate(usr_attr.mailbox, "maildirsize", (char *) 0); @@ -789,7 +796,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + sizefilename = concatenate(usr_attr.mailbox, var_virt_maildir_suffix, (char *) 0); + sizefilename = concatenate(sizefilename, "maildirsize", (char *) 0); + } -+ ++ + /* + * Look up the virtual maildir limit size for this user. + * Fall back to virtual_mailbox_limit in case lookup failed. @@ -822,7 +829,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + } + else { + if (msg_verbose) -+ msg_info("%s: quota is negative (%ld), using default virtual_mailbox_limit (%ld)", ++ msg_info("%s: quota is negative (%ld), using default virtual_mailbox_limit (%ld)", + myname, n, var_virt_mailbox_limit); + /* Invalid limit size (negative). Use default virtual_mailbox_limit. */ + n = var_virt_mailbox_limit; @@ -830,7 +837,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + } + else { + if (msg_verbose) -+ msg_info("%s: no limit found in the maps, using default virtual_mailbox_limit (%ld)", ++ msg_info("%s: no limit found in the maps, using default virtual_mailbox_limit (%ld)", + myname, var_virt_mailbox_limit); + /* There is no limit in the maps. Use default virtual_mailbox_limit. */ + n = var_virt_mailbox_limit; @@ -846,14 +853,14 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + if (msg_verbose) + msg_info("%s: maildirsize used=%s sum=%ld count=%ld", myname, sizefilename, saved_size, saved_count); + } else { -+ if (msg_verbose) -+ msg_info("%s: We will recount the quota (var_virt_mailbox_limit = %ld, var_virt_maildir_extended = %d, read_maildirsize = %d)", ++ if (msg_verbose) ++ msg_info("%s: We will recount the quota (var_virt_mailbox_limit = %ld, var_virt_maildir_extended = %d, read_maildirsize = %d)", + myname, var_virt_mailbox_limit, var_virt_maildir_extended, read_mds); + + /* sanity */ -+ saved_size = 0; ++ saved_size = 0; + saved_count = 0; -+ ++ + if (var_virt_mailbox_limit_inbox) { + /* Check Inbox only (new, cur and tmp dirs). */ + saved_size = check_dir_size(newdir, &saved_count); @@ -865,13 +872,12 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + } + + set_eugid(var_owner_uid, var_owner_gid); -+ } ++ } + } -+ + /* * Create and write the file as the recipient, so that file quota work. - * Create any missing directories on the fly. The file name is chosen -@@ -175,46 +664,288 @@ +@@ -175,46 +664,288 @@ int deliver_maildir(LOCAL_STATE stat * [...] */ set_eugid(usr_attr.uid, usr_attr.gid); @@ -1197,7 +1203,7 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m } set_eugid(var_owner_uid, var_owner_gid); -@@ -224,31 +955,64 @@ +@@ -224,31 +955,64 @@ int deliver_maildir(LOCAL_STATE stat * location possibly under user control. */ if (mail_copy_status & MAIL_COPY_STAT_CORRUPT) { @@ -1255,11 +1261,11 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + deliver_status = + (STR(why->status)[0] == '4' ? defer_append : bounce_append) + (BOUNCE_FLAGS(state.request), BOUNCE_ATTR(state.msg_attr)); - } ++ } + else { + dsb_simple(why, "2.0.0", "delivered to maildir"); + deliver_status = sent(BOUNCE_FLAGS(state.request), SENT_ATTR(state.msg_attr)); -+ } + } + vstring_free(buf); + @@ -1281,22 +1287,11 @@ diff -uNr postfix-2.10.0.orig/src/virtual/maildir.c postfix-2.10.0/src/virtual/m + return (deliver_status); } -diff -uNr postfix-2.10.0.orig/src/virtual/virtual.h postfix-2.10.0/src/virtual/virtual.h ---- postfix-2.10.0.orig/src/virtual/virtual.h 2006-01-08 00:59:47.000000000 +0100 -+++ postfix-2.10.0/src/virtual/virtual.h 2013-06-07 13:21:22.841143270 +0200 -@@ -34,6 +34,9 @@ - extern MAPS *virtual_mailbox_maps; - extern MAPS *virtual_uid_maps; - extern MAPS *virtual_gid_maps; -+extern MAPS *virtual_mailbox_limit_maps; -+extern MAPS *virtual_maildir_limit_message_maps; -+extern MAPS *virtual_maildir_filter_maps; - - /* - * User attributes: these control the privileges for delivery to external ---- postfix-3.1.0/src/virtual/virtual.c.orig 2016-03-16 09:58:37.790856521 +0100 -+++ postfix-3.1.0/src/virtual/virtual.c 2016-03-16 10:04:44.267207460 +0100 -@@ -347,12 +347,28 @@ +Index: src/virtual/virtual.c +=================================================================== +--- src/virtual/virtual.c.orig ++++ src/virtual/virtual.c +@@ -347,12 +347,28 @@ char *var_mail_spool_dir; /* XXX depe bool var_strict_mbox_owner; char *var_virt_dsn_filter; @@ -1325,36 +1320,83 @@ diff -uNr postfix-2.10.0.orig/src/virtual/virtual.h postfix-2.10.0/src/virtual/v /* * Bit masks. -@@ -475,6 +491,19 @@ - DICT_FLAG_LOCK | DICT_FLAG_PARANOID - | DICT_FLAG_UTF8_REQUEST); +@@ -462,18 +478,27 @@ static void post_init(char *unused_name, + */ + virtual_mailbox_maps = + maps_create(VAR_VIRT_MAILBOX_MAPS, var_virt_mailbox_maps, +- DICT_FLAG_LOCK | DICT_FLAG_PARANOID +- | DICT_FLAG_UTF8_REQUEST); ++ DICT_FLAG_LOCK); + virtual_uid_maps = + maps_create(VAR_VIRT_UID_MAPS, var_virt_uid_maps, +- DICT_FLAG_LOCK | DICT_FLAG_PARANOID +- | DICT_FLAG_UTF8_REQUEST); ++ DICT_FLAG_LOCK); + + virtual_gid_maps = + maps_create(VAR_VIRT_GID_MAPS, var_virt_gid_maps, +- DICT_FLAG_LOCK | DICT_FLAG_PARANOID +- | DICT_FLAG_UTF8_REQUEST); ++ DICT_FLAG_LOCK); ++ + virtual_mailbox_limit_maps = + maps_create(VAR_VIRT_MAILBOX_LIMIT_MAPS, var_virt_mailbox_limit_maps, -+ DICT_FLAG_LOCK | DICT_FLAG_UTF8_REQUEST ); ++ DICT_FLAG_LOCK); + + virtual_maildir_limit_message_maps = + maps_create(VAR_VIRT_MAILDIR_LIMIT_MESSAGE_MAPS, var_virt_maildir_limit_message_maps, -+ DICT_FLAG_LOCK | DICT_FLAG_UTF8_REQUEST ); ++ DICT_FLAG_LOCK); + + virtual_maildir_filter_maps = + maps_create(VAR_VIRT_MAILDIR_FILTER_MAPS, var_virt_maildir_filter_maps, -+ DICT_FLAG_LOCK | DICT_FLAG_UTF8_REQUEST ); -+ -+ ++ DICT_FLAG_LOCK); + virtual_mbox_lock_mask = mbox_lock_mask(var_virt_mailbox_lock); } - -@@ -526,6 +555,12 @@ +@@ -525,11 +550,23 @@ int main(int argc, char **argv) + VAR_VIRT_GID_MAPS, DEF_VIRT_GID_MAPS, &var_virt_gid_maps, 0, 0, VAR_VIRT_MAILBOX_BASE, DEF_VIRT_MAILBOX_BASE, &var_virt_mailbox_base, 1, 0, VAR_VIRT_MAILBOX_LOCK, DEF_VIRT_MAILBOX_LOCK, &var_virt_mailbox_lock, 1, 0, - VAR_VIRT_DSN_FILTER, DEF_VIRT_DSN_FILTER, &var_virt_dsn_filter, 0, 0, + VAR_VIRT_MAILBOX_LIMIT_MAPS, DEF_VIRT_MAILBOX_LIMIT_MAPS, &var_virt_mailbox_limit_maps, 0, 0, + VAR_VIRT_MAILDIR_LIMIT_MESSAGE, DEF_VIRT_MAILDIR_LIMIT_MESSAGE, &var_virt_maildir_limit_message, 1, 0, + VAR_VIRT_MAILDIR_LIMIT_MESSAGE_MAPS, DEF_VIRT_MAILDIR_LIMIT_MESSAGE_MAPS, &var_virt_maildir_limit_message_maps, 0, 0, + VAR_VIRT_MAILDIR_SUFFIX, DEF_VIRT_MAILDIR_SUFFIX, &var_virt_maildir_suffix, 0, 0, + VAR_VIRT_TRASH_NAME, DEF_VIRT_TRASH_NAME, &var_virt_trash_name, 0, 0, + VAR_VIRT_MAILDIR_FILTER_MAPS, DEF_VIRT_MAILDIR_FILTER_MAPS, &var_virt_maildir_filter_maps, 0, 0, + VAR_VIRT_DSN_FILTER, DEF_VIRT_DSN_FILTER, &var_virt_dsn_filter, 0, 0, 0, }; static const CONFIG_BOOL_TABLE bool_table[] = { + VAR_STRICT_MBOX_OWNER, DEF_STRICT_MBOX_OWNER, &var_strict_mbox_owner, ++ VAR_VIRT_MAILBOX_LIMIT_INBOX, DEF_VIRT_MAILBOX_LIMIT_INBOX, &var_virt_mailbox_limit_inbox, ++ VAR_VIRT_MAILBOX_LIMIT_OVERRIDE, DEF_VIRT_MAILBOX_LIMIT_OVERRIDE, &var_virt_mailbox_limit_override, ++ VAR_VIRT_MAILDIR_EXTENDED, DEF_VIRT_MAILDIR_EXTENDED, &var_virt_maildir_extended, ++ VAR_VIRT_OVERQUOTA_BOUNCE, DEF_VIRT_OVERQUOTA_BOUNCE, &var_virt_overquota_bounce, ++ VAR_VIRT_TRASH_COUNT, DEF_VIRT_TRASH_COUNT, &var_virt_trash_count, ++ VAR_VIRT_MAILDIR_FILTER, DEF_VIRT_MAILDIR_FILTER, &var_virt_maildir_filter, + 0, + }; + +@@ -546,6 +583,7 @@ int main(int argc, char **argv) + CA_MAIL_SERVER_PRE_INIT(pre_init), + CA_MAIL_SERVER_POST_INIT(post_init), + CA_MAIL_SERVER_PRE_ACCEPT(pre_accept), ++ CA_MAIL_SERVER_BOOL_TABLE(bool_table), + CA_MAIL_SERVER_PRIVILEGED, + CA_MAIL_SERVER_BOUNCE_INIT(VAR_VIRT_DSN_FILTER, + &var_virt_dsn_filter), +Index: src/virtual/virtual.h +=================================================================== +--- src/virtual/virtual.h.orig ++++ src/virtual/virtual.h +@@ -34,6 +34,9 @@ + extern MAPS *virtual_mailbox_maps; + extern MAPS *virtual_uid_maps; + extern MAPS *virtual_gid_maps; ++extern MAPS *virtual_mailbox_limit_maps; ++extern MAPS *virtual_maildir_limit_message_maps; ++extern MAPS *virtual_maildir_filter_maps; + + /* + * User attributes: these control the privileges for delivery to external diff --git a/postfix.changes b/postfix.changes index ca8b5a9..adfb75f 100644 --- a/postfix.changes +++ b/postfix.changes @@ -1,3 +1,43 @@ +------------------------------------------------------------------- +Sat Nov 26 15:43:57 UTC 2016 - chris@computersalat.de + +- improve config.postfix + * improve SASL stuff + * add POSTFIX_SMTP_AUTH_SERVICE=(cyrus|dovecot) + +------------------------------------------------------------------- +Mon Nov 14 21:53:18 UTC 2016 - chris@computersalat.de + +- improve config.postfix + * improve with MySQL stuff + +------------------------------------------------------------------- +Mon Nov 7 13:35:38 UTC 2016 - chris@computersalat.de + +- update vda patch to latest available + * remove postfix-vda-v13-3.10.0.patch + * add postfix-vda-v14-3.0.3.patch +- rebase patches (and to be p0) + * pointer_to_literals.patch + * postfix-main.cf.patch + * postfix-master.cf.patch + * postfix-no-md5.patch + * postfix-ssl-release-buffers.patch +- add /etc/postfix/ssl as default DIR for SSL stuff + * cacerts -> ../../ssl/certs/ + * certs/ +- revert POSTFIX_SSL_PATH from '/etc/ssl' to '/etc/postfix/ssl' +- improve config.postfix + * revert smtpd_tls_CApath to POSTFIX_SSL_PATH/cacerts which is a + symlink to /etc/ssl/certs + Without reverting, 'gen_CA' would create files which would then be on + the previous defined 'sslpath(/etc/ssl)/certs' (smtpd_tls_CApath) + Cert reqs would be placed in 'sslpath(/etc/ssl)/certs/postfixreq.pem' + which is not a good idea. + * mkchroot: sync '/etc/postfix/ssl' to chroot + * improve PCONF for smtp{,d}_tls_{cert,key}_file, adding/removing from + main.cf, show warning if enabled and file is missing + ------------------------------------------------------------------- Sun Oct 9 20:11:34 UTC 2016 - michael@stroeder.com diff --git a/postfix.spec b/postfix.spec index d73288a..cb6cf8d 100644 --- a/postfix.spec +++ b/postfix.spec @@ -77,8 +77,9 @@ Patch3: ipv6_disabled.patch Patch4: %{name}-main.cf.patch Patch5: %{name}-master.cf.patch Patch7: %{name}-ssl-release-buffers.patch -Patch8: %{name}-vda-v13-3.10.0.patch +Patch8: %{name}-vda-v14-3.0.3.patch +BuildRequires: ca-certificates BuildRequires: cyrus-sasl-devel BuildRequires: db-devel BuildRequires: libopenssl-devel @@ -177,13 +178,13 @@ PostgreSQL. %prep %setup -q -a 2 -a 3 -%patch1 -p1 -%patch2 -p1 +%patch1 +%patch2 %patch3 %patch4 %patch5 %patch7 -%patch8 -p1 +%patch8 # --------------------------------------------------------------------------- @@ -248,6 +249,10 @@ usermod -G %{maildrop_gid},%{mail_gid} %{name} 2> /dev/null || : mkdir -p %{buildroot}/%{_libdir} mkdir -p %{buildroot}/etc/postfix cp conf/* %{buildroot}/etc/postfix/ +# create our default postfix ssl DIR (/etc/postfix/ssl) +mkdir -p %{buildroot}/etc/postfix/ssl/certs +# link cacerts to /etc/ssl/certs +ln -sf ../../ssl/certs %{buildroot}/etc/postfix/ssl/cacerts cp lib/libpostfix-* %{buildroot}/%{_libdir} export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}/%{_libdir} sh postfix-install -non-interactive \ @@ -571,6 +576,10 @@ fi %config %{_sysconfdir}/permissions.d/%{name}.paranoid %attr(0644, root, root) %config %{_sysconfdir}/%{name}/makedefs.out %{_libexecdir}/%{name}/%{name}-files +# create our default postfix ssl DIR (/etc/postfix/ssl) +%dir %{_sysconfdir}/postfix/ssl +%dir %{_sysconfdir}/postfix/ssl/certs +%{_sysconfdir}/postfix/ssl/cacerts %if 0%{?suse_version} >= 1210 %dir %{_sysconfdir}/postfix/system %config %attr(0755,root,root) %{_sysconfdir}/postfix/system/*