From 150864677bb8671e7e0b9f12d935acef54c44e0488b85de0830ac53824dbf147 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 15 Jan 2007 23:33:08 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/postfix?expand=0&rev=1 --- .gitattributes | 23 + .gitignore | 1 + dynamic_maps.patch | 2245 ++++++++++++++++++++++++++++++++++++++++ dynamic_maps_pie.patch | 787 ++++++++++++++ postfix-2.3.2.tar.gz | 3 + postfix-SuSE.tar.gz | 3 + postfix.changes | 1749 +++++++++++++++++++++++++++++++ postfix.spec | 1563 ++++++++++++++++++++++++++++ ready | 0 9 files changed, 6374 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 dynamic_maps.patch create mode 100644 dynamic_maps_pie.patch create mode 100644 postfix-2.3.2.tar.gz create mode 100644 postfix-SuSE.tar.gz create mode 100644 postfix.changes create mode 100644 postfix.spec create mode 100644 ready diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/dynamic_maps.patch b/dynamic_maps.patch new file mode 100644 index 0000000..2eb6c36 --- /dev/null +++ b/dynamic_maps.patch @@ -0,0 +1,2245 @@ +Index: postfix-2.3.0/conf/dynamicmaps.cf +=================================================================== +--- /dev/null ++++ postfix-2.3.0/conf/dynamicmaps.cf +@@ -0,0 +1,7 @@ ++# Postfix dynamic maps configuration file. ++# ++# The first match found is the one that is used. ++# Wildcards are not supported. ++# ++#type location of .so file open function (mkmap func) ++#==== ================================ ============= ============ +Index: postfix-2.3.0/conf/postfix-files +=================================================================== +--- postfix-2.3.0.orig/conf/postfix-files ++++ postfix-2.3.0/conf/postfix-files +@@ -63,6 +63,11 @@ $queue_directory/saved:d:$mail_owner:-:7 + $queue_directory/trace:d:$mail_owner:-:700:ucr + $daemon_directory/anvil:f:root:-:755 + $daemon_directory/bounce:f:root:-:755 ++$daemon_directory/dict_ldap.so:f:root:-:755 ++$daemon_directory/dict_pcre.so:f:root:-:755 ++$daemon_directory/dict_tcp.so:f:root:-:755 ++$daemon_directory/dict_mysql.so:f:root:-:755 ++$daemon_directory/dict_pgsql.so:f:root:-:755 + $daemon_directory/cleanup:f:root:-:755 + $daemon_directory/discard:f:root:-:755 + $daemon_directory/error:f:root:-:755 +@@ -85,6 +90,11 @@ $daemon_directory/tlsmgr:f:root:-:755 + $daemon_directory/trivial-rewrite:f:root:-:755 + $daemon_directory/verify:f:root:-:755 + $daemon_directory/virtual:f:root:-:755 ++/usr/lib/libpostfix-dns.so.1:f:root:-:755 ++/usr/lib/libpostfix-global.so.1:f:root:-:755 ++/usr/lib/libpostfix-tls.so.1:f:root:-:755 ++/usr/lib/libpostfix-master.so.1:f:root:-:755 ++/usr/lib/libpostfix-util.so.1:f:root:-:755 + $daemon_directory/nqmgr:h:$daemon_directory/qmgr + $daemon_directory/lmtp:h:$daemon_directory/smtp + $command_directory/postalias:f:root:-:755 +@@ -107,6 +117,7 @@ $config_directory/access:f:root:-:644:p + $config_directory/aliases:f:root:-:644:p + $config_directory/bounce.cf.default:f:root:-:644 + $config_directory/canonical:f:root:-:644:p ++$config_directory/dynamicmaps.cf:f:root:-:644:p + $config_directory/cidr_table:f:root:-:644:o + $config_directory/generic:f:root:-:644:p + $config_directory/generics:f:root:-:644:o +Index: postfix-2.3.0/src/dns/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/dns/Makefile.in ++++ postfix-2.3.0/src/dns/Makefile.in +@@ -14,7 +14,7 @@ LIBS = ../../lib/libutil.a + LIB_DIR = ../../lib + INC_DIR = ../../include + +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c + + all: $(LIB) + +@@ -31,12 +31,10 @@ tests: test dns_rr_to_pa_test dns_rr_to_ + root_tests: + + $(LIB): $(OBJS) +- $(AR) $(ARFL) $(LIB) $? +- $(RANLIB) $(LIB) ++ gcc -shared -Wl,-soname,libpostfix-dns.so.1 -o $(LIB) $(OBJS) $(LIBS) $(SYSLIBS) + + $(LIB_DIR)/$(LIB): $(LIB) + cp $(LIB) $(LIB_DIR) +- $(RANLIB) $(LIB_DIR)/$(LIB) + + update: $(LIB_DIR)/$(LIB) $(HDRS) + -for i in $(HDRS); \ +Index: postfix-2.3.0/src/global/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/global/Makefile.in ++++ postfix-2.3.0/src/global/Makefile.in +@@ -32,7 +32,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 \ +- deliver_request.o dict_ldap.o dict_mysql.o dict_pgsql.o \ ++ deliver_request.o \ + dict_proxy.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 \ +@@ -97,10 +97,13 @@ LIBS = ../../lib/libutil.a + LIB_DIR = ../../lib + INC_DIR = ../../include + MAKES = ++LDAPSO = dict_ldap.so ++MYSQLSO = dict_mysql.so ++PGSQLSO = dict_pgsql.so + +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c + +-all: $(LIB) ++all: $(LIB) $(LDAPSO) $(MYSQLSO) $(PGSQLSO) + + $(OBJS): ../../conf/makedefs.out + +@@ -110,14 +113,30 @@ Makefile: Makefile.in + test: $(TESTPROG) + + $(LIB): $(OBJS) +- $(AR) $(ARFL) $(LIB) $? +- $(RANLIB) $(LIB) ++ gcc -shared -Wl,-soname,libpostfix-global.so.1 -o $(LIB) $(OBJS) $(LIBS) $(SYSLIBS) ++ ++$(LDAPSO): dict_ldap.o ++ gcc -shared -Wl,-soname,dict_ldap.so -o $@ $? -lldap -llber -L../../lib -lutil -L. -lglobal ++ ++$(MYSQLSO): dict_mysql.o ++ gcc -shared -Wl,-soname,dict_mysql.so -o $@ $? -L/usr/lib/mysql -lmysqlclient -L. -lutil -lglobal ++ ++$(PGSQLSO): dict_pgsql.o ++ gcc -shared -Wl,-soname,dict_pgsql.so -o $@ $? -lpq -L. -lutil -lglobal + + $(LIB_DIR)/$(LIB): $(LIB) + cp $(LIB) $(LIB_DIR) +- $(RANLIB) $(LIB_DIR)/$(LIB) + +-update: $(LIB_DIR)/$(LIB) $(HDRS) ++$(LIB_DIR)/$(LDAPSO): $(LDAPSO) ++ cp $(LDAPSO) $(LIB_DIR) ++ ++$(LIB_DIR)/$(MYSQLSO): $(MYSQLSO) ++ cp $(MYSQLSO) $(LIB_DIR) ++ ++$(LIB_DIR)/$(PGSQLSO): $(PGSQLSO) ++ cp $(PGSQLSO) $(LIB_DIR) ++ ++update: $(LIB_DIR)/$(LIB) $(LIB_DIR)/${LDAPSO} $(LIB_DIR)/${MYSQLSO} $(LIB_DIR)/${PGSQLSO} $(HDRS) + -for i in $(HDRS); \ + do \ + cmp -s $$i $(INC_DIR)/$$i 2>/dev/null || cp $$i $(INC_DIR); \ +@@ -403,7 +422,7 @@ lint: + lint $(DEFS) $(SRCS) $(LINTFIX) + + clean: +- rm -f *.o $(LIB) *core $(TESTPROG) junk ++ rm -f *.o $(LIB) $(LDAPSO) $(MYSQLSO) $(PGSQLSO) *core $(TESTPROG) junk + rm -rf printfck + + tidy: clean +Index: postfix-2.3.0/src/global/mail_conf.c +=================================================================== +--- postfix-2.3.0.orig/src/global/mail_conf.c ++++ postfix-2.3.0/src/global/mail_conf.c +@@ -175,6 +175,13 @@ void mail_conf_suck(void) + path = concatenate(var_config_dir, "/", "main.cf", (char *) 0); + dict_load_file(CONFIG_DICT, path); + myfree(path); ++ ++#ifndef NO_DYNAMIC_MAPS ++ path = concatenate(var_config_dir, "/", "dynamicmaps.cf", (char *) 0); ++ dict_open_dlinfo(path); ++ myfree(path); ++#endif ++ + } + + /* mail_conf_eval - expand macros in string */ +Index: postfix-2.3.0/src/global/mail_dict.c +=================================================================== +--- postfix-2.3.0.orig/src/global/mail_dict.c ++++ postfix-2.3.0/src/global/mail_dict.c +@@ -45,6 +45,7 @@ typedef struct { + + static DICT_OPEN_INFO dict_open_info[] = { + DICT_TYPE_PROXY, dict_proxy_open, ++#ifndef MAX_DYNAMIC_MAPS + #ifdef HAS_LDAP + DICT_TYPE_LDAP, dict_ldap_open, + #endif +@@ -54,6 +55,7 @@ static DICT_OPEN_INFO dict_open_info[] = + #ifdef HAS_PGSQL + DICT_TYPE_PGSQL, dict_pgsql_open, + #endif ++#endif /* MAX_DYNAMIC_MAPS */ + 0, + }; + +Index: postfix-2.3.0/src/global/mail_params.c +=================================================================== +--- postfix-2.3.0.orig/src/global/mail_params.c ++++ postfix-2.3.0/src/global/mail_params.c +@@ -77,6 +77,7 @@ + /* char *var_export_environ; + /* char *var_debug_peer_list; + /* int var_debug_peer_level; ++/* int var_command_maxtime; + /* int var_in_flow_delay; + /* int var_fault_inj_code; + /* char *var_bounce_service; +@@ -247,6 +248,7 @@ char *var_import_environ; + char *var_export_environ; + char *var_debug_peer_list; + int var_debug_peer_level; ++int var_command_maxtime; + int var_fault_inj_code; + char *var_bounce_service; + char *var_cleanup_service; +@@ -258,6 +260,7 @@ char *var_showq_service; + char *var_error_service; + char *var_flush_service; + char *var_verify_service; ++char *var_scache_service; + char *var_trace_service; + int var_db_create_buf; + int var_db_read_buf; +Index: postfix-2.3.0/src/global/mkmap_open.c +=================================================================== +--- postfix-2.3.0.orig/src/global/mkmap_open.c ++++ postfix-2.3.0/src/global/mkmap_open.c +@@ -78,7 +78,7 @@ + * types that exist as files. Network-based maps are not of interest. + */ + typedef struct { +- char *type; ++ const char *type; + MKMAP *(*before_open) (const char *); + } MKMAP_OPEN_INFO; + +@@ -152,7 +152,16 @@ MKMAP *mkmap_open(const char *type, con + */ + for (mp = mkmap_types; /* void */ ; mp++) { + if (mp->type == 0) ++#ifndef NO_DYNAMIC_MAPS ++ { ++ static MKMAP_OPEN_INFO oi; ++ oi.before_open=(MKMAP*(*)(const char*))dict_mkmap_func(type); ++ oi.type=type; ++ mp=&oi; ++ } ++#else + msg_fatal("unsupported map type: %s", type); ++#endif + if (strcmp(type, mp->type) == 0) + break; + } +Index: postfix-2.3.0/src/master/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/master/Makefile.in ++++ postfix-2.3.0/src/master/Makefile.in +@@ -20,7 +20,7 @@ LIB_DIR = ../../lib + INC_DIR = ../../include + BIN_DIR = ../../libexec + +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) `for i in $(LIB_OBJ); do [ $$i = $@ ] && echo -fPIC; done` $(CFLAGS) -c $*.c + + all: $(PROG) $(LIB) + +@@ -39,12 +39,10 @@ tests: + root_tests: + + $(LIB): $(LIB_OBJ) +- $(AR) $(ARFL) $(LIB) $? +- $(RANLIB) $(LIB) ++ gcc -shared -Wl,-soname,libpostfix-master.so.1 -o $(LIB) $(LIB_OBJ) $(LIBS) $(SYSLIBS) + + $(LIB_DIR)/$(LIB): $(LIB) + cp $(LIB) $(LIB_DIR)/$(LIB) +- $(RANLIB) $(LIB_DIR)/$(LIB) + + $(BIN_DIR)/$(PROG): $(PROG) + cp $(PROG) $(BIN_DIR) +Index: postfix-2.3.0/src/postconf/postconf.c +=================================================================== +--- postfix-2.3.0.orig/src/postconf/postconf.c ++++ postfix-2.3.0/src/postconf/postconf.c +@@ -898,6 +898,16 @@ static void show_maps(void) + { + ARGV *maps_argv; + int i; ++#ifndef NO_DYNAMIC_MAPS ++ char *path; ++ char *config_dir; ++ ++ var_config_dir = mystrdup((config_dir = safe_getenv(CONF_ENV_PATH)) != 0 ? ++ 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++) +Index: postfix-2.3.0/src/postmap/postmap.c +=================================================================== +--- postfix-2.3.0.orig/src/postmap/postmap.c ++++ postfix-2.3.0/src/postmap/postmap.c +@@ -5,7 +5,7 @@ + /* Postfix lookup table management + /* SYNOPSIS + /* .fi +-/* \fBpostmap\fR [\fB-Nfinoprsvw\fR] [\fB-c \fIconfig_dir\fR] ++/* \fBpostmap\fR [\fB-Nfinoprsuvw\fR] [\fB-c \fIconfig_dir\fR] + /* [\fB-d \fIkey\fR] [\fB-q \fIkey\fR] + /* [\fIfile_type\fR:]\fIfile_name\fR ... + /* DESCRIPTION +@@ -109,6 +109,8 @@ + /* as the original input order. + /* This feature is available in Postfix version 2.2 and later, + /* and is not available for all database types. ++/* .IP \fB-u\fR ++/* Upgrade the database to the current version. + /* .IP \fB-v\fR + /* Enable verbose logging for debugging purposes. Multiple \fB-v\fR + /* options make the software increasingly verbose. +@@ -531,6 +533,18 @@ static void postmap_seq(const char *map_ + dict_close(dict); + } + ++/* postmap_upgrade - upgrade a map */ ++ ++static int postmap_upgrade(const char *map_type, const char *map_name) ++{ ++ DICT *dict; ++ ++ dict = dict_open3(map_type, map_name, O_RDWR, ++ DICT_FLAG_LOCK|DICT_FLAG_UPGRADE); ++ dict_close(dict); ++ return (dict != 0); ++} ++ + /* usage - explain */ + + static NORETURN usage(char *myname) +@@ -549,6 +563,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; ++ int upgrade = 0; + char *query = 0; + char *delkey = 0; + int sequence = 0; +@@ -588,7 +603,7 @@ int main(int argc, char **argv) + /* + * Parse JCL. + */ +- while ((ch = GETOPT(argc, argv, "Nc:d:finopq:rsvw")) > 0) { ++ while ((ch = GETOPT(argc, argv, "Nc:d:finopq:rsuvw")) > 0) { + switch (ch) { + default: + usage(argv[0]); +@@ -602,8 +617,8 @@ int main(int argc, char **argv) + msg_fatal("out of memory"); + break; + case 'd': +- if (sequence || query || delkey) +- msg_fatal("specify only one of -s -q or -d"); ++ if (sequence || query || delkey || upgrade) ++ msg_fatal("specify only one of -s -q -u or -d"); + delkey = optarg; + break; + case 'f': +@@ -623,8 +638,8 @@ int main(int argc, char **argv) + postmap_flags &= ~POSTMAP_FLAG_SAVE_PERM; + break; + case 'q': +- if (sequence || query || delkey) +- msg_fatal("specify only one of -s -q or -d"); ++ if (sequence || query || delkey || upgrade) ++ msg_fatal("specify only one of -s -q -u or -d"); + query = optarg; + break; + case 'r': +@@ -632,10 +647,15 @@ int main(int argc, char **argv) + dict_flags |= DICT_FLAG_DUP_REPLACE; + break; + case 's': +- if (query || delkey) +- msg_fatal("specify only one of -s or -q or -d"); ++ if (query || delkey || upgrade) ++ msg_fatal("specify only one of -s or -q -u or -d"); + sequence = 1; + break; ++ case 'u': ++ if (sequence || query || delkey || upgrade) ++ msg_fatal("specify only one of -s -q -u or -d"); ++ upgrade=1; ++ break; + case 'v': + msg_verbose++; + break; +@@ -701,6 +721,21 @@ int main(int argc, char **argv) + exit(0); + } + exit(1); ++ } else if (upgrade) { /* Upgrade the map(s) */ ++ int success = 1; ++ if (optind + 1 > argc) ++ usage(argv[0]); ++ while (optind < argc) { ++ if ((path_name = split_at(argv[optind], ':')) != 0) { ++ success &= postmap_upgrade(argv[optind], path_name); ++ } else { ++ success &= postmap_upgrade(var_db_type, path_name); ++ } ++ if (!success) ++ exit(1); ++ optind++; ++ } ++ exit(0); + } else { /* create/update map(s) */ + if (optind + 1 > argc) + usage(argv[0]); +Index: postfix-2.3.0/src/tls/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/tls/Makefile.in ++++ postfix-2.3.0/src/tls/Makefile.in +@@ -22,7 +22,7 @@ LIB_DIR = ../../lib + INC_DIR = ../../include + MAKES = + +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c + + all: $(LIB) + +@@ -38,12 +38,10 @@ tests: + root_tests: + + $(LIB): $(OBJS) +- $(AR) $(ARFL) $(LIB) $? +- $(RANLIB) $(LIB) ++ gcc -shared -Wl,-soname,libpostfix-tls.so.1 -o $(LIB) $(OBJS) $(LIBS) $(SYSLIBS) + + $(LIB_DIR)/$(LIB): $(LIB) + cp $(LIB) $(LIB_DIR) +- $(RANLIB) $(LIB_DIR)/$(LIB) + + update: $(LIB_DIR)/$(LIB) $(HDRS) + -for i in $(HDRS); \ +Index: postfix-2.3.0/src/util/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/util/Makefile.in ++++ postfix-2.3.0/src/util/Makefile.in +@@ -30,21 +30,21 @@ SRCS = alldig.c allprint.c argv.c argv_s + username.c valid_hostname.c vbuf.c vbuf_print.c vstream.c \ + vstream_popen.c vstring.c vstring_vstream.c watchdog.c writable.c \ + write_buf.c write_wait.c sane_basename.c format_tv.c allspace.c \ +- allascii.c load_file.c ++ allascii.c load_file.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 \ + attr_scan_plain.o auto_clnt.o base64_code.o basename.o binhash.o \ + chroot_uid.o cidr_match.o clean_env.o close_on_exec.o concatenate.o \ + ctable.o dict.o dict_alloc.o dict_cdb.o dict_cidr.o dict_db.o \ + dict_dbm.o dict_debug.o dict_env.o dict_ht.o dict_ni.o dict_nis.o \ +- dict_nisplus.o dict_open.o dict_pcre.o dict_regexp.o dict_sdbm.o \ +- dict_static.o dict_tcp.o dict_unix.o dir_forest.o doze.o dummy_read.o \ ++ dict_nisplus.o dict_open.o dict_regexp.o dict_sdbm.o \ ++ dict_static.o dict_unix.o dir_forest.o doze.o dummy_read.o \ + 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 \ + host_port.o htable.o inet_addr_host.o inet_addr_list.o \ + inet_addr_local.o inet_connect.o inet_listen.o inet_proto.o \ +- inet_trigger.o line_wrap.o lowercase.o lstat_as.o mac_expand.o \ ++ inet_trigger.o line_wrap.o lowercase.o lstat_as.o mac_expand.o load_lib.o sdbm.o \ + mac_parse.o make_dirs.o mask_addr.o match_list.o match_ops.o msg.o \ + msg_output.o msg_syslog.o msg_vstream.o mvect.o myaddrinfo.o myflock.o \ + mymalloc.o myrand.o mystrtok.o name_code.o name_mask.o netstring.o \ +@@ -76,7 +76,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 \ +- safe.h safe_open.h sane_accept.h sane_connect.h sane_fsops.h \ ++ safe.h safe_open.h sane_accept.h sane_connect.h sane_fsops.h sdbm.h load_lib.h \ + 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 \ +@@ -88,6 +88,8 @@ DEFS = -I. -D$(SYSTYPE) + CFLAGS = $(DEBUG) $(OPT) $(DEFS) + FILES = Makefile $(SRCS) $(HDRS) + INCL = ++PCRESO = dict_pcre.so ++TCPSO = dict_tcp.so + 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 \ +@@ -102,10 +104,11 @@ TESTPROG= dict_open dup2_pass_on_exec ev + + LIB_DIR = ../../lib + INC_DIR = ../../include ++LIBS = $(LIB_DIR)/$(LIB) $(LIB_DIR)/$(PCRESO) $(LIB_DIR)/$(TCPSO) + +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c + +-all: $(LIB) ++all: $(LIB) $(PCRESO) $(TCPSO) + + $(OBJS): ../../conf/makedefs.out + +@@ -114,15 +117,25 @@ Makefile: Makefile.in + + test: $(TESTPROG) + ++$(PCRESO): dict_pcre.o ++ gcc -shared -Wl,-soname,dict_pcre.so -o $@ $? -lpcre -L. -lutil ++ ++$(TCPSO): dict_tcp.o ++ gcc -shared -Wl,-soname,dict_tcp.so -o $@ $? -L. -lutil ++ + $(LIB): $(OBJS) +- $(AR) $(ARFL) $(LIB) $? +- $(RANLIB) $(LIB) ++ gcc -shared -Wl,-soname,libpostfix-util.so.1 -o $(LIB) $(OBJS) -ldl $(SYSLIBS) + + $(LIB_DIR)/$(LIB): $(LIB) + cp $(LIB) $(LIB_DIR) +- $(RANLIB) $(LIB_DIR)/$(LIB) + +-update: $(LIB_DIR)/$(LIB) $(HDRS) ++$(LIB_DIR)/$(PCRESO): $(PCRESO) ++ cp $(PCRESO) $(LIB_DIR) ++ ++$(LIB_DIR)/$(TCPSO): $(TCPSO) ++ cp $(TCPSO) $(LIB_DIR) ++ ++update: $(LIBS) $(HDRS) + -for i in $(HDRS); \ + do \ + cmp -s $$i $(INC_DIR)/$$i 2>/dev/null || cp $$i $(INC_DIR); \ +@@ -144,7 +157,8 @@ lint: + lint $(SRCS) + + clean: +- rm -f *.o $(LIB) *core $(TESTPROG) junk $(MAKES) *.tmp ++ rm -f *.o $(LIB) $(PCRESO) $(TCPSO) *core $(TESTPROG) \ ++ junk $(MAKES) *.tmp + rm -rf printfck + + tidy: clean +Index: postfix-2.3.0/src/util/dict.h +=================================================================== +--- postfix-2.3.0.orig/src/util/dict.h ++++ postfix-2.3.0/src/util/dict.h +@@ -65,6 +65,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 */ ++#define DICT_FLAG_UPGRADE (1<<30) /* Upgrade the db */ + #define DICT_FLAG_FOLD_ANY (DICT_FLAG_FOLD_FIX | DICT_FLAG_FOLD_MUL) + + /* IMPORTANT: Update the dict_mask[] table when the above changes */ +@@ -109,6 +110,11 @@ extern const char *dict_eval(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)); ++#ifndef NO_DYNAMIC_MAPS ++extern void dict_open_dlinfo(const char *path); ++typedef void* (*dict_mkmap_func_t)(const char *); ++dict_mkmap_func_t dict_mkmap_func(const char *dict_type); ++#endif + + #define dict_get(dp, key) (dp)->lookup((dp), (key)) + #define dict_put(dp, key, val) (dp)->update((dp), (key), (val)) +Index: postfix-2.3.0/src/util/dict_db.c +=================================================================== +--- postfix-2.3.0.orig/src/util/dict_db.c ++++ postfix-2.3.0/src/util/dict_db.c +@@ -658,6 +658,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 (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); +Index: postfix-2.3.0/src/util/dict_dbm.c +=================================================================== +--- postfix-2.3.0.orig/src/util/dict_dbm.c ++++ postfix-2.3.0/src/util/dict_dbm.c +@@ -401,6 +401,10 @@ DICT *dict_dbm_open(const char *path, + char *dbm_path; + int lock_fd; + ++#ifdef HAVE_GDBM ++ msg_fatal("%s: gdbm maps use locking that is incompatible with postfix. Use a hash map instead.", ++ path); ++#endif + /* + * Note: DICT_FLAG_LOCK is used only by programs that do fine-grained (in + * the time domain) locking while accessing individual database records. +Index: postfix-2.3.0/src/util/dict_open.c +=================================================================== +--- postfix-2.3.0.orig/src/util/dict_open.c ++++ postfix-2.3.0/src/util/dict_open.c +@@ -44,6 +44,8 @@ + /* DICT *(*open) (const char *, int, int); + /* + /* ARGV *dict_mapnames() ++/* ++/* void (*)() dict_mkmap_func(const char *dict_type) + /* DESCRIPTION + /* This module implements a low-level interface to multiple + /* physical dictionary types. +@@ -156,6 +158,9 @@ + /* + /* dict_mapnames() returns a sorted list with the names of all available + /* dictionary types. ++/* ++/* dict_mkmap_func() returns a pointer to the mkmap setup function ++/* for the given map type, as given in /etc/dynamicmaps.cf + /* DIAGNOSTICS + /* Fatal error: open error, unsupported dictionary type, attempt to + /* update non-writable dictionary. +@@ -180,6 +185,9 @@ + #include + #endif + ++#include ++#include ++ + /* Utility library. */ + + #include +@@ -204,6 +212,27 @@ + #include + #include + ++#ifndef NO_DYNAMIC_MAPS ++#include ++#include ++#include ++#include ++#include ++ ++ /* ++ * Interface for dynamic map loading. ++ */ ++typedef struct { ++ const char *pattern; ++ const char *soname; ++ const char *openfunc; ++ const char *mkmapfunc; ++} DLINFO; ++ ++static DLINFO *dict_dlinfo; ++static DLINFO *dict_open_dlfind(const char *type); ++#endif ++ + /* + * lookup table for available map types. + */ +@@ -218,9 +247,11 @@ static DICT_OPEN_INFO dict_open_info[] = + #endif + DICT_TYPE_ENVIRON, dict_env_open, + DICT_TYPE_UNIX, dict_unix_open, ++#ifndef MAX_DYNAMIC_MAPS + #ifdef SNAPSHOT + DICT_TYPE_TCP, dict_tcp_open, + #endif ++#endif + #ifdef HAS_SDBM + DICT_TYPE_SDBM, dict_sdbm_open, + #endif +@@ -240,9 +271,11 @@ static DICT_OPEN_INFO dict_open_info[] = + #ifdef HAS_NETINFO + DICT_TYPE_NETINFO, dict_ni_open, + #endif ++#ifndef MAX_DYNAMIC_MAPS + #ifdef HAS_PCRE + DICT_TYPE_PCRE, dict_pcre_open, + #endif ++#endif /* MAX_DYNAMIC_MAPS */ + #ifdef HAS_POSIX_REGEXP + DICT_TYPE_REGEXP, dict_regexp_open, + #endif +@@ -300,8 +333,31 @@ 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); ++#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); ++#endif ++ } ++ if (msg_verbose>1) { ++ 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) +@@ -309,6 +365,36 @@ DICT *dict_open3(const char *dict_type + return (dict); + } + ++dict_mkmap_func_t dict_mkmap_func(const char *dict_type) ++{ ++ char *myname="dict_mkmap_func"; ++ struct stat st; ++ LIB_FN fn[2]; ++ dict_mkmap_func_t mkmap; ++ DLINFO *dl; ++#ifndef NO_DYNAMIC_MAPS ++ if (!dict_dlinfo) ++ msg_fatal("dlinfo==NULL"); ++ 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); ++ } ++ if (!dl->mkmapfunc) ++ msg_fatal("%s: unsupported dictionary type: %s does not allow map creation.", myname, dict_type); ++ ++ fn[0].name = dl->mkmapfunc; ++ fn[0].ptr = (void**)&mkmap; ++ fn[1].name = NULL; ++ load_library_symbols(dl->soname, fn, NULL); ++ return mkmap; ++#else ++ return (void(*)())NULL; ++#endif ++} ++ + /* dict_open_register - register dictionary type */ + + void dict_open_register(const char *type, +@@ -342,6 +428,9 @@ ARGV *dict_mapnames() + HTABLE_INFO **ht; + DICT_OPEN_INFO *dp; + ARGV *mapnames; ++#ifndef NO_DYNAMIC_MAPS ++ DLINFO *dlp; ++#endif + + if (dict_open_hash == 0) + dict_open_init(); +@@ -350,6 +439,13 @@ ARGV *dict_mapnames() + dp = (DICT_OPEN_INFO *) ht[0]->value; + argv_add(mapnames, dp->type, ARGV_END); + } ++#ifndef NO_DYNAMIC_MAPS ++ if (!dict_dlinfo) ++ msg_fatal("dlinfo==NULL"); ++ for (dlp=dict_dlinfo; dlp->pattern; dlp++) { ++ argv_add(mapnames, dlp->pattern, ARGV_END); ++ } ++#endif + qsort((void *) mapnames->argv, mapnames->argc, sizeof(mapnames->argv[0]), + dict_sort_alpha_cpp); + myfree((char *) ht_info); +@@ -357,6 +453,87 @@ ARGV *dict_mapnames() + return mapnames; + } + ++#ifndef NO_DYNAMIC_MAPS ++#define STREQ(x,y) (x == y || (x[0] == y[0] && strcmp(x,y) == 0)) ++ ++void dict_open_dlinfo(const char *path) ++{ ++ char *myname="dict_open_dlinfo"; ++ VSTREAM *conf_fp=vstream_fopen(path,O_RDONLY,0); ++ VSTRING *buf = vstring_alloc(100); ++ char *cp; ++ ARGV *argv; ++ MVECT vector; ++ int nelm=0; ++ int linenum=0; ++ ++ dict_dlinfo=(DLINFO*)mvect_alloc(&vector,sizeof(DLINFO),3,NULL,NULL); ++ ++ if (!conf_fp) { ++ msg_warn("%s: cannot open %s. No dynamic maps will be allowed.", ++ myname, path); ++ } else { ++ while (vstring_get_nonl(buf,conf_fp) != VSTREAM_EOF) { ++ cp = vstring_str(buf); ++ linenum++; ++ if (*cp == '#' || *cp == '\0') ++ continue; ++ argv = argv_split(cp, " \t"); ++ if (argv->argc != 3 && argv->argc != 4) { ++ msg_fatal("%s: Expected \"pattern .so-name open-function [mkmap-function]\" at line %d", ++ myname, linenum); ++ } ++ if (STREQ(argv->argv[0],"*")) { ++ msg_warn("%s: wildcard dynamic map entry no longer supported.", ++ myname); ++ continue; ++ } ++ if (argv->argv[1][0] != '/') { ++ msg_fatal("%s: .so name must begin with a \"/\" at line %d", ++ myname, linenum); ++ } ++ if (nelm >= vector.nelm) { ++ dict_dlinfo=(DLINFO*)mvect_realloc(&vector,vector.nelm+3); ++ } ++ dict_dlinfo[nelm].pattern = mystrdup(argv->argv[0]); ++ dict_dlinfo[nelm].soname = mystrdup(argv->argv[1]); ++ dict_dlinfo[nelm].openfunc = mystrdup(argv->argv[2]); ++ if (argv->argc==4) ++ dict_dlinfo[nelm].mkmapfunc = mystrdup(argv->argv[3]); ++ else ++ dict_dlinfo[nelm].mkmapfunc = NULL; ++ nelm++; ++ argv_free(argv); ++ } ++ } ++ if (nelm >= vector.nelm) { ++ dict_dlinfo=(DLINFO*)mvect_realloc(&vector,vector.nelm+1); ++ } ++ dict_dlinfo[nelm].pattern = NULL; ++ dict_dlinfo[nelm].soname = NULL; ++ dict_dlinfo[nelm].openfunc = NULL; ++ dict_dlinfo[nelm].mkmapfunc = NULL; ++ if (conf_fp) ++ vstream_fclose(conf_fp); ++ vstring_free(buf); ++} ++ ++static DLINFO *dict_open_dlfind(const char *type) ++{ ++ DLINFO *dp; ++ ++ if (!dict_dlinfo) ++ return NULL; ++ ++ for (dp=dict_dlinfo; dp->pattern; dp++) { ++ if (STREQ(dp->pattern,type)) ++ return dp; ++ } ++ return NULL; ++} ++ ++#endif /* !NO_DYNAMIC_MAPS */ ++ + #ifdef TEST + + /* +Index: postfix-2.3.0/src/util/load_lib.c +=================================================================== +--- /dev/null ++++ postfix-2.3.0/src/util/load_lib.c +@@ -0,0 +1,135 @@ ++/*++ ++/* NAME ++/* load_lib 3 ++/* SUMMARY ++/* library loading wrappers ++/* SYNOPSIS ++/* #include ++/* ++/* extern int load_library_symbols(const char *, LIB_FN *, LIB_FN *); ++/* const char *libname; ++/* LIB_FN *libfuncs; ++/* LIB_FN *libdata; ++/* ++/* DESCRIPTION ++/* This module loads functions from libraries, returnine pointers ++/* to the named functions. ++/* ++/* load_library_symbols() loads all of the desired functions, and ++/* returns zero for success, or exits via msg_fatal(). ++/* ++/* SEE ALSO ++/* msg(3) diagnostics interface ++/* DIAGNOSTICS ++/* Problems are reported via the msg(3) diagnostics routines: ++/* library not found, symbols not found, other fatal errors. ++/* LICENSE ++/* .ad ++/* .fi ++/* The Secure Mailer license must be distributed with this software. ++/* AUTHOR(S) ++/* LaMont Jones ++/* Hewlett-Packard Company ++/* 3404 Harmony Road ++/* Fort Collins, CO 80528, USA ++/* ++/* Wietse Venema ++/* IBM T.J. Watson Research ++/* P.O. Box 704 ++/* Yorktown Heights, NY 10598, USA ++/*--*/ ++ ++/* System libraries. */ ++ ++#include "sys_defs.h" ++#include ++#include ++#include ++#if defined(HAS_DLOPEN) ++#include ++#elif defined(HAS_SHL_LOAD) ++#include ++#endif ++ ++/* Application-specific. */ ++ ++#include "msg.h" ++#include "load_lib.h" ++ ++extern int load_library_symbols(const char * libname, LIB_FN * libfuncs, LIB_FN * libdata) ++{ ++ char *myname = "load_library_symbols"; ++ LIB_FN *fn; ++ ++#if defined(HAS_DLOPEN) ++ void *handle; ++ char *emsg; ++ ++ handle=dlopen(libname,RTLD_NOW); ++ emsg=dlerror(); ++ if (emsg) { ++ msg_fatal("%s: dlopen failure loading %s: %s", myname, libname, emsg); ++ } ++ ++ if (libfuncs) { ++ for (fn=libfuncs; fn->name; fn++) { ++ *(fn->ptr) = dlsym(handle,fn->name); ++ emsg=dlerror(); ++ if (emsg) { ++ msg_fatal("%s: dlsym failure looking up %s in %s: %s", myname, ++ fn->name, libname, emsg); ++ } ++ if (msg_verbose>1) { ++ msg_info("loaded %s = %lx",fn->name, *((long*)(fn->ptr))); ++ } ++ } ++ } ++ ++ if (libdata) { ++ for (fn=libdata; fn->name; fn++) { ++ *(fn->ptr) = dlsym(handle,fn->name); ++ emsg=dlerror(); ++ if (emsg) { ++ msg_fatal("%s: dlsym failure looking up %s in %s: %s", myname, ++ fn->name, libname, emsg); ++ } ++ if (msg_verbose>1) { ++ msg_info("loaded %s = %lx",fn->name, *((long*)(fn->ptr))); ++ } ++ } ++ } ++#elif defined(HAS_SHL_LOAD) ++ shl_t handle; ++ ++ handle = shl_load(libname,BIND_IMMEDIATE,0); ++ ++ if (libfuncs) { ++ for (fn=libfuncs; fn->name; fn++) { ++ if (shl_findsym(&handle,fn->name,TYPE_PROCEDURE,fn->ptr) != 0) { ++ msg_fatal("%s: shl_findsym failure looking up %s in %s: %m", ++ myname, fn->name, libname); ++ } ++ if (msg_verbose>1) { ++ msg_info("loaded %s = %x",fn->name, *((long*)(fn->ptr))); ++ } ++ } ++ } ++ ++ if (libdata) { ++ for (fn=libdata; fn->name; fn++) { ++ if (shl_findsym(&handle,fn->name,TYPE_DATA,fn->ptr) != 0) { ++ msg_fatal("%s: shl_findsym failure looking up %s in %s: %m", ++ myname, fn->name, libname); ++ } ++ if (msg_verbose>1) { ++ msg_info("loaded %s = %x",fn->name, *((long*)(fn->ptr))); ++ } ++ } ++ } ++ ++#else ++ msg_fatal("%s: need dlopen or shl_load support for dynamic libraries", ++ myname); ++#endif ++ return 0; ++} +Index: postfix-2.3.0/src/util/load_lib.h +=================================================================== +--- /dev/null ++++ postfix-2.3.0/src/util/load_lib.h +@@ -0,0 +1,41 @@ ++#ifndef _LOAD_LIB_H_INCLUDED_ ++#define _LOAD_LIB_H_INCLUDED_ ++ ++/*++ ++/* NAME ++/* load_lib 3h ++/* SUMMARY ++/* library loading wrappers ++/* SYNOPSIS ++/* #include "load_lib.h" ++/* DESCRIPTION ++/* .nf ++ ++ /* ++ * External interface. ++ */ ++/* NULL name terminates list */ ++typedef struct LIB_FN { ++ const char *name; ++ void **ptr; ++} LIB_FN; ++ ++extern int load_library_symbols(const char *, LIB_FN *, LIB_FN *); ++ ++/* LICENSE ++/* .ad ++/* .fi ++/* The Secure Mailer license must be distributed with this software. ++/* AUTHOR(S) ++/* LaMont Jones ++/* Hewlett-Packard Company ++/* 3404 Harmony Road ++/* Fort Collins, CO 80528, USA ++/* ++/* Wietse Venema ++/* IBM T.J. Watson Research ++/* P.O. Box 704 ++/* Yorktown Heights, NY 10598, USA ++/*--*/ ++ ++#endif +Index: postfix-2.3.0/src/util/sdbm.c +=================================================================== +--- /dev/null ++++ postfix-2.3.0/src/util/sdbm.c +@@ -0,0 +1,972 @@ ++/*++ ++/* NAME ++/* sdbm 3h ++/* SUMMARY ++/* SDBM Simple DBM: ndbm work-alike hashed database library ++/* SYNOPSIS ++/* include "sdbm.h" ++/* DESCRIPTION ++/* This file includes the public domain SDBM (ndbm work-alike hashed ++/* database library), based on Per-Aake Larson's Dynamic Hashing ++/* algorithms. BIT 18 (1978). ++/* author: oz@nexus.yorku.ca ++/* status: public domain ++/* The file has been patched following the advice of Uwe Ohse ++/* : ++/* -------------------------------------------------------------- ++/* this patch fixes a problem with sdbms .dir file, which arrises when ++/* a second .dir block is needed for the first time. read() returns 0 ++/* in that case, and the library forgot to initialize that new block. ++/* ++/* A related problem is that the calculation of db->maxbno is wrong. ++/* It just appends 4096*BYTESIZ bits, which is not enough except for ++/* small databases (.dir basically doubles everytime it's too small). ++/* -------------------------------------------------------------- ++/* According to Uwe Ohse, the patch has also been submitted to the ++/* author of SDBM. (The 4096*BYTESIZ bits comment may apply with a ++/* different size for Postfix/TLS, as the patch was sent against the ++/* original SDBM distributiona and for Postfix/TLS I have changed the ++/* default sizes. ++/* .nf ++/*--*/ ++ ++/* ++ * sdbm - ndbm work-alike hashed database library ++ * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978). ++ * author: oz@nexus.yorku.ca ++ * status: public domain. ++ * ++ * core routines ++ */ ++ ++#include ++#include ++#ifdef WIN32 ++#include ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#ifdef __STDC__ ++#include ++#endif ++#include ++ ++#include ++ ++/* ++ * useful macros ++ */ ++#define bad(x) ((x).dptr == NULL || (x).dsize <= 0) ++#define exhash(item) sdbm_hash((item).dptr, (item).dsize) ++#define ioerr(db) ((db)->flags |= DBM_IOERR) ++ ++#define OFF_PAG(off) (long) (off) * PBLKSIZ ++#define OFF_DIR(off) (long) (off) * DBLKSIZ ++ ++static long masks[] = ++{ ++ 000000000000, 000000000001, 000000000003, 000000000007, ++ 000000000017, 000000000037, 000000000077, 000000000177, ++ 000000000377, 000000000777, 000000001777, 000000003777, ++ 000000007777, 000000017777, 000000037777, 000000077777, ++ 000000177777, 000000377777, 000000777777, 000001777777, ++ 000003777777, 000007777777, 000017777777, 000037777777, ++ 000077777777, 000177777777, 000377777777, 000777777777, ++ 001777777777, 003777777777, 007777777777, 017777777777 ++}; ++ ++datum nullitem = ++{NULL, 0}; ++ ++typedef struct ++{ ++ int dirf; /* directory file descriptor */ ++ int pagf; /* page file descriptor */ ++ int flags; /* status/error flags, see below */ ++ long maxbno; /* size of dirfile in bits */ ++ long curbit; /* current bit number */ ++ long hmask; /* current hash mask */ ++ long blkptr; /* current block for nextkey */ ++ int keyptr; /* current key for nextkey */ ++ long blkno; /* current page to read/write */ ++ long pagbno; /* current page in pagbuf */ ++ char *pagbuf; /* page file block buffer */ ++ long dirbno; /* current block in dirbuf */ ++ char *dirbuf; /* directory file block buffer */ ++} DBM; ++ ++ ++/* ************************* */ ++ ++/* ++ * sdbm - ndbm work-alike hashed database library ++ * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978). ++ * author: oz@nexus.yorku.ca ++ * status: public domain. keep it that way. ++ * ++ * hashing routine ++ */ ++ ++/* ++ * polynomial conversion ignoring overflows ++ * [this seems to work remarkably well, in fact better ++ * then the ndbm hash function. Replace at your own risk] ++ * use: 65599 nice. ++ * 65587 even better. ++ */ ++static long sdbm_hash (char *str, int len) ++{ ++ unsigned long n = 0; ++ ++#ifdef DUFF ++#define HASHC n = *str++ + 65599 * n ++ if (len > 0) ++ { ++ int loop = (len + 8 - 1) >> 3; ++ ++ switch (len & (8 - 1)) ++ { ++ case 0: ++ do ++ { ++ HASHC; ++ case 7: ++ HASHC; ++ case 6: ++ HASHC; ++ case 5: ++ HASHC; ++ case 4: ++ HASHC; ++ case 3: ++ HASHC; ++ case 2: ++ HASHC; ++ case 1: ++ HASHC; ++ } ++ while (--loop); ++ } ++ ++ } ++#else ++ while (len--) ++ n = *str++ + 65599 * n; ++#endif ++ return n; ++} ++ ++/* ++ * check page sanity: ++ * number of entries should be something ++ * reasonable, and all offsets in the index should be in order. ++ * this could be made more rigorous. ++ */ ++static int chkpage (char *pag) ++{ ++ int n; ++ int off; ++ short *ino = (short *) pag; ++ ++ if ((n = ino[0]) < 0 || n > PBLKSIZ / sizeof (short)) ++ return 0; ++ ++ if (n > 0) ++ { ++ off = PBLKSIZ; ++ for (ino++; n > 0; ino += 2) ++ { ++ if (ino[0] > off || ino[1] > off || ++ ino[1] > ino[0]) ++ return 0; ++ off = ino[1]; ++ n -= 2; ++ } ++ } ++ return 1; ++} ++ ++/* ++ * search for the key in the page. ++ * return offset index in the range 0 < i < n. ++ * return 0 if not found. ++ */ ++static int seepair (char *pag, int n, char *key, int siz) ++{ ++ int i; ++ int off = PBLKSIZ; ++ short *ino = (short *) pag; ++ ++ for (i = 1; i < n; i += 2) ++ { ++ if (siz == off - ino[i] && ++ memcmp (key, pag + ino[i], siz) == 0) ++ return i; ++ off = ino[i + 1]; ++ } ++ return 0; ++} ++ ++#ifdef SEEDUPS ++static int duppair (char *pag, datum key) ++{ ++ short *ino = (short *) pag; ++ ++ return ino[0] > 0 && seepair (pag, ino[0], key.dptr, key.dsize) > 0; ++} ++ ++#endif ++ ++/* ************************* */ ++ ++/* ++ * sdbm - ndbm work-alike hashed database library ++ * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978). ++ * author: oz@nexus.yorku.ca ++ * status: public domain. ++ * ++ * page-level routines ++ */ ++ ++/* ++ * page format: ++ * +------------------------------+ ++ * ino | n | keyoff | datoff | keyoff | ++ * +------------+--------+--------+ ++ * | datoff | - - - ----> | ++ * +--------+---------------------+ ++ * | F R E E A R E A | ++ * +--------------+---------------+ ++ * | <---- - - - | data | ++ * +--------+-----+----+----------+ ++ * | key | data | key | ++ * +--------+----------+----------+ ++ * ++ * calculating the offsets for free area: if the number ++ * of entries (ino[0]) is zero, the offset to the END of ++ * the free area is the block size. Otherwise, it is the ++ * nth (ino[ino[0]]) entry's offset. ++ */ ++ ++static int fitpair (char *pag, int need) ++{ ++ int n; ++ int off; ++ int avail; ++ short *ino = (short *) pag; ++ ++ off = ((n = ino[0]) > 0) ? ino[n] : PBLKSIZ; ++ avail = off - (n + 1) * sizeof (short); ++ need += 2 * sizeof (short); ++ ++ return need <= avail; ++} ++ ++static void putpair (char *pag, datum key, datum val) ++{ ++ int n; ++ int off; ++ short *ino = (short *) pag; ++ ++ off = ((n = ino[0]) > 0) ? ino[n] : PBLKSIZ; ++/* ++ * enter the key first ++ */ ++ off -= key.dsize; ++ (void) memcpy (pag + off, key.dptr, key.dsize); ++ ino[n + 1] = off; ++/* ++ * now the data ++ */ ++ off -= val.dsize; ++ (void) memcpy (pag + off, val.dptr, val.dsize); ++ ino[n + 2] = off; ++/* ++ * adjust item count ++ */ ++ ino[0] += 2; ++} ++ ++static datum getpair (char *pag, datum key) ++{ ++ int i; ++ int n; ++ datum val; ++ short *ino = (short *) pag; ++ ++ if ((n = ino[0]) == 0) ++ return nullitem; ++ ++ if ((i = seepair (pag, n, key.dptr, key.dsize)) == 0) ++ return nullitem; ++ ++ val.dptr = pag + ino[i + 1]; ++ val.dsize = ino[i] - ino[i + 1]; ++ return val; ++} ++ ++static datum getnkey (char *pag, int num) ++{ ++ datum key; ++ int off; ++ short *ino = (short *) pag; ++ ++ num = num * 2 - 1; ++ if (ino[0] == 0 || num > ino[0]) ++ return nullitem; ++ ++ off = (num > 1) ? ino[num - 1] : PBLKSIZ; ++ ++ key.dptr = pag + ino[num]; ++ key.dsize = off - ino[num]; ++ ++ return key; ++} ++ ++static int delpair (char *pag, datum key) ++{ ++ int n; ++ int i; ++ short *ino = (short *) pag; ++ ++ if ((n = ino[0]) == 0) ++ return 0; ++ ++ if ((i = seepair (pag, n, key.dptr, key.dsize)) == 0) ++ return 0; ++/* ++ * found the key. if it is the last entry ++ * [i.e. i == n - 1] we just adjust the entry count. ++ * hard case: move all data down onto the deleted pair, ++ * shift offsets onto deleted offsets, and adjust them. ++ * [note: 0 < i < n] ++ */ ++ if (i < n - 1) ++ { ++ int m; ++ char *dst = pag + (i == 1 ? PBLKSIZ : ino[i - 1]); ++ char *src = pag + ino[i + 1]; ++ int zoo = dst - src; ++ ++/* ++ * shift data/keys down ++ */ ++ m = ino[i + 1] - ino[n]; ++#ifdef DUFF ++#define MOVB *--dst = *--src ++ if (m > 0) ++ { ++ int loop = (m + 8 - 1) >> 3; ++ ++ switch (m & (8 - 1)) ++ { ++ case 0: ++ do ++ { ++ MOVB; ++ case 7: ++ MOVB; ++ case 6: ++ MOVB; ++ case 5: ++ MOVB; ++ case 4: ++ MOVB; ++ case 3: ++ MOVB; ++ case 2: ++ MOVB; ++ case 1: ++ MOVB; ++ } ++ while (--loop); ++ } ++ } ++#else ++ dst -= m; ++ src -= m; ++ memmove (dst, src, m); ++#endif ++/* ++ * adjust offset index up ++ */ ++ while (i < n - 1) ++ { ++ ino[i] = ino[i + 2] + zoo; ++ i++; ++ } ++ } ++ ino[0] -= 2; ++ return 1; ++} ++ ++static void splpage (char *pag, char *new, long sbit) ++{ ++ datum key; ++ datum val; ++ ++ int n; ++ int off = PBLKSIZ; ++ char cur[PBLKSIZ]; ++ short *ino = (short *) cur; ++ ++ (void) memcpy (cur, pag, PBLKSIZ); ++ (void) memset (pag, 0, PBLKSIZ); ++ (void) memset (new, 0, PBLKSIZ); ++ ++ n = ino[0]; ++ for (ino++; n > 0; ino += 2) ++ { ++ key.dptr = cur + ino[0]; ++ key.dsize = off - ino[0]; ++ val.dptr = cur + ino[1]; ++ val.dsize = ino[0] - ino[1]; ++/* ++ * select the page pointer (by looking at sbit) and insert ++ */ ++ (void) putpair ((exhash (key) & sbit) ? new : pag, key, val); ++ ++ off = ino[1]; ++ n -= 2; ++ } ++} ++ ++static int getdbit (DBM * db, long dbit) ++{ ++ long c; ++ long dirb; ++ ++ c = dbit / BYTESIZ; ++ dirb = c / DBLKSIZ; ++ ++ if (dirb != db->dirbno) ++ { ++ int got; ++ if (lseek (db->dirf, OFF_DIR (dirb), SEEK_SET) < 0 ++ || (got = read(db->dirf, db->dirbuf, DBLKSIZ)) < 0) ++ return 0; ++ if (got==0) ++ memset(db->dirbuf,0,DBLKSIZ); ++ db->dirbno = dirb; ++ } ++ ++ return db->dirbuf[c % DBLKSIZ] & (1 << dbit % BYTESIZ); ++} ++ ++static int setdbit (DBM * db, long dbit) ++{ ++ long c; ++ long dirb; ++ ++ c = dbit / BYTESIZ; ++ dirb = c / DBLKSIZ; ++ ++ if (dirb != db->dirbno) ++ { ++ int got; ++ if (lseek (db->dirf, OFF_DIR (dirb), SEEK_SET) < 0 ++ || (got = read(db->dirf, db->dirbuf, DBLKSIZ)) < 0) ++ return 0; ++ if (got==0) ++ memset(db->dirbuf,0,DBLKSIZ); ++ db->dirbno = dirb; ++ } ++ ++ db->dirbuf[c % DBLKSIZ] |= (1 << dbit % BYTESIZ); ++ ++#if 0 ++ if (dbit >= db->maxbno) ++ db->maxbno += DBLKSIZ * BYTESIZ; ++#else ++ if (OFF_DIR((dirb+1))*BYTESIZ > db->maxbno) ++ db->maxbno=OFF_DIR((dirb+1))*BYTESIZ; ++#endif ++ ++ if (lseek (db->dirf, OFF_DIR (dirb), SEEK_SET) < 0 ++ || write (db->dirf, db->dirbuf, DBLKSIZ) < 0) ++ return 0; ++ ++ return 1; ++} ++ ++/* ++ * getnext - get the next key in the page, and if done with ++ * the page, try the next page in sequence ++ */ ++static datum getnext (DBM * db) ++{ ++ datum key; ++ ++ for (;;) ++ { ++ db->keyptr++; ++ key = getnkey (db->pagbuf, db->keyptr); ++ if (key.dptr != NULL) ++ return key; ++/* ++ * we either run out, or there is nothing on this page.. ++ * try the next one... If we lost our position on the ++ * file, we will have to seek. ++ */ ++ db->keyptr = 0; ++ if (db->pagbno != db->blkptr++) ++ if (lseek (db->pagf, OFF_PAG (db->blkptr), SEEK_SET) < 0) ++ break; ++ db->pagbno = db->blkptr; ++ if (read (db->pagf, db->pagbuf, PBLKSIZ) <= 0) ++ break; ++ if (!chkpage (db->pagbuf)) ++ break; ++ } ++ ++ return ioerr (db), nullitem; ++} ++ ++/* ++ * all important binary trie traversal ++ */ ++static int getpage (DBM * db, long hash) ++{ ++ int hbit; ++ long dbit; ++ long pagb; ++ ++ dbit = 0; ++ hbit = 0; ++ while (dbit < db->maxbno && getdbit (db, dbit)) ++ dbit = 2 * dbit + ((hash & (1 << hbit++)) ? 2 : 1); ++ ++ db->curbit = dbit; ++ db->hmask = masks[hbit]; ++ ++ pagb = hash & db->hmask; ++/* ++ * see if the block we need is already in memory. ++ * note: this lookaside cache has about 10% hit rate. ++ */ ++ if (pagb != db->pagbno) ++ { ++/* ++ * note: here, we assume a "hole" is read as 0s. ++ * if not, must zero pagbuf first. ++ */ ++ if (lseek (db->pagf, OFF_PAG (pagb), SEEK_SET) < 0 ++ || read (db->pagf, db->pagbuf, PBLKSIZ) < 0) ++ return 0; ++ if (!chkpage (db->pagbuf)) ++ return 0; ++ db->pagbno = pagb; ++ } ++ return 1; ++} ++ ++/* ++ * makroom - make room by splitting the overfull page ++ * this routine will attempt to make room for SPLTMAX times before ++ * giving up. ++ */ ++static int makroom (DBM * db, long hash, int need) ++{ ++ long newp; ++ char twin[PBLKSIZ]; ++ char *pag = db->pagbuf; ++ char *new = twin; ++ int smax = SPLTMAX; ++ ++ do ++ { ++/* ++ * split the current page ++ */ ++ (void) splpage (pag, new, db->hmask + 1); ++/* ++ * address of the new page ++ */ ++ newp = (hash & db->hmask) | (db->hmask + 1); ++ ++/* ++ * write delay, read avoidence/cache shuffle: ++ * select the page for incoming pair: if key is to go to the new page, ++ * write out the previous one, and copy the new one over, thus making ++ * it the current page. If not, simply write the new page, and we are ++ * still looking at the page of interest. current page is not updated ++ * here, as sdbm_store will do so, after it inserts the incoming pair. ++ */ ++ if (hash & (db->hmask + 1)) ++ { ++ if (lseek (db->pagf, OFF_PAG (db->pagbno), SEEK_SET) < 0 ++ || write (db->pagf, db->pagbuf, PBLKSIZ) < 0) ++ return 0; ++ db->pagbno = newp; ++ (void) memcpy (pag, new, PBLKSIZ); ++ } ++ else if (lseek (db->pagf, OFF_PAG (newp), SEEK_SET) < 0 ++ || write (db->pagf, new, PBLKSIZ) < 0) ++ return 0; ++ ++ if (!setdbit (db, db->curbit)) ++ return 0; ++/* ++ * see if we have enough room now ++ */ ++ if (fitpair (pag, need)) ++ return 1; ++/* ++ * try again... update curbit and hmask as getpage would have ++ * done. because of our update of the current page, we do not ++ * need to read in anything. BUT we have to write the current ++ * [deferred] page out, as the window of failure is too great. ++ */ ++ db->curbit = 2 * db->curbit + ++ ((hash & (db->hmask + 1)) ? 2 : 1); ++ db->hmask |= db->hmask + 1; ++ ++ if (lseek (db->pagf, OFF_PAG (db->pagbno), SEEK_SET) < 0 ++ || write (db->pagf, db->pagbuf, PBLKSIZ) < 0) ++ return 0; ++ ++ } ++ while (--smax); ++/* ++ * if we are here, this is real bad news. After SPLTMAX splits, ++ * we still cannot fit the key. say goodnight. ++ */ ++#ifdef BADMESS ++ (void) write (2, "sdbm: cannot insert after SPLTMAX attempts.\n", 44); ++#endif ++ return 0; ++ ++} ++ ++static SDBM *sdbm_prep (char *dirname, char *pagname, int flags, int mode) ++{ ++ SDBM *db; ++ struct stat dstat; ++ ++ if ((db = (SDBM *) mymalloc (sizeof (SDBM))) == NULL) ++ return errno = ENOMEM, (SDBM *) NULL; ++ ++ db->flags = 0; ++ db->blkptr = 0; ++ db->keyptr = 0; ++/* ++ * adjust user flags so that WRONLY becomes RDWR, ++ * as required by this package. Also set our internal ++ * flag for RDONLY if needed. ++ */ ++ if (flags & O_WRONLY) ++ flags = (flags & ~O_WRONLY) | O_RDWR; ++ else if ((flags & 03) == O_RDONLY) ++ db->flags = DBM_RDONLY; ++#if defined(OS2) || defined(MSDOS) || defined(WIN32) ++ flags |= O_BINARY; ++#endif ++ ++/* ++ * Make sure to ignore the O_EXCL option, as the file might exist due ++ * to the locking. ++ */ ++ flags &= ~O_EXCL; ++ ++/* ++ * open the files in sequence, and stat the dirfile. ++ * If we fail anywhere, undo everything, return NULL. ++ */ ++ ++ if ((db->pagf = open (pagname, flags, mode)) > -1) ++ { ++ if ((db->dirf = open (dirname, flags, mode)) > -1) ++ { ++/* ++ * need the dirfile size to establish max bit number. ++ */ ++ if (fstat (db->dirf, &dstat) == 0) ++ { ++ /* ++ * success ++ */ ++ return db; ++ } ++ msg_info ("closing dirf"); ++ (void) close (db->dirf); ++ } ++ msg_info ("closing pagf"); ++ (void) close (db->pagf); ++ } ++ myfree ((char *) db); ++ return (SDBM *) NULL; ++} ++ ++static DBM *sdbm_internal_open (SDBM * sdbm) ++{ ++ DBM *db; ++ struct stat dstat; ++ ++ if ((db = (DBM *) mymalloc (sizeof (DBM))) == NULL) ++ return errno = ENOMEM, (DBM *) NULL; ++ ++ db->flags = sdbm->flags; ++ db->hmask = 0; ++ db->blkptr = sdbm->blkptr; ++ db->keyptr = sdbm->keyptr; ++ db->pagf = sdbm->pagf; ++ db->dirf = sdbm->dirf; ++ db->pagbuf = sdbm->pagbuf; ++ db->dirbuf = sdbm->dirbuf; ++ ++/* ++ * need the dirfile size to establish max bit number. ++ */ ++ if (fstat (db->dirf, &dstat) == 0) ++ { ++/* ++ * zero size: either a fresh database, or one with a single, ++ * unsplit data page: dirpage is all zeros. ++ */ ++ db->dirbno = (!dstat.st_size) ? 0 : -1; ++ db->pagbno = -1; ++ db->maxbno = dstat.st_size * BYTESIZ; ++ ++ (void) memset (db->pagbuf, 0, PBLKSIZ); ++ (void) memset (db->dirbuf, 0, DBLKSIZ); ++ return db; ++ } ++ myfree ((char *) db); ++ return (DBM *) NULL; ++} ++ ++static void sdbm_internal_close (DBM * db) ++{ ++ if (db == NULL) ++ errno = EINVAL; ++ else ++ { ++ myfree ((char *) db); ++ } ++} ++ ++datum sdbm_fetch (SDBM * sdb, datum key) ++{ ++ datum retval; ++ DBM *db; ++ ++ if (sdb == NULL || bad (key)) ++ return errno = EINVAL, nullitem; ++ ++ if (!(db = sdbm_internal_open (sdb))) ++ return errno = EINVAL, nullitem; ++ ++ if (getpage (db, exhash (key))) ++ { ++ retval = getpair (db->pagbuf, key); ++ sdbm_internal_close (db); ++ return retval; ++ } ++ ++ sdbm_internal_close (db); ++ ++ return ioerr (sdb), nullitem; ++} ++ ++int sdbm_delete (SDBM * sdb, datum key) ++{ ++ int retval; ++ DBM *db; ++ ++ if (sdb == NULL || bad (key)) ++ return errno = EINVAL, -1; ++ if (sdbm_rdonly (sdb)) ++ return errno = EPERM, -1; ++ ++ if (!(db = sdbm_internal_open (sdb))) ++ return errno = EINVAL, -1; ++ ++ if (getpage (db, exhash (key))) ++ { ++ if (!delpair (db->pagbuf, key)) ++ retval = -1; ++/* ++ * update the page file ++ */ ++ else if (lseek (db->pagf, OFF_PAG (db->pagbno), SEEK_SET) < 0 ++ || write (db->pagf, db->pagbuf, PBLKSIZ) < 0) ++ retval = ioerr (sdb), -1; ++ else ++ retval = 0; ++ } ++ else ++ retval = ioerr (sdb), -1; ++ ++ sdbm_internal_close (db); ++ ++ return retval; ++} ++ ++int sdbm_store (SDBM * sdb, datum key, datum val, int flags) ++{ ++ int need; ++ int retval; ++ long hash; ++ DBM *db; ++ ++ if (sdb == NULL || bad (key)) ++ return errno = EINVAL, -1; ++ if (sdbm_rdonly (sdb)) ++ return errno = EPERM, -1; ++ ++ need = key.dsize + val.dsize; ++/* ++ * is the pair too big (or too small) for this database ?? ++ */ ++ if (need < 0 || need > PAIRMAX) ++ return errno = EINVAL, -1; ++ ++ if (!(db = sdbm_internal_open (sdb))) ++ return errno = EINVAL, -1; ++ ++ if (getpage (db, (hash = exhash (key)))) ++ { ++/* ++ * if we need to replace, delete the key/data pair ++ * first. If it is not there, ignore. ++ */ ++ if (flags == DBM_REPLACE) ++ (void) delpair (db->pagbuf, key); ++#ifdef SEEDUPS ++ else if (duppair (db->pagbuf, key)) ++ { ++ sdbm_internal_close (db); ++ return 1; ++ } ++#endif ++/* ++ * if we do not have enough room, we have to split. ++ */ ++ if (!fitpair (db->pagbuf, need)) ++ if (!makroom (db, hash, need)) ++ { ++ sdbm_internal_close (db); ++ return ioerr (db), -1; ++ } ++/* ++ * we have enough room or split is successful. insert the key, ++ * and update the page file. ++ */ ++ (void) putpair (db->pagbuf, key, val); ++ ++ if (lseek (db->pagf, OFF_PAG (db->pagbno), SEEK_SET) < 0 ++ || write (db->pagf, db->pagbuf, PBLKSIZ) < 0) ++ { ++ sdbm_internal_close (db); ++ return ioerr (db), -1; ++ } ++ /* ++ * success ++ */ ++ sdbm_internal_close (db); ++ return 0; ++ } ++ ++ sdbm_internal_close (db); ++ return ioerr (sdb), -1; ++} ++ ++/* ++ * the following two routines will break if ++ * deletions aren't taken into account. (ndbm bug) ++ */ ++datum sdbm_firstkey (SDBM * sdb) ++{ ++ datum retval; ++ DBM *db; ++ ++ if (sdb == NULL) ++ return errno = EINVAL, nullitem; ++ ++ if (!(db = sdbm_internal_open (sdb))) ++ return errno = EINVAL, nullitem; ++ ++/* ++ * start at page 0 ++ */ ++ if (lseek (db->pagf, OFF_PAG (0), SEEK_SET) < 0 ++ || read (db->pagf, db->pagbuf, PBLKSIZ) < 0) ++ { ++ sdbm_internal_close (db); ++ return ioerr (sdb), nullitem; ++ } ++ db->pagbno = 0; ++ db->blkptr = 0; ++ db->keyptr = 0; ++ ++ retval = getnext (db); ++ sdb->blkptr = db->blkptr; ++ sdb->keyptr = db->keyptr; ++ sdbm_internal_close (db); ++ return retval; ++} ++ ++datum sdbm_nextkey (SDBM * sdb) ++{ ++ datum retval; ++ DBM *db; ++ ++ if (sdb == NULL) ++ return errno = EINVAL, nullitem; ++ ++ if (!(db = sdbm_internal_open (sdb))) ++ return errno = EINVAL, nullitem; ++ ++ retval = getnext (db); ++ sdb->blkptr = db->blkptr; ++ sdb->keyptr = db->keyptr; ++ sdbm_internal_close (db); ++ return retval; ++} ++ ++void sdbm_close (SDBM * db) ++{ ++ if (db == NULL) ++ errno = EINVAL; ++ else ++ { ++ (void) close (db->dirf); ++ (void) close (db->pagf); ++ myfree ((char *) db); ++ } ++} ++ ++SDBM *sdbm_open (char *file, int flags, int mode) ++{ ++ SDBM *db; ++ char *dirname; ++ char *pagname; ++ int n; ++ ++ if (file == NULL || !*file) ++ return errno = EINVAL, (SDBM *) NULL; ++/* ++ * need space for two seperate filenames ++ */ ++ n = strlen (file) * 2 + strlen (DIRFEXT) + strlen (PAGFEXT) + 2; ++ ++ if ((dirname = (char *) mymalloc ((unsigned) n)) == NULL) ++ return errno = ENOMEM, (SDBM *) NULL; ++/* ++ * build the file names ++ */ ++ dirname = strcat (strcpy (dirname, file), DIRFEXT); ++ pagname = strcpy (dirname + strlen (dirname) + 1, file); ++ pagname = strcat (pagname, PAGFEXT); ++ ++ db = sdbm_prep (dirname, pagname, flags, mode); ++ myfree ((char *) dirname); ++ return db; ++} ++ +Index: postfix-2.3.0/src/util/sdbm.h +=================================================================== +--- /dev/null ++++ postfix-2.3.0/src/util/sdbm.h +@@ -0,0 +1,97 @@ ++/*++ ++/* NAME ++/* sdbm 3h ++/* SUMMARY ++/* SDBM Simple DBM: ndbm work-alike hashed database library ++/* SYNOPSIS ++/* include "sdbm.h" ++/* DESCRIPTION ++/* .nf ++/*--*/ ++ ++#ifndef UTIL_SDBM_H ++#define UTIL_SDBM_H ++ ++/* ++ * sdbm - ndbm work-alike hashed database library ++ * based on Per-Ake Larson's Dynamic Hashing algorithms. BIT 18 (1978). ++ * author: oz@nexus.yorku.ca ++ * status: public domain. ++ */ ++ ++#define DUFF /* go ahead and use the loop-unrolled version */ ++ ++#include ++ ++#define DBLKSIZ 16384 /* SSL cert chains require more */ ++#define PBLKSIZ 8192 /* SSL cert chains require more */ ++#define PAIRMAX 8008 /* arbitrary on PBLKSIZ-N */ ++#define SPLTMAX 10 /* maximum allowed splits */ ++ /* for a single insertion */ ++#define DIRFEXT ".dir" ++#define PAGFEXT ".pag" ++ ++typedef struct { ++ int dirf; /* directory file descriptor */ ++ int pagf; /* page file descriptor */ ++ int flags; /* status/error flags, see below */ ++ long blkptr; /* current block for nextkey */ ++ int keyptr; /* current key for nextkey */ ++ char pagbuf[PBLKSIZ]; /* page file block buffer */ ++ char dirbuf[DBLKSIZ]; /* directory file block buffer */ ++} SDBM; ++ ++#define DBM_RDONLY 0x1 /* data base open read-only */ ++#define DBM_IOERR 0x2 /* data base I/O error */ ++ ++/* ++ * utility macros ++ */ ++#define sdbm_rdonly(db) ((db)->flags & DBM_RDONLY) ++#define sdbm_error(db) ((db)->flags & DBM_IOERR) ++ ++#define sdbm_clearerr(db) ((db)->flags &= ~DBM_IOERR) /* ouch */ ++ ++#define sdbm_dirfno(db) ((db)->dirf) ++#define sdbm_pagfno(db) ((db)->pagf) ++ ++typedef struct { ++ char *dptr; ++ int dsize; ++} datum; ++ ++extern datum nullitem; ++ ++/* ++ * flags to sdbm_store ++ */ ++#define DBM_INSERT 0 ++#define DBM_REPLACE 1 ++ ++/* ++ * ndbm interface ++ */ ++extern SDBM *sdbm_open(char *, int, int); ++extern void sdbm_close(SDBM *); ++extern datum sdbm_fetch(SDBM *, datum); ++extern int sdbm_delete(SDBM *, datum); ++extern int sdbm_store(SDBM *, datum, datum, int); ++extern datum sdbm_firstkey(SDBM *); ++extern datum sdbm_nextkey(SDBM *); ++ ++/* ++ * sdbm - ndbm work-alike hashed database library ++ * tuning and portability constructs [not nearly enough] ++ * author: oz@nexus.yorku.ca ++ */ ++ ++#define BYTESIZ 8 ++ ++/* ++ * important tuning parms (hah) ++ */ ++ ++#define SEEDUPS /* always detect duplicates */ ++#define BADMESS /* generate a message for worst case: ++ cannot make room after SPLTMAX splits */ ++#endif /* UTIL_SDBM_H */ +Index: postfix-2.3.0/src/util/sys_defs.h +=================================================================== +--- postfix-2.3.0.orig/src/util/sys_defs.h ++++ postfix-2.3.0/src/util/sys_defs.h +@@ -655,6 +655,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 ++#define HAS_SDBM + #define HAS_DB + #define DEF_DB_TYPE "hash" + #define ALIAS_DB_MAP "hash:/etc/aliases" +@@ -667,11 +668,25 @@ extern int initgroups(const char *, int) + #define UNIX_DOMAIN_CONNECT_BLOCKS_FOR_ACCEPT + #define PREPEND_PLUS_TO_OPTSTRING + #define HAS_POSIX_REGEXP ++#define HAS_DLOPEN + #define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" + #define NATIVE_MAILQ_PATH "/usr/bin/mailq" + #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" + #define NATIVE_COMMAND_DIR "/usr/sbin" ++#ifdef DEBIAN ++#define NATIVE_DAEMON_DIR "/usr/lib/postfix" ++#ifndef DEF_MANPAGE_DIR ++#define DEF_MANPAGE_DIR "/usr/share/man" ++#endif ++#ifndef DEF_SAMPLE_DIR ++#define DEF_SAMPLE_DIR "/usr/share/doc/postfix/examples" ++#endif ++#ifndef DEF_README_DIR ++#define DEF_README_DIR "/usr/share/doc/postfix" ++#endif ++#else + #define NATIVE_DAEMON_DIR "/usr/libexec/postfix" ++#endif + #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 + #define SOCKADDR_SIZE socklen_t + #define SOCKOPT_SIZE socklen_t +@@ -757,6 +772,7 @@ extern int h_errno; /* impor + #define USE_STATFS + #define STATFS_IN_SYS_VFS_H + #define HAS_POSIX_REGEXP ++#define HAS_DLOPEN + #define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" + #define NATIVE_MAILQ_PATH "/usr/bin/mailq" + #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" +@@ -794,6 +810,7 @@ extern int h_errno; /* impor + #define USE_STATFS + #define STATFS_IN_SYS_VFS_H + #define HAS_POSIX_REGEXP ++#define HAS_SHL_LOAD + #define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" + #define NATIVE_MAILQ_PATH "/usr/bin/mailq" + #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" +@@ -833,6 +850,7 @@ extern int h_errno; + #define USE_STATFS + #define STATFS_IN_SYS_VFS_H + #define HAS_POSIX_REGEXP ++#define HAS_SHL_LOAD + #define NATIVE_SENDMAIL_PATH "/usr/bin/sendmail" + #define NATIVE_MAILQ_PATH "/usr/bin/mailq" + #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" +Index: postfix-2.3.0/src/tls/tls_client.c +=================================================================== +--- postfix-2.3.0.orig/src/tls/tls_client.c ++++ postfix-2.3.0/src/tls/tls_client.c +@@ -147,6 +147,8 @@ + #define STR vstring_str + #define LEN VSTRING_LEN + ++int var_tls_daemon_rand_bytes; ++ + /* load_clnt_session - load session from client cache (non-callback) */ + + static SSL_SESSION *load_clnt_session(TLScontext_t *TLScontext) +Index: postfix-2.3.0/src/tls/tls_server.c +=================================================================== +--- postfix-2.3.0.orig/src/tls/tls_server.c ++++ postfix-2.3.0/src/tls/tls_server.c +@@ -127,6 +127,8 @@ + #define STR(x) vstring_str(x) + #define LEN(x) VSTRING_LEN(x) + ++int var_tls_daemon_rand_bytes; ++ + /* Application-specific. */ + + /* We must keep some of the info available */ +Index: postfix-2.3.0/src/milter/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/milter/Makefile.in ++++ postfix-2.3.0/src/milter/Makefile.in +@@ -14,7 +14,7 @@ LIB_DIR = ../../lib + INC_DIR = ../../include + MAKES = + +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c + + all: $(LIB) + +@@ -30,12 +30,10 @@ tests: + root_tests: + + $(LIB): $(OBJS) +- $(AR) $(ARFL) $(LIB) $? +- $(RANLIB) $(LIB) ++ gcc -shared -Wl,-soname,libpostfix-milter.so.1 -o $(LIB) $(OBJS) $(LIBS) $(SYSLIBS) + + $(LIB_DIR)/$(LIB): $(LIB) + cp $(LIB) $(LIB_DIR) +- $(RANLIB) $(LIB_DIR)/$(LIB) + + update: $(LIB_DIR)/$(LIB) $(HDRS) + -for i in $(HDRS); \ diff --git a/dynamic_maps_pie.patch b/dynamic_maps_pie.patch new file mode 100644 index 0000000..527ff28 --- /dev/null +++ b/dynamic_maps_pie.patch @@ -0,0 +1,787 @@ +Index: postfix-2.3.0/makedefs +=================================================================== +--- postfix-2.3.0.orig/makedefs ++++ postfix-2.3.0/makedefs +@@ -418,4 +418,5 @@ AWK = $AWK + STRCASE = $STRCASE + EXPORT = AUXLIBS='$AUXLIBS' CCARGS='$CCARGS' OPT='$OPT' DEBUG='$DEBUG' + WARN = $WARN ++PIE = $PIE + EOF +Index: postfix-2.3.0/src/anvil/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/anvil/Makefile.in ++++ postfix-2.3.0/src/anvil/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = anvil + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/cleanup/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/cleanup/Makefile.in ++++ postfix-2.3.0/src/cleanup/Makefile.in +@@ -18,11 +18,14 @@ PROG = cleanup + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/discard/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/discard/Makefile.in ++++ postfix-2.3.0/src/discard/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = discard + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/error/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/error/Makefile.in ++++ postfix-2.3.0/src/error/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = error + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/flush/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/flush/Makefile.in ++++ postfix-2.3.0/src/flush/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = flush + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/fsstone/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/fsstone/Makefile.in ++++ postfix-2.3.0/src/fsstone/Makefile.in +@@ -9,6 +9,9 @@ TESTPROG= + PROG = fsstone + INC_DIR = ../../include + LIBS = ../../lib/libglobal.a ../../lib/libutil.a ++ifdef PIE ++CFLAGS += -fPIE ++endif + + .c.o:; $(CC) $(CFLAGS) -c $*.c + +@@ -20,7 +23,7 @@ Makefile: Makefile.in + (cat ../../conf/makedefs.out $?) >$@ + + fsstone: fsstone.o $(LIBS) +- $(CC) $(CFLAGS) -o $@ fsstone.o $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ fsstone.o $(LIBS) $(SYSLIBS) $(PIE) + + test: $(TESTPROG) + +Index: postfix-2.3.0/src/local/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/local/Makefile.in ++++ postfix-2.3.0/src/local/Makefile.in +@@ -15,11 +15,14 @@ PROG = local + TESTPROG= + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/master/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/master/Makefile.in ++++ postfix-2.3.0/src/master/Makefile.in +@@ -20,7 +20,7 @@ LIB_DIR = ../../lib + INC_DIR = ../../include + BIN_DIR = ../../libexec + +-.c.o:; $(CC) `for i in $(LIB_OBJ); do [ $$i = $@ ] && echo -fPIC; done` $(CFLAGS) -c $*.c ++.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c + + all: $(PROG) $(LIB) + +@@ -30,7 +30,7 @@ Makefile: Makefile.in + (cat ../../conf/makedefs.out $?) >$@ + + $(PROG): $(OBJS) $(LIBS) +- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) + + test: $(TESTPROG) + +Index: postfix-2.3.0/src/oqmgr/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/oqmgr/Makefile.in ++++ postfix-2.3.0/src/oqmgr/Makefile.in +@@ -13,11 +13,14 @@ TESTPROG= + PROG = qmgr + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/pickup/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/pickup/Makefile.in ++++ postfix-2.3.0/src/pickup/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = pickup + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/pipe/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/pipe/Makefile.in ++++ postfix-2.3.0/src/pipe/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = pipe + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/postalias/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postalias/Makefile.in ++++ postfix-2.3.0/src/postalias/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postalias + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/postcat/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postcat/Makefile.in ++++ postfix-2.3.0/src/postcat/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postcat + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/postdrop/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postdrop/Makefile.in ++++ postfix-2.3.0/src/postdrop/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postdrop + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/postfix/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postfix/Makefile.in ++++ postfix-2.3.0/src/postfix/Makefile.in +@@ -10,11 +10,14 @@ INC_DIR = ../../include + TESTPROG= + PROG = postfix + LIBS = ../../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: postfix-2.3.0/src/postkick/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postkick/Makefile.in ++++ postfix-2.3.0/src/postkick/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postkick + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/postlock/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postlock/Makefile.in ++++ postfix-2.3.0/src/postlock/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postlock + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/postlog/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postlog/Makefile.in ++++ postfix-2.3.0/src/postlog/Makefile.in +@@ -10,11 +10,14 @@ INC_DIR = ../../include + TESTPROG= + PROG = postlog + LIBS = ../../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: postfix-2.3.0/src/postmap/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postmap/Makefile.in ++++ postfix-2.3.0/src/postmap/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postmap + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/postqueue/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postqueue/Makefile.in ++++ postfix-2.3.0/src/postqueue/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postqueue + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/postsuper/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postsuper/Makefile.in ++++ postfix-2.3.0/src/postsuper/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = postsuper + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/proxymap/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/proxymap/Makefile.in ++++ postfix-2.3.0/src/proxymap/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = proxymap + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/qmgr/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/qmgr/Makefile.in ++++ postfix-2.3.0/src/qmgr/Makefile.in +@@ -15,11 +15,14 @@ TESTPROG= + PROG = qmgr + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/qmqpd/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/qmqpd/Makefile.in ++++ postfix-2.3.0/src/qmqpd/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = qmqpd + INC_DIR = ../../include + LIBS = ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libdns.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: postfix-2.3.0/src/scache/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/scache/Makefile.in ++++ postfix-2.3.0/src/scache/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = scache + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/sendmail/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/sendmail/Makefile.in ++++ postfix-2.3.0/src/sendmail/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = sendmail + INC_DIR = ../../include + LIBS = ../../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: postfix-2.3.0/src/showq/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/showq/Makefile.in ++++ postfix-2.3.0/src/showq/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = showq + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/smtpstone/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/smtpstone/Makefile.in ++++ postfix-2.3.0/src/smtpstone/Makefile.in +@@ -9,6 +9,9 @@ TESTPROG= + INC_DIR = ../../include + PROG = smtp-source smtp-sink qmqp-source qmqp-sink + LIBS = ../../lib/libglobal.a ../../lib/libutil.a ++ifdef PIE ++CFLAGS += -fPIE ++endif + + .c.o:; $(CC) $(CFLAGS) -c $*.c + +@@ -20,16 +23,16 @@ Makefile: Makefile.in + (cat ../../conf/makedefs.out $?) >$@ + + smtp-sink: smtp-sink.o $(LIBS) +- $(CC) $(CFLAGS) -o $@ smtp-sink.o $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ smtp-sink.o $(LIBS) $(SYSLIBS) $(PIE) + + smtp-source: smtp-source.o $(LIBS) +- $(CC) $(CFLAGS) -o $@ smtp-source.o $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ smtp-source.o $(LIBS) $(SYSLIBS) $(PIE) + + qmqp-sink: qmqp-sink.o $(LIBS) +- $(CC) $(CFLAGS) -o $@ qmqp-sink.o $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ qmqp-sink.o $(LIBS) $(SYSLIBS) $(PIE) + + qmqp-source: qmqp-source.o $(LIBS) +- $(CC) $(CFLAGS) -o $@ qmqp-source.o $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ qmqp-source.o $(LIBS) $(SYSLIBS) $(PIE) + + test: $(TESTPROG) + +Index: postfix-2.3.0/src/spawn/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/spawn/Makefile.in ++++ postfix-2.3.0/src/spawn/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = spawn + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/tlsmgr/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/tlsmgr/Makefile.in ++++ postfix-2.3.0/src/tlsmgr/Makefile.in +@@ -10,11 +10,14 @@ PROG = tlsmgr + INC_DIR = ../../include + LIBS = ../../lib/libmaster.a ../../lib/libtls.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: postfix-2.3.0/src/trivial-rewrite/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/trivial-rewrite/Makefile.in ++++ postfix-2.3.0/src/trivial-rewrite/Makefile.in +@@ -12,13 +12,16 @@ LIBS = ../../lib/libmaster.a ../../lib/l + LIB_DIR = ../../lib + INC_DIR = ../../include + BIN_DIR = ../../libexec ++ifdef PIE ++CFLAGS += -fPIE ++endif + + .c.o:; $(CC) $(CFLAGS) -c $*.c + + all: $(PROG) $(LIB) + + $(PROG): $(OBJS) $(LIBS) +- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS) $(PIE) + + $(OBJS): ../../conf/makedefs.out + +Index: postfix-2.3.0/src/verify/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/verify/Makefile.in ++++ postfix-2.3.0/src/verify/Makefile.in +@@ -9,11 +9,14 @@ TESTPROG= + PROG = verify + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/virtual/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/virtual/Makefile.in ++++ postfix-2.3.0/src/virtual/Makefile.in +@@ -9,11 +9,14 @@ PROG = virtual + TESTPROG= + INC_DIR = ../../include + LIBS = ../../lib/libmaster.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: postfix-2.3.0/src/bounce/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/bounce/Makefile.in ++++ postfix-2.3.0/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: postfix-2.3.0/src/postconf/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/postconf/Makefile.in ++++ postfix-2.3.0/src/postconf/Makefile.in +@@ -12,11 +12,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: postfix-2.3.0/src/smtp/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/smtp/Makefile.in ++++ postfix-2.3.0/src/smtp/Makefile.in +@@ -14,11 +14,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: postfix-2.3.0/src/smtpd/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/smtpd/Makefile.in ++++ postfix-2.3.0/src/smtpd/Makefile.in +@@ -16,11 +16,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: postfix-2.3.0/src/xsasl/Makefile.in +=================================================================== +--- postfix-2.3.0.orig/src/xsasl/Makefile.in ++++ postfix-2.3.0/src/xsasl/Makefile.in +@@ -18,7 +18,7 @@ LIB_DIR = ../../lib + INC_DIR = ../../include + MAKES = + +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c + + all: $(LIB) + diff --git a/postfix-2.3.2.tar.gz b/postfix-2.3.2.tar.gz new file mode 100644 index 0000000..cfbd32e --- /dev/null +++ b/postfix-2.3.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9487d86349da28980a73c8c2ced8df0568c80f1349d2351f3d8dd20b46289b4e +size 2792371 diff --git a/postfix-SuSE.tar.gz b/postfix-SuSE.tar.gz new file mode 100644 index 0000000..bdf5413 --- /dev/null +++ b/postfix-SuSE.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:653d0b3af0b6e0383cf64c56d3466235becc82bb71dc329f4470173bef3e12c1 +size 16582 diff --git a/postfix.changes b/postfix.changes new file mode 100644 index 0000000..85a139f --- /dev/null +++ b/postfix.changes @@ -0,0 +1,1749 @@ +------------------------------------------------------------------- +Wed Nov 22 03:03:18 CET 2006 - mrueckert@suse.de + +- moved the dict handling into a preun script instead of postun + and do not remove the dict entry on upgrade (#223176) +- removed duplicates in the filelists. + +------------------------------------------------------------------- +Fri Nov 10 11:43:00 CET 2006 - varkoly@suse.de + +- #218229 - Postfix SuSEconfig script increases the max_proc line each run in master.cf + +------------------------------------------------------------------- +Sat Oct 28 11:41:50 CEST 2006 - varkoly@suse.de + +- #206414 - /usr/lib/sasl2/smtpd.conf misplaced + +------------------------------------------------------------------- +Tue Oct 24 22:32:45 CEST 2006 - varkoly@suse.de + +- #202119 – SuSEconfig script for Postfix incomplete +- #202162 – Postfix 2.3.2 slightly incorrect, Cyrus SASL unavailable +- #203174 – /sbin/conf.d/SuSEconfig.postfix should configure a TLS session cache for postfix 2.2 +- #203575 – postfix-2.2.9-10 chokes without scache +- #213589 - No development package/headers for postfix + +------------------------------------------------------------------- +Wed Aug 16 01:24:20 CEST 2006 - ro@suse.de + +- also add libpostfix-milter.so* + +------------------------------------------------------------------- +Mon Aug 14 12:34:37 CEST 2006 - varkoly@suse.de + +- updated to postfix 2.3, patchlevel 2 +- Major changes + - Name server replies that contain a malformed hostname are now flagged + as permanent errors instead of transient errors. + - DSN support as described in RFC 3461 .. RFC 3464. + - The SMTP client now implements the LMTP protocol. + - Milter (mail filter) application support, compatible with Sendmail + version 8.13.6 and earlier. +- Major changes - SASL authentication + - Plug-in support for SASL authentication in the SMTP server and in the + SMTP/LMTP client. + - The Postfix-with-Cyrus-SASL build procedure has changed. + - Support for sender-dependent ISP accounts. +- Major changes - SMTP client + - The SMTP client now implements the LMTP protocol. + - This version addresses a performance stability problem with remote + SMTP servers. +- Major changes - SMTP server + - The Postfix SMTP server now refuses to receive mail from the network + if it isn't running with postfix mail_owner privileges. + - Optional suppression of remote SMTP client hostname lookup and hostname + verification. + - SMTPD Access control based on the existence of an address->name mapping +- Major changes - TLS + - New concept: TLS security levels ("none", "may", "encrypt", "verify" + or "secure") in the Postfix SMTP client. + - Both the Postfix SMTP client and server can be configured without a + client or server certificate. +- See + /usr/share/doc/packages/postfix/RELEASE_NOTES + /usr/share/doc/packages/postfix/TLS_CHANGES + /usr/share/doc/packages/postfix/README_FILES/SASL_README + for detailed informations. + +------------------------------------------------------------------- +Wed Aug 2 16:18:30 CEST 2006 - varkoly@suse.de + +- Only %{conf_backup_dir} is contained by the package not /var/adm/backup + +------------------------------------------------------------------- +Mon Jul 10 16:21:31 CEST 2006 - varkoly@suse.de + +- Bugfix: #190639 Default number of processes for postfix +- Bugfix: #190270 postfix-postgresql + +------------------------------------------------------------------- +Fri Jun 2 19:58:38 CEST 2006 - varkoly@suse.de + +- Bugfix: #98188 - SuSE.tar.gz filename collision in cyrus/postfix SRPMs + +------------------------------------------------------------------- +Mon Apr 24 17:14:40 CEST 2006 - varkoly@suse.de + +- Bugfix: #165786 - yast2-mail modul uses obsolate postfix attributes + +------------------------------------------------------------------- +Mon Mar 20 10:21:55 CET 2006 - varkoly@suse.de + +- updated to postfix 2.2, patchlevel 9. +- Reasons: + Bugfix: the LMTP client would reuse a session after negative + reply to the RSET command (which may happen when client and + server somehow get out of sync). + Bugfix: race condition in the connection caching protocol, + causing the SMTP delivery agent to hang after delivering + mail, while trying to save a connection. + Bugfix: the best_mx_transport, mailbox_transport and + fallback_transport features did not write a per-recipient + defer logfile record when the target delivery agent was + broken. + Bugfix: an EHLO I/O error after STARTTLS would be reported + as a STARTTLS I/O error. + Bugfix: the *SQL, proxy and LDAP maps were not defined in + user-land commands such as postqueue. + Bugfix: the anvil server would terminate after "max_idle" + seconds, even when this was less than the anvil_rate_time_unit + interval. + Portability: 64-bit support for LINUX chroot script by Keith + Owens. + Safety: new "smtp_cname_overrides_servername" parameter. + + Bugfix: mailbox_command_maps was not subject to $name + expansion. + Bugfix: don't ignore the per-site policy when SSL library + initialization fails. + Bugfix: a TLS per-site MUST_NOPEERMATCH policy could not + override a stronger main.cf policy, while a per-site NONE + policy could. + Bugfix: a combined TLS per-site (host, recipient) policy + of (NONE, MAY) changed a global MUST policy into NONE, and + a global MUST_NOPEERMATCH into MAY. The result is now NONE. + Problem found by exhaustive simulation. + Bugfix: an empty remote_header_rewrite_domain value caused + trivial-rewrite to dereference a null pointer, but only in + regression tests, not in production. Postfix rewrites + addresses in the remote rewriting context only when the + remote_header_rewrite_domain parameter value is non-empty. + Workaround: a malformed domain name lookup result (such as + null MX record) is now treated as a hard error, so that + Postfix will no longer repeatedly try to deliver mail until + the message expires in the queue. However, this will not + reject mail with reject_unknown_sender/recipient_domain. + That would require too much change for a stable release. + +------------------------------------------------------------------- +Fri Jan 27 02:19:42 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Tue Jan 24 09:11:46 CET 2006 - varkoly@suse.de + +- Fixing the spec-file +- Bugfix: ID#143682 - Spurious (obsoleted?) configuration variable in postfix's main.cf + +------------------------------------------------------------------- +Mon Jan 23 13:00:13 CET 2006 - varkoly@suse.de + +- Bugfix: ID#140173 postfix allows relaying on the whole subnet +- Bugfix: ID#144091 postfix doesn't start with the latest kernel + +------------------------------------------------------------------- +Fri Jan 20 11:56:24 CET 2006 - varkoly@suse.de + +- Bugfix: ID#144091 +- Postfix makes an entry in slp servre for smtp & smtps + +------------------------------------------------------------------- +Mon Jan 16 14:49:29 CET 2006 - varkoly@suse.de + +- removing openldap from "neededforbuild" + +------------------------------------------------------------------- +Wed Nov 30 11:11:16 CET 2005 - choeger@suse.de + +- updated to postfix 2.2, patchlevel 6 + +------------------------------------------------------------------- +Tue Oct 11 15:03:56 CEST 2005 - choeger@suse.de + +- added patch ldap_api_changes.patch: openldap2.3 enforces to use + "The C LDAP Application Program Interface" + +------------------------------------------------------------------- +Mon Aug 15 13:55:32 CEST 2005 - choeger@suse.de + +- Bugfix Bugzilla ID#104663 - consistent use of variables in postfix + init-script +- Bugfix Bugzilla ID#104568 - SuSEconfig.postfix doesnt set $PATH properly to + find all binaries. + +------------------------------------------------------------------- +Fri Aug 12 10:25:09 CEST 2005 - mmj@suse.de + +- Package the /usr/lib/sendmail -> /usr/sbin/sendmail link [#102947] + +------------------------------------------------------------------- +Tue Jul 26 11:05:29 CEST 2005 - choeger@suse.de + +- Bugfix Bugzilla ID#93884 - package postfix uses -fsigned-char + Remove -fsigned-char option for ppc and s390 archs + +------------------------------------------------------------------- +Mon Jul 25 11:52:18 CEST 2005 - choeger@suse.de + +- updated to postfix 2.2, patchlevel 5: + - Portability: the connection caching code broke on LP64 + systems (inherited from Stevens Network Programming). + Files: util/unix_send_fd.c, util/unix_recv_fd.c. This code + is back-ported from the Postfix 2.3 snapshot release. + - Robustness: the SMTP client now disables connection caching + when it is unable to communicate with the scache(8) server, + instead of looping forever and not delivering mail. File: + global/scache_clnt.c. This code is back-ported from the + Postfix 2.3 snapshot release. + - Portability: after sending a socket, the scache(8) server + now waits for an ACK from the connection cache client before + closing the socket that it just sent. Files: scache/scache.c, + global/scache_clnt.c. This code is back-ported from the + Postfix 2.3 snapshot release. + - Portability: on LP64 systems, integer expressions are int, + but sizeof() and pointer difference expressions are larger. + Point fixes for a few discrepancies with variadic functions + that expect int (the permanent fix is to change the receiving + modules, but that results in too much change, and is not + allowed in the stable release). Files: tls/tls_scache.c, + util/clean_env.c, util/vstring.h, smtpstone/qmqp-source.c. + +------------------------------------------------------------------- +Mon Jul 18 15:49:16 CEST 2005 - choeger@suse.de + +- force to set strict_8bitmime to "no" when POSTFIX_MDA != cyrus, + because once it is set to "yes", nobody sets it back. +- only install /etc/pam.d/smtp if %suse_version > 920 +- use Prereq instead of Requires for mysql and postgresql subpackages + +------------------------------------------------------------------- +Wed Jul 13 16:59:14 CEST 2005 - choeger@suse.de + +- added /etc/pam.d/smtp configuration file + +------------------------------------------------------------------- +Thu Jul 7 16:44:05 CEST 2005 - choeger@suse.de + +- Fixed build on x86_64: use -fPIC for libraries and -fPIE for the + rest + +------------------------------------------------------------------- +Tue Jul 5 17:57:48 CEST 2005 - choeger@suse.de + +- applied dynamic maps patch of LaMont Jones at debian +- Fix to SuSEconfig.postfix: only touch tlsmgr line in master.cf, + if it is the new one using unix socket instead of fifo + +------------------------------------------------------------------- +Thu Jun 30 17:52:10 CEST 2005 - uli@suse.de + +- build with -fPIE (not -fpie) to avoid GOT overflow on s390x + +------------------------------------------------------------------- +Thu Jun 23 10:22:18 CEST 2005 - choeger@suse.de + +- updated to postfix 2.2, patchlevel 4 + +------------------------------------------------------------------- +Fri Jun 17 17:06:39 CEST 2005 - choeger@suse.de + +- fixed build using -pie/-fpie (hopefully) + +------------------------------------------------------------------- +Fri Jun 17 11:04:03 CEST 2005 - choeger@suse.de + +- Build using -pie + +------------------------------------------------------------------- +Fri May 13 18:24:50 CEST 2005 - choeger@suse.de + +- set strict_8bitmime parameter to yes when using cyrus mailbox + delivery + +------------------------------------------------------------------- +Wed May 4 15:54:33 CEST 2005 - choeger@suse.de + +- Bugfix ID#66325 - postfix: permissions + also ship a postfix.paranoid file with the package with all suid and sgid + bits disabled + +------------------------------------------------------------------- +Tue May 3 16:29:04 CEST 2005 - choeger@suse.de + +- updated to postfix 2.2, patchlevel 3 +- Bugfix ID#75717 - postfix init scripts reports success allthough postfix is + not running: + use checkproc again instead of "master -t", as "master -t" seems to be broken + +------------------------------------------------------------------- +Thu Apr 21 17:42:04 CEST 2005 - choeger@suse.de + +- updated to postfix 2.2, patchlevel 2 +- Bugfix ID#74712, problems with read-only mounting of $chroot/proc: + don't mount /var/spool/postfix/proc ro as that results in /proc also mounted + ro. +- Bugfix ID#74709, postfix configuration and USE_IPV6 in + sysconfig/network/config + +------------------------------------------------------------------- +Tue Mar 15 17:46:44 CET 2005 - choeger@suse.de + +- updated to postfix 2.2, patchlevel 1 + Postfix 2.2.1 solves four portability problems that surfaced in + the week since the 2.2.0 release, one harmless bug in the TLS + session cache cleaning code, and cleans up minor documentation + problems. + +------------------------------------------------------------------- +Thu Mar 10 10:18:45 CET 2005 - choeger@suse.de + +- 2.2.0 is out + +------------------------------------------------------------------- +Mon Mar 7 14:15:08 CET 2005 - choeger@suse.de + +- update to RC2 + +------------------------------------------------------------------- +Wed Mar 2 15:01:33 CET 2005 - choeger@suse.de + +- make it compile with gcc4 + +------------------------------------------------------------------- +Mon Feb 28 18:03:36 CET 2005 - choeger@suse.de + +- RC1 of 2.2 is out + +------------------------------------------------------------------- +Fri Feb 18 16:34:07 CET 2005 - choeger@suse.de + +- use "usr/sbin/postfix upgrade-configuration" now instead of + "etc/postfix/post-install upgrade-package" + +------------------------------------------------------------------- +Thu Feb 17 19:28:22 CET 2005 - choeger@suse.de + +- removed some @ chars (don't know how they slipped in) + +------------------------------------------------------------------- +Thu Feb 17 13:42:18 CET 2005 - choeger@suse.de + +- update to current pre 2.2 snapshot (2.2-20050216) + 2.2 release could happen next week + +------------------------------------------------------------------- +Thu Feb 10 09:08:18 CET 2005 - choeger@suse.de + +- added patch needed for the Kolab project (this patch is part of the upcoming + postfix 2-2 release), see + http://wiki.kolab.org/index.php/Kolab-major-app-patches + +------------------------------------------------------------------- +Thu Feb 3 10:00:38 CET 2005 - choeger@suse.de + +- s/X-UnitedLinux-Should-Start/Should-Start/ + +------------------------------------------------------------------- +Wed Feb 2 16:44:34 CET 2005 - choeger@suse.de + +- added long_header.patch + long lines piped into postfix sendmail can lead to errors. + +------------------------------------------------------------------- +Wed Feb 2 08:52:19 CET 2005 - choeger@suse.de + +- Bugfix ID#49307: faster postfix startup: don't use hashed directories if + possible: + - added patch empty_hash_queue_names.patch to be able to modify + hash_queue_names parameter. + - added check to %post to change hash_queue_names in case of + /var/spool/postfix residing on a reiserfs partition when doing + a fresh installation +- Bugfix ID#50386 - postfix must prereq /sbin/ip (iproute2) + +------------------------------------------------------------------- +Fri Jan 28 16:29:05 CET 2005 - choeger@suse.de + +- updated tls+ipv6 patchkit to v1.26 + - Bugfix: Incomplete error checking in getaddrinfo() could cause lmtpd to + crash with debug_peer_list defined. Carsten Hoeger, SuSE. File: + util/match_ops.c + - Linux workaround: When mynetworks isn't set, a chrooted process could not + read the IPv6 address information from /proc. We now invoke own_inet_addr() + before chrooting, while processing main.cf. [backported from 2.2-nonprod + snapshot] File: global/mail_params.c + - Safety: when IPv6 netmask can't be determined, mynetworks is not set and + mynetworks_style = subnet, assume /128 (host only). Until now, Tru64Unix + assumed /64 (good for real subnets, but not safe for tunnel ranges etc.). + File: util/inet_addr_local.c + +------------------------------------------------------------------- +Sat Jan 15 20:48:48 CET 2005 - schwab@suse.de + +- Use : in permissions file. + +------------------------------------------------------------------- +Thu Jan 13 16:16:41 CET 2005 - choeger@suse.de + +- Two fixes to ipv6-patch related bugs: + - Bugfix Bugzilla ID#49435 - VUL-0: Postfix, permit_mx_backup, IPv6, chroot + --> Open Relay! + - Bugfix Bugzilla ID#49695 - SEGV while lmtp delivery +- mount /proc into chroot jail to be able to access /proc/net/if_inet6 + +------------------------------------------------------------------- +Wed Nov 24 14:46:16 CET 2004 - schwab@suse.de + +- Put options first in find command line. + +------------------------------------------------------------------- +Tue Nov 9 09:20:27 CET 2004 - choeger@suse.de + +- setting LC_ALL=POSIX in SuSEconfig.postfix + +------------------------------------------------------------------- +Wed Sep 29 18:14:13 CEST 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#46462, postfix should switch biff off + +------------------------------------------------------------------- +Tue Sep 21 12:48:02 CEST 2004 - choeger@suse.de + +- updated to postfix 2.1, patchlevel 5 + (several small bugfixes) +- updated tls+ipv6 patchkit (there have been some small bugs) +- use v4 address 127.0.0.1 as amavisd-new local contact address + as amavisd is not listening on any v6 address + +------------------------------------------------------------------- +Mon Sep 20 09:51:25 CEST 2004 - choeger@suse.de + +- also chmod the .db file resulting of a postmap (related to + bugfix ID#39045 + +------------------------------------------------------------------- +Thu Sep 16 13:57:32 CEST 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#39045 - tls_per_site table updates in SuSEconfig.postfix + introduced POSTFIX_MAP_LIST in /etc/sysconfig/postfix where additional + maps maintained by SuSEconfig.postfix can be added + +------------------------------------------------------------------- +Thu Sep 16 10:34:58 CEST 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#45252 - rpm calls SuSEconfig.permissions which calls rpm + -> 3 minute timeout + Also don't call rpm from SuSEconfig.postfix +- Speedup: set timestamp of $TMPDIR/main.cf into the past to workaround + postconf safety which is not neccessary, because we do not touch the main.cf, + the postfix daemons are using. + +------------------------------------------------------------------- +Mon Sep 13 11:57:15 CEST 2004 - choeger@suse.de + +- added $time to Required-Start in init-script + +------------------------------------------------------------------- +Thu Aug 26 14:15:31 CEST 2004 - choeger@suse.de + +- do not filter locally delivered mail when USE_AMAVIS=yes + (don't set content_filter=vscan in main.cf) +- removed obsolete vscan service definition from master.cf + +------------------------------------------------------------------- +Fri Aug 20 12:47:52 CEST 2004 - choeger@suse.de + +- use "$MASTER_BIN -t" to check whether postfix is already running + in start section of init-script. That's more reliable then checkproc. + +------------------------------------------------------------------- +Wed Jul 14 17:48:29 CEST 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#42995 - SuSEconfig.postfix should ignore + .swp and other files in /etc/aliases.d + +------------------------------------------------------------------- +Tue Jul 13 16:22:02 CEST 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#42281, openssl ca segfaults: + added missing [ policy_anything ] configuration + options to openssl.cnf + +------------------------------------------------------------------- +Mon Jul 12 14:58:58 CEST 2004 - choeger@suse.de + +- updated to postfix 2.1, patchlevel 4 +- updated tls+ipv6 patchkit to v1.25 +- new feature POSTFIX_REGISTER_SLP in /etc/sysconfig/postfix + to be able to totally disable slptool from being started + +------------------------------------------------------------------- +Tue May 25 12:42:45 CEST 2004 - choeger@suse.de + +- updated tls+ipv6 patchkit to v1.24: + - Bugfix: Prefixlen non-null host portion validation (in CIDR maps for + example) yielded incorrect results sometimes because signed arithmetic was + used instad of unsigned. + - Patch correction: The TLS+IPv6 patch for Postfix 2.1.0 missed the master.cf + update (used for new installattions). Added it back. +- as tls and ipv6 patches have not been completely ported to postfix 2.1 + new documentation system, especially the new postconf(5) manpage is + missing the complete ipv6 and tls related configuration parameters, + readded the sample-* files from ipv6+tls to %doc/samples + +------------------------------------------------------------------- +Tue May 4 11:24:20 CEST 2004 - choeger@suse.de + +- update to postfix 2.1, patchlevel 1: + - Patch 01 fixes a signal 11 problem in the check_policy_service + feature when SASL support is compiled in but turned off in the + SMTP server (smtpd_sasl_auth_enable = no). + +------------------------------------------------------------------- +Wed Apr 28 10:46:55 CEST 2004 - choeger@suse.de + +- added now officially released tls patchkit 0.8.18-2.1.0-0.9.7d to + the source package for the user to be able to build a non-ipv6 + postfix package + +------------------------------------------------------------------- +Mon Apr 26 17:46:01 CEST 2004 - choeger@suse.de + +- official tls+ipv6 v1.23 patchkit released: + - Patch fixes: Several code fixes to make the patch compile and work + correctly when compiled without IPv6 support. + - Bugfix (Solaris only?): address family length was not updated + which could cause client hostname validation errors. File: + smtpd/smtpd_peer.c + - Portability: added support for Darwin 7.3+. This may need some + further testing. + - Cleanup: Restructure and redocument interface address retrieval + functions. (This reduced the number of preprocessor statements + from 99 to 93 ;) File: util/inet_addr_local.c + - Cleanup: make several explicit casts to have compilers shut their + pie holes about uninteresting things. + +------------------------------------------------------------------- +Fri Apr 23 11:22:35 CEST 2004 - choeger@suse.de + +- update to final postfix v2.1 + +------------------------------------------------------------------- +Wed Apr 21 17:35:26 CEST 2004 - choeger@suse.de + +- Bugfix: changed {main,master}.cf backup path in specfile, but not in + SuSEconfig script + +------------------------------------------------------------------- +Wed Apr 21 11:55:43 CEST 2004 - choeger@suse.de + +- update to postfix 2.1 RC5 + +------------------------------------------------------------------- +Mon Apr 19 14:23:19 CEST 2004 - choeger@suse.de + +- update to current postfix 2.1 release candidate (RC4) + +------------------------------------------------------------------- +Wed Apr 7 13:09:09 CEST 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#38569, exit SuSEconfig.postfix if + mktemp fails + +------------------------------------------------------------------- +Tue Mar 30 11:13:38 CEST 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#37409 + the saslauthd socket is not copied to chroot jail due to + a wrong test in SuSEconfig.postfix (used -L instead of -S) + +------------------------------------------------------------------- +Mon Mar 29 20:03:16 CEST 2004 - choeger@suse.de + +- only add ::1 to inet_interfaces when SMTPD_LISTEN_REMOTE=no + AND ipv6 is enabled + +------------------------------------------------------------------- +Mon Mar 29 11:03:56 CEST 2004 - choeger@suse.de + +- Bugfix Bug ID#37293, SuSEConfig complains POSTFIX_ADD_* parameters are + unknown (in turkish locale settings) + added LC_CTYPE=POSIX to SuSEconfig.postfix + +------------------------------------------------------------------- +Thu Mar 25 10:54:26 CET 2004 - choeger@suse.de + +- updated to tls+ipv6 version 1.22 (related to Bugzilla ID#35884) + - Feature: Support "inet_interfaces = IPv4:all" and "inet_interfaces = + IPv6:all", to restrict postfix to use either IPv4-only or IPv6-only. A more + complete implementation will be part of a future patch. (Slightly modified) + patch by Michal Ludvig, SuSE. Files: util/interfaces_to_af.[ch], + util/inet_addr_local.c, global/own_inet_addr.c, + global/wildcard_inet_addr.[ch], master/master_ent.ch + - Bugfix: In Postfix snapshots, a #define was misplaced with the effect that + IPv6 subnets were not included in auto- generated $mynetworks (i.e., + mynetworks not defined in main.cf, when also mynetworks_style=subnet) on + Linux 2.x systems. File: utils/sys_defs.h +- now adding ::1 to inet_interfaces when SMTPD_LISTEN_REMOTE=no + (related to Bugzilla ID#35884) +- enabled ipv6 again + +------------------------------------------------------------------- +Thu Mar 18 12:37:44 CET 2004 - choeger@suse.de + +- updated to most recent snapshot version 2.0.19-20040312: + Patch 19 fixes two low-priority problems: + + - When mail is submitted at a high rate with the Postfix sendmail + command, the pickup daemon is keps busy long enough that it it + terminated by the watchdog timer (a feature that prevents Postfix + from locking up permanently). + + - Malformed addresses in SMTP commands could result in table looks + with zero-length search strings, causing trouble with NIS lookups. + +------------------------------------------------------------------- +Wed Mar 17 16:51:00 CET 2004 - choeger@suse.de + +- disable IPv6 patch as it introduces problems for people + who do not use IPv6, see Bugzilla ID#35884, + "ipv6 mynetworks don't work" + +------------------------------------------------------------------- +Mon Mar 8 15:58:35 CET 2004 - choeger@suse.de + +- be a nice packager and strictly follow + http://www.porcupine.org/postfix-mirror/newdoc/PACKAGE_README.html + (added setgid_group=... to post-install upgrade-package) + +------------------------------------------------------------------- +Fri Feb 27 11:37:56 CET 2004 - choeger@suse.de + +- update to most recent version 2.0.18-20040209 + +------------------------------------------------------------------- +Mon Feb 23 15:25:20 CET 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#34817, SuSEconfig.postfix doesn't specify direct path to + "postconf" and generates errors if run via sudo by a non-root user. + +------------------------------------------------------------------- +Fri Feb 6 13:15:49 CET 2004 - choeger@suse.de + +- update to postfix 2.0.18-20040205 +- enabled tls+ipv6 patch as it is now available for latest + pre 2.1 snapshot + +------------------------------------------------------------------- +Mon Feb 2 13:22:54 CET 2004 - choeger@suse.de + +- finally, the official TLS patchkit of Lutz hit the ground + +------------------------------------------------------------------- +Mon Feb 2 11:02:16 CET 2004 - choeger@suse.de + +- additional fix for the TLS extensions patch + should also fix Bugzilla ID#34218 + +------------------------------------------------------------------- +Fri Jan 23 12:15:00 CET 2004 - choeger@suse.de + +- fixed the smtp segfault + +------------------------------------------------------------------- +Thu Jan 22 21:37:51 CET 2004 - choeger@suse.de + +- updated to postfix 2.0.18-20040122 +- added new feature for specfile usetls to en/dis-able TLS + support +- temporary removed TLS support (self adapted patch to most recent + postfix snapshot version) as it currently results in smtp segfaulting + +------------------------------------------------------------------- +Thu Jan 22 13:53:44 CET 2004 - choeger@suse.de + +- update to recent postfix snapshot version 2.0.17-20040120 + which will become the next official release 2.1 around + next week according to Wietse Venema. +- added possibility to compile using the combined IPV6/TLS patch + which can be downloaded from http://www.ipnet6.org/postfix/ + just set useipv6 to 1 at the top of the specfile. + +------------------------------------------------------------------- +Thu Jan 22 01:45:58 CET 2004 - ro@suse.de + +- remove call to ldap_enable_cache + (function has been removed from openldap and was already + obsolete before (warning was issued back then)) + +------------------------------------------------------------------- +Wed Jan 14 16:38:06 CET 2004 - choeger@suse.de + +- added openslp register/derigister calls to postfix init-script + +------------------------------------------------------------------- +Mon Jan 12 15:50:35 CET 2004 - choeger@suse.de + +- add postfix user to group mail in case of POSTFIX_MDA==cyrus + to let postfix lmtp access /var/lib/imap/socket/lmtp + +------------------------------------------------------------------- +Thu Jan 8 16:00:30 CET 2004 - choeger@suse.de + +- Bugfix Bugzilla ID#33421, SMTP-Auth and relaying + added permit_sasl_authenticated also to smtpd_recipient_restrictions + in SuSEconfig.postfix + +------------------------------------------------------------------- +Mon Dec 1 14:51:06 CET 2003 - choeger@suse.de + +- always create temp files and always remove them later on + +------------------------------------------------------------------- +Mon Nov 17 12:51:09 CET 2003 - choeger@suse.de + +- some .spec improvements + +------------------------------------------------------------------- +Thu Oct 30 12:13:51 CET 2003 - mmj@suse.de + +- Run SuSEconfig after install + +------------------------------------------------------------------- +Wed Oct 29 20:23:44 CET 2003 - mmj@suse.de + +- Don't build as root +- Be nice and clean up after ourselves + +------------------------------------------------------------------- +Tue Oct 14 15:47:52 CEST 2003 - choeger@suse.de + +- update to postfix v2.0.16 +- update to tls extensions v0.8.16 +- Fix for Bugzilla ID#32114, fixed some if condition syntaxes + +------------------------------------------------------------------- +Tue Sep 16 10:29:25 CEST 2003 - choeger@suse.de + +- fixed example for POSTFIX_RELAYHOST, Bug ID#30756 + +------------------------------------------------------------------- +Mon Sep 8 09:49:49 CEST 2003 - choeger@suse.de + +- updated some sysconfig descriptions +- removed relays.osirosoft.com from the examples, Bug ID#30215 + +------------------------------------------------------------------- +Thu Sep 4 15:40:25 CEST 2003 - kukuk@suse.de + +- Fix next useradd call + +------------------------------------------------------------------- +Wed Sep 3 11:31:54 CEST 2003 - choeger@suse.de + +- conf/postfix-files as input for /etc/permissions.d/postfix (Bug ID#29915) +- generate better amavisd-new master.cf line: + limit maxproc to 2 and use brackets around localhost + (Bug ID#29917) + +------------------------------------------------------------------- +Mon Sep 1 13:08:33 CEST 2003 - choeger@suse.de + +- use conf/postfix-files as input for directories and permissions + for files/directories in/below $queue_directory and $command_directory +- use /var/lib/imap/socket/lmtp as lmtp socket in SuSEconfig.postfix + and change access modes of /var/lib/imap and /var/lib/imap/socket + to let postfix lmtp access the unix socket + +------------------------------------------------------------------- +Fri Aug 29 11:43:53 CEST 2003 - kukuk@suse.de + +- Create postfix user as system account [Bug #29611] + +------------------------------------------------------------------- +Fri Aug 29 08:48:52 CEST 2003 - kukuk@suse.de + +- Adjust sendmail permissions +- Create /var/spool/postfix/public with permissions postfix is + using + +------------------------------------------------------------------- +Fri Aug 29 00:27:03 CEST 2003 - mmj@suse.de + +- Add sendmail to /etc/sysconfig/mail + +------------------------------------------------------------------- +Thu Aug 14 18:41:19 CEST 2003 - choeger@suse.de + +- update to Postfix 2.0 Patch 14 +- Bugfix Bugzilla ID#28921: + missing activation metadata in sysconfig template + +------------------------------------------------------------------- +Wed Jul 30 11:48:21 CEST 2003 - choeger@suse.de + +- new macros for stop/restart of services on rpm update/removal + +------------------------------------------------------------------- +Mon Jul 21 13:33:53 CEST 2003 - choeger@suse.de + +- chown user:group instead of user.group + +------------------------------------------------------------------- +Fri Jul 11 11:23:05 CEST 2003 - choeger@suse.de + +- update to tls extensions 0.8.15-2.0.13-0.9.7b + +------------------------------------------------------------------- +Tue Jul 1 15:44:05 CEST 2003 - choeger@suse.de + +- updated SuSEconfig to use amavisd-new instead of amavis[d]-postfix + +------------------------------------------------------------------- +Mon Jun 30 17:43:20 CEST 2003 - choeger@suse.de + +- update to Postfix 2.0 Patch 13 +- After "postfix reload", the master daemon now warns when the + inet_interfaces parameter setting has changed, and ignores the + change, instead of passing incorrect information to the smtp + server. +- After the postdrop command change with Postfix 2.0.11, the postcat + command no longer recognized "maildrop" queue files as valid. +- Mail could bounce when two messages were delivered simultaneously + to a non-existent mailbox file. The safe_open() code that prevents + race condition exploits will now try a little harder when it + actually encounters a race condition. +- update to tls extensions 0.8.14-2.0.12-0.9.7b + +------------------------------------------------------------------- +Thu Jun 12 13:27:48 CEST 2003 - choeger@suse.de + +- also change path to smtpd.conf in sysconfig template parameter + description dependent on what %{_lib} is set to. + +------------------------------------------------------------------- +Thu Jun 12 09:51:33 CEST 2003 - choeger@suse.de + +- update to postfix 2.0, patchlevel 12 + +------------------------------------------------------------------- +Wed Jun 11 17:55:21 CEST 2003 - choeger@suse.de + +- mkdir -p $RPM_BUILD_ROOT/%{_libdir}/sasl2 instead of + $RPM_BUILD_ROOT/usr/lib/sasl2 + and we also can build on 64bit archs + +------------------------------------------------------------------- +Wed Jun 11 14:25:29 CEST 2003 - choeger@suse.de + +- package /usr/lib/sasl2/smtpd.conf using %{_libdir}/sasl2/smtpd.conf +- added /etc/postfix to filelist + +------------------------------------------------------------------- +Wed Jun 11 09:11:11 CEST 2003 - choeger@suse.de + +- update to postfix 2.0, patchlevel 11 +- update to tls extensions 0.8.13-2.0.10-0.9.7b + +------------------------------------------------------------------- +Fri May 23 14:33:01 CEST 2003 - choeger@suse.de + +- updated SuSE/master.cf toplevel comments + +------------------------------------------------------------------- +Fri May 23 14:19:43 CEST 2003 - choeger@suse.de + +- update to postfix 2.0, patchlevel 10 + +------------------------------------------------------------------- +Mon May 19 12:42:36 CEST 2003 - choeger@suse.de + +- remove installed (but unpackaged) file /etc/postfix/aliases + +------------------------------------------------------------------- +Mon May 19 10:12:52 CEST 2003 - choeger@suse.de + +- path to ca, certificate and key is relative to $POSTFIX_SSL_PATH, + added $POSTFIX_SSL_PATH/ to the relevant parts of SuSEconfig.postfix + +------------------------------------------------------------------- +Wed May 14 11:29:48 CEST 2003 - choeger@suse.de + +- correctly handle new POSTFIX_SMTP_TLS_CLIENT parameter in + SuSEconfig.postfix (activate/deactivate master.cf entries) + +------------------------------------------------------------------- +Wed May 14 11:05:36 CEST 2003 - choeger@suse.de + +- added libxcrypt to chroot jail, Bugzilla ID#25766 + +------------------------------------------------------------------- +Tue May 13 20:40:00 CEST 2003 - choeger@suse.de + +- added TLS_CLIENT support, Bugzilla ID#26647 + +------------------------------------------------------------------- +Wed Apr 23 13:43:02 CEST 2003 - choeger@suse.de + +- update to postfix 2.0, patchlevel 9 + +------------------------------------------------------------------- +Tue Apr 15 10:27:13 CEST 2003 - ro@suse.de + +- fixed neededforbuild + +------------------------------------------------------------------- +Mon Apr 7 12:58:01 CEST 2003 - choeger@suse.de + +- update to postfix 2.0, patchlevel 7 +- update to tls extensions 0.8.13-2.0.6-0.9.7a +- Bugfix Bugzilla ID#25905, do not restrict mailbox size per default + +------------------------------------------------------------------- +Sat Mar 8 15:56:26 CET 2003 - choeger@suse.de + +- use checkproc to check if there really is a postfix master + process running when there's a pid file lying around. + (Bugzilla ID#24910) + +------------------------------------------------------------------- +Thu Mar 6 11:02:12 CET 2003 - choeger@suse.de + +- update to Postfix 2.0 Patch 06 +- Postfix now truncates non-address information in message address + headers (comments, etc.) to 250 characters per address. This should + rarely present a problem. Reportedly, junk mail from poorly written + software can trigger the protection, but that is no great loss. +- Some little fixes to documentation. + +------------------------------------------------------------------- +Tue Mar 4 10:29:31 CET 2003 - choeger@suse.de + +- update to Postfix 2.0 Patch 05 +- The SMTP server's hard and soft error limits were off by one. + With "smtpd_hard_error_limit = 1", Postfix will now disconnect + after the first error, instead of the second one. +- The proxymap server could deadlock when the mydestination parameter + setting included a proxymapped lookup table. +- Some little fixes to documentation. + +------------------------------------------------------------------- +Sat Mar 1 16:41:10 CET 2003 - choeger@suse.de + +- when updating postfix, check whether post-install changed + main/master.cf and update md5sums to not confuse SuSEconfig +- when installing postfix on a fresh system, create md5sums + in %post to be able to let check_md5_and_move() detect + changes that a user might have done without running SuSEconfig + before. + +------------------------------------------------------------------- +Thu Feb 27 19:01:32 CET 2003 - choeger@suse.de + +- no longer remove md5sums of main.cf and master.cf during + postinstall, as SuSEconfig then no longer knows, whether + main.cf/master.cf had been modified by the user. + Disadvantage: as postfix permanently needs basic changes + to both main and master.cf, SuSEconfig.postfix will frequently + generate .SuSEconfig files although the user did not change anything + Bugzilla ID#24432 + +------------------------------------------------------------------- +Fri Feb 21 10:04:48 CET 2003 - choeger@suse.de + +- update to Postfix 2.0 Patch 04 + - The format of maildir filenames is synchronized with the present + version of the maildir definition document. This format was already + adopted by the 20030126 snapshot release. + - The time limit on delivery to external commands was not enforced. + This was broken probably some time before the first public Postfix + release. + - Duplicate elimination after virtual alias expansion works again. + This was broken with the introduction of the original recipient + attribute. + - The local pickup daemon dropped incomplete records from local + submissions. This was broken somewhere in the middle of 2002. + +------------------------------------------------------------------- +Sat Feb 15 14:59:54 CET 2003 - choeger@suse.de + +- Bugfix Bugzilla ID#23675: new service proxymap will not be + appended during update + +------------------------------------------------------------------- +Mon Feb 10 16:25:39 CET 2003 - choeger@suse.de + +- also check whether amavisd-postfix is installed and set up + filter section in master.cf + +------------------------------------------------------------------- +Thu Jan 30 11:43:03 CET 2003 - choeger@suse.de + +- update to Postfix 2.0 Patch 03 + - Postfix 2.0 broke relocated table lookup results with mail not + rejected at the SMTP port, causing "User has moved to" text to be + deleted. + - A widely used maildir filename generating algorithm was broken. + This affects all Postfix versions with maildir support. Instead of + TIME.PID_COUNT.HOST Postfix now uses TIME.DEVICE_INODE.HOST. + - Postfix 2.0 gave incorrect FILTER_README instructions for sites + that wish to disable virtual alias mapping before the content + filter. +- postfix-lib64.patch code now integrated in postfix + +------------------------------------------------------------------- +Fri Jan 24 11:52:17 CET 2003 - choeger@suse.de + +- changed SuSEconfig.postfix and smtpd.conf to use sasl2 + +------------------------------------------------------------------- +Thu Jan 23 13:07:17 CET 2003 - choeger@suse.de + +- forgot to add tlsmgr to master.cf + +------------------------------------------------------------------- +Thu Jan 23 11:43:24 CET 2003 - choeger@suse.de + +- Hmmm, just noticed, that suddenly 2.0.0.x became 2.0.x + must have missed something... +- updated SuSE/master.cf (new proxymap service) + +------------------------------------------------------------------- +Thu Jan 16 10:21:27 CET 2003 - choeger@suse.de + +- added POSTFIX_ADD_MESSAGE_SIZE_LIMIT as example to sysconfig.postfix + (Bugzilla ID#22907) + +------------------------------------------------------------------- +Tue Jan 14 12:51:56 CET 2003 - choeger@suse.de + +- build using sasl2 + +------------------------------------------------------------------- +Fri Jan 10 13:24:43 CET 2003 - choeger@suse.de + +- update to postfix v2 (version 2.0.0.2) + +------------------------------------------------------------------- +Wed Dec 11 11:44:51 CET 2002 - choeger@suse.de + +- added sysconfig metadata to sysconfig templates +- updated to new tls extensions + +------------------------------------------------------------------- +Fri Nov 29 13:16:42 CET 2002 - choeger@suse.de + +- Bugfix Bugzilla ID#21865: don't copy directories into + directories when updating chroot jail in cpifnewer() +- Update to version 1.11, pl12 + +------------------------------------------------------------------- +Tue Nov 19 14:29:36 CET 2002 - choeger@suse.de + +- new SuSEconfig.postfix features: + . SMTP-AUTH server + . SMTP-AUTH client + . TLS Server + +------------------------------------------------------------------- +Tue Nov 5 15:08:43 CET 2002 - choeger@suse.de + +- quote args of tr command + +------------------------------------------------------------------- +Mon Nov 4 13:52:51 CET 2002 - choeger@suse.de + +- new feature: POSTFIX_ADD_* command in sysconfig/postfix to + be able to add any regular postfix command via SuSEconfig +- Bugfix Bugzilla ID#21120 added POSTFIX_ADD_MAILBOX_SIZE_LIMIT + as example with value 0 (unlimited) +- added a header to main.cf explaining that many postfix + parameters have been added to the end of main.cf + +------------------------------------------------------------------- +Tue Oct 15 11:27:46 CEST 2002 - choeger@suse.de + +- Bugfix for Bugzilla ID#20754 + missed some parameters when restoring main.cf or master.cf + from scratch + +------------------------------------------------------------------- +Wed Oct 9 20:34:03 CEST 2002 - choeger@suse.de + +- NULLCLIENT did not work because SuSEconfig searches for the wrong + keyword + +------------------------------------------------------------------- +Mon Oct 7 17:47:56 CEST 2002 - choeger@suse.de + +- Bugfix related to Bugzilla IDs 20506, 18298, 19294: + masquerade_classes should not be extended by envelope_recipient + +------------------------------------------------------------------- +Fri Sep 6 17:04:57 CEST 2002 - choeger@suse.de + +- added ypbind to X-UnitedLinux-Should-Start in init-script + +------------------------------------------------------------------- +Wed Aug 28 11:37:38 CEST 2002 - choeger@suse.de + +- added restoration mechanism to restore master.cf and/or main.cf + if they got deleted by (intention or) accident to SuSEconfig.postfix +- added ldap to X-UnitedLinux-Should-Start + +------------------------------------------------------------------- +Mon Aug 26 11:11:26 CEST 2002 - choeger@suse.de + +- Bugfix Bugzilla ID#18298: when setting FROM_HEADER, also unqualified + envelope recipients should be qualified to FROM_HEADER, not to + myorigin, added envelope_recipient to masquerade_classes +- Bugfix Bugzilla ID#18297: %post touches main.cf and master.cf so it + may happen, that an update leaves .SuSEconfig files. + Remove /var/adm/SuSEconfig/md5/etc/postfix/main.cf and master.cf + in %post +- Bugfix Bugzilla ID#18301: sendmail and postfix have different + opinions on the usage of NULLCLIENT. Moved NULLCLIENT to + sysconfig.postfix.POSTFIX_NULLCLIENT +- added exim to Conflicts + +------------------------------------------------------------------- +Thu Aug 22 09:47:51 CEST 2002 - choeger@suse.de + +- wait for qmgr in the background for a maximum of 60 seconds + +------------------------------------------------------------------- +Wed Aug 21 17:07:39 CEST 2002 - choeger@suse.de + +- Bugfix for init-script: + wait for qmgr to be ready before calling postfix flush + +------------------------------------------------------------------- +Wed Aug 14 15:59:04 CEST 2002 - choeger@suse.de + +- added accidently removed line in master.cf for amavis, + Bugzilla ID#17732 + +------------------------------------------------------------------- +Tue Aug 13 10:08:47 CEST 2002 - choeger@suse.de + +- exclude .rpmsave and .rpmorig from /etc/aliases.d expansion + +------------------------------------------------------------------- +Wed Aug 7 11:55:55 CEST 2002 - choeger@suse.de + +- added netcfg to Prereq (/etc/aliases) + +------------------------------------------------------------------- +Tue Aug 6 11:28:56 CEST 2002 - choeger@suse.de + +- added pcre openldap2-client to prereq (Bugzilla ID#17447) + +------------------------------------------------------------------- +Mon Aug 5 16:38:49 CEST 2002 - choeger@suse.de + +- completed Prereq + +------------------------------------------------------------------- +Fri Jul 19 16:49:57 CEST 2002 - choeger@suse.de + +- Bugfix for the handling of POSTFIX_MASQUERADE_DOMAIN + and FROM_HEADER +- removed main.cf from SuSE.tar.gz +- added X-UnitedLinux-Should-Start: cyrus to init-script + +------------------------------------------------------------------- +Thu Jul 18 13:57:44 CEST 2002 - choeger@suse.de + +- set local as default MDA again + reason: postfix does not execute any external programs like procmail + with uid 0, so root mails will go to /var/mail/nobody, which + will confuse people +- remove setting of SUSE_RELEASE version in the (E)SMTP banner + +------------------------------------------------------------------- +Fri Jul 12 11:08:03 CEST 2002 - choeger@suse.de + +- removed /etc/aliases from filelist, it's now in netcfg + +------------------------------------------------------------------- +Thu Jul 11 14:16:25 CEST 2002 - choeger@suse.de + +- removed 'q' flag from vscan transport definition, because + current amavis versions have a rfc2821_mailbox_addr function +- remove old aliases.db files in %post +- do not use unset in %post + +------------------------------------------------------------------- +Mon Jul 8 15:14:00 CEST 2002 - choeger@suse.de + +- make procmail the default MDA + +------------------------------------------------------------------- +Fri Jul 5 17:11:03 CEST 2002 - choeger@suse.de + +- use %{_lib} macro to detect platforms with lib64 + directories + +------------------------------------------------------------------- +Fri Jul 5 16:34:38 CEST 2002 - choeger@suse.de + +- make chroot jail function lib64 aware + +------------------------------------------------------------------- +Thu Jul 4 13:53:40 CEST 2002 - uli@suse.de + +- fixed libnsl detection on lib64 systems + +------------------------------------------------------------------- +Thu Jul 4 10:34:26 CEST 2002 - choeger@suse.de + +- ldap_url_search_st is no longer available in OpenLDAP v2.1 + added a patch, that uses ldap_url_parse +- added new feature POSTFIX_MDA, Bugzilla ID#16720 + +------------------------------------------------------------------- +Fri Jun 7 13:34:09 CEST 2002 - choeger@suse.de + +- changed POSTFIX_BASIC_SPAM_PREVENTION. It can now be set to + either off(default), medium or hard +- cleaned up SuSEconfig.postfix +- prepared for /etc/aliases.d + +------------------------------------------------------------------- +Wed Jun 5 18:09:16 CEST 2002 - choeger@suse.de + +- new FEATURES: POSTFIX_RBL_HOSTS, POSTFIX_BASIC_SPAM_PREVENTION, + Bugzilla ID#16383 +- moved sample-*.cf files to %{_docdir}/postfix/samples + +------------------------------------------------------------------- +Wed Jun 5 11:14:29 CEST 2002 - choeger@suse.de + +- update to patchlevel 11, version 1.1.11 +- new FEATURE: POSTFIX_UPDATE_MAPS + +------------------------------------------------------------------- +Fri May 24 13:39:05 CEST 2002 - choeger@suse.de + +- update to patchlevel 10, version 1.1.10 +- create required users and groups in %pre install + +------------------------------------------------------------------- +Thu Apr 25 16:55:58 CEST 2002 - choeger@suse.de + +- removed provides of my own packagename... + +------------------------------------------------------------------- +Fri Apr 19 13:25:32 CEST 2002 - choeger@suse.de + +- Bugfix for README.SuSE: POSTFIX_CREATECF is now + MAIL_CREATE_CONFIG + +------------------------------------------------------------------- +Thu Apr 4 11:36:52 CEST 2002 - choeger@suse.de + +- update to patchlevel 7, version 1.1.7 +- introduced new feature POSTFIX_LAPTOP + +------------------------------------------------------------------- +Tue Mar 26 15:21:18 CET 2002 - choeger@suse.de + +- update to patchlevel 5, version 1.1.5 + +------------------------------------------------------------------- +Tue Mar 12 15:28:24 CET 2002 - choeger@suse.de + +- Bugfix: don't check whether POSTFIX_MASQUERADE_DOMAIN is empty + or not, because else we won't be able to clear it. + +------------------------------------------------------------------- +Thu Feb 28 10:21:36 CET 2002 - choeger@suse.de + +- added flags=q to amavis transport definition (link@suse.de): + [...] + If your postfix is older than snapshot 20010610, leave out the + "flags=q" part. However, amavis will not function properly with + envelope adresses that contain whitespace in the local-part. + This is quite rare, but has been observed a few times. + [...] + +------------------------------------------------------------------- +Mon Feb 25 13:58:05 CET 2002 - choeger@suse.de + +- update to version 1.1.4 (1.1, patchlevel 4) + Bugfix (excerpt from HISTORY): + .................................................................. + off-by-one error, causing a null byte to be + written outside dynamically allocated memory in + the queue manager with addresses of exactly 100 + bytes long, resulting in SIGSEGV on systems with + an "exact fit" malloc routine. + .................................................................. +- added new option SMTPD_LISTEN_REMOTE to /etc/sysconfig/mail + which has been introduced by the SuSE dist-team (excerpt): + .................................................................. + sendmail does have an option to listen only on the local port, + this should be the default. + A flag "SMTPD_LISTEN_REMOTE" in /etc/sysconfig/mail will be used + to decide if port 25 should be opened externally. + The sendmail package will send a mail to root explaining this + fact. sendmail updates will copy the value of START_SMTPD to this + new flag. + .................................................................. + As this is a totally different behaviour compared to old releases, + SMTPD_LISTEN_REMOTE will be set to "yes", if POSTFIX_CREATECF + (now MAIL_CREATE_CONFIG) had been set to "yes" before the update. + +------------------------------------------------------------------- +Thu Feb 21 12:39:55 CET 2002 - choeger@suse.de + +- fillup workaround + +------------------------------------------------------------------- +Thu Feb 21 11:23:52 CET 2002 - choeger@suse.de + +- hostname handling is still annoying + added some piece of code to SuSEconfig.postfix to + get a valid hostname + +------------------------------------------------------------------- +Mon Feb 18 16:03:40 CET 2002 - choeger@suse.de + +- %postinst cleanup: + . use rename_sysconfig_variable macro + . use remove_and_set macro + instead of directly calling fillup + +------------------------------------------------------------------- +Wed Feb 13 17:27:37 CET 2002 - choeger@suse.de + +- FQHOSTNAME has been removed from /etc/sysconfig/network/config + and is now set in /etc/HOSTNAME, which wasn't FQ in the past. + *Please, don't change it again* +- if POSTFIX_LOCALDOMAINS is set, do not append + "$myhostname, localhost.$mydomain" anymore + +------------------------------------------------------------------- +Tue Feb 12 16:31:14 CET 2002 - choeger@suse.de + +- Also take care of the localhost:10025 mailer definition when + setting up chroot options + +------------------------------------------------------------------- +Mon Feb 11 09:27:47 CET 2002 - choeger@suse.de + +- Do not set myorigin to FROM_HEADER + +------------------------------------------------------------------- +Thu Feb 7 10:10:55 CET 2002 - choeger@suse.de + +- Bugfix(SuSEconfig.postfix): typo in path to /etc/sysconfig/amavis + +------------------------------------------------------------------- +Mon Feb 4 11:25:51 CET 2002 - choeger@suse.de + +- SuSEconfig.postfix enhancement: get hostname from hostname -f + Bugfix: get FQHOSTNAME from /etc/sysconfig/network/config +- added -y to fillup_and_insserv to create startlinks + after installation +- changed company name to SuSE Linux AG in copyright headers + +------------------------------------------------------------------- +Mon Feb 4 09:44:45 CET 2002 - choeger@suse.de + +- update to postfix 1.1.3 and tls extensions 0.8.3 + minor bugfixes + http://groups.yahoo.com/group/postfix-users/message/52953 + +------------------------------------------------------------------- +Fri Feb 1 20:37:27 CET 2002 - choeger@suse.de + +- Bugfix: Forgot to assign a name to TMPDIR in SuSEconfig.postfix + +------------------------------------------------------------------- +Fri Feb 1 11:43:17 CET 2002 - choeger@suse.de + +- added resolve_local_panic.patch + http://groups.yahoo.com/group/postfix-users/message/52746 + +------------------------------------------------------------------- +Wed Jan 30 15:44:10 CET 2002 - choeger@suse.de + +- update of tls extensions to 0.8.2 + +------------------------------------------------------------------- +Mon Jan 28 15:00:07 CET 2002 - choeger@suse.de + +- update to version 1.1.2 +- sysconfig.mail changes + +------------------------------------------------------------------- +Tue Jan 22 12:08:43 CET 2002 - choeger@suse.de + +- renamed cleanup.fillup to sysconfig.postfix.cleanup +- added postqueue patch, see + http://groups.yahoo.com/group/postfix-users/message/51611 + for more details + +------------------------------------------------------------------- +Mon Jan 21 14:56:39 CET 2002 - choeger@suse.de + +- update to official release version 1.1.0 +- moved some stuff to /etc/sysconfig/mail +- cleaned up /etc/rc.config access +- added some safety checks to SuSEconfig.postfix + +------------------------------------------------------------------- +Wed Jan 16 16:58:53 CET 2002 - choeger@suse.de + +- update to version 20020115 (release candidate for Postfix + official release version 1.1) + +------------------------------------------------------------------- +Tue Jan 15 16:20:13 CET 2002 - choeger@suse.de + +- some improvements to SuSEconfig.postfix + +------------------------------------------------------------------- +Fri Jan 11 17:52:25 CET 2002 - choeger@suse.de + +- updated to version 20020107 +- added postinstall section to update from previous versions + of postfix + +------------------------------------------------------------------- +Tue Jan 8 20:11:07 CET 2002 - egmont@suselinux.hu + +- Changed /sbin/init.d to /etc/init.d in init script comment + +------------------------------------------------------------------- +Mon Jan 7 15:01:16 CET 2002 - choeger@suse.de + +- added sender_canonical_maps to SuSEconfig.postfix to let + the new YaST2 module setup this map similar to sendmails + genericstable + +------------------------------------------------------------------- +Thu Jan 3 13:51:45 CET 2002 - kukuk@suse.de + +- SuSEconfig.postfix shell script is no config file [Bug #12712] + +------------------------------------------------------------------- +Wed Dec 19 15:26:20 CET 2001 - choeger@suse.de + +- Made initscript more LSB compliant (status codes) +- Bugfix for Bugzilla ID#12672 (improve explanation + of POSTFIX_LOCALDOMAINS) +- robustness enhancement for SuSEconfig.postfix + +------------------------------------------------------------------- +Fri Dec 14 15:42:31 CET 2001 - choeger@suse.de + +- typo in specfile (master.cf installed as main.cf) + +------------------------------------------------------------------- +Thu Dec 13 11:25:44 CET 2001 - choeger@suse.de + +- update to version 20011210 +- some changes to SuSEconfig.postfix: + . added POSTFIX_UPDATE_CHROOT_JAIL variable, see README.SuSE + . some cleanups for chroot jail + . little bugfixes + +------------------------------------------------------------------- +Thu Dec 13 01:16:57 CET 2001 - ro@suse.de + +- moved rc.config.d -> sysconfig + +------------------------------------------------------------------- +Wed Nov 28 18:36:10 CET 2001 - choeger@suse.de + +- update to version 20011127 +- some changes to SuSEconfig.postfix: + . added more robustness (Jehova) + . do not chown -R postfix to /var/spool/postfix + . query for package cyrus-sasl instead of sasl + +------------------------------------------------------------------- +Tue Nov 20 16:13:00 CET 2001 - choeger@suse.de + +- update to version 20011115 + Bugfix for a memory exhaustion bug in smtpd + see http://groups.yahoo.com/group/postfix-users/message/46597 +- remove START_ variable + +------------------------------------------------------------------- +Fri Nov 9 14:54:24 CET 2001 - choeger@suse.de + +- some changes to specfile (thanks to Simon J Mudd from whom + I copied some code) + +------------------------------------------------------------------- +Tue Nov 6 15:19:18 CET 2001 - choeger@suse.de + +- fix some SuSEconfig.postfix bugs: + . master.cf chroot column can also contain '-' + . don't do anything if POSTFIX_CREATECF != yes + +------------------------------------------------------------------- +Fri Oct 26 13:11:17 CEST 2001 - choeger@suse.de + +- update to most recent snapshot version 20011008 + +------------------------------------------------------------------- +Thu Oct 25 14:36:47 CEST 2001 - choeger@suse.de + +- update to pl05 + +------------------------------------------------------------------- +Fri Oct 19 12:53:44 CEST 2001 - choeger@suse.de + +- Bugfix, Bugzilla ID#11914 + +------------------------------------------------------------------- +Wed Sep 26 09:33:34 CEST 2001 - choeger@suse.de + +- ALWAYS create master.cf, even is POSTFIX_CREATECF is set + to no, because else chroot mode may not work, Bugzilla ID#11359 + +------------------------------------------------------------------- +Thu Sep 13 14:34:06 CEST 2001 - choeger@suse.de + +- removed an obsolete echo in start section of init-script + +------------------------------------------------------------------- +Thu Sep 6 13:48:29 CEST 2001 - choeger@suse.de + +- Bugfix in init-script: redirect output of postfix start + to dev/null and do not use startproc to start postfix + +------------------------------------------------------------------- +Tue Sep 4 18:09:43 CEST 2001 - choeger@suse.de + +- update to tls-extensions v0.7.9 + see http://groups.yahoo.com/group/postfix-users/message/41094 + for details + +------------------------------------------------------------------- +Fri Aug 31 13:54:02 CEST 2001 - choeger@suse.de + +- update of tls-extensions to 0.7.8 +- update of postfix to pl04 +- Bugfix: - check if postfix spool is set up before starting postfix + - start postfix with postfix start, because postfix-script + wouldn't be executed, else. + +------------------------------------------------------------------- +Tue Jul 10 14:34:17 CEST 2001 - choeger@suse.de + +- update of tls-extensions to 0.7.3 + +------------------------------------------------------------------- +Thu Jun 28 13:06:47 CEST 2001 - choeger@suse.de + +- bugfix: remove libs from chroot jail, that are no longer + valid, Bugzilla ID#9133 +- bugfix: init script was not LSB compliant, Bugzilla ID#9063 + +------------------------------------------------------------------- +Fri Jun 15 09:44:49 CEST 2001 - choeger@suse.de + +- added cyrus to require start in init-script +- "bugfix": bootstrap problem cyrus-imapd <-> postfix: + cyrus-imapd must run before postfix, but fails to create + lmtp socket, because /var/spool/postfix/public directory + isn't present. FIX: add it to filelist + +------------------------------------------------------------------- +Wed Jun 13 15:08:33 CEST 2001 - choeger@suse.de + +- install postrop with special SGID modes + +------------------------------------------------------------------- +Tue Jun 12 13:29:36 CEST 2001 - choeger@suse.de + +- improved SuSEconfig.postfix + - better main.cf handling + - new feature: chroot or not chroot + +------------------------------------------------------------------- +Mon May 28 09:36:49 CEST 2001 - choeger@suse.de + +- major bugfix: memory leak in the LDAP client module +- minor bugfixes + +------------------------------------------------------------------- +Wed May 9 20:15:27 CEST 2001 - mfabian@suse.de + +- bzip2 sources + +------------------------------------------------------------------- +Wed May 2 09:44:29 CEST 2001 - choeger@suse.de + +- updated to pl02, bugfixrelease + +------------------------------------------------------------------- +Mon Apr 30 11:41:35 CEST 2001 - choeger@suse.de + +- Bugfix for SuSEconfig.postfix: + Handling of TIMEZONE variable if set to unappropriate or no + value +- Improvement: Warnings are printed out in bold + +------------------------------------------------------------------- +Tue Apr 17 16:28:41 CEST 2001 - kukuk@suse.de + +- Don't use a RPM macro for version number + +------------------------------------------------------------------- +Fri Mar 30 10:08:15 CEST 2001 - choeger@suse.de + +- update to pl01, bugfixrelease + +------------------------------------------------------------------- +Tue Mar 27 13:16:45 CEST 2001 - choeger@suse.de + +- added libcrack to chroot jail, because + it is needed by pam_pwcheck + +------------------------------------------------------------------- +Thu Mar 15 01:08:35 CET 2001 - ro@suse.de + +- fixed neededforbuild for openldap + +------------------------------------------------------------------- +Mon Mar 5 11:49:48 CET 2001 - choeger@suse.de + +- first non-beta of the next postfix generation +- v20010228 + +------------------------------------------------------------------- +Tue Feb 27 11:22:24 CET 2001 - ro@suse.de + +- added cyrus-sasl-devel to neededforbuild + +------------------------------------------------------------------- +Tue Feb 27 09:51:56 CET 2001 - choeger@suse.de + +- new version, 20010225 +- removed notification message + +------------------------------------------------------------------- +Tue Feb 20 14:16:30 CET 2001 - choeger@suse.de + +- bugfix: wrong permissions for maildrop directory + +------------------------------------------------------------------- +Wed Jan 31 10:53:04 CET 2001 - choeger@suse.de + +- update to version 20010128 +- now linked against ldaplib2 + +------------------------------------------------------------------- +Fri Jan 5 14:25:11 CET 2001 - choeger@suse.de + +- bugfix: maildrop must be owned by postfix.root + +------------------------------------------------------------------- +Mon Dec 18 14:47:53 CET 2000 - choeger@suse.de + +- update to version 20001212 +- bugfix: insserv +- bugfix: missed openssl in neededforbuilt +- renamed to postfix, because a non-crypto version + is no longer needed + +------------------------------------------------------------------- +Wed Dec 13 15:52:43 CET 2000 - choeger@suse.de + +- Bugfix: postfix-script was not executable + +------------------------------------------------------------------- +Tue Dec 12 15:13:40 CET 2000 - choeger@suse.de + +- Bugfixes: + Provides in initscript + Use /bin/bash in SuSEconfig.postfix +- Update to version 20001210 + +------------------------------------------------------------------- +Thu Nov 30 08:35:09 CET 2000 - ro@suse.de + +- startscript sbin -> etc + +------------------------------------------------------------------- +Thu Nov 23 09:55:37 CET 2000 - choeger@suse.de + +- new version +- fix for neededforbuild +- fix for master.cf + +------------------------------------------------------------------- +Wed Nov 22 13:06:54 CET 2000 - choeger@suse.de + +- adopted to new init scheme + +------------------------------------------------------------------- +Wed Nov 15 16:13:12 CET 2000 - choeger@suse.de + +- fixed neededforbuild + +------------------------------------------------------------------- +Tue Nov 14 15:19:40 CET 2000 - choeger@suse.de + +- update to version 20001030 + +------------------------------------------------------------------- +Thu Nov 9 17:14:48 CET 2000 - choeger@suse.de + +- long packagename +- added rpm buildroot + +------------------------------------------------------------------- +Wed Nov 8 15:59:41 CET 2000 - uli@suse.de + +- fixed neededforbuild + +------------------------------------------------------------------- +Fri Nov 3 18:12:57 CET 2000 - bk@suse.de + +- src/util/dict_ldap.c:dict_ldap_lookup(): fix missing **-termination. + +------------------------------------------------------------------- +Tue Oct 24 17:28:06 CEST 2000 - fober@suse.de + +- s390,ppc: added -fsigned-char compiler option, to fix obscure segfaults. + (code is not signed/unsigned-char-clean) + +------------------------------------------------------------------- +Thu Oct 12 18:24:54 CEST 2000 - choeger@suse.de + +- yet another SuSEconfig.postfix bug (incorrect link) + +------------------------------------------------------------------- +Wed Oct 11 16:47:35 CEST 2000 - choeger@suse.de + +- bugfix for SuSEconfig.postfix + +------------------------------------------------------------------- +Mon Oct 9 13:54:13 CEST 2000 - choeger@suse.de + +- bugfix: missed to install new flush service + +------------------------------------------------------------------- +Mon Oct 9 11:48:39 CEST 2000 - choeger@suse.de + +- inititial revision of pfixtls + diff --git a/postfix.spec b/postfix.spec new file mode 100644 index 0000000..0487b7a --- /dev/null +++ b/postfix.spec @@ -0,0 +1,1563 @@ +# +# spec file for package postfix (Version 2.3.2) +# +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: postfix +#!BuildIgnore: sendmail +BuildRequires: db-devel mysql-devel openldap2-devel pcre-devel postgresql-devel +%define usetls 1 +URL: http://www.postfix.org/ +License: IBM Public License +Group: Productivity/Networking/Email/Servers +Provides: smtp_daemon +Conflicts: sendmail exim +Autoreqprov: on +Summary: A fast, secure, and flexible mailer +Version: 2.3.2 +Release: 26 +Source: postfix-%{version}.tar.gz +Source1: postfix-SuSE.tar.gz +Patch: dynamic_maps.patch +Patch1: dynamic_maps_pie.patch +Prereq: /usr/sbin/useradd /usr/sbin/groupadd %insserv_prereq %fillup_prereq /bin/sed /bin/awk /bin/grep textutils sh-utils fileutils pcre openldap2-client netcfg /sbin/ip +BuildRoot: %{_tmppath}/%{name}-%{version}-build +# +%package mysql +Summary: postfix plugin to support MySQL maps +Autoreqprov: on +Group: Productivity/Networking/Email/Servers +Prefix: %{_prefix} +Prereq: postfix +# +%package postgresql +Summary: postfix plugin to support PostgreSQL maps +Autoreqprov: on +Group: Productivity/Networking/Email/Servers +Prefix: %{_prefix} +Prereq: postfix +# +%package devel +Summary: Development headers for the postfix package. +Autoreqprov: on +Group: Productivity/Networking/Email/Servers +Prereq: postfix +# +# Some defines +# +%define postfixfiles postfix.filelist +%define pf_config_directory /etc/postfix +%define pf_daemon_directory /usr/lib/postfix +%define pf_command_directory /usr/sbin +%define pf_queue_directory /var/spool/postfix +%define pf_sendmail_path /usr/sbin/sendmail +%define pf_newaliases_path /usr/bin/newaliases +%define pf_mailq_path /usr/bin/mailq +%define pf_setgid_group maildrop +%define pf_readme_directory %{_docdir}/postfix/README_FILES +%define pf_html_directory %{_docdir}/postfix/html +%define pf_sample_directory %{_docdir}/postfix/samples +%define postfix_uid 51 +%define postfix_gid 51 +%define maildrop_gid 59 +%define conf_backup_dir /var/adm/backup/postfix +# +# --------------------------------------------------------------------------- +%prep +%setup -n postfix-%{version} -a 1 +%patch -p1 +%patch1 -p1 +# --------------------------------------------------------------------------- + +%build +export CCARGS="-DHAS_LDAP -DHAS_PCRE -DUSE_SASL_AUTH -I/usr/include/sasl" +export CCARGS="$CCARGS -DMAX_DYNAMIC_MAPS" +export CCARGS="$CCARGS -DHAS_MYSQL -I/usr/include/mysql" +export CCARGS="$CCARGS -DHAS_PGSQL -I/usr/include/pgsql" +export CCARGS="$CCARGS -DUSE_CYRUS_SASL" +export AUXLIBS="-lldap -llber -lpcre" +%if %suse_version > 810 +export AUXLIBS="$AUXLIBS -lsasl2" +%else +export AUXLIBS="$AUXLIBS -lsasl" +%endif +%if %{usetls} +export AUXLIBS="$AUXLIBS -lssl -lcrypto" +%endif +%if %{usetls} +export CCARGS="$CCARGS -DUSE_TLS" +%endif +export CCARGS="$CCARGS $RPM_OPT_FLAGS -Wno-comments" +%if %suse_version > 930 +export PIE=-pie +%endif +make makefiles DEBUG="" +cd lib +for i in dns global master tls util milter; do + ln -sf lib${i}.a libpostfix-${i}.so.1.0.1; +done +cd - +make LD_LIBRARY_PATH=$(pwd)/lib:${LD_LIBRARY_PATH} +# --------------------------------------------------------------------------- + +%install +/usr/sbin/groupadd -g %{postfix_gid} -o -r postfix 2> /dev/null || : +/usr/sbin/groupadd -g %{maildrop_gid} -o -r maildrop 2> /dev/null || : +/usr/sbin/useradd -r -o -g postfix -u %{postfix_uid} -s /bin/false -c "Postfix Daemon" -d /var/spool/postfix postfix 2> /dev/null || : +mkdir -p $RPM_BUILD_ROOT/%{_libdir} +install lib/*.1 $RPM_BUILD_ROOT/%{_libdir} +for i in $RPM_BUILD_ROOT/%{_libdir}/*.1; do + ln -sf ${i##*/} ${i%.*.*} +done +cd lib +for i in libpostfix-*; do + ln -sf $i $RPM_BUILD_ROOT/%{_libdir}/${i%so.*}so +done +cd - +ln -sf $(pwd)/lib/dict_* libexec/ +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RPM_BUILD_ROOT/%{_libdir} +sh postfix-install -non-interactive \ + install_root=%{buildroot} \ + config_directory=%{pf_config_directory} \ + daemon_directory=%{pf_daemon_directory} \ + command_directory=%{pf_command_directory} \ + queue_directory=%{pf_queue_directory} \ + sendmail_path=%{pf_sendmail_path} \ + newaliases_path=%{pf_newaliases_path} \ + mailq_path=%{pf_mailq_path} \ + manpage_directory=%{_mandir} \ + setgid_group=%{pf_setgid_group} \ + readme_directory=%{pf_readme_directory} +ln -sf ../sbin/sendmail $RPM_BUILD_ROOT/usr/lib/sendmail +for i in qmqp-source smtp-sink smtp-source; do + install -m 755 bin/$i $RPM_BUILD_ROOT/usr/sbin/$i +done +mkdir -p $RPM_BUILD_ROOT/etc/init.d +mkdir -p $RPM_BUILD_ROOT/sbin/conf.d +mkdir -p $RPM_BUILD_ROOT/etc/permissions.d +mkdir -p $RPM_BUILD_ROOT/%{_libdir}/sasl2 +mkdir -p $RPM_BUILD_ROOT/usr/sbin +mkdir -p $RPM_BUILD_ROOT/%{conf_backup_dir} +mkdir -p $RPM_BUILD_ROOT/%{pf_sample_directory} +mkdir -p $RPM_BUILD_ROOT/usr/include/postfix +%if %suse_version > 920 +mkdir -p $RPM_BUILD_ROOT/etc/pam.d +install -m 644 postfix-SuSE/smtp $RPM_BUILD_ROOT/etc/pam.d/smtp +%endif +#mkdir samples +install -m 755 postfix-SuSE/rc.postfix $RPM_BUILD_ROOT/etc/init.d/postfix +ln -sf ../etc/init.d/postfix $RPM_BUILD_ROOT/sbin/rcpostfix +mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates +rm -f $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.postfix +sed -e 's;@lib@;%{_lib};g' postfix-SuSE/sysconfig.postfix > $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.postfix +install -m 644 postfix-SuSE/sysconfig.mail-postfix $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.mail-postfix +rm -f $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.postfix +sed -e 's;@lib@;%{_lib};g' \ + -e 's;@conf_backup_dir@;%{conf_backup_dir};' \ + -e 's;@daemon_directory@;%{pf_daemon_directory};' \ + -e 's;@readme_directory@;%{pf_readme_directory};' \ + -e 's;@html_directory@;%{pf_html_directory};' \ + -e 's;@sendmail_path@;%{pf_sendmail_path};' \ + -e 's;@setgid_group@;%{pf_setgid_group};' \ + -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};' postfix-SuSE/SuSEconfig.postfix \ + > $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.postfix +chmod 755 $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.postfix +install -m 644 postfix-SuSE/master.cf $RPM_BUILD_ROOT/etc/postfix/master.cf +install -m 644 postfix-SuSE/dynamicmaps.cf $RPM_BUILD_ROOT/etc/postfix/dynamicmaps.cf +install -m 644 postfix-SuSE/permissions $RPM_BUILD_ROOT/etc/permissions.d/postfix +install -m 644 postfix-SuSE/sender_canonical $RPM_BUILD_ROOT/etc/postfix/sender_canonical +install -m 644 postfix-SuSE/relay_ccerts $RPM_BUILD_ROOT/etc/postfix/relay_ccerts +install -m 600 postfix-SuSE/sasl_passwd $RPM_BUILD_ROOT/etc/postfix/sasl_passwd +mkdir -p $RPM_BUILD_ROOT/etc/sasl2 +install -m 600 postfix-SuSE/smtpd.conf $RPM_BUILD_ROOT/etc/sasl2/smtpd.conf +install -m 644 postfix-SuSE/openssl_postfix.conf.in $RPM_BUILD_ROOT/etc/postfix/openssl_postfix.conf.in +install -m 755 postfix-SuSE/mkpostfixcert $RPM_BUILD_ROOT/usr/sbin/mkpostfixcert +rm -rf $RPM_BUILD_ROOT/var/spool/postfix +install -m 644 postfix-SuSE/master.cf $RPM_BUILD_ROOT/%{conf_backup_dir}/master.cf +{ +cat< $RPM_BUILD_ROOT/etc/postfix/main.cf +$RPM_BUILD_ROOT/usr/sbin/postconf -c $RPM_BUILD_ROOT/etc/postfix \ + -e "manpage_directory = %{_mandir}" \ + "setgid_group = %{pf_setgid_group}" \ + "mailq_path = %{pf_mailq_path}" \ + "newaliases_path = %{pf_newaliases_path}" \ + "sendmail_path = %{pf_sendmail_path}" \ + "readme_directory = %{pf_readme_directory}" \ + "html_directory = %{pf_html_directory}" \ + "sample_directory = %{pf_sample_directory}" \ + "daemon_directory = %{pf_daemon_directory}" \ + "biff = no" \ + "inet_protocols = all" +install -m 644 $RPM_BUILD_ROOT/etc/postfix/main.cf $RPM_BUILD_ROOT/%{conf_backup_dir}/main.cf +# ----------------------------------------------------------------------- +# preparing /etc/postfix/postfix-files to be able to use postfix +# own upgrade script. Unfortunately it looks in postfix-files and +# expects aliases file at /etc/postfix/aliases and it expects to have +# unzipped manpages +# also remove the both sql dictionary libs as they will not be installed +# per default +# ----------------------------------------------------------------------- +rm -f $RPM_BUILD_ROOT/etc/postfix/aliases +rm -f $RPM_BUILD_ROOT/etc/postfix/postfix-files +sed 's;^$config_directory/aliases\(.*\);/etc/aliases\1;' conf/postfix-files \ + | grep -v '^$manpage_directory' | grep -Ev 'dict_(mysql|pgsql)' > $RPM_BUILD_ROOT/etc/postfix/postfix-files +rm -f %{postfixfiles} +test -f conf/postfix-files || { + echo "conf/postfix-files does not exist!" + exit 1 +} +echo "%defattr(-,root,root)" >> %{postfixfiles} +exec > %{postfixfiles} + mkdir -m $mode -p $RPM_BUILD_ROOT/$path + printf '%%-38s %%-18s %%04d\n' $path "${owner}.${group}" $mode >> $RPM_BUILD_ROOT/etc/permissions.d/postfix + ;; + \$command_directory/*) + path=${path/\$command_directory/\/usr\/sbin} + group=${group/-/root} + echo "%attr($mode,$owner,$group) $path" >> %{postfixfiles} + printf '%%-38s %%-18s %%04d\n' $path "${owner}.${group}" $mode >> $RPM_BUILD_ROOT/etc/permissions.d/postfix + ;; + *) continue;; + esac +done +# create paranoid permissions file +printf '%%-38s %%-18s %%s\n' /usr/sbin/postdrop "root.%{pf_setgid_group}" "0755" >> $RPM_BUILD_ROOT/etc/permissions.d/postfix.paranoid +printf '%%-38s %%-18s %%s\n' /usr/sbin/postqueue "root.%{pf_setgid_group}" "0755" >> $RPM_BUILD_ROOT/etc/permissions.d/postfix.paranoid +install -m 644 include/*.h $RPM_BUILD_ROOT/usr/include/postfix/ + +%pre +VERSIONTEST=$(test -x usr/sbin/postconf && usr/sbin/postconf proxy_read_maps 2>/dev/null) +if [ -z "$VERSIONTEST" -a -f var/spool/postfix/pid/master.pid ]; then + if checkproc -p var/spool/postfix/pid/master.pid usr/lib/postfix/master; then + echo "postfix is still running. You have to stop postfix in order to" + echo "install a newer version." + exit 1 + fi +fi +/usr/sbin/groupadd -g %{postfix_gid} -o -r postfix 2> /dev/null || : +/usr/sbin/groupadd -g %{maildrop_gid} -o -r maildrop 2> /dev/null || : +/usr/sbin/useradd -r -o -g postfix -u %{postfix_uid} -s /bin/false -c "Postfix Daemon" -d /var/spool/postfix postfix 2> /dev/null || : +%if %suse_version >= 900 + +%preun +%stop_on_removal postfix +%endif + +%post +# Remember whether we had an older version of postfix installed before +# doing the fillup +PFOLD= +# Update from SuSE Linux <= 7.3 +test -e etc/rc.config.d/postfix.rc.config && \ + { grep POSTFIX_UPDATE_CHROOT_JAIL \ + etc/rc.config.d/postfix.rc.config >/dev/null || PFOLD=yes; } +# Update from SuSE Linux > 7.3 +test -e etc/sysconfig/postfix && \ + { grep POSTFIX_UPDATE_CHROOT_JAIL \ + etc/sysconfig/postfix >/dev/null || PFOLD=yes; } +test -e etc/rc.config.d/postfix.rc.config -a -f etc/rc.config && { + cat etc/rc.config.d/postfix.rc.config >> etc/rc.config + rm -f etc/rc.config.d/postfix.rc.config +} +# rc.config(.d) related +%{rename_sysconfig_variable POSTFIX_CREATECF MAIL_CREATE_CONFIG} +%{fillup_and_insserv -y postfix} +if [ -f etc/sysconfig/mail ]; then + . etc/sysconfig/mail + if [ -n "$NULLCLIENT" ]; then + RCTMP=etc/sysconfig/postfix.$$ + sed "s/^POSTFIX_NULLCLIENT.*/POSTFIX_NULLCLIENT=\"$NULLCLIENT\"/" \ + etc/sysconfig/postfix > $RCTMP + mv $RCTMP etc/sysconfig/postfix + fi +fi +# +%{remove_and_set POSTFIX_MAILDROP_MODE} +%{remove_and_set -n mail NULLCLIENT} +%{fillup_only -an mail} +# postfix config is now in /etc/sysconfig/postfix... +# ------------------------------------------------------------------ +if [ -n "$PFOLD" ]; then + # We have to set POSTFIX_UPDATE_CHROOT_JAIL according to MAIL_CREATE_CONFIG + RCTMP=etc/sysconfig/postfix.$$ + . etc/sysconfig/postfix + . etc/sysconfig/mail + if [ "`echo $POSTFIX_CHROOT | tr 'A-Z' 'a-z' `" == "yes" -o \ + "`echo $MAIL_CREATE_CONFIG | tr 'A-Z' 'a-z' `" == "yes" ]; then + echo "Setting POSTFIX_UPDATE_CHROOT_JAIL to yes" + rm -f $RCTMP + sed 's/^POSTFIX_UPDATE_CHROOT_JAIL.*/POSTFIX_UPDATE_CHROOT_JAIL="yes"/' \ + etc/sysconfig/postfix > $RCTMP + mv $RCTMP etc/sysconfig/postfix + fi + if [ "`echo $MAIL_CREATE_CONFIG | tr 'A-Z' 'a-z' `" == "yes" ]; then + echo "Setting SMTPD_LISTEN_REMOTE to yes" + rm -f $RCTMP + sed 's/^SMTPD_LISTEN_REMOTE.*/SMTPD_LISTEN_REMOTE="yes"/' \ + etc/sysconfig/postfix > $RCTMP + mv $RCTMP etc/sysconfig/postfix + fi +fi +# ------------------------------------------------------------------ +# ------------------------------------------------------------------ +# updating main.cf +echo "Updating postfix configuration files" +MAINCF=etc/postfix/main.cf +MASTERCF=etc/postfix/master.cf +TMPMAIN=etc/postfix/main.cf.tmp.$$ +TMPMASTER=etc/postfix/master.cf.tmp.$$ +BAKSUFFIX=$(date +%Y-%m-%d) +MD5DIR=var/adm/SuSEconfig/md5 +mkdir -p $MD5DIR/etc/postfix +cp --remove-destination $MAINCF $TMPMAIN +cp --remove-destination $MASTERCF $TMPMASTER +if [ -f $MD5DIR/$MAINCF ]; then + OLDMD5MAINCF=$(cat $MD5DIR/$MAINCF) +fi +if [ -f $MD5DIR/$MASTERCF ]; then + OLDMD5MASTERCF=$(cat $MD5DIR/$MASTERCF) +fi +#This is a new feature in 2.3.2 +grep -ql "^scache" $MASTERCF || \ + perl -pi -e 's/(^anvil.*anvil)/$1\nscache unix - - n - 1 scache/' $MASTERCF +usr/sbin/postconf -e \ + "manpage_directory = %{_mandir}" \ + "setgid_group = %{pf_setgid_group}" \ + "mailq_path = %{pf_mailq_path}" \ + "newaliases_path = %{pf_newaliases_path}" \ + "sendmail_path = %{pf_sendmail_path}" \ + "readme_directory = %{pf_readme_directory}" \ + "html_directory = %{pf_html_directory}" \ + "sample_directory = %{pf_sample_directory}" \ + "daemon_directory = %{pf_daemon_directory}" +echo "executing upgrade-configuration" +usr/sbin/postfix set-permissions upgrade-configuration \ + setgid_group=%{pf_setgid_group} +NEWMD5MAINCF=$(cat $MAINCF | grep -v "^#" | md5sum) +NEWMD5MASTERCF=$(cat $MASTERCF | grep -v "^#" | md5sum) +if [ -n "$OLDMD5MAINCF" ]; then + if [ "$NEWMD5MAINCF" != "$OLDMD5MAINCF" ]; then + echo "post-install modified $MAINCF, updating MD5SUM" + rm -f $MD5DIR/$MAINCF + echo "$NEWMD5MAINCF" > $MD5DIR/$MAINCF + echo "backing up $MAINCF to $MAINCF.$BAKSUFFIX" + cp --remove-destination $TMPMAIN $MAINCF.$BAKSUFFIX + fi +else + echo "$NEWMD5MAINCF" > $MD5DIR/$MAINCF +fi +if [ -n "$OLDMD5MASTERCF" ]; then + if [ "$NEWMD5MASTERCF" != "$OLDMD5MASTERCF" ]; then + echo "post-install modified $MASTERCF, updating MD5SUM" + rm -f $MD5DIR/$MASTERCF + echo "$NEWMD5MASTERCF" > $MD5DIR/$MASTERCF + echo "backing up $MASTERCF to $MASTERCF.$BAKSUFFIX" + cp --remove-destination $TMPMASTER $MASTERCF.$BAKSUFFIX + fi +else + echo "$NEWMD5MASTERCF" > $MD5DIR/$MASTERCF +fi +rm -f $TMPMAIN $TMPMASTER +%if %suse_version > 900 +%run_suseconfig -m postfix +%endif + +%postun +%if %suse_version >= 900 +%restart_on_update postfix +%endif +%insserv_cleanup + +%clean +rm -rf $RPM_BUILD_ROOT + +%post postgresql +FILE=etc/postfix/dynamicmaps.cf +if ! grep -q "^pgsql[[:space:]]" ${FILE}; then + echo "Adding pgsql map entry to ${FILE}" + echo "pgsql /usr/lib/postfix/dict_pgsql.so dict_pgsql_open" >> ${FILE} +fi + +%post mysql +FILE=etc/postfix/dynamicmaps.cf +if ! grep -q "^mysql[[:space:]]" ${FILE}; then + echo "Adding mysql map entry to ${FILE}" + echo "mysql /usr/lib/postfix/dict_mysql.so dict_mysql_open" >> ${FILE} +fi + +%preun postgresql +if [ "$1" = 0 ] ; then + FILE=etc/postfix/dynamicmaps.cf + if [ -e "$FILE" ] ; then + if grep -q "^pgsql[[:space:]]" ${FILE}; then + echo "Removing pgsql map entry from ${FILE}" + sed "/^pgsql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \ + cp --remove-destination ${FILE}.$$ ${FILE} && \ + rm ${FILE}.$$ + fi + else + echo "Can not find \"$FILE\". Not updating the file." >&2 + fi +fi + +%preun mysql +if [ "$1" = 0 ] ; then + FILE=etc/postfix/dynamicmaps.cf + if [ -e "$FILE" ] ; then + if grep -q "^mysql[[:space:]]" ${FILE}; then + echo "Removing mysql map entry from ${FILE}" + sed "/^mysql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \ + cp --remove-destination ${FILE}.$$ ${FILE} && \ + rm ${FILE}.$$ + fi + else + echo "Can not find \"$FILE\". Not updating the file." >&2 + fi +fi + +%files postgresql +%defattr(-,root,root) +/usr/lib/postfix/dict_pgsql.so + +%files mysql +%defattr(-,root,root) +/usr/lib/postfix/dict_mysql.so + +%files devel +%defattr(-,root,root) +/usr/include/postfix/ + +%files -f %{postfixfiles} +%defattr(-,root,root) +%if %suse_version > 920 +%config /etc/pam.d/* +%endif +/var/adm/fillup-templates/sysconfig.postfix +/var/adm/fillup-templates/sysconfig.mail-postfix +/sbin/conf.d/SuSEconfig.postfix +%dir /etc/postfix +%config(noreplace) /etc/postfix/access +%config(noreplace) /etc/postfix/generic +%config(noreplace) /etc/postfix/canonical +#%config(noreplace) /etc/postfix/cidr_table +%config(noreplace) /etc/postfix/main.cf +/etc/postfix/main.cf.default +%config(noreplace) /etc/postfix/master.cf +%config(noreplace) /etc/postfix/openssl_postfix.conf.in +%config(noreplace) /etc/postfix/relocated +%config(noreplace) /etc/postfix/transport +%config(noreplace) /etc/postfix/virtual +%config(noreplace) /etc/postfix/sasl_passwd +%config(noreplace) /etc/postfix/sender_canonical +#%config(noreplace) /etc/postfix/tcp_table +#%config(noreplace) /etc/postfix/pcre_table +#%config(noreplace) /etc/postfix/regexp_table +%config(noreplace) /etc/postfix/relay_ccerts +%config(noreplace) /etc/postfix/header_checks +%config(noreplace) /etc/postfix/bounce.cf.default +%config(noreplace) /etc/postfix/dynamicmaps.cf +%dir /etc/sasl2/ +%config(noreplace) /etc/sasl2/smtpd.conf +/etc/postfix/LICENSE +%if %{usetls} +/etc/postfix/TLS_LICENSE +%endif +/etc/postfix/makedefs.out +/etc/postfix/postfix-script +/etc/postfix/post-install +/etc/postfix/postfix-files +%config /etc/permissions.d/postfix +%config /etc/permissions.d/postfix.paranoid +%config %attr(0755,root,root) /etc/init.d/postfix +/usr/bin/mailq +/usr/bin/newaliases +%attr(0755, root, root) /usr/sbin/sendmail +/usr/sbin/qmqp-source +/usr/sbin/smtp-sink +/usr/sbin/smtp-source +/usr/sbin/mkpostfixcert +/sbin/rcpostfix +%{_libdir}/lib* +/usr/lib/sendmail +%dir /usr/lib/postfix +/usr/lib/postfix/*[^.so] +/usr/lib/postfix/dict_ldap.so +/usr/lib/postfix/dict_pcre.so +/usr/lib/postfix/dict_tcp.so +%doc AAAREADME COMPATIBILITY COPYRIGHT HISTORY INSTALL IPv6-ChangeLog LICENSE +%doc PORTING RELEASE_NOTES* US_PATENT_6321267 TLS_LICENSE +%doc README_FILES examples html auxiliary +%doc postfix-SuSE/README.SuSE +%doc postfix-SuSE/SPAMASSASSIN+POSTFIX.SuSE +%{conf_backup_dir} +%{_mandir}/man?/*.gz + +%description +Postfix aims to be an alternative to the widely-used sendmail program. + + + +Authors: +-------- + Wietse Venema + + +%description mysql +postfix plugin to support MySQL maps + + + +Authors: +-------- + Wietse Venema + + +%description postgresql +postfix plugin to support PostgreSQL maps + + + +Authors: +-------- + Wietse Venema + + +%description devel +Postfix aims to be an alternative to the widely-used sendmail program. + + + +Authors: +-------- + Wietse Venema + + +%changelog -n postfix +* Wed Nov 22 2006 - mrueckert@suse.de +- moved the dict handling into a preun script instead of postun + and do not remove the dict entry on upgrade (#223176) +- removed duplicates in the filelists. +* Fri Nov 10 2006 - varkoly@suse.de +- #218229 - Postfix SuSEconfig script increases the max_proc line each run in master.cf +* Sat Oct 28 2006 - varkoly@suse.de +- #206414 - /usr/lib/sasl2/smtpd.conf misplaced +* Tue Oct 24 2006 - varkoly@suse.de +- #202119 – SuSEconfig script for Postfix incomplete +- #202162 – Postfix 2.3.2 slightly incorrect, Cyrus SASL unavailable +- #203174 – /sbin/conf.d/SuSEconfig.postfix should configure a TLS session cache for postfix 2.2 +- #203575 – postfix-2.2.9-10 chokes without scache +- #213589 - No development package/headers for postfix +* Wed Aug 16 2006 - ro@suse.de +- also add libpostfix-milter.so* +* Mon Aug 14 2006 - varkoly@suse.de +- updated to postfix 2.3, patchlevel 2 +- Major changes + - Name server replies that contain a malformed hostname are now flagged + as permanent errors instead of transient errors. + - DSN support as described in RFC 3461 .. RFC 3464. + - The SMTP client now implements the LMTP protocol. + - Milter (mail filter) application support, compatible with Sendmail + version 8.13.6 and earlier. +- Major changes - SASL authentication + - Plug-in support for SASL authentication in the SMTP server and in the + SMTP/LMTP client. + - The Postfix-with-Cyrus-SASL build procedure has changed. + - Support for sender-dependent ISP accounts. +- Major changes - SMTP client + - The SMTP client now implements the LMTP protocol. + - This version addresses a performance stability problem with remote + SMTP servers. +- Major changes - SMTP server + - The Postfix SMTP server now refuses to receive mail from the network + if it isn't running with postfix mail_owner privileges. + - Optional suppression of remote SMTP client hostname lookup and hostname + verification. + - SMTPD Access control based on the existence of an address->name mapping +- Major changes - TLS + - New concept: TLS security levels ("none", "may", "encrypt", "verify" + or "secure") in the Postfix SMTP client. + - Both the Postfix SMTP client and server can be configured without a + client or server certificate. +- See + /usr/share/doc/packages/postfix/RELEASE_NOTES + /usr/share/doc/packages/postfix/TLS_CHANGES + /usr/share/doc/packages/postfix/README_FILES/SASL_README + for detailed informations. +* Wed Aug 02 2006 - varkoly@suse.de +- Only %%{conf_backup_dir} is contained by the package not /var/adm/backup +* Mon Jul 10 2006 - varkoly@suse.de +- Bugfix: #190639 Default number of processes for postfix +- Bugfix: #190270 postfix-postgresql +* Fri Jun 02 2006 - varkoly@suse.de +- Bugfix: #98188 - SuSE.tar.gz filename collision in cyrus/postfix SRPMs +* Mon Apr 24 2006 - varkoly@suse.de +- Bugfix: #165786 - yast2-mail modul uses obsolate postfix attributes +* Mon Mar 20 2006 - varkoly@suse.de +- updated to postfix 2.2, patchlevel 9. +- Reasons: + Bugfix: the LMTP client would reuse a session after negative + reply to the RSET command (which may happen when client and + server somehow get out of sync). + Bugfix: race condition in the connection caching protocol, + causing the SMTP delivery agent to hang after delivering + mail, while trying to save a connection. + Bugfix: the best_mx_transport, mailbox_transport and + fallback_transport features did not write a per-recipient + defer logfile record when the target delivery agent was + broken. + Bugfix: an EHLO I/O error after STARTTLS would be reported + as a STARTTLS I/O error. + Bugfix: the *SQL, proxy and LDAP maps were not defined in + user-land commands such as postqueue. + Bugfix: the anvil server would terminate after "max_idle" + seconds, even when this was less than the anvil_rate_time_unit + interval. + Portability: 64-bit support for LINUX chroot script by Keith + Owens. + Safety: new "smtp_cname_overrides_servername" parameter. + Bugfix: mailbox_command_maps was not subject to $name + expansion. + Bugfix: don't ignore the per-site policy when SSL library + initialization fails. + Bugfix: a TLS per-site MUST_NOPEERMATCH policy could not + override a stronger main.cf policy, while a per-site NONE + policy could. + Bugfix: a combined TLS per-site (host, recipient) policy + of (NONE, MAY) changed a global MUST policy into NONE, and + a global MUST_NOPEERMATCH into MAY. The result is now NONE. + Problem found by exhaustive simulation. + Bugfix: an empty remote_header_rewrite_domain value caused + trivial-rewrite to dereference a null pointer, but only in + regression tests, not in production. Postfix rewrites + addresses in the remote rewriting context only when the + remote_header_rewrite_domain parameter value is non-empty. + Workaround: a malformed domain name lookup result (such as + null MX record) is now treated as a hard error, so that + Postfix will no longer repeatedly try to deliver mail until + the message expires in the queue. However, this will not + reject mail with reject_unknown_sender/recipient_domain. + That would require too much change for a stable release. +* Fri Jan 27 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Tue Jan 24 2006 - varkoly@suse.de +- Fixing the spec-file +- Bugfix: ID#143682 - Spurious (obsoleted?) configuration variable in postfix's main.cf +* Mon Jan 23 2006 - varkoly@suse.de +- Bugfix: ID#140173 postfix allows relaying on the whole subnet +- Bugfix: ID#144091 postfix doesn't start with the latest kernel +* Fri Jan 20 2006 - varkoly@suse.de +- Bugfix: ID#144091 +- Postfix makes an entry in slp servre for smtp & smtps +* Mon Jan 16 2006 - varkoly@suse.de +- removing openldap from "neededforbuild" +* Wed Nov 30 2005 - choeger@suse.de +- updated to postfix 2.2, patchlevel 6 +* Tue Oct 11 2005 - choeger@suse.de +- added patch ldap_api_changes.patch: openldap2.3 enforces to use + "The C LDAP Application Program Interface" +* Mon Aug 15 2005 - choeger@suse.de +- Bugfix Bugzilla ID#104663 - consistent use of variables in postfix + init-script +- Bugfix Bugzilla ID#104568 - SuSEconfig.postfix doesnt set $PATH properly to + find all binaries. +* Fri Aug 12 2005 - mmj@suse.de +- Package the /usr/lib/sendmail -> /usr/sbin/sendmail link [#102947] +* Tue Jul 26 2005 - choeger@suse.de +- Bugfix Bugzilla ID#93884 - package postfix uses -fsigned-char + Remove -fsigned-char option for ppc and s390 archs +* Mon Jul 25 2005 - choeger@suse.de +- updated to postfix 2.2, patchlevel 5: + - Portability: the connection caching code broke on LP64 + systems (inherited from Stevens Network Programming). + Files: util/unix_send_fd.c, util/unix_recv_fd.c. This code + is back-ported from the Postfix 2.3 snapshot release. + - Robustness: the SMTP client now disables connection caching + when it is unable to communicate with the scache(8) server, + instead of looping forever and not delivering mail. File: + global/scache_clnt.c. This code is back-ported from the + Postfix 2.3 snapshot release. + - Portability: after sending a socket, the scache(8) server + now waits for an ACK from the connection cache client before + closing the socket that it just sent. Files: scache/scache.c, + global/scache_clnt.c. This code is back-ported from the + Postfix 2.3 snapshot release. + - Portability: on LP64 systems, integer expressions are int, + but sizeof() and pointer difference expressions are larger. + Point fixes for a few discrepancies with variadic functions + that expect int (the permanent fix is to change the receiving + modules, but that results in too much change, and is not + allowed in the stable release). Files: tls/tls_scache.c, + util/clean_env.c, util/vstring.h, smtpstone/qmqp-source.c. +* Mon Jul 18 2005 - choeger@suse.de +- force to set strict_8bitmime to "no" when POSTFIX_MDA != cyrus, + because once it is set to "yes", nobody sets it back. +- only install /etc/pam.d/smtp if %%suse_version > 920 +- use Prereq instead of Requires for mysql and postgresql subpackages +* Wed Jul 13 2005 - choeger@suse.de +- added /etc/pam.d/smtp configuration file +* Thu Jul 07 2005 - choeger@suse.de +- Fixed build on x86_64: use -fPIC for libraries and -fPIE for the + rest +* Tue Jul 05 2005 - choeger@suse.de +- applied dynamic maps patch of LaMont Jones at debian +- Fix to SuSEconfig.postfix: only touch tlsmgr line in master.cf, + if it is the new one using unix socket instead of fifo +* Thu Jun 30 2005 - uli@suse.de +- build with -fPIE (not -fpie) to avoid GOT overflow on s390x +* Thu Jun 23 2005 - choeger@suse.de +- updated to postfix 2.2, patchlevel 4 +* Fri Jun 17 2005 - choeger@suse.de +- fixed build using -pie/-fpie (hopefully) +* Fri Jun 17 2005 - choeger@suse.de +- Build using -pie +* Fri May 13 2005 - choeger@suse.de +- set strict_8bitmime parameter to yes when using cyrus mailbox + delivery +* Wed May 04 2005 - choeger@suse.de +- Bugfix ID#66325 - postfix: permissions + also ship a postfix.paranoid file with the package with all suid and sgid + bits disabled +* Tue May 03 2005 - choeger@suse.de +- updated to postfix 2.2, patchlevel 3 +- Bugfix ID#75717 - postfix init scripts reports success allthough postfix is + not running: + use checkproc again instead of "master -t", as "master -t" seems to be broken +* Thu Apr 21 2005 - choeger@suse.de +- updated to postfix 2.2, patchlevel 2 +- Bugfix ID#74712, problems with read-only mounting of $chroot/proc: + don't mount /var/spool/postfix/proc ro as that results in /proc also mounted + ro. +- Bugfix ID#74709, postfix configuration and USE_IPV6 in + sysconfig/network/config +* Tue Mar 15 2005 - choeger@suse.de +- updated to postfix 2.2, patchlevel 1 + Postfix 2.2.1 solves four portability problems that surfaced in + the week since the 2.2.0 release, one harmless bug in the TLS + session cache cleaning code, and cleans up minor documentation + problems. +* Thu Mar 10 2005 - choeger@suse.de +- 2.2.0 is out +* Mon Mar 07 2005 - choeger@suse.de +- update to RC2 +* Wed Mar 02 2005 - choeger@suse.de +- make it compile with gcc4 +* Mon Feb 28 2005 - choeger@suse.de +- RC1 of 2.2 is out +* Fri Feb 18 2005 - choeger@suse.de +- use "usr/sbin/postfix upgrade-configuration" now instead of + "etc/postfix/post-install upgrade-package" +* Thu Feb 17 2005 - choeger@suse.de +- removed some @ chars (don't know how they slipped in) +* Thu Feb 17 2005 - choeger@suse.de +- update to current pre 2.2 snapshot (2.2-20050216) + 2.2 release could happen next week +* Thu Feb 10 2005 - choeger@suse.de +- added patch needed for the Kolab project (this patch is part of the upcoming + postfix 2-2 release), see + http://wiki.kolab.org/index.php/Kolab-major-app-patches +* Thu Feb 03 2005 - choeger@suse.de +- s/X-UnitedLinux-Should-Start/Should-Start/ +* Wed Feb 02 2005 - choeger@suse.de +- added long_header.patch + long lines piped into postfix sendmail can lead to errors. +* Wed Feb 02 2005 - choeger@suse.de +- Bugfix ID#49307: faster postfix startup: don't use hashed directories if + possible: + - added patch empty_hash_queue_names.patch to be able to modify + hash_queue_names parameter. + - added check to %%post to change hash_queue_names in case of + /var/spool/postfix residing on a reiserfs partition when doing + a fresh installation +- Bugfix ID#50386 - postfix must prereq /sbin/ip (iproute2) +* Fri Jan 28 2005 - choeger@suse.de +- updated tls+ipv6 patchkit to v1.26 + - Bugfix: Incomplete error checking in getaddrinfo() could cause lmtpd to + crash with debug_peer_list defined. Carsten Hoeger, SuSE. File: + util/match_ops.c + - Linux workaround: When mynetworks isn't set, a chrooted process could not + read the IPv6 address information from /proc. We now invoke own_inet_addr() + before chrooting, while processing main.cf. [backported from 2.2-nonprod + snapshot] File: global/mail_params.c + - Safety: when IPv6 netmask can't be determined, mynetworks is not set and + mynetworks_style = subnet, assume /128 (host only). Until now, Tru64Unix + assumed /64 (good for real subnets, but not safe for tunnel ranges etc.). + File: util/inet_addr_local.c +* Sat Jan 15 2005 - schwab@suse.de +- Use : in permissions file. +* Thu Jan 13 2005 - choeger@suse.de +- Two fixes to ipv6-patch related bugs: + - Bugfix Bugzilla ID#49435 - VUL-0: Postfix, permit_mx_backup, IPv6, chroot + --> Open Relay! + - Bugfix Bugzilla ID#49695 - SEGV while lmtp delivery +- mount /proc into chroot jail to be able to access /proc/net/if_inet6 +* Wed Nov 24 2004 - schwab@suse.de +- Put options first in find command line. +* Tue Nov 09 2004 - choeger@suse.de +- setting LC_ALL=POSIX in SuSEconfig.postfix +* Wed Sep 29 2004 - choeger@suse.de +- Bugfix Bugzilla ID#46462, postfix should switch biff off +* Tue Sep 21 2004 - choeger@suse.de +- updated to postfix 2.1, patchlevel 5 + (several small bugfixes) +- updated tls+ipv6 patchkit (there have been some small bugs) +- use v4 address 127.0.0.1 as amavisd-new local contact address + as amavisd is not listening on any v6 address +* Mon Sep 20 2004 - choeger@suse.de +- also chmod the .db file resulting of a postmap (related to + bugfix ID#39045 +* Thu Sep 16 2004 - choeger@suse.de +- Bugfix Bugzilla ID#39045 - tls_per_site table updates in SuSEconfig.postfix + introduced POSTFIX_MAP_LIST in /etc/sysconfig/postfix where additional + maps maintained by SuSEconfig.postfix can be added +* Thu Sep 16 2004 - choeger@suse.de +- Bugfix Bugzilla ID#45252 - rpm calls SuSEconfig.permissions which calls rpm + -> 3 minute timeout + Also don't call rpm from SuSEconfig.postfix +- Speedup: set timestamp of $TMPDIR/main.cf into the past to workaround + postconf safety which is not neccessary, because we do not touch the main.cf, + the postfix daemons are using. +* Mon Sep 13 2004 - choeger@suse.de +- added $time to Required-Start in init-script +* Thu Aug 26 2004 - choeger@suse.de +- do not filter locally delivered mail when USE_AMAVIS=yes + (don't set content_filter=vscan in main.cf) +- removed obsolete vscan service definition from master.cf +* Fri Aug 20 2004 - choeger@suse.de +- use "$MASTER_BIN -t" to check whether postfix is already running + in start section of init-script. That's more reliable then checkproc. +* Wed Jul 14 2004 - choeger@suse.de +- Bugfix Bugzilla ID#42995 - SuSEconfig.postfix should ignore + .swp and other files in /etc/aliases.d +* Tue Jul 13 2004 - choeger@suse.de +- Bugfix Bugzilla ID#42281, openssl ca segfaults: + added missing [ policy_anything ] configuration + options to openssl.cnf +* Mon Jul 12 2004 - choeger@suse.de +- updated to postfix 2.1, patchlevel 4 +- updated tls+ipv6 patchkit to v1.25 +- new feature POSTFIX_REGISTER_SLP in /etc/sysconfig/postfix + to be able to totally disable slptool from being started +* Tue May 25 2004 - choeger@suse.de +- updated tls+ipv6 patchkit to v1.24: + - Bugfix: Prefixlen non-null host portion validation (in CIDR maps for + example) yielded incorrect results sometimes because signed arithmetic was + used instad of unsigned. + - Patch correction: The TLS+IPv6 patch for Postfix 2.1.0 missed the master.cf + update (used for new installattions). Added it back. +- as tls and ipv6 patches have not been completely ported to postfix 2.1 + new documentation system, especially the new postconf(5) manpage is + missing the complete ipv6 and tls related configuration parameters, + readded the sample-* files from ipv6+tls to %%doc/samples +* Tue May 04 2004 - choeger@suse.de +- update to postfix 2.1, patchlevel 1: + - Patch 01 fixes a signal 11 problem in the check_policy_service + feature when SASL support is compiled in but turned off in the + SMTP server (smtpd_sasl_auth_enable = no). +* Wed Apr 28 2004 - choeger@suse.de +- added now officially released tls patchkit 0.8.18-2.1.0-0.9.7d to + the source package for the user to be able to build a non-ipv6 + postfix package +* Mon Apr 26 2004 - choeger@suse.de +- official tls+ipv6 v1.23 patchkit released: + - Patch fixes: Several code fixes to make the patch compile and work + correctly when compiled without IPv6 support. + - Bugfix (Solaris only?): address family length was not updated + which could cause client hostname validation errors. File: + smtpd/smtpd_peer.c + - Portability: added support for Darwin 7.3+. This may need some + further testing. + - Cleanup: Restructure and redocument interface address retrieval + functions. (This reduced the number of preprocessor statements + from 99 to 93 ;) File: util/inet_addr_local.c + - Cleanup: make several explicit casts to have compilers shut their + pie holes about uninteresting things. +* Fri Apr 23 2004 - choeger@suse.de +- update to final postfix v2.1 +* Wed Apr 21 2004 - choeger@suse.de +- Bugfix: changed {main,master}.cf backup path in specfile, but not in + SuSEconfig script +* Wed Apr 21 2004 - choeger@suse.de +- update to postfix 2.1 RC5 +* Mon Apr 19 2004 - choeger@suse.de +- update to current postfix 2.1 release candidate (RC4) +* Wed Apr 07 2004 - choeger@suse.de +- Bugfix Bugzilla ID#38569, exit SuSEconfig.postfix if + mktemp fails +* Tue Mar 30 2004 - choeger@suse.de +- Bugfix Bugzilla ID#37409 + the saslauthd socket is not copied to chroot jail due to + a wrong test in SuSEconfig.postfix (used -L instead of -S) +* Mon Mar 29 2004 - choeger@suse.de +- only add ::1 to inet_interfaces when SMTPD_LISTEN_REMOTE=no + AND ipv6 is enabled +* Mon Mar 29 2004 - choeger@suse.de +- Bugfix Bug ID#37293, SuSEConfig complains POSTFIX_ADD_* parameters are + unknown (in turkish locale settings) + added LC_CTYPE=POSIX to SuSEconfig.postfix +* Thu Mar 25 2004 - choeger@suse.de +- updated to tls+ipv6 version 1.22 (related to Bugzilla ID#35884) + - Feature: Support "inet_interfaces = IPv4:all" and "inet_interfaces = + IPv6:all", to restrict postfix to use either IPv4-only or IPv6-only. A more + complete implementation will be part of a future patch. (Slightly modified) + patch by Michal Ludvig, SuSE. Files: util/interfaces_to_af.[ch], + util/inet_addr_local.c, global/own_inet_addr.c, + global/wildcard_inet_addr.[ch], master/master_ent.ch + - Bugfix: In Postfix snapshots, a #define was misplaced with the effect that + IPv6 subnets were not included in auto- generated $mynetworks (i.e., + mynetworks not defined in main.cf, when also mynetworks_style=subnet) on + Linux 2.x systems. File: utils/sys_defs.h +- now adding ::1 to inet_interfaces when SMTPD_LISTEN_REMOTE=no + (related to Bugzilla ID#35884) +- enabled ipv6 again +* Thu Mar 18 2004 - choeger@suse.de +- updated to most recent snapshot version 2.0.19-20040312: + Patch 19 fixes two low-priority problems: + - When mail is submitted at a high rate with the Postfix sendmail + command, the pickup daemon is keps busy long enough that it it + terminated by the watchdog timer (a feature that prevents Postfix + from locking up permanently). + - Malformed addresses in SMTP commands could result in table looks + with zero-length search strings, causing trouble with NIS lookups. +* Wed Mar 17 2004 - choeger@suse.de +- disable IPv6 patch as it introduces problems for people + who do not use IPv6, see Bugzilla ID#35884, + "ipv6 mynetworks don't work" +* Mon Mar 08 2004 - choeger@suse.de +- be a nice packager and strictly follow + http://www.porcupine.org/postfix-mirror/newdoc/PACKAGE_README.html + (added setgid_group=... to post-install upgrade-package) +* Fri Feb 27 2004 - choeger@suse.de +- update to most recent version 2.0.18-20040209 +* Mon Feb 23 2004 - choeger@suse.de +- Bugfix Bugzilla ID#34817, SuSEconfig.postfix doesn't specify direct path to + "postconf" and generates errors if run via sudo by a non-root user. +* Fri Feb 06 2004 - choeger@suse.de +- update to postfix 2.0.18-20040205 +- enabled tls+ipv6 patch as it is now available for latest + pre 2.1 snapshot +* Mon Feb 02 2004 - choeger@suse.de +- finally, the official TLS patchkit of Lutz hit the ground +* Mon Feb 02 2004 - choeger@suse.de +- additional fix for the TLS extensions patch + should also fix Bugzilla ID#34218 +* Fri Jan 23 2004 - choeger@suse.de +- fixed the smtp segfault +* Thu Jan 22 2004 - choeger@suse.de +- updated to postfix 2.0.18-20040122 +- added new feature for specfile usetls to en/dis-able TLS + support +- temporary removed TLS support (self adapted patch to most recent + postfix snapshot version) as it currently results in smtp segfaulting +* Thu Jan 22 2004 - choeger@suse.de +- update to recent postfix snapshot version 2.0.17-20040120 + which will become the next official release 2.1 around + next week according to Wietse Venema. +- added possibility to compile using the combined IPV6/TLS patch + which can be downloaded from http://www.ipnet6.org/postfix/ + just set useipv6 to 1 at the top of the specfile. +* Thu Jan 22 2004 - ro@suse.de +- remove call to ldap_enable_cache + (function has been removed from openldap and was already + obsolete before (warning was issued back then)) +* Wed Jan 14 2004 - choeger@suse.de +- added openslp register/derigister calls to postfix init-script +* Mon Jan 12 2004 - choeger@suse.de +- add postfix user to group mail in case of POSTFIX_MDA==cyrus + to let postfix lmtp access /var/lib/imap/socket/lmtp +* Thu Jan 08 2004 - choeger@suse.de +- Bugfix Bugzilla ID#33421, SMTP-Auth and relaying + added permit_sasl_authenticated also to smtpd_recipient_restrictions + in SuSEconfig.postfix +* Mon Dec 01 2003 - choeger@suse.de +- always create temp files and always remove them later on +* Mon Nov 17 2003 - choeger@suse.de +- some .spec improvements +* Thu Oct 30 2003 - mmj@suse.de +- Run SuSEconfig after install +* Wed Oct 29 2003 - mmj@suse.de +- Don't build as root +- Be nice and clean up after ourselves +* Tue Oct 14 2003 - choeger@suse.de +- update to postfix v2.0.16 +- update to tls extensions v0.8.16 +- Fix for Bugzilla ID#32114, fixed some if condition syntaxes +* Tue Sep 16 2003 - choeger@suse.de +- fixed example for POSTFIX_RELAYHOST, Bug ID#30756 +* Mon Sep 08 2003 - choeger@suse.de +- updated some sysconfig descriptions +- removed relays.osirosoft.com from the examples, Bug ID#30215 +* Thu Sep 04 2003 - kukuk@suse.de +- Fix next useradd call +* Wed Sep 03 2003 - choeger@suse.de +- conf/postfix-files as input for /etc/permissions.d/postfix (Bug ID#29915) +- generate better amavisd-new master.cf line: + limit maxproc to 2 and use brackets around localhost + (Bug ID#29917) +* Mon Sep 01 2003 - choeger@suse.de +- use conf/postfix-files as input for directories and permissions + for files/directories in/below $queue_directory and $command_directory +- use /var/lib/imap/socket/lmtp as lmtp socket in SuSEconfig.postfix + and change access modes of /var/lib/imap and /var/lib/imap/socket + to let postfix lmtp access the unix socket +* Fri Aug 29 2003 - kukuk@suse.de +- Create postfix user as system account [Bug #29611] +* Fri Aug 29 2003 - kukuk@suse.de +- Adjust sendmail permissions +- Create /var/spool/postfix/public with permissions postfix is + using +* Fri Aug 29 2003 - mmj@suse.de +- Add sendmail to /etc/sysconfig/mail +* Thu Aug 14 2003 - choeger@suse.de +- update to Postfix 2.0 Patch 14 +- Bugfix Bugzilla ID#28921: + missing activation metadata in sysconfig template +* Wed Jul 30 2003 - choeger@suse.de +- new macros for stop/restart of services on rpm update/removal +* Mon Jul 21 2003 - choeger@suse.de +- chown user:group instead of user.group +* Fri Jul 11 2003 - choeger@suse.de +- update to tls extensions 0.8.15-2.0.13-0.9.7b +* Tue Jul 01 2003 - choeger@suse.de +- updated SuSEconfig to use amavisd-new instead of amavis[d]-postfix +* Mon Jun 30 2003 - choeger@suse.de +- update to Postfix 2.0 Patch 13 +- After "postfix reload", the master daemon now warns when the + inet_interfaces parameter setting has changed, and ignores the + change, instead of passing incorrect information to the smtp + server. +- After the postdrop command change with Postfix 2.0.11, the postcat + command no longer recognized "maildrop" queue files as valid. +- Mail could bounce when two messages were delivered simultaneously + to a non-existent mailbox file. The safe_open() code that prevents + race condition exploits will now try a little harder when it + actually encounters a race condition. +- update to tls extensions 0.8.14-2.0.12-0.9.7b +* Thu Jun 12 2003 - choeger@suse.de +- also change path to smtpd.conf in sysconfig template parameter + description dependent on what %%{_lib} is set to. +* Thu Jun 12 2003 - choeger@suse.de +- update to postfix 2.0, patchlevel 12 +* Wed Jun 11 2003 - choeger@suse.de +- mkdir -p $RPM_BUILD_ROOT/%%{_libdir}/sasl2 instead of + $RPM_BUILD_ROOT/usr/lib/sasl2 + and we also can build on 64bit archs +* Wed Jun 11 2003 - choeger@suse.de +- package /usr/lib/sasl2/smtpd.conf using %%{_libdir}/sasl2/smtpd.conf +- added /etc/postfix to filelist +* Wed Jun 11 2003 - choeger@suse.de +- update to postfix 2.0, patchlevel 11 +- update to tls extensions 0.8.13-2.0.10-0.9.7b +* Fri May 23 2003 - choeger@suse.de +- updated SuSE/master.cf toplevel comments +* Fri May 23 2003 - choeger@suse.de +- update to postfix 2.0, patchlevel 10 +* Mon May 19 2003 - choeger@suse.de +- remove installed (but unpackaged) file /etc/postfix/aliases +* Mon May 19 2003 - choeger@suse.de +- path to ca, certificate and key is relative to $POSTFIX_SSL_PATH, + added $POSTFIX_SSL_PATH/ to the relevant parts of SuSEconfig.postfix +* Wed May 14 2003 - choeger@suse.de +- correctly handle new POSTFIX_SMTP_TLS_CLIENT parameter in + SuSEconfig.postfix (activate/deactivate master.cf entries) +* Wed May 14 2003 - choeger@suse.de +- added libxcrypt to chroot jail, Bugzilla ID#25766 +* Tue May 13 2003 - choeger@suse.de +- added TLS_CLIENT support, Bugzilla ID#26647 +* Wed Apr 23 2003 - choeger@suse.de +- update to postfix 2.0, patchlevel 9 +* Tue Apr 15 2003 - ro@suse.de +- fixed neededforbuild +* Mon Apr 07 2003 - choeger@suse.de +- update to postfix 2.0, patchlevel 7 +- update to tls extensions 0.8.13-2.0.6-0.9.7a +- Bugfix Bugzilla ID#25905, do not restrict mailbox size per default +* Sat Mar 08 2003 - choeger@suse.de +- use checkproc to check if there really is a postfix master + process running when there's a pid file lying around. + (Bugzilla ID#24910) +* Thu Mar 06 2003 - choeger@suse.de +- update to Postfix 2.0 Patch 06 +- Postfix now truncates non-address information in message address + headers (comments, etc.) to 250 characters per address. This should + rarely present a problem. Reportedly, junk mail from poorly written + software can trigger the protection, but that is no great loss. +- Some little fixes to documentation. +* Tue Mar 04 2003 - choeger@suse.de +- update to Postfix 2.0 Patch 05 +- The SMTP server's hard and soft error limits were off by one. + With "smtpd_hard_error_limit = 1", Postfix will now disconnect + after the first error, instead of the second one. +- The proxymap server could deadlock when the mydestination parameter + setting included a proxymapped lookup table. +- Some little fixes to documentation. +* Sat Mar 01 2003 - choeger@suse.de +- when updating postfix, check whether post-install changed + main/master.cf and update md5sums to not confuse SuSEconfig +- when installing postfix on a fresh system, create md5sums + in %%post to be able to let check_md5_and_move() detect + changes that a user might have done without running SuSEconfig + before. +* Thu Feb 27 2003 - choeger@suse.de +- no longer remove md5sums of main.cf and master.cf during + postinstall, as SuSEconfig then no longer knows, whether + main.cf/master.cf had been modified by the user. + Disadvantage: as postfix permanently needs basic changes + to both main and master.cf, SuSEconfig.postfix will frequently + generate .SuSEconfig files although the user did not change anything + Bugzilla ID#24432 +* Fri Feb 21 2003 - choeger@suse.de +- update to Postfix 2.0 Patch 04 + - The format of maildir filenames is synchronized with the present + version of the maildir definition document. This format was already + adopted by the 20030126 snapshot release. + - The time limit on delivery to external commands was not enforced. + This was broken probably some time before the first public Postfix + release. + - Duplicate elimination after virtual alias expansion works again. + This was broken with the introduction of the original recipient + attribute. + - The local pickup daemon dropped incomplete records from local + submissions. This was broken somewhere in the middle of 2002. +* Sat Feb 15 2003 - choeger@suse.de +- Bugfix Bugzilla ID#23675: new service proxymap will not be + appended during update +* Mon Feb 10 2003 - choeger@suse.de +- also check whether amavisd-postfix is installed and set up + filter section in master.cf +* Thu Jan 30 2003 - choeger@suse.de +- update to Postfix 2.0 Patch 03 + - Postfix 2.0 broke relocated table lookup results with mail not + rejected at the SMTP port, causing "User has moved to" text to be + deleted. + - A widely used maildir filename generating algorithm was broken. + This affects all Postfix versions with maildir support. Instead of + TIME.PID_COUNT.HOST Postfix now uses TIME.DEVICE_INODE.HOST. + - Postfix 2.0 gave incorrect FILTER_README instructions for sites + that wish to disable virtual alias mapping before the content + filter. +- postfix-lib64.patch code now integrated in postfix +* Fri Jan 24 2003 - choeger@suse.de +- changed SuSEconfig.postfix and smtpd.conf to use sasl2 +* Thu Jan 23 2003 - choeger@suse.de +- forgot to add tlsmgr to master.cf +* Thu Jan 23 2003 - choeger@suse.de +- Hmmm, just noticed, that suddenly 2.0.0.x became 2.0.x + must have missed something... +- updated SuSE/master.cf (new proxymap service) +* Thu Jan 16 2003 - choeger@suse.de +- added POSTFIX_ADD_MESSAGE_SIZE_LIMIT as example to sysconfig.postfix + (Bugzilla ID#22907) +* Tue Jan 14 2003 - choeger@suse.de +- build using sasl2 +* Fri Jan 10 2003 - choeger@suse.de +- update to postfix v2 (version 2.0.0.2) +* Wed Dec 11 2002 - choeger@suse.de +- added sysconfig metadata to sysconfig templates +- updated to new tls extensions +* Fri Nov 29 2002 - choeger@suse.de +- Bugfix Bugzilla ID#21865: don't copy directories into + directories when updating chroot jail in cpifnewer() +- Update to version 1.11, pl12 +* Tue Nov 19 2002 - choeger@suse.de +- new SuSEconfig.postfix features: + . SMTP-AUTH server + . SMTP-AUTH client + . TLS Server +* Tue Nov 05 2002 - choeger@suse.de +- quote args of tr command +* Mon Nov 04 2002 - choeger@suse.de +- new feature: POSTFIX_ADD_* command in sysconfig/postfix to + be able to add any regular postfix command via SuSEconfig +- Bugfix Bugzilla ID#21120 added POSTFIX_ADD_MAILBOX_SIZE_LIMIT + as example with value 0 (unlimited) +- added a header to main.cf explaining that many postfix + parameters have been added to the end of main.cf +* Tue Oct 15 2002 - choeger@suse.de +- Bugfix for Bugzilla ID#20754 + missed some parameters when restoring main.cf or master.cf + from scratch +* Wed Oct 09 2002 - choeger@suse.de +- NULLCLIENT did not work because SuSEconfig searches for the wrong + keyword +* Mon Oct 07 2002 - choeger@suse.de +- Bugfix related to Bugzilla IDs 20506, 18298, 19294: + masquerade_classes should not be extended by envelope_recipient +* Fri Sep 06 2002 - choeger@suse.de +- added ypbind to X-UnitedLinux-Should-Start in init-script +* Wed Aug 28 2002 - choeger@suse.de +- added restoration mechanism to restore master.cf and/or main.cf + if they got deleted by (intention or) accident to SuSEconfig.postfix +- added ldap to X-UnitedLinux-Should-Start +* Mon Aug 26 2002 - choeger@suse.de +- Bugfix Bugzilla ID#18298: when setting FROM_HEADER, also unqualified + envelope recipients should be qualified to FROM_HEADER, not to + myorigin, added envelope_recipient to masquerade_classes +- Bugfix Bugzilla ID#18297: %%post touches main.cf and master.cf so it + may happen, that an update leaves .SuSEconfig files. + Remove /var/adm/SuSEconfig/md5/etc/postfix/main.cf and master.cf + in %%post +- Bugfix Bugzilla ID#18301: sendmail and postfix have different + opinions on the usage of NULLCLIENT. Moved NULLCLIENT to + sysconfig.postfix.POSTFIX_NULLCLIENT +- added exim to Conflicts +* Thu Aug 22 2002 - choeger@suse.de +- wait for qmgr in the background for a maximum of 60 seconds +* Wed Aug 21 2002 - choeger@suse.de +- Bugfix for init-script: + wait for qmgr to be ready before calling postfix flush +* Wed Aug 14 2002 - choeger@suse.de +- added accidently removed line in master.cf for amavis, + Bugzilla ID#17732 +* Tue Aug 13 2002 - choeger@suse.de +- exclude .rpmsave and .rpmorig from /etc/aliases.d expansion +* Wed Aug 07 2002 - choeger@suse.de +- added netcfg to Prereq (/etc/aliases) +* Tue Aug 06 2002 - choeger@suse.de +- added pcre openldap2-client to prereq (Bugzilla ID#17447) +* Mon Aug 05 2002 - choeger@suse.de +- completed Prereq +* Fri Jul 19 2002 - choeger@suse.de +- Bugfix for the handling of POSTFIX_MASQUERADE_DOMAIN + and FROM_HEADER +- removed main.cf from SuSE.tar.gz +- added X-UnitedLinux-Should-Start: cyrus to init-script +* Thu Jul 18 2002 - choeger@suse.de +- set local as default MDA again + reason: postfix does not execute any external programs like procmail + with uid 0, so root mails will go to /var/mail/nobody, which + will confuse people +- remove setting of SUSE_RELEASE version in the (E)SMTP banner +* Fri Jul 12 2002 - choeger@suse.de +- removed /etc/aliases from filelist, it's now in netcfg +* Thu Jul 11 2002 - choeger@suse.de +- removed 'q' flag from vscan transport definition, because + current amavis versions have a rfc2821_mailbox_addr function +- remove old aliases.db files in %%post +- do not use unset in %%post +* Mon Jul 08 2002 - choeger@suse.de +- make procmail the default MDA +* Fri Jul 05 2002 - choeger@suse.de +- use %%{_lib} macro to detect platforms with lib64 + directories +* Fri Jul 05 2002 - choeger@suse.de +- make chroot jail function lib64 aware +* Thu Jul 04 2002 - uli@suse.de +- fixed libnsl detection on lib64 systems +* Thu Jul 04 2002 - choeger@suse.de +- ldap_url_search_st is no longer available in OpenLDAP v2.1 + added a patch, that uses ldap_url_parse +- added new feature POSTFIX_MDA, Bugzilla ID#16720 +* Fri Jun 07 2002 - choeger@suse.de +- changed POSTFIX_BASIC_SPAM_PREVENTION. It can now be set to + either off(default), medium or hard +- cleaned up SuSEconfig.postfix +- prepared for /etc/aliases.d +* Wed Jun 05 2002 - choeger@suse.de +- new FEATURES: POSTFIX_RBL_HOSTS, POSTFIX_BASIC_SPAM_PREVENTION, + Bugzilla ID#16383 +- moved sample-*.cf files to %%{_docdir}/postfix/samples +* Wed Jun 05 2002 - choeger@suse.de +- update to patchlevel 11, version 1.1.11 +- new FEATURE: POSTFIX_UPDATE_MAPS +* Fri May 24 2002 - choeger@suse.de +- update to patchlevel 10, version 1.1.10 +- create required users and groups in %%pre install +* Thu Apr 25 2002 - choeger@suse.de +- removed provides of my own packagename... +* Fri Apr 19 2002 - choeger@suse.de +- Bugfix for README.SuSE: POSTFIX_CREATECF is now + MAIL_CREATE_CONFIG +* Thu Apr 04 2002 - choeger@suse.de +- update to patchlevel 7, version 1.1.7 +- introduced new feature POSTFIX_LAPTOP +* Tue Mar 26 2002 - choeger@suse.de +- update to patchlevel 5, version 1.1.5 +* Tue Mar 12 2002 - choeger@suse.de +- Bugfix: don't check whether POSTFIX_MASQUERADE_DOMAIN is empty + or not, because else we won't be able to clear it. +* Thu Feb 28 2002 - choeger@suse.de +- added flags=q to amavis transport definition (link@suse.de): + [...] + If your postfix is older than snapshot 20010610, leave out the + "flags=q" part. However, amavis will not function properly with + envelope adresses that contain whitespace in the local-part. + This is quite rare, but has been observed a few times. + [...] +* Mon Feb 25 2002 - choeger@suse.de +- update to version 1.1.4 (1.1, patchlevel 4) + Bugfix (excerpt from HISTORY): + .................................................................. + off-by-one error, causing a null byte to be + written outside dynamically allocated memory in + the queue manager with addresses of exactly 100 + bytes long, resulting in SIGSEGV on systems with + an "exact fit" malloc routine. + .................................................................. +- added new option SMTPD_LISTEN_REMOTE to /etc/sysconfig/mail + which has been introduced by the SuSE dist-team (excerpt): + .................................................................. + sendmail does have an option to listen only on the local port, + this should be the default. + A flag "SMTPD_LISTEN_REMOTE" in /etc/sysconfig/mail will be used + to decide if port 25 should be opened externally. + The sendmail package will send a mail to root explaining this + fact. sendmail updates will copy the value of START_SMTPD to this + new flag. + .................................................................. + As this is a totally different behaviour compared to old releases, + SMTPD_LISTEN_REMOTE will be set to "yes", if POSTFIX_CREATECF + (now MAIL_CREATE_CONFIG) had been set to "yes" before the update. +* Thu Feb 21 2002 - choeger@suse.de +- fillup workaround +* Thu Feb 21 2002 - choeger@suse.de +- hostname handling is still annoying + added some piece of code to SuSEconfig.postfix to + get a valid hostname +* Mon Feb 18 2002 - choeger@suse.de +- %%postinst cleanup: + . use rename_sysconfig_variable macro + . use remove_and_set macro + instead of directly calling fillup +* Wed Feb 13 2002 - choeger@suse.de +- FQHOSTNAME has been removed from /etc/sysconfig/network/config + and is now set in /etc/HOSTNAME, which wasn't FQ in the past. + *Please, don't change it again* +- if POSTFIX_LOCALDOMAINS is set, do not append + "$myhostname, localhost.$mydomain" anymore +* Tue Feb 12 2002 - choeger@suse.de +- Also take care of the localhost:10025 mailer definition when + setting up chroot options +* Mon Feb 11 2002 - choeger@suse.de +- Do not set myorigin to FROM_HEADER +* Thu Feb 07 2002 - choeger@suse.de +- Bugfix(SuSEconfig.postfix): typo in path to /etc/sysconfig/amavis +* Mon Feb 04 2002 - choeger@suse.de +- SuSEconfig.postfix enhancement: get hostname from hostname -f + Bugfix: get FQHOSTNAME from /etc/sysconfig/network/config +- added -y to fillup_and_insserv to create startlinks + after installation +- changed company name to SuSE Linux AG in copyright headers +* Mon Feb 04 2002 - choeger@suse.de +- update to postfix 1.1.3 and tls extensions 0.8.3 + minor bugfixes + http://groups.yahoo.com/group/postfix-users/message/52953 +* Fri Feb 01 2002 - choeger@suse.de +- Bugfix: Forgot to assign a name to TMPDIR in SuSEconfig.postfix +* Fri Feb 01 2002 - choeger@suse.de +- added resolve_local_panic.patch + http://groups.yahoo.com/group/postfix-users/message/52746 +* Wed Jan 30 2002 - choeger@suse.de +- update of tls extensions to 0.8.2 +* Mon Jan 28 2002 - choeger@suse.de +- update to version 1.1.2 +- sysconfig.mail changes +* Tue Jan 22 2002 - choeger@suse.de +- renamed cleanup.fillup to sysconfig.postfix.cleanup +- added postqueue patch, see + http://groups.yahoo.com/group/postfix-users/message/51611 + for more details +* Mon Jan 21 2002 - choeger@suse.de +- update to official release version 1.1.0 +- moved some stuff to /etc/sysconfig/mail +- cleaned up /etc/rc.config access +- added some safety checks to SuSEconfig.postfix +* Wed Jan 16 2002 - choeger@suse.de +- update to version 20020115 (release candidate for Postfix + official release version 1.1) +* Tue Jan 15 2002 - choeger@suse.de +- some improvements to SuSEconfig.postfix +* Fri Jan 11 2002 - choeger@suse.de +- updated to version 20020107 +- added postinstall section to update from previous versions + of postfix +* Tue Jan 08 2002 - egmont@suselinux.hu +- Changed /sbin/init.d to /etc/init.d in init script comment +* Mon Jan 07 2002 - choeger@suse.de +- added sender_canonical_maps to SuSEconfig.postfix to let + the new YaST2 module setup this map similar to sendmails + genericstable +* Thu Jan 03 2002 - kukuk@suse.de +- SuSEconfig.postfix shell script is no config file [Bug #12712] +* Wed Dec 19 2001 - choeger@suse.de +- Made initscript more LSB compliant (status codes) +- Bugfix for Bugzilla ID#12672 (improve explanation + of POSTFIX_LOCALDOMAINS) +- robustness enhancement for SuSEconfig.postfix +* Fri Dec 14 2001 - choeger@suse.de +- typo in specfile (master.cf installed as main.cf) +* Thu Dec 13 2001 - choeger@suse.de +- update to version 20011210 +- some changes to SuSEconfig.postfix: + . added POSTFIX_UPDATE_CHROOT_JAIL variable, see README.SuSE + . some cleanups for chroot jail + . little bugfixes +* Thu Dec 13 2001 - ro@suse.de +- moved rc.config.d -> sysconfig +* Wed Nov 28 2001 - choeger@suse.de +- update to version 20011127 +- some changes to SuSEconfig.postfix: + . added more robustness (Jehova) + . do not chown -R postfix to /var/spool/postfix + . query for package cyrus-sasl instead of sasl +* Tue Nov 20 2001 - choeger@suse.de +- update to version 20011115 + Bugfix for a memory exhaustion bug in smtpd + see http://groups.yahoo.com/group/postfix-users/message/46597 +- remove START_ variable +* Fri Nov 09 2001 - choeger@suse.de +- some changes to specfile (thanks to Simon J Mudd from whom + I copied some code) +* Tue Nov 06 2001 - choeger@suse.de +- fix some SuSEconfig.postfix bugs: + . master.cf chroot column can also contain '-' + . don't do anything if POSTFIX_CREATECF != yes +* Fri Oct 26 2001 - choeger@suse.de +- update to most recent snapshot version 20011008 +* Thu Oct 25 2001 - choeger@suse.de +- update to pl05 +* Fri Oct 19 2001 - choeger@suse.de +- Bugfix, Bugzilla ID#11914 +* Wed Sep 26 2001 - choeger@suse.de +- ALWAYS create master.cf, even is POSTFIX_CREATECF is set + to no, because else chroot mode may not work, Bugzilla ID#11359 +* Thu Sep 13 2001 - choeger@suse.de +- removed an obsolete echo in start section of init-script +* Thu Sep 06 2001 - choeger@suse.de +- Bugfix in init-script: redirect output of postfix start + to dev/null and do not use startproc to start postfix +* Tue Sep 04 2001 - choeger@suse.de +- update to tls-extensions v0.7.9 + see http://groups.yahoo.com/group/postfix-users/message/41094 + for details +* Fri Aug 31 2001 - choeger@suse.de +- update of tls-extensions to 0.7.8 +- update of postfix to pl04 +- Bugfix: - check if postfix spool is set up before starting postfix + - start postfix with postfix start, because postfix-script + wouldn't be executed, else. +* Tue Jul 10 2001 - choeger@suse.de +- update of tls-extensions to 0.7.3 +* Thu Jun 28 2001 - choeger@suse.de +- bugfix: remove libs from chroot jail, that are no longer + valid, Bugzilla ID#9133 +- bugfix: init script was not LSB compliant, Bugzilla ID#9063 +* Fri Jun 15 2001 - choeger@suse.de +- added cyrus to require start in init-script +- "bugfix": bootstrap problem cyrus-imapd <-> postfix: + cyrus-imapd must run before postfix, but fails to create + lmtp socket, because /var/spool/postfix/public directory + isn't present. FIX: add it to filelist +* Wed Jun 13 2001 - choeger@suse.de +- install postrop with special SGID modes +* Tue Jun 12 2001 - choeger@suse.de +- improved SuSEconfig.postfix + - better main.cf handling + - new feature: chroot or not chroot +* Mon May 28 2001 - choeger@suse.de +- major bugfix: memory leak in the LDAP client module +- minor bugfixes +* Wed May 09 2001 - mfabian@suse.de +- bzip2 sources +* Wed May 02 2001 - choeger@suse.de +- updated to pl02, bugfixrelease +* Mon Apr 30 2001 - choeger@suse.de +- Bugfix for SuSEconfig.postfix: + Handling of TIMEZONE variable if set to unappropriate or no + value +- Improvement: Warnings are printed out in bold +* Tue Apr 17 2001 - kukuk@suse.de +- Don't use a RPM macro for version number +* Fri Mar 30 2001 - choeger@suse.de +- update to pl01, bugfixrelease +* Tue Mar 27 2001 - choeger@suse.de +- added libcrack to chroot jail, because + it is needed by pam_pwcheck +* Thu Mar 15 2001 - ro@suse.de +- fixed neededforbuild for openldap +* Mon Mar 05 2001 - choeger@suse.de +- first non-beta of the next postfix generation +- v20010228 +* Tue Feb 27 2001 - ro@suse.de +- added cyrus-sasl-devel to neededforbuild +* Tue Feb 27 2001 - choeger@suse.de +- new version, 20010225 +- removed notification message +* Tue Feb 20 2001 - choeger@suse.de +- bugfix: wrong permissions for maildrop directory +* Wed Jan 31 2001 - choeger@suse.de +- update to version 20010128 +- now linked against ldaplib2 +* Fri Jan 05 2001 - choeger@suse.de +- bugfix: maildrop must be owned by postfix.root +* Mon Dec 18 2000 - choeger@suse.de +- update to version 20001212 +- bugfix: insserv +- bugfix: missed openssl in neededforbuilt +- renamed to postfix, because a non-crypto version + is no longer needed +* Wed Dec 13 2000 - choeger@suse.de +- Bugfix: postfix-script was not executable +* Tue Dec 12 2000 - choeger@suse.de +- Bugfixes: + Provides in initscript + Use /bin/bash in SuSEconfig.postfix +- Update to version 20001210 +* Thu Nov 30 2000 - ro@suse.de +- startscript sbin -> etc +* Thu Nov 23 2000 - choeger@suse.de +- new version +- fix for neededforbuild +- fix for master.cf +* Wed Nov 22 2000 - choeger@suse.de +- adopted to new init scheme +* Wed Nov 15 2000 - choeger@suse.de +- fixed neededforbuild +* Tue Nov 14 2000 - choeger@suse.de +- update to version 20001030 +* Thu Nov 09 2000 - choeger@suse.de +- long packagename +- added rpm buildroot +* Wed Nov 08 2000 - uli@suse.de +- fixed neededforbuild +* Fri Nov 03 2000 - bk@suse.de +- src/util/dict_ldap.c:dict_ldap_lookup(): fix missing **-termination. +* Tue Oct 24 2000 - fober@suse.de +- s390,ppc: added -fsigned-char compiler option, to fix obscure segfaults. + (code is not signed/unsigned-char-clean) +* Thu Oct 12 2000 - choeger@suse.de +- yet another SuSEconfig.postfix bug (incorrect link) +* Wed Oct 11 2000 - choeger@suse.de +- bugfix for SuSEconfig.postfix +* Mon Oct 09 2000 - choeger@suse.de +- bugfix: missed to install new flush service +* Mon Oct 09 2000 - choeger@suse.de +- inititial revision of pfixtls diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4