Hello community, here is the log from the commit of package postfix for openSUSE:Factory checked in at 2013-01-21 17:44:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/postfix (Old) and /work/SRC/openSUSE:Factory/.postfix.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postfix", Maintainer is "vark...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/postfix/postfix.changes 2012-12-17 09:36:49.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.postfix.new/postfix.changes 2013-01-21 17:44:44.000000000 +0100 @@ -1,0 +2,60 @@ +Thu Jan 17 22:01:16 UTC 2013 - vark...@suse.com + +- bnc#796162 - script to assign path elements not working in postfix install Build-0284(iso) + +------------------------------------------------------------------- +Thu Jan 10 18:23:56 UTC 2013 - ch...@computersalat.de + +- rebase patches + * vda-v10-2.8.12 -> vda-v11-2.9.5 (and to be a p0) + * main, master, post-instal, ssl-release-buffers (remove version) + * dynamic_maps, dynamic_maps_pie, pointer_to_literals + +------------------------------------------------------------------- +Thu Jan 10 14:45:59 UTC 2013 - vark...@suse.com + +- update to 2,9.5 + * tls support: + Support to turn off the TLSv1.1 and TLSv1.2 protocols: + To temporarily turn off problematic protocols globally: + /etc/postfix/main.cf: + smtp_tls_protocols = !SSLv2, !TLSv1.1, !TLSv1.2 + smtp_tls_mandatory_protocols = !SSLv2, !TLSv1.1, !TLSv1.2 + However, it may be better to temporarily turn off problematic + protocols for broken sites only: + /etc/postfix/main.cf: + smtp_tls_policy_maps = hash:/etc/postfix/tls_policy + /etc/postfix/tls_policy: + example.com may protocols=!SSLv2:!TLSv1.1:!TLSv1.2 + * 20111012 To simplify integration with third-party + applications, the Postfix sendmail command now always transforms + all input lines ending in <CR><LF> into UNIX format (lines ending + in <LF>). Specify "sendmail_fix_line_endings = strict" to restore + historical Postfix behavior (i.e. convert all input lines ending + in <CR><LF> only if the first line ends in <CR><LF>). + * 20120114 Logfile-based alerting systems may need to be + updated to look for "error" messages in addition to "fatal" messages. + Specify "daemon_table_open_error_is_fatal = yes" to get the historical + behavior (immediate termination with "fatal" message). + * enable_long_queue_ids Postfix 2.9 introduces support for non-repeating queue IDs (also + used as queue file names). These names are encoded in a mix of upper + case, lower case and decimal digit characters. Long queue IDs are + disabled by default to avoid breaking tools that parse logfiles and + that expect queue IDs with the smaller [A-F0-9] character set. + * 20111209 memcache lookup and update support. This provides + a way to share postscreen(8) or verify(8) caches between Postfix + instances. See MEMCACHE_README and memcache_table(5) for details + and limitations. + * 20111218 To support external SASL authentication, e.g., + in an NGINX proxy daemon, the Postfix SMTP server now always checks + the smtpd_sender_login_maps table, even without having + "smtpd_sasl_auth_enable = yes" in main.cf. + * ipv6 + o The default inet_protocols value is now "all" instead of "ipv4", + meaning use both IPv4 and IPv6. + o The default smtp_address_preference value is now "any" instead + of "ipv6", meaning choose randomly between IPv6 and IPv4. With + this the Postfix SMTP client will have more success delivering + mail to sites that have problematic IPv6 configurations. + +------------------------------------------------------------------- Old: ---- postfix-2.8.12-main.cf.patch postfix-2.8.12-master.cf.patch postfix-2.8.12-post-install.patch postfix-2.8.12-ssl-release-buffers.patch postfix-2.8.13.tar.bz2 postfix-vda-v10-2.8.12.patch New: ---- postfix-2.9.5.tar.bz2 postfix-main.cf.patch postfix-master.cf.patch postfix-post-install.patch postfix-ssl-release-buffers.patch postfix-vda-v11-2.9.5.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postfix.spec ++++++ --- /var/tmp/diff_new_pack.Gg7x48/_old 2013-01-21 17:44:49.000000000 +0100 +++ /var/tmp/diff_new_pack.Gg7x48/_new 2013-01-21 17:44:49.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package postfix # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ Summary: A fast, secure, and flexible mailer License: IPL-1.0 Group: Productivity/Networking/Email/Servers -Version: 2.8.13 +Version: 2.9.5 Release: 0 Url: http://www.postfix.org/ Source: %{name}-%{version}.tar.bz2 @@ -32,11 +32,11 @@ Patch1: dynamic_maps_pie.patch Patch2: pointer_to_literals.patch Patch3: ipv6_disabled.patch -Patch10: %{name}-2.8.12-main.cf.patch -Patch11: %{name}-2.8.12-master.cf.patch -Patch12: %{name}-2.8.12-post-install.patch -Patch20: %{name}-vda-v10-2.8.12.patch -Patch21: postfix-2.8.12-ssl-release-buffers.patch +Patch10: %{name}-main.cf.patch +Patch11: %{name}-master.cf.patch +Patch12: %{name}-post-install.patch +Patch20: %{name}-ssl-release-buffers.patch +Patch100: %{name}-vda-v11-2.9.5.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: %insserv_prereq %fillup_prereq PreReq: /usr/bin/getent @@ -147,7 +147,7 @@ %patch11 %patch12 %patch20 -%patch21 +%patch100 # --------------------------------------------------------------------------- %build @@ -233,8 +233,7 @@ -e 's;@manpage_directory@;%{_mandir};' \ -e 's;@newaliases_path@;%{pf_newaliases_path};' \ -e 's;@sample_directory@;%{pf_sample_directory};' \ - -e 's;@mailq_path@;%{pf_mailq_path};' %{name}-SuSE/config.%{name} \ - > $RPM_BUILD_ROOT/usr/sbin/config.%{name} + -e 's;@mailq_path@;%{pf_mailq_path};' %{name}-SuSE/config.%{name} > $RPM_BUILD_ROOT/usr/sbin/config.%{name} chmod 755 $RPM_BUILD_ROOT/usr/sbin/config.%{name} install -m 644 %{name}-SuSE/dynamicmaps.cf $RPM_BUILD_ROOT/etc/%{name}/dynamicmaps.cf install -m 644 %{name}-SuSE/ldap_aliases.cf $RPM_BUILD_ROOT/etc/%{name}/ldap_aliases.cf @@ -300,7 +299,6 @@ mkdir -p %{buildroot}/lib/systemd/system mkdir -p %{buildroot}/etc/postfix/system install -m 0644 %{name}-SuSE/postfix.service %{buildroot}/lib/systemd/system/ -install -m 0755 %{name}-SuSE/config.postfix %{buildroot}/usr/sbin/config.postfix install -m 0755 %{name}-SuSE/config_postfix.systemd %{buildroot}/etc/postfix/system/config_postfix install -m 0755 %{name}-SuSE/update_chroot.systemd %{buildroot}/etc/postfix/system/update_chroot install -m 0755 %{name}-SuSE/update_postmaps.systemd %{buildroot}/etc/postfix/system/update_postmaps ++++++ dynamic_maps.patch ++++++ --- /var/tmp/diff_new_pack.Gg7x48/_old 2013-01-21 17:44:49.000000000 +0100 +++ /var/tmp/diff_new_pack.Gg7x48/_new 2013-01-21 17:44:49.000000000 +0100 @@ -86,7 +86,7 @@ dict_proxy.c dict_sqlite.c domain_list.c dot_lockfile.c dot_lockfile_as.c \ dsb_scan.c dsn.c dsn_buf.c dsn_mask.c dsn_print.c dsn_util.c \ ehlo_mask.c ext_prop.c file_id.c flush_clnt.c header_opts.c \ -@@ -35,7 +35,7 @@ OBJS = abounce.o anvil_clnt.o been_here. +@@ -37,7 +37,7 @@ OBJS = abounce.o anvil_clnt.o been_here. canon_addr.o cfg_parser.o cleanup_strerror.o cleanup_strflags.o \ clnt_stream.o conv_time.o db_common.o debug_peer.o debug_process.o \ defer.o deliver_completed.o deliver_flock.o deliver_pass.o \ @@ -95,7 +95,7 @@ dict_proxy.o dict_sqlite.o domain_list.o dot_lockfile.o dot_lockfile_as.o \ dsb_scan.o dsn.o dsn_buf.o dsn_mask.o dsn_print.o dsn_util.o \ ehlo_mask.o ext_prop.o file_id.o flush_clnt.o header_opts.o \ -@@ -106,10 +106,13 @@ LIBS = ../../lib/libutil.a +@@ -112,10 +112,13 @@ LIBS = ../../lib/libutil.a LIB_DIR = ../../lib INC_DIR = ../../include MAKES = @@ -111,7 +111,7 @@ $(OBJS): ../../conf/makedefs.out -@@ -119,14 +122,30 @@ Makefile: Makefile.in +@@ -125,14 +128,30 @@ Makefile: Makefile.in test: $(TESTPROG) $(LIB): $(OBJS) @@ -146,7 +146,7 @@ -for i in $(HDRS); \ do \ cmp -s $$i $(INC_DIR)/$$i 2>/dev/null || cp $$i $(INC_DIR); \ -@@ -497,7 +516,7 @@ lint: +@@ -577,7 +596,7 @@ lint: lint $(DEFS) $(SRCS) $(LINTFIX) clean: @@ -160,8 +160,8 @@ --- src/global/mail_conf.c.orig +++ src/global/mail_conf.c @@ -190,6 +190,13 @@ void mail_conf_suck(void) - path = concatenate(var_config_dir, "/", "main.cf", (char *) 0); - dict_load_file(CONFIG_DICT, path); + if (dict_load_file_xt(CONFIG_DICT, path) == 0) + msg_fatal("open %s: %m", path); myfree(path); + +#ifndef NO_DYNAMIC_MAPS @@ -177,7 +177,7 @@ =================================================================== --- src/global/mail_dict.c.orig +++ src/global/mail_dict.c -@@ -46,6 +46,7 @@ typedef struct { +@@ -47,6 +47,7 @@ typedef struct { static const DICT_OPEN_INFO dict_open_info[] = { DICT_TYPE_PROXY, dict_proxy_open, @@ -185,10 +185,10 @@ #ifdef HAS_LDAP DICT_TYPE_LDAP, dict_ldap_open, #endif -@@ -58,6 +59,7 @@ static const DICT_OPEN_INFO dict_open_in - #ifdef HAS_SQLITE +@@ -60,6 +61,7 @@ static const DICT_OPEN_INFO dict_open_in DICT_TYPE_SQLITE, dict_sqlite_open, #endif + DICT_TYPE_MEMCACHE, dict_memcache_open, +#endif /* MAX_DYNAMIC_MAPS */ 0, }; @@ -205,7 +205,7 @@ /* int var_in_flow_delay; /* int var_fault_inj_code; /* char *var_bounce_service; -@@ -265,6 +266,7 @@ char *var_import_environ; +@@ -268,6 +269,7 @@ char *var_import_environ; char *var_export_environ; char *var_debug_peer_list; int var_debug_peer_level; @@ -213,7 +213,7 @@ int var_fault_inj_code; char *var_bounce_service; char *var_cleanup_service; -@@ -276,6 +278,7 @@ char *var_showq_service; +@@ -279,6 +281,7 @@ char *var_showq_service; char *var_error_service; char *var_flush_service; char *var_verify_service; @@ -225,7 +225,7 @@ =================================================================== --- src/global/mkmap_open.c.orig +++ src/global/mkmap_open.c -@@ -81,7 +81,7 @@ +@@ -82,7 +82,7 @@ * We use a different table (in dict_open.c) when querying maps. */ typedef struct { @@ -234,7 +234,7 @@ MKMAP *(*before_open) (const char *); } MKMAP_OPEN_INFO; -@@ -156,7 +156,16 @@ MKMAP *mkmap_open(const char *type, con +@@ -161,7 +161,16 @@ MKMAP *mkmap_open(const char *type, con */ for (mp = mkmap_types; /* void */ ; mp++) { if (mp->type == 0) @@ -305,27 +305,58 @@ update: $(LIB_DIR)/$(LIB) $(HDRS) -for i in $(HDRS); \ -Index: src/postconf/postconf.c +Index: src/postconf/Makefile.in =================================================================== ---- src/postconf/postconf.c.orig -+++ src/postconf/postconf.c -@@ -1013,6 +1013,16 @@ static void show_maps(void) - { +--- src/postconf/Makefile.in.orig ++++ src/postconf/Makefile.in +@@ -595,6 +595,7 @@ postconf_node.o: postconf_node.c + postconf_other.o: ../../include/argv.h + postconf_other.o: ../../include/dict.h + postconf_other.o: ../../include/htable.h ++postconf_other.o: ../../include/mail_params.h + postconf_other.o: ../../include/mbox_conf.h + postconf_other.o: ../../include/sys_defs.h + postconf_other.o: ../../include/vbuf.h +Index: src/postconf/postconf_other.c +=================================================================== +--- src/postconf/postconf_other.c.orig ++++ src/postconf/postconf_other.c +@@ -46,10 +46,15 @@ + #include <vstream.h> + #include <argv.h> + #include <dict.h> ++#include <mymalloc.h> ++#include <safe.h> ++#include <stringops.h> + + /* Global library. */ + + #include <mbox_conf.h> ++#include <mail_params.h> ++#include <mail_conf.h> + + /* XSASL library. */ + +@@ -66,6 +71,19 @@ void show_maps(void) ARGV *maps_argv; int i; + +#ifndef NO_DYNAMIC_MAPS + char *path; + char *config_dir; + ++ if (var_config_dir) ++ myfree(var_config_dir); + var_config_dir = mystrdup((config_dir = safe_getenv(CONF_ENV_PATH)) != 0 ? -+ config_dir : DEF_CONFIG_DIR); /* XXX */ ++ config_dir : DEF_CONFIG_DIR); /* XXX */ + path = concatenate(var_config_dir, "/", "dynamicmaps.cf", (char *) 0); + dict_open_dlinfo(path); + myfree(path); +#endif - ++ maps_argv = dict_mapnames(); for (i = 0; i < maps_argv->argc; i++) + vstream_printf("%s\n", maps_argv->argv[i]); Index: src/postmap/postmap.c =================================================================== --- src/postmap/postmap.c.orig @@ -348,7 +379,7 @@ /* .IP \fB-v\fR /* Enable verbose logging for debugging purposes. Multiple \fB-v\fR /* options make the software increasingly verbose. -@@ -723,6 +725,18 @@ static void postmap_seq(const char *map_ +@@ -748,6 +750,18 @@ static void postmap_seq(const char *map_ dict_close(dict); } @@ -367,7 +398,7 @@ /* usage - explain */ static NORETURN usage(char *myname) -@@ -743,6 +757,7 @@ int main(int argc, char **argv) +@@ -768,6 +782,7 @@ int main(int argc, char **argv) int postmap_flags = POSTMAP_FLAG_AS_OWNER | POSTMAP_FLAG_SAVE_PERM; int open_flags = O_RDWR | O_CREAT | O_TRUNC; int dict_flags = DICT_FLAG_DUP_WARN | DICT_FLAG_FOLD_FIX; @@ -375,7 +406,7 @@ char *query = 0; char *delkey = 0; int sequence = 0; -@@ -787,7 +802,7 @@ int main(int argc, char **argv) +@@ -817,7 +832,7 @@ int main(int argc, char **argv) /* * Parse JCL. */ @@ -384,7 +415,7 @@ switch (ch) { default: usage(argv[0]); -@@ -804,8 +819,8 @@ int main(int argc, char **argv) +@@ -834,8 +849,8 @@ int main(int argc, char **argv) msg_fatal("out of memory"); break; case 'd': @@ -395,7 +426,7 @@ delkey = optarg; break; case 'f': -@@ -831,8 +846,8 @@ int main(int argc, char **argv) +@@ -861,8 +876,8 @@ int main(int argc, char **argv) postmap_flags &= ~POSTMAP_FLAG_SAVE_PERM; break; case 'q': @@ -406,7 +437,7 @@ query = optarg; break; case 'r': -@@ -840,10 +855,15 @@ int main(int argc, char **argv) +@@ -870,10 +885,15 @@ int main(int argc, char **argv) dict_flags |= DICT_FLAG_DUP_REPLACE; break; case 's': @@ -424,7 +455,7 @@ case 'v': msg_verbose++; break; -@@ -914,6 +934,21 @@ int main(int argc, char **argv) +@@ -944,6 +964,21 @@ int main(int argc, char **argv) exit(0); } exit(1); @@ -503,12 +534,12 @@ =================================================================== --- src/util/Makefile.in.orig +++ src/util/Makefile.in -@@ -33,15 +33,16 @@ SRCS = alldig.c allprint.c argv.c argv_s - allascii.c load_file.c killme_after.c vstream_tweak.c \ +@@ -34,15 +34,16 @@ SRCS = alldig.c allprint.c argv.c argv_s unix_pass_listen.c unix_pass_trigger.c edit_file.c inet_windowsize.c \ unix_pass_fd_fix.c dict_cache.c valid_utf_8.c dict_thash.c \ -- ip_match.c nbbio.c stream_pass_connect.c -+ ip_match.c nbbio.c stream_pass_connect.c \ + ip_match.c nbbio.c stream_pass_connect.c base32_code.c dict_test.c \ +- dict_fail.c msg_rate_delay.c dict_surrogate.c warn_stat.c ++ dict_fail.c msg_rate_delay.c dict_surrogate.c warn_stat.c \ + load_lib.c sdbm.c OBJS = alldig.o allprint.o argv.o argv_split.o attr_clnt.o attr_print0.o \ attr_print64.o attr_print_plain.o attr_scan0.o attr_scan64.o \ @@ -523,17 +554,17 @@ dummy_write.o duplex_pipe.o environ.o events.o exec_command.o \ fifo_listen.o fifo_trigger.o file_limit.o find_inet.o fsspace.o \ fullname.o get_domainname.o get_hostname.o hex_code.o hex_quote.o \ -@@ -68,7 +69,8 @@ OBJS = alldig.o allprint.o argv.o argv_s - allascii.o load_file.o killme_after.o vstream_tweak.o \ +@@ -70,7 +71,8 @@ OBJS = alldig.o allprint.o argv.o argv_s unix_pass_listen.o unix_pass_trigger.o edit_file.o inet_windowsize.o \ unix_pass_fd_fix.o dict_cache.o valid_utf_8.o dict_thash.o \ -- ip_match.o nbbio.o stream_pass_connect.o -+ ip_match.o nbbio.o stream_pass_connect.o \ + ip_match.o nbbio.o stream_pass_connect.o base32_code.o dict_test.o \ +- dict_fail.o msg_rate_delay.o dict_surrogate.o warn_stat.o ++ dict_fail.o msg_rate_delay.o dict_surrogate.o warn_stat.o \ + load_lib.o sdbm.o HDRS = argv.h attr.h attr_clnt.h auto_clnt.h base64_code.h binhash.h \ chroot_uid.h cidr_match.h clean_env.h connect.h ctable.h dict.h \ dict_cdb.h dict_cidr.h dict_db.h dict_dbm.h dict_env.h dict_ht.h \ -@@ -82,7 +84,7 @@ HDRS = argv.h attr.h attr_clnt.h auto_cl +@@ -84,7 +86,7 @@ HDRS = argv.h attr.h attr_clnt.h auto_cl msg_output.h msg_syslog.h msg_vstream.h mvect.h myaddrinfo.h myflock.h \ mymalloc.h myrand.h name_code.h name_mask.h netstring.h nvtable.h \ open_as.h open_lock.h percentm.h posix_signals.h readlline.h ring.h \ @@ -542,7 +573,7 @@ sane_socketpair.h sane_time.h scan_dir.h set_eugid.h set_ugid.h \ sigdelay.h sock_addr.h spawn_command.h split_at.h stat_as.h \ stringops.h sys_defs.h timed_connect.h timed_wait.h trigger.h \ -@@ -96,6 +98,8 @@ DEFS = -I. -D$(SYSTYPE) +@@ -98,6 +100,8 @@ DEFS = -I. -D$(SYSTYPE) CFLAGS = $(DEBUG) $(OPT) $(DEFS) FILES = Makefile $(SRCS) $(HDRS) INCL = @@ -551,7 +582,7 @@ LIB = libutil.a TESTPROG= dict_open dup2_pass_on_exec events exec_command fifo_open \ fifo_rdonly_bug fifo_rdwr_bug fifo_trigger fsspace fullname \ -@@ -111,10 +115,11 @@ TESTPROG= dict_open dup2_pass_on_exec ev +@@ -113,10 +117,11 @@ TESTPROG= dict_open dup2_pass_on_exec ev LIB_DIR = ../../lib INC_DIR = ../../include @@ -565,7 +596,7 @@ $(OBJS): ../../conf/makedefs.out -@@ -123,15 +128,25 @@ Makefile: Makefile.in +@@ -125,15 +130,25 @@ Makefile: Makefile.in test: $(TESTPROG) @@ -595,7 +626,7 @@ -for i in $(HDRS); \ do \ cmp -s $$i $(INC_DIR)/$$i 2>/dev/null || cp $$i $(INC_DIR); \ -@@ -153,7 +168,8 @@ lint: +@@ -155,7 +170,8 @@ lint: lint $(DEFS) $(SRCS) $(LINTFIX) clean: @@ -609,7 +640,7 @@ =================================================================== --- src/util/dict.h.orig +++ src/util/dict.h -@@ -66,6 +66,7 @@ extern DICT *dict_debug(DICT *); +@@ -80,6 +80,7 @@ extern DICT *dict_debug(DICT *); #define DICT_FLAG_NO_UNAUTH (1<<13) /* disallow unauthenticated data */ #define DICT_FLAG_FOLD_FIX (1<<14) /* case-fold key with fixed-case map */ #define DICT_FLAG_FOLD_MUL (1<<15) /* case-fold key with multi-case map */ @@ -617,7 +648,7 @@ #define DICT_FLAG_FOLD_ANY (DICT_FLAG_FOLD_FIX | DICT_FLAG_FOLD_MUL) #define DICT_FLAG_OPEN_LOCK (1<<16) /* open file with exclusive lock */ -@@ -139,6 +140,11 @@ extern const char *dict_eval(const char +@@ -166,6 +167,11 @@ extern int dict_error(const char *); extern DICT *dict_open(const char *, int, int); extern DICT *dict_open3(const char *, const char *, int, int); extern void dict_open_register(const char *, DICT *(*) (const char *, int, int)); @@ -633,24 +664,24 @@ =================================================================== --- src/util/dict_db.c.orig +++ src/util/dict_db.c -@@ -676,6 +676,12 @@ static DICT *dict_db_open(const char *cl +@@ -693,6 +693,12 @@ static DICT *dict_db_open(const char *cl msg_fatal("set DB cache size %d: %m", dict_db_cache_size); if (type == DB_HASH && db->set_h_nelem(db, DICT_DB_NELM) != 0) msg_fatal("set DB hash element count %d: %m", DICT_DB_NELM); + if (dict_flags & DICT_FLAG_UPGRADE) { -+ if (msg_verbose) -+ msg_info("upgrading database %s",db_path); -+ if ((errno = db->upgrade(db,db_path,0)) != 0) -+ msg_fatal("upgrade of database %s: %m",db_path); ++ if (msg_verbose) ++ msg_info("upgrading database %s",db_path); ++ if ((errno = db->upgrade(db,db_path,0)) != 0) ++ msg_fatal("upgrade of database %s: %m",db_path); + } #if DB_VERSION_MAJOR == 5 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0) if ((errno = db->open(db, 0, db_path, 0, type, db_flags, 0644)) != 0) - msg_fatal("open database %s: %m", db_path); + FREE_RETURN(dict_surrogate(class, path, open_flags, dict_flags, Index: src/util/dict_dbm.c =================================================================== --- src/util/dict_dbm.c.orig +++ src/util/dict_dbm.c -@@ -409,6 +409,10 @@ DICT *dict_dbm_open(const char *path, +@@ -417,6 +417,10 @@ DICT *dict_dbm_open(const char *path, char *dbm_path; int lock_fd; @@ -674,7 +705,7 @@ /* DESCRIPTION /* This module implements a low-level interface to multiple /* physical dictionary types. -@@ -165,6 +167,9 @@ +@@ -166,6 +168,9 @@ /* /* dict_mapnames() returns a sorted list with the names of all available /* dictionary types. @@ -684,7 +715,7 @@ /* DIAGNOSTICS /* Fatal error: open error, unsupported dictionary type, attempt to /* update non-writable dictionary. -@@ -189,6 +194,9 @@ +@@ -213,6 +218,9 @@ #include <strings.h> #endif @@ -694,7 +725,7 @@ /* Utility library. */ #include <argv.h> -@@ -216,6 +224,27 @@ +@@ -241,6 +249,27 @@ #include <htable.h> #include <myflock.h> @@ -722,7 +753,7 @@ /* * lookup table for available map types. */ -@@ -231,7 +260,9 @@ static const DICT_OPEN_INFO dict_open_in +@@ -256,7 +285,9 @@ static const DICT_OPEN_INFO dict_open_in DICT_TYPE_ENVIRON, dict_env_open, DICT_TYPE_HT, dict_ht_open, DICT_TYPE_UNIX, dict_unix_open, @@ -732,7 +763,7 @@ #ifdef HAS_SDBM DICT_TYPE_SDBM, dict_sdbm_open, #endif -@@ -251,9 +282,11 @@ static const DICT_OPEN_INFO dict_open_in +@@ -276,9 +307,11 @@ static const DICT_OPEN_INFO dict_open_in #ifdef HAS_NETINFO DICT_TYPE_NETINFO, dict_ni_open, #endif @@ -744,41 +775,41 @@ #ifdef HAS_POSIX_REGEXP DICT_TYPE_REGEXP, dict_regexp_open, #endif -@@ -312,8 +345,31 @@ DICT *dict_open3(const char *dict_type +@@ -338,9 +371,32 @@ DICT *dict_open3(const char *dict_type dict_type, dict_name); if (dict_open_hash == 0) dict_open_init(); - if ((dp = (DICT_OPEN_INFO *) htable_find(dict_open_hash, dict_type)) == 0) -- msg_fatal("unsupported dictionary type: %s", dict_type); + if ((dp = (DICT_OPEN_INFO *) htable_find(dict_open_hash, dict_type)) == 0) { +#ifdef NO_DYNAMIC_MAPS -+ msg_fatal("%s: unsupported dictionary type: %s", myname, dict_type); + return (dict_surrogate(dict_type, dict_name, open_flags, dict_flags, + "unsupported dictionary type: %s", dict_type)); +#else -+ struct stat st; -+ LIB_FN fn[2]; -+ DICT *(*open) (const char *, int, int); -+ DLINFO *dl=dict_open_dlfind(dict_type); -+ if (!dl) -+ msg_fatal("%s: unsupported dictionary type: %s: Is the postfix-%s package installed?", myname, dict_type, dict_type); -+ if (stat(dl->soname,&st) < 0) { -+ msg_fatal("%s: unsupported dictionary type: %s (%s not found. Is the postfix-%s package installed?)", -+ myname, dict_type, dl->soname, dict_type); -+ } -+ fn[0].name = dl->openfunc; -+ fn[0].ptr = (void**)&open; -+ fn[1].name = NULL; -+ load_library_symbols(dl->soname, fn, NULL); -+ dict_open_register(dict_type, open); -+ dp = (DICT_OPEN_INFO *) htable_find(dict_open_hash, dict_type); ++ struct stat st; ++ LIB_FN fn[2]; ++ DICT *(*open) (const char *, int, int); ++ DLINFO *dl=dict_open_dlfind(dict_type); ++ if (!dl) ++ msg_fatal("%s: unsupported dictionary type: %s: Is the postfix-%s package installed?", myname, dict_type, dict_type); ++ if (stat(dl->soname,&st) < 0) { ++ msg_fatal("%s: unsupported dictionary type: %s (%s not found. Is the postfix-%s package installed?)", ++ myname, dict_type, dl->soname, dict_type); ++ } ++ fn[0].name = dl->openfunc; ++ fn[0].ptr = (void**)&open; ++ fn[1].name = NULL; ++ load_library_symbols(dl->soname, fn, NULL); ++ dict_open_register(dict_type, open); ++ dp = (DICT_OPEN_INFO *) htable_find(dict_open_hash, dict_type); +#endif + } + if (msg_verbose>1) { -+ msg_info("%s: calling %s open routine",myname,dict_type); ++ msg_info("%s: calling %s open routine",myname,dict_type); + } if ((dict = dp->open(dict_name, open_flags, dict_flags)) == 0) - msg_fatal("opening %s:%s %m", dict_type, dict_name); - if (msg_verbose) -@@ -331,6 +387,36 @@ DICT *dict_open3(const char *dict_type + return (dict_surrogate(dict_type, dict_name, open_flags, dict_flags, + "cannot open %s:%s: %m", dict_type, dict_name)); +@@ -359,6 +415,36 @@ DICT *dict_open3(const char *dict_type return (dict); } @@ -815,7 +846,7 @@ /* dict_open_register - register dictionary type */ void dict_open_register(const char *type, -@@ -364,6 +450,9 @@ ARGV *dict_mapnames() +@@ -392,6 +478,9 @@ ARGV *dict_mapnames() HTABLE_INFO **ht; DICT_OPEN_INFO *dp; ARGV *mapnames; @@ -825,7 +856,7 @@ if (dict_open_hash == 0) dict_open_init(); -@@ -372,6 +461,13 @@ ARGV *dict_mapnames() +@@ -400,6 +489,13 @@ ARGV *dict_mapnames() dp = (DICT_OPEN_INFO *) ht[0]->value; argv_add(mapnames, dp->type, ARGV_END); } @@ -839,7 +870,7 @@ qsort((void *) mapnames->argv, mapnames->argc, sizeof(mapnames->argv[0]), dict_sort_alpha_cpp); myfree((char *) ht_info); -@@ -379,6 +475,87 @@ ARGV *dict_mapnames() +@@ -407,6 +503,87 @@ ARGV *dict_mapnames() return mapnames; } @@ -2196,7 +2227,7 @@ =================================================================== --- src/util/sys_defs.h.orig +++ src/util/sys_defs.h -@@ -721,6 +721,7 @@ extern int initgroups(const char *, int) +@@ -755,6 +755,7 @@ extern int initgroups(const char *, int) #define INTERNAL_LOCK MYFLOCK_STYLE_FLOCK #define DEF_MAILBOX_LOCK "fcntl, dotlock" /* RedHat >= 4.x */ #define HAS_FSYNC @@ -2204,7 +2235,7 @@ #define HAS_DB #define DEF_DB_TYPE "hash" #define ALIAS_DB_MAP "hash:/etc/aliases" -@@ -732,11 +733,25 @@ extern int initgroups(const char *, int) +@@ -768,11 +769,25 @@ extern int initgroups(const char *, int) #define STATFS_IN_SYS_VFS_H #define PREPEND_PLUS_TO_OPTSTRING #define HAS_POSIX_REGEXP @@ -2230,7 +2261,7 @@ #ifdef __GLIBC_PREREQ # define HAVE_GLIBC_API_VERSION_SUPPORT(maj, min) __GLIBC_PREREQ(maj, min) #else -@@ -902,6 +917,7 @@ extern int h_errno; /* <netdb.h> impor +@@ -954,6 +969,7 @@ extern int h_errno; /* <netdb.h> impor #define USE_STATFS #define STATFS_IN_SYS_VFS_H #define HAS_POSIX_REGEXP @@ -2238,7 +2269,7 @@ #define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" #define NATIVE_MAILQ_PATH "/usr/bin/mailq" #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" -@@ -939,6 +955,7 @@ extern int h_errno; /* <netdb.h> impor +@@ -993,6 +1009,7 @@ extern int h_errno; /* <netdb.h> impor #define USE_STATFS #define STATFS_IN_SYS_VFS_H #define HAS_POSIX_REGEXP @@ -2246,7 +2277,7 @@ #define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" #define NATIVE_MAILQ_PATH "/usr/bin/mailq" #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" -@@ -978,6 +995,7 @@ extern int h_errno; +@@ -1034,6 +1051,7 @@ extern int h_errno; #define USE_STATFS #define STATFS_IN_SYS_VFS_H #define HAS_POSIX_REGEXP ++++++ dynamic_maps_pie.patch ++++++ --- /var/tmp/diff_new_pack.Gg7x48/_old 2013-01-21 17:44:49.000000000 +0100 +++ /var/tmp/diff_new_pack.Gg7x48/_new 2013-01-21 17:44:49.000000000 +0100 @@ -2,7 +2,7 @@ =================================================================== --- makedefs.orig +++ makedefs -@@ -671,4 +671,5 @@ AWK = $AWK +@@ -682,4 +682,5 @@ AWK = $AWK STRCASE = $STRCASE EXPORT = AUXLIBS='$AUXLIBS' CCARGS='$CCARGS' OPT='$OPT' DEBUG='$DEBUG' WARN = $WARN @@ -28,6 +28,28 @@ $(OBJS): ../../conf/makedefs.out +Index: src/bounce/Makefile.in +=================================================================== +--- src/bounce/Makefile.in.orig ++++ src/bounce/Makefile.in +@@ -16,13 +16,16 @@ PROG = bounce + SAMPLES = ../../conf/bounce.cf.default + INC_DIR = ../../include + LIBS = ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libutil.a ++ifdef PIE ++CFLAGS += -fPIE ++endif + + .c.o:; $(CC) $(CFLAGS) -c $*.c + + all: $(PROG) ../../conf/bounce.cf.default + + $(PROG): $(OBJS) $(LIBS) +- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) + + # Eliminate dependency on installed Postfix. + ../../conf/bounce.cf.default: template_test.ref annotate.pl Index: src/cleanup/Makefile.in =================================================================== --- src/cleanup/Makefile.in.orig @@ -273,6 +295,26 @@ $(OBJS): ../../conf/makedefs.out +Index: src/postconf/Makefile.in +=================================================================== +--- src/postconf/Makefile.in.orig ++++ src/postconf/Makefile.in +@@ -20,11 +20,14 @@ PROG = postconf + SAMPLES = ../../conf/main.cf.default + INC_DIR = ../../include + LIBS = ../../lib/libxsasl.a ../../lib/libglobal.a ../../lib/libutil.a ++ifdef PIE ++CFLAGS += -fPIE ++endif + + .c.o:; $(CC) $(CFLAGS) -c $*.c + + $(PROG): $(OBJS) $(LIBS) +- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) + + ../../conf/main.cf.default: $(PROG) Makefile + rm -f $@ Index: src/postdrop/Makefile.in =================================================================== --- src/postdrop/Makefile.in.orig @@ -553,6 +595,46 @@ $(OBJS): ../../conf/makedefs.out +Index: src/smtp/Makefile.in +=================================================================== +--- src/smtp/Makefile.in.orig ++++ src/smtp/Makefile.in +@@ -16,11 +16,14 @@ PROG = smtp + INC_DIR = ../../include + LIBS = ../../lib/libmaster.a ../../lib/libtls.a ../../lib/libdns.a \ + ../../lib/libxsasl.a ../../lib/libglobal.a ../../lib/libutil.a ++ifdef PIE ++CFLAGS += -fPIE ++endif + + .c.o:; $(CC) $(CFLAGS) -c $*.c + + $(PROG): $(OBJS) $(LIBS) +- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) + + $(OBJS): ../../conf/makedefs.out + +Index: src/smtpd/Makefile.in +=================================================================== +--- src/smtpd/Makefile.in.orig ++++ src/smtpd/Makefile.in +@@ -19,11 +19,14 @@ INC_DIR = ../../include + LIBS = ../../lib/libmaster.a ../../lib/libtls.a ../../lib/libdns.a \ + ../../lib/libxsasl.a ../../lib/libmilter.a ../../lib/libglobal.a \ + ../../lib/libutil.a ++ifdef PIE ++CFLAGS += -fPIE ++endif + + .c.o:; $(CC) $(CFLAGS) -c $*.c + + $(PROG): $(OBJS) $(LIBS) +- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) + + $(OBJS): ../../conf/makedefs.out + Index: src/smtpstone/Makefile.in =================================================================== --- src/smtpstone/Makefile.in.orig @@ -688,88 +770,6 @@ - $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) + $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) - $(OBJS): ../../conf/makedefs.out - -Index: src/bounce/Makefile.in -=================================================================== ---- src/bounce/Makefile.in.orig -+++ src/bounce/Makefile.in -@@ -16,13 +16,16 @@ PROG = bounce - SAMPLES = ../../conf/bounce.cf.default - INC_DIR = ../../include - LIBS = ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libutil.a -+ifdef PIE -+CFLAGS += -fPIE -+endif - - .c.o:; $(CC) $(CFLAGS) -c $*.c - - all: $(PROG) ../../conf/bounce.cf.default - - $(PROG): $(OBJS) $(LIBS) -- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) - - # Eliminate dependency on installed Postfix. - ../../conf/bounce.cf.default: template_test.ref annotate.pl -Index: src/postconf/Makefile.in -=================================================================== ---- src/postconf/Makefile.in.orig -+++ src/postconf/Makefile.in -@@ -15,11 +15,14 @@ PROG = postconf - SAMPLES = ../../conf/main.cf.default - INC_DIR = ../../include - LIBS = ../../lib/libxsasl.a ../../lib/libglobal.a ../../lib/libutil.a -+ifdef PIE -+CFLAGS += -fPIE -+endif - - .c.o:; $(CC) $(CFLAGS) -c $*.c - - $(PROG): $(OBJS) $(LIBS) -- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) - - ../../conf/main.cf.default: $(PROG) Makefile - rm -f $@ -Index: src/smtp/Makefile.in -=================================================================== ---- src/smtp/Makefile.in.orig -+++ src/smtp/Makefile.in -@@ -16,11 +16,14 @@ PROG = smtp - INC_DIR = ../../include - LIBS = ../../lib/libmaster.a ../../lib/libtls.a ../../lib/libdns.a \ - ../../lib/libxsasl.a ../../lib/libglobal.a ../../lib/libutil.a -+ifdef PIE -+CFLAGS += -fPIE -+endif - - .c.o:; $(CC) $(CFLAGS) -c $*.c - - $(PROG): $(OBJS) $(LIBS) -- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) - - $(OBJS): ../../conf/makedefs.out - -Index: src/smtpd/Makefile.in -=================================================================== ---- src/smtpd/Makefile.in.orig -+++ src/smtpd/Makefile.in -@@ -19,11 +19,14 @@ INC_DIR = ../../include - LIBS = ../../lib/libmaster.a ../../lib/libtls.a ../../lib/libdns.a \ - ../../lib/libxsasl.a ../../lib/libmilter.a ../../lib/libglobal.a \ - ../../lib/libutil.a -+ifdef PIE -+CFLAGS += -fPIE -+endif - - .c.o:; $(CC) $(CFLAGS) -c $*.c - - $(PROG): $(OBJS) $(LIBS) -- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) -+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) - $(OBJS): ../../conf/makedefs.out Index: src/xsasl/Makefile.in ++++++ ipv6_disabled.patch ++++++ --- /var/tmp/diff_new_pack.Gg7x48/_old 2013-01-21 17:44:49.000000000 +0100 +++ /var/tmp/diff_new_pack.Gg7x48/_new 2013-01-21 17:44:49.000000000 +0100 @@ -1,19 +1,10 @@ -Index: src/util/inet_proto.c -=================================================================== ---- src/util/inet_proto.c.orig -+++ src/util/inet_proto.c -@@ -220,9 +220,11 @@ INET_PROTO_INFO *inet_proto_init(const c - pf->sa_family_list = make_uchar_vector(3, AF_INET, AF_INET6, 0); - break; - } else if (errno == EAFNOSUPPORT) { -- msg_warn("%s: IPv6 support is disabled: %m", context); -- msg_warn("%s: configuring for IPv4 support only", context); -- /* FALLTHROUGH */ -+ /* remove waste warnings 2007-01-25 Peter Varkoly <vark...@novell.com> -+ * msg_warn("%s: IPv6 support is disabled: %m", context); -+ * msg_warn("%s: configuring for IPv4 support only", context); -+ * FALLTHROUGH -+ */ +--- src/util/inet_proto.c.orig 2012-01-03 01:57:59.000000000 +0100 ++++ src/util/inet_proto.c 2012-11-15 13:39:22.000000000 +0100 +@@ -195,7 +195,6 @@ INET_PROTO_INFO *inet_proto_init(const c + if ((sock = socket(PF_INET6, SOCK_STREAM, 0)) >= 0) { + close(sock); + } else if (errno == EAFNOSUPPORT || errno == EPROTONOSUPPORT) { +- msg_warn("%s: disabling IPv6 name/address support: %m", context); + inet_proto_mask &= ~INET_PROTO_MASK_IPV6; } else { msg_fatal("socket: %m"); - } ++++++ pointer_to_literals.patch ++++++ --- /var/tmp/diff_new_pack.Gg7x48/_old 2013-01-21 17:44:49.000000000 +0100 +++ /var/tmp/diff_new_pack.Gg7x48/_new 2013-01-21 17:44:49.000000000 +0100 @@ -28,7 +28,7 @@ =================================================================== --- src/smtpd/smtpd_check.c.orig +++ src/smtpd/smtpd_check.c -@@ -359,6 +359,10 @@ static int unv_from_tf_act; +@@ -357,6 +357,10 @@ static int unv_from_tf_act; #define CONST_STR(x) ((const char *) vstring_str(x)) #define UPDATE_STRING(ptr,val) { if (ptr) myfree(ptr); ptr = mystrdup(val); } @@ -39,7 +39,7 @@ /* * If some decision can't be made due to a temporary error, then change * other decisions into deferrals. -@@ -1950,8 +1954,6 @@ static int check_table_result(SMTPD_STAT +@@ -1986,8 +1990,6 @@ static int check_table_result(SMTPD_STAT if (msg_verbose) msg_info("%s: %s %s %s", myname, table, value, datum); @@ -48,7 +48,7 @@ /* * DUNNO means skip this table. Silently ignore optional text. */ -@@ -2934,8 +2936,6 @@ static const char *rbl_expand_lookup(con +@@ -2977,8 +2979,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; @@ -61,7 +61,7 @@ =================================================================== --- src/util/dict_open.c.orig +++ src/util/dict_open.c -@@ -476,7 +476,7 @@ ARGV *dict_mapnames() +@@ -504,7 +504,7 @@ ARGV *dict_mapnames() } #ifndef NO_DYNAMIC_MAPS ++++++ postfix-2.8.13.tar.bz2 -> postfix-2.9.5.tar.bz2 ++++++ ++++ 53431 lines of diff (skipped) ++++++ postfix-main.cf.patch ++++++ Index: conf/main.cf =================================================================== --- conf/main.cf.orig +++ conf/main.cf @@ -655,3 +655,119 @@ sample_directory = # readme_directory = inet_protocols = ipv4 + +biff = no +content_filter = +delay_warning_time = 0h +disable_dns_lookups = no +disable_mime_output_conversion = no +inet_interfaces = all +inet_protocols = ipv4 +masquerade_classes = envelope_sender, header_sender, header_recipient +masquerade_domains = +masquerade_exceptions = +mydestination = $myhostname, localhost.$mydomain +myhostname = localhost +mynetworks_style = subnet +relayhost = + +alias_maps = +canonical_maps = +relocated_maps = +sender_canonical_maps = +transport_maps = +mail_spool_directory = /var/mail +message_strip_characters = +defer_transports = +mailbox_command = +mailbox_transport = +mailbox_size_limit = 0 +message_size_limit = 0 +strict_8bitmime = no +strict_rfc821_envelopes = no +smtpd_helo_required = no + +smtpd_client_restrictions = + +smtpd_helo_restrictions = + +smtpd_sender_restrictions = + +smtpd_recipient_restrictions = + + +############################################################ +# SASL stuff +############################################################ +smtp_sasl_auth_enable = no +smtp_sasl_security_options = +smtp_sasl_password_maps = +smtpd_sasl_auth_enable = no +############################################################ +# TLS stuff +############################################################ +#tls_append_default_CA = no +relay_clientcerts = +#tls_random_source = dev:/dev/urandom + +smtp_use_tls = no +#smtp_tls_loglevel = 0 +smtp_enforce_tls = no +smtp_tls_CAfile = +smtp_tls_CApath = +smtp_tls_cert_file = +smtp_tls_key_file = +#smtp_tls_session_cache_timeout = 3600s +smtp_tls_session_cache_database = + +smtpd_use_tls = no +#smtpd_tls_loglevel = 0 +smtpd_tls_CAfile = +smtpd_tls_CApath = +smtpd_tls_cert_file = +smtpd_tls_key_file = +smtpd_tls_ask_ccert = no +smtpd_tls_received_header = no +############################################################ +# Start MySQL from postfixwiki.org +############################################################ +#relay_domains = $mydestination, hash:/etc/postfix/relay +virtual_alias_domains = +#virtual_alias_maps = hash:/etc/postfix/virtual +#virtual_uid_maps = static:303 +#virtual_gid_maps = static:303 +#virtual_minimum_uid = 303 +#virtual_mailbox_base = /srv/maildirs +#virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf +#virtual_mailbox_limit = 0 +#virtual_mailbox_limit_inbox = no +#virtual_mailbox_limit_maps = hash:/etc/postfix/vquota +#virtual_mailbox_limit_override = yes +#virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf +#virtual_transport = virtual +## Additional for quota support +#virtual_create_maildirsize = yes +#virtual_mailbox_extended = yes +### Needs Maildir++ compatible IMAP servers, like Courier-IMAP +#virtual_maildir_filter = yes +#virtual_maildir_filter_maps = hash:/etc/postfix/vfilter +#virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf +#virtual_mailbox_limit_override = yes +#virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later. +#virtual_maildir_limit_message_maps = hash:/etc/postfix/vmsg +#virtual_overquota_bounce = yes +#virtual_trash_count = yes +#virtual_trash_name = ".Trash" +############################################################ +# End MySQL from postfixwiki.org +############################################################ +# Rewrite reject codes +############################################################ +#unknown_address_reject_code = 550 +#unknown_client_reject_code = 550 +#unknown_hostname_reject_code = 550 +#soft_bounce = yes +############################################################ +#debug_peer_list = example.com +#debug_peer_level = 3 + ++++++ postfix-master.cf.patch ++++++ Index: conf/master.cf =================================================================== --- conf/master.cf.orig +++ conf/master.cf @@ -9,6 +9,11 @@ # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd +#amavis unix - - n - 4 smtp +# -o smtp_data_done_timeout=1200 +# -o smtp_send_xforward_command=yes +# -o disable_dns_lookups=yes +# -o max_use=20 #smtp inet n - n - 1 postscreen #smtpd pass - - n - - smtpd #dnsblog unix - - n - 0 dnsblog @@ -50,6 +55,26 @@ local unix - n n virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil +#localhost:10025 inet n - n - - smtpd +# -o content_filter= +# -o smtpd_delay_reject=no +# -o smtpd_client_restrictions=permit_mynetworks,reject +# -o smtpd_helo_restrictions= +# -o smtpd_sender_restrictions= +# -o smtpd_recipient_restrictions=permit_mynetworks,reject +# -o smtpd_data_restrictions=reject_unauth_pipelining +# -o smtpd_end_of_data_restrictions= +# -o smtpd_restriction_classes= +# -o mynetworks=127.0.0.0/8 +# -o smtpd_error_sleep_time=0 +# -o smtpd_soft_error_limit=1001 +# -o smtpd_hard_error_limit=1000 +# -o smtpd_client_connection_count_limit=0 +# -o smtpd_client_connection_rate_limit=0 +# -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_address_mappings +# -o local_header_rewrite_clients= +# -o local_recipient_maps= +# -o relay_recipient_maps= scache unix - - n - 1 scache # # ==================================================================== @@ -84,7 +109,7 @@ scache unix - - n # Also specify in main.cf: cyrus_destination_recipient_limit=1 # #cyrus unix - n n - - pipe -# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} +# user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} # # ==================================================================== # @@ -117,3 +142,7 @@ scache unix - - n #mailman unix - n n - - pipe # flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py # ${nexthop} ${user} +# +#procmail unix - n n - - pipe +# flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} +# ++++++ postfix-post-install.patch ++++++ Index: conf/post-install =================================================================== --- conf/post-install.orig +++ conf/post-install @@ -696,7 +696,7 @@ EOF # Postfix 2.2. # Add missing tlsmgr service to master.cf. - grep '^tlsmgr.*tlsmgr' $config_directory/master.cf >/dev/null || { + grep '^#*tlsmgr.*tlsmgr' $config_directory/master.cf >/dev/null || { echo Editing $config_directory/master.cf, adding missing entry for tlsmgr service cat >>$config_directory/master.cf <<EOF || exit 1 tlsmgr unix - - n 1000? 1 tlsmgr ++++++ postfix-ssl-release-buffers.patch ++++++ Index: src/tls/tls_client.c =================================================================== --- src/tls/tls_client.c.orig +++ src/tls/tls_client.c @@ -382,6 +382,12 @@ TLS_APPL_STATE *tls_client_init(const TL return (0); } + /* Keep memory usage as low as possible */ + +#ifdef SSL_MODE_RELEASE_BUFFERS + SSL_CTX_set_mode(client_ctx, SSL_MODE_RELEASE_BUFFERS); +#endif + /* * See the verify callback in tls_verify.c */ Index: src/tls/tls_server.c =================================================================== --- src/tls/tls_server.c.orig +++ src/tls/tls_server.c @@ -388,6 +388,11 @@ TLS_APPL_STATE *tls_server_init(const TL tls_print_errors(); return (0); } + + /* Keep memory usage as low as possible */ +#ifdef SSL_MODE_RELEASE_BUFFERS + SSL_CTX_set_mode(server_ctx, SSL_MODE_RELEASE_BUFFERS); +#endif /* * See the verify callback in tls_verify.c ++++++ postfix-vda-v10-2.8.12.patch -> postfix-vda-v11-2.9.5.patch ++++++ --- /work/SRC/openSUSE:Factory/postfix/postfix-vda-v10-2.8.12.patch 2012-09-17 14:03:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.postfix.new/postfix-vda-v11-2.9.5.patch 2013-01-21 17:44:44.000000000 +0100 @@ -2,7 +2,7 @@ =================================================================== --- /dev/null +++ README_FILES/VDA_README -@@ -0,0 +1,9 @@ +@@ -0,0 +1,10 @@ +Postfix VDA patch for maildir++ quota support by + Anderson Nadal <anderna...@gmail.com> + Tomas Macek <mac...@atlas.cz> @@ -12,11 +12,12 @@ +howto patch the Postfix's sourcetree and configure the options +provided by this patch. + ++ Index: src/global/mail_params.h =================================================================== --- src/global/mail_params.h.orig +++ src/global/mail_params.h -@@ -2333,6 +2333,54 @@ extern char *var_virt_uid_maps; +@@ -2360,6 +2360,54 @@ extern char *var_virt_uid_maps; #define DEF_VIRT_GID_MAPS "" extern char *var_virt_gid_maps; @@ -275,7 +276,7 @@ =================================================================== --- src/virtual/maildir.c.orig +++ src/virtual/maildir.c -@@ -63,28 +63,420 @@ +@@ -64,28 +64,420 @@ #include <mbox_open.h> #include <dsn_util.h> @@ -625,7 +626,7 @@ + } + + if (msg_verbose) -+ msg_info("%s: filter data: sql_size=%d sql_mtime=%ld file_mtime=%ld", myname, strlen(filter_sqlres), sqlmtime, filemtime); ++ msg_info("%s: filter data: sql_size=%li sql_mtime=%ld file_mtime=%ld", myname, strlen(filter_sqlres), sqlmtime, filemtime); + } + if (sqlmtime != filemtime && sqlmtime != 0) { + if ((filterfile = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0640))) { @@ -708,7 +709,7 @@ GETTIMEOFDAY(&starttime); -@@ -93,15 +485,14 @@ int deliver_maildir(LOCAL_STATE stat +@@ -94,15 +486,14 @@ int deliver_maildir(LOCAL_STATE stat */ state.level++; if (msg_verbose) @@ -727,7 +728,7 @@ } /* -@@ -109,17 +500,115 @@ int deliver_maildir(LOCAL_STATE stat +@@ -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) @@ -801,7 +802,7 @@ + } + else { + if (msg_verbose) -+ msg_info("%s: quota is negative (%ld), using default virtual_mailbox_limit (%d)", ++ 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; @@ -809,7 +810,7 @@ + } + else { + if (msg_verbose) -+ msg_info("%s: no limit found in the maps, using default virtual_mailbox_limit (%d)", ++ 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; @@ -826,7 +827,7 @@ + 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 = %d, var_virt_maildir_extended = %d, read_maildirsize = %d)", ++ 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 */ @@ -849,7 +850,7 @@ /* * Create and write the file as the recipient, so that file quota work. -@@ -174,46 +663,288 @@ int deliver_maildir(LOCAL_STATE stat +@@ -175,46 +664,288 @@ int deliver_maildir(LOCAL_STATE stat * [...] */ set_eugid(usr_attr.uid, usr_attr.gid); @@ -1175,7 +1176,7 @@ } set_eugid(var_owner_uid, var_owner_gid); -@@ -223,31 +954,64 @@ int deliver_maildir(LOCAL_STATE stat +@@ -224,31 +955,64 @@ int deliver_maildir(LOCAL_STATE stat * location possibly under user control. */ if (mail_copy_status & MAIL_COPY_STAT_CORRUPT) { @@ -1263,7 +1264,7 @@ =================================================================== --- src/virtual/virtual.c.orig +++ src/virtual/virtual.c -@@ -335,12 +335,30 @@ int var_virt_mailbox_limit; +@@ -335,12 +335,30 @@ long var_virt_mailbox_limit; char *var_mail_spool_dir; /* XXX dependency fix */ bool var_strict_mbox_owner; @@ -1326,65 +1327,30 @@ virtual_mbox_lock_mask = mbox_lock_mask(var_virt_mailbox_lock); } -@@ -495,24 +526,39 @@ MAIL_VERSION_STAMP_DECLARE; - - int main(int argc, char **argv) - { -- static const CONFIG_INT_TABLE int_table[] = { -- VAR_VIRT_MINUID, DEF_VIRT_MINUID, &var_virt_minimum_uid, 1, 0, -- VAR_VIRT_MAILBOX_LIMIT, DEF_VIRT_MAILBOX_LIMIT, &var_virt_mailbox_limit, 0, 0, -- 0, -- }; -- static const CONFIG_STR_TABLE str_table[] = { -- VAR_MAIL_SPOOL_DIR, DEF_MAIL_SPOOL_DIR, &var_mail_spool_dir, 0, 0, -- VAR_VIRT_MAILBOX_MAPS, DEF_VIRT_MAILBOX_MAPS, &var_virt_mailbox_maps, 0, 0, -- VAR_VIRT_UID_MAPS, DEF_VIRT_UID_MAPS, &var_virt_uid_maps, 0, 0, -- 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, -- 0, -- }; -- static const CONFIG_BOOL_TABLE bool_table[] = { -- VAR_STRICT_MBOX_OWNER, DEF_STRICT_MBOX_OWNER, &var_strict_mbox_owner, -- 0, -- }; -+ -+ static const CONFIG_INT_TABLE int_table[] = { -+ VAR_VIRT_MINUID, DEF_VIRT_MINUID, &var_virt_minimum_uid, 1, 0, -+ VAR_VIRT_MAILBOX_LIMIT, DEF_VIRT_MAILBOX_LIMIT, &var_virt_mailbox_limit, 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, -+ }; -+ -+ static const CONFIG_STR_TABLE str_table[] = { -+ VAR_MAIL_SPOOL_DIR, DEF_MAIL_SPOOL_DIR, &var_mail_spool_dir, 0, 0, -+ VAR_VIRT_MAILBOX_MAPS, DEF_VIRT_MAILBOX_MAPS, &var_virt_mailbox_maps, 0, 0, -+ VAR_VIRT_UID_MAPS, DEF_VIRT_UID_MAPS, &var_virt_uid_maps, 0, 0, -+ VAR_VIRT_GID_MAPS, DEF_VIRT_GID_MAPS, &var_virt_gid_maps, 0, 0, -+ VAR_VIRT_MAILBOX_LIMIT_MAPS, DEF_VIRT_MAILBOX_LIMIT_MAPS, &var_virt_mailbox_limit_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_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, -+ 0, -+ }; +@@ -510,10 +541,22 @@ 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_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, + 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, + }; - /* - * Fingerprint executables and core dumps. -@@ -526,6 +572,7 @@ int main(int argc, char **argv) +@@ -530,6 +573,7 @@ int main(int argc, char **argv) MAIL_SERVER_PRE_INIT, pre_init, MAIL_SERVER_POST_INIT, post_init, MAIL_SERVER_PRE_ACCEPT, pre_accept, -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org