Accepting request 21172 from server:mail

Copy from server:mail/postfix based on submit request 21172 from user varkoly

OBS-URL: https://build.opensuse.org/request/show/21172
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/postfix?expand=0&rev=37
This commit is contained in:
OBS User autobuild 2009-10-12 14:51:23 +00:00 committed by Git OBS Bridge
parent 8f38b6a1f2
commit f0ff8ace09
11 changed files with 2474 additions and 624 deletions

View File

@ -1,7 +1,6 @@
Index: conf/dynamicmaps.cf diff -ruN postfix-2.6.1//conf/dynamicmaps.cf postfix-2.6.1-dynamic_maps.patch//conf/dynamicmaps.cf
=================================================================== --- postfix-2.6.1//conf/dynamicmaps.cf 1970-01-01 01:00:00.000000000 +0100
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ postfix-2.6.1-dynamic_maps.patch//conf/dynamicmaps.cf 2009-05-27 12:50:33.000000000 +0200
+++ conf/dynamicmaps.cf 2007-08-06 00:02:19.119436818 +0200
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
+# Postfix dynamic maps configuration file. +# Postfix dynamic maps configuration file.
+# +#
@ -10,11 +9,10 @@ Index: conf/dynamicmaps.cf
+# +#
+#type location of .so file open function (mkmap func) +#type location of .so file open function (mkmap func)
+#==== ================================ ============= ============ +#==== ================================ ============= ============
Index: conf/postfix-files diff -ruN postfix-2.6.1//conf/postfix-files postfix-2.6.1-dynamic_maps.patch//conf/postfix-files
=================================================================== --- postfix-2.6.1//conf/postfix-files 2009-02-14 03:08:16.000000000 +0100
--- conf/postfix-files.orig 2007-03-25 22:08:21.000000000 +0200 +++ postfix-2.6.1-dynamic_maps.patch//conf/postfix-files 2009-05-27 12:55:33.000000000 +0200
+++ conf/postfix-files 2007-08-06 00:02:19.135437796 +0200 @@ -65,6 +65,11 @@
@@ -63,6 +63,11 @@ $queue_directory/saved:d:$mail_owner:-:7
$queue_directory/trace:d:$mail_owner:-:700:ucr $queue_directory/trace:d:$mail_owner:-:700:ucr
$daemon_directory/anvil:f:root:-:755 $daemon_directory/anvil:f:root:-:755
$daemon_directory/bounce:f:root:-:755 $daemon_directory/bounce:f:root:-:755
@ -26,7 +24,7 @@ Index: conf/postfix-files
$daemon_directory/cleanup:f:root:-:755 $daemon_directory/cleanup:f:root:-:755
$daemon_directory/discard:f:root:-:755 $daemon_directory/discard:f:root:-:755
$daemon_directory/error:f:root:-:755 $daemon_directory/error:f:root:-:755
@@ -85,6 +90,11 @@ $daemon_directory/tlsmgr:f:root:-:755 @@ -94,6 +99,11 @@
$daemon_directory/trivial-rewrite:f:root:-:755 $daemon_directory/trivial-rewrite:f:root:-:755
$daemon_directory/verify:f:root:-:755 $daemon_directory/verify:f:root:-:755
$daemon_directory/virtual:f:root:-:755 $daemon_directory/virtual:f:root:-:755
@ -38,19 +36,18 @@ Index: conf/postfix-files
$daemon_directory/nqmgr:h:$daemon_directory/qmgr $daemon_directory/nqmgr:h:$daemon_directory/qmgr
$daemon_directory/lmtp:h:$daemon_directory/smtp $daemon_directory/lmtp:h:$daemon_directory/smtp
$command_directory/postalias:f:root:-:755 $command_directory/postalias:f:root:-:755
@@ -107,6 +117,7 @@ $config_directory/access:f:root:-:644:p @@ -117,6 +127,7 @@
$config_directory/aliases:f:root:-:644:p $config_directory/aliases:f:root:-:644:p1
$config_directory/bounce.cf.default:f:root:-:644 $config_directory/bounce.cf.default:f:root:-:644:1
$config_directory/canonical:f:root:-:644:p $config_directory/canonical:f:root:-:644:p1
+$config_directory/dynamicmaps.cf:f:root:-:644:p +$config_directory/dynamicmaps.cf:f:root:-:644:p
$config_directory/cidr_table:f:root:-:644:o $config_directory/cidr_table:f:root:-:644:o
$config_directory/generic:f:root:-:644:p $config_directory/generic:f:root:-:644:p1
$config_directory/generics:f:root:-:644:o $config_directory/generics:f:root:-:644:o
Index: src/dns/Makefile.in diff -ruN postfix-2.6.1//src/dns/Makefile.in postfix-2.6.1-dynamic_maps.patch//src/dns/Makefile.in
=================================================================== --- postfix-2.6.1//src/dns/Makefile.in 2009-01-15 22:36:39.000000000 +0100
--- src/dns/Makefile.in.orig 2007-03-17 18:51:37.000000000 +0100 +++ postfix-2.6.1-dynamic_maps.patch//src/dns/Makefile.in 2009-05-27 12:50:33.000000000 +0200
+++ src/dns/Makefile.in 2007-08-06 00:02:19.251444890 +0200 @@ -14,7 +14,7 @@
@@ -14,7 +14,7 @@ LIBS = ../../lib/libutil.a
LIB_DIR = ../../lib LIB_DIR = ../../lib
INC_DIR = ../../include INC_DIR = ../../include
@ -59,7 +56,7 @@ Index: src/dns/Makefile.in
all: $(LIB) all: $(LIB)
@@ -31,12 +31,10 @@ tests: test dns_rr_to_pa_test dns_rr_to_ @@ -31,12 +31,10 @@
root_tests: root_tests:
$(LIB): $(OBJS) $(LIB): $(OBJS)
@ -73,11 +70,73 @@ Index: src/dns/Makefile.in
update: $(LIB_DIR)/$(LIB) $(HDRS) update: $(LIB_DIR)/$(LIB) $(HDRS)
-for i in $(HDRS); \ -for i in $(HDRS); \
Index: src/global/Makefile.in diff -ruN postfix-2.6.1//src/global/mail_conf.c postfix-2.6.1-dynamic_maps.patch//src/global/mail_conf.c
=================================================================== --- postfix-2.6.1//src/global/mail_conf.c 2009-01-20 02:50:44.000000000 +0100
--- src/global/Makefile.in.orig 2007-03-17 18:53:42.000000000 +0100 +++ postfix-2.6.1-dynamic_maps.patch//src/global/mail_conf.c 2009-05-27 12:50:33.000000000 +0200
+++ src/global/Makefile.in 2007-08-06 00:02:19.351451006 +0200 @@ -182,6 +182,13 @@
@@ -32,7 +32,7 @@ OBJS = abounce.o anvil_clnt.o been_here. 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_flush - discard configuration dictionary */
diff -ruN postfix-2.6.1//src/global/mail_dict.c postfix-2.6.1-dynamic_maps.patch//src/global/mail_dict.c
--- postfix-2.6.1//src/global/mail_dict.c 2008-01-08 22:07:47.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/global/mail_dict.c 2009-05-27 12:50:33.000000000 +0200
@@ -45,6 +45,7 @@
static const 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 @@
#ifdef HAS_PGSQL
DICT_TYPE_PGSQL, dict_pgsql_open,
#endif
+#endif /* MAX_DYNAMIC_MAPS */
0,
};
diff -ruN postfix-2.6.1//src/global/mail_params.c postfix-2.6.1-dynamic_maps.patch//src/global/mail_params.c
--- postfix-2.6.1//src/global/mail_params.c 2009-01-22 22:16:49.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/global/mail_params.c 2009-05-27 12:50:33.000000000 +0200
@@ -79,6 +79,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;
@@ -265,6 +266,7 @@
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;
@@ -276,6 +278,7 @@
char *var_error_service;
char *var_flush_service;
char *var_verify_service;
+char *var_scache_service;
char *var_trace_service;
char *var_proxymap_service;
char *var_proxywrite_service;
diff -ruN postfix-2.6.1//src/global/Makefile.in postfix-2.6.1-dynamic_maps.patch//src/global/Makefile.in
--- postfix-2.6.1//src/global/Makefile.in 2009-02-13 02:25:05.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/global/Makefile.in 2009-05-27 12:50:33.000000000 +0200
@@ -34,7 +34,7 @@
canon_addr.o cfg_parser.o cleanup_strerror.o cleanup_strflags.o \ 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 \ 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 \ defer.o deliver_completed.o deliver_flock.o deliver_pass.o \
@ -86,7 +145,7 @@ Index: src/global/Makefile.in
dict_proxy.o domain_list.o dot_lockfile.o dot_lockfile_as.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 \ 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 \ ehlo_mask.o ext_prop.o file_id.o flush_clnt.o header_opts.o \
@@ -97,10 +97,13 @@ LIBS = ../../lib/libutil.a @@ -103,10 +103,13 @@
LIB_DIR = ../../lib LIB_DIR = ../../lib
INC_DIR = ../../include INC_DIR = ../../include
MAKES = MAKES =
@ -102,7 +161,7 @@ Index: src/global/Makefile.in
$(OBJS): ../../conf/makedefs.out $(OBJS): ../../conf/makedefs.out
@@ -110,14 +113,30 @@ Makefile: Makefile.in @@ -116,14 +119,30 @@
test: $(TESTPROG) test: $(TESTPROG)
$(LIB): $(OBJS) $(LIB): $(OBJS)
@ -137,7 +196,7 @@ Index: src/global/Makefile.in
-for i in $(HDRS); \ -for i in $(HDRS); \
do \ do \
cmp -s $$i $(INC_DIR)/$$i 2>/dev/null || cp $$i $(INC_DIR); \ cmp -s $$i $(INC_DIR)/$$i 2>/dev/null || cp $$i $(INC_DIR); \
@@ -425,7 +444,7 @@ lint: @@ -491,7 +510,7 @@
lint $(DEFS) $(SRCS) $(LINTFIX) lint $(DEFS) $(SRCS) $(LINTFIX)
clean: clean:
@ -146,78 +205,11 @@ Index: src/global/Makefile.in
rm -rf printfck rm -rf printfck
tidy: clean tidy: clean
Index: src/global/mail_conf.c diff -ruN postfix-2.6.1//src/global/mkmap_open.c postfix-2.6.1-dynamic_maps.patch//src/global/mkmap_open.c
=================================================================== --- postfix-2.6.1//src/global/mkmap_open.c 2008-01-08 23:08:45.000000000 +0100
--- src/global/mail_conf.c.orig 2004-04-10 16:52:51.000000000 +0200 +++ postfix-2.6.1-dynamic_maps.patch//src/global/mkmap_open.c 2009-05-27 12:50:33.000000000 +0200
+++ src/global/mail_conf.c 2007-08-06 00:02:19.451457122 +0200 @@ -81,7 +81,7 @@
@@ -175,6 +175,13 @@ void mail_conf_suck(void) * We use a different table (in dict_open.c) when querying maps.
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: src/global/mail_dict.c
===================================================================
--- src/global/mail_dict.c.orig 2004-01-04 19:53:27.000000000 +0100
+++ src/global/mail_dict.c 2007-08-06 00:02:19.499460057 +0200
@@ -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: src/global/mail_params.c
===================================================================
--- src/global/mail_params.c.orig 2007-07-10 19:27:12.000000000 +0200
+++ src/global/mail_params.c 2007-08-06 00:02:19.515461036 +0200
@@ -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;
@@ -248,6 +249,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;
@@ -259,6 +261,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: src/global/mkmap_open.c
===================================================================
--- src/global/mkmap_open.c.orig 2004-12-15 01:24:22.000000000 +0100
+++ src/global/mkmap_open.c 2007-08-06 00:02:19.547462993 +0200
@@ -78,7 +78,7 @@
* types that exist as files. Network-based maps are not of interest.
*/ */
typedef struct { typedef struct {
- char *type; - char *type;
@ -225,7 +217,7 @@ Index: src/global/mkmap_open.c
MKMAP *(*before_open) (const char *); MKMAP *(*before_open) (const char *);
} MKMAP_OPEN_INFO; } MKMAP_OPEN_INFO;
@@ -152,7 +152,16 @@ MKMAP *mkmap_open(const char *type, con @@ -156,7 +156,16 @@
*/ */
for (mp = mkmap_types; /* void */ ; mp++) { for (mp = mkmap_types; /* void */ ; mp++) {
if (mp->type == 0) if (mp->type == 0)
@ -242,11 +234,10 @@ Index: src/global/mkmap_open.c
if (strcmp(type, mp->type) == 0) if (strcmp(type, mp->type) == 0)
break; break;
} }
Index: src/master/Makefile.in diff -ruN postfix-2.6.1//src/master/Makefile.in postfix-2.6.1-dynamic_maps.patch//src/master/Makefile.in
=================================================================== --- postfix-2.6.1//src/master/Makefile.in 2009-01-15 22:36:39.000000000 +0100
--- src/master/Makefile.in.orig 2007-03-17 18:51:39.000000000 +0100 +++ postfix-2.6.1-dynamic_maps.patch//src/master/Makefile.in 2009-05-27 12:50:33.000000000 +0200
+++ src/master/Makefile.in 2007-08-06 00:02:19.563463971 +0200 @@ -20,7 +20,7 @@
@@ -20,7 +20,7 @@ LIB_DIR = ../../lib
INC_DIR = ../../include INC_DIR = ../../include
BIN_DIR = ../../libexec BIN_DIR = ../../libexec
@ -255,7 +246,7 @@ Index: src/master/Makefile.in
all: $(PROG) $(LIB) all: $(PROG) $(LIB)
@@ -39,12 +39,10 @@ tests: @@ -39,12 +39,10 @@
root_tests: root_tests:
$(LIB): $(LIB_OBJ) $(LIB): $(LIB_OBJ)
@ -269,11 +260,36 @@ Index: src/master/Makefile.in
$(BIN_DIR)/$(PROG): $(PROG) $(BIN_DIR)/$(PROG): $(PROG)
cp $(PROG) $(BIN_DIR) cp $(PROG) $(BIN_DIR)
Index: src/postconf/postconf.c diff -ruN postfix-2.6.1//src/milter/Makefile.in postfix-2.6.1-dynamic_maps.patch//src/milter/Makefile.in
=================================================================== --- postfix-2.6.1//src/milter/Makefile.in 2009-01-15 22:36:39.000000000 +0100
--- src/postconf/postconf.c.orig 2007-04-26 21:34:57.000000000 +0200 +++ postfix-2.6.1-dynamic_maps.patch//src/milter/Makefile.in 2009-05-27 12:50:33.000000000 +0200
+++ src/postconf/postconf.c 2007-08-06 00:02:19.687471554 +0200 @@ -14,7 +14,7 @@
@@ -893,6 +893,16 @@ static void show_maps(void) INC_DIR = ../../include
MAKES =
-.c.o:; $(CC) $(CFLAGS) -c $*.c
+.c.o:; $(CC) -fPIC $(CFLAGS) -c $*.c
all: $(LIB)
@@ -30,12 +30,10 @@
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 -ruN postfix-2.6.1//src/postconf/postconf.c postfix-2.6.1-dynamic_maps.patch//src/postconf/postconf.c
--- postfix-2.6.1//src/postconf/postconf.c 2009-02-13 02:49:27.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/postconf/postconf.c 2009-05-27 12:50:33.000000000 +0200
@@ -962,6 +962,16 @@
{ {
ARGV *maps_argv; ARGV *maps_argv;
int i; int i;
@ -290,21 +306,20 @@ Index: src/postconf/postconf.c
maps_argv = dict_mapnames(); maps_argv = dict_mapnames();
for (i = 0; i < maps_argv->argc; i++) for (i = 0; i < maps_argv->argc; i++)
Index: src/postmap/postmap.c diff -ruN postfix-2.6.1//src/postmap/postmap.c postfix-2.6.1-dynamic_maps.patch//src/postmap/postmap.c
=================================================================== --- postfix-2.6.1//src/postmap/postmap.c 2009-04-17 22:04:00.000000000 +0200
--- src/postmap/postmap.c.orig 2007-03-27 02:09:16.000000000 +0200 +++ postfix-2.6.1-dynamic_maps.patch//src/postmap/postmap.c 2009-05-27 12:59:50.000000000 +0200
+++ src/postmap/postmap.c 2007-08-06 00:02:19.707472778 +0200
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
/* Postfix lookup table management /* Postfix lookup table management
/* SYNOPSIS /* SYNOPSIS
/* .fi /* .fi
-/* \fBpostmap\fR [\fB-Nfinoprsvw\fR] [\fB-c \fIconfig_dir\fR] -/* \fBpostmap\fR [\fB-Nbfhimnoprsvw\fR] [\fB-c \fIconfig_dir\fR]
+/* \fBpostmap\fR [\fB-Nfinoprsuvw\fR] [\fB-c \fIconfig_dir\fR] +/* \fBpostmap\fR [\fB-Nbfhimnoprsuvw\fR] [\fB-c \fIconfig_dir\fR]
/* [\fB-d \fIkey\fR] [\fB-q \fIkey\fR] /* [\fB-d \fIkey\fR] [\fB-q \fIkey\fR]
/* [\fIfile_type\fR:]\fIfile_name\fR ... /* [\fIfile_type\fR:]\fIfile_name\fR ...
/* DESCRIPTION /* DESCRIPTION
@@ -115,6 +115,8 @@ @@ -151,6 +151,8 @@
/* as the original input order. /* .sp
/* This feature is available in Postfix version 2.2 and later, /* This feature is available in Postfix version 2.2 and later,
/* and is not available for all database types. /* and is not available for all database types.
+/* .IP \fB-u\fR +/* .IP \fB-u\fR
@ -312,7 +327,7 @@ Index: src/postmap/postmap.c
/* .IP \fB-v\fR /* .IP \fB-v\fR
/* Enable verbose logging for debugging purposes. Multiple \fB-v\fR /* Enable verbose logging for debugging purposes. Multiple \fB-v\fR
/* options make the software increasingly verbose. /* options make the software increasingly verbose.
@@ -538,6 +540,18 @@ static void postmap_seq(const char *map_ @@ -723,6 +725,18 @@
dict_close(dict); dict_close(dict);
} }
@ -331,7 +346,7 @@ Index: src/postmap/postmap.c
/* usage - explain */ /* usage - explain */
static NORETURN usage(char *myname) static NORETURN usage(char *myname)
@@ -558,6 +572,7 @@ int main(int argc, char **argv) @@ -743,6 +757,7 @@
int postmap_flags = POSTMAP_FLAG_AS_OWNER | POSTMAP_FLAG_SAVE_PERM; int postmap_flags = POSTMAP_FLAG_AS_OWNER | POSTMAP_FLAG_SAVE_PERM;
int open_flags = O_RDWR | O_CREAT | O_TRUNC; int open_flags = O_RDWR | O_CREAT | O_TRUNC;
int dict_flags = DICT_FLAG_DUP_WARN | DICT_FLAG_FOLD_FIX; int dict_flags = DICT_FLAG_DUP_WARN | DICT_FLAG_FOLD_FIX;
@ -339,16 +354,16 @@ Index: src/postmap/postmap.c
char *query = 0; char *query = 0;
char *delkey = 0; char *delkey = 0;
int sequence = 0; int sequence = 0;
@@ -602,7 +617,7 @@ int main(int argc, char **argv) @@ -787,7 +802,7 @@
/* /*
* Parse JCL. * Parse JCL.
*/ */
- while ((ch = GETOPT(argc, argv, "Nc:d:finopq:rsvw")) > 0) { - while ((ch = GETOPT(argc, argv, "Nbc:d:fhimnopq:rsvw")) > 0) {
+ while ((ch = GETOPT(argc, argv, "Nc:d:finopq:rsuvw")) > 0) { + while ((ch = GETOPT(argc, argv, "Nbc:d:fhimnopq:rsuvw")) > 0) {
switch (ch) { switch (ch) {
default: default:
usage(argv[0]); usage(argv[0]);
@@ -616,8 +631,8 @@ int main(int argc, char **argv) @@ -804,8 +819,8 @@
msg_fatal("out of memory"); msg_fatal("out of memory");
break; break;
case 'd': case 'd':
@ -359,7 +374,7 @@ Index: src/postmap/postmap.c
delkey = optarg; delkey = optarg;
break; break;
case 'f': case 'f':
@@ -637,8 +652,8 @@ int main(int argc, char **argv) @@ -831,8 +846,8 @@
postmap_flags &= ~POSTMAP_FLAG_SAVE_PERM; postmap_flags &= ~POSTMAP_FLAG_SAVE_PERM;
break; break;
case 'q': case 'q':
@ -370,7 +385,7 @@ Index: src/postmap/postmap.c
query = optarg; query = optarg;
break; break;
case 'r': case 'r':
@@ -646,10 +661,15 @@ int main(int argc, char **argv) @@ -840,10 +855,15 @@
dict_flags |= DICT_FLAG_DUP_REPLACE; dict_flags |= DICT_FLAG_DUP_REPLACE;
break; break;
case 's': case 's':
@ -388,7 +403,7 @@ Index: src/postmap/postmap.c
case 'v': case 'v':
msg_verbose++; msg_verbose++;
break; break;
@@ -717,6 +737,21 @@ int main(int argc, char **argv) @@ -914,6 +934,21 @@
exit(0); exit(0);
} }
exit(1); exit(1);
@ -410,11 +425,10 @@ Index: src/postmap/postmap.c
} else { /* create/update map(s) */ } else { /* create/update map(s) */
if (optind + 1 > argc) if (optind + 1 > argc)
usage(argv[0]); usage(argv[0]);
Index: src/tls/Makefile.in diff -ruN postfix-2.6.1//src/tls/Makefile.in postfix-2.6.1-dynamic_maps.patch//src/tls/Makefile.in
=================================================================== --- postfix-2.6.1//src/tls/Makefile.in 2009-01-15 22:36:39.000000000 +0100
--- src/tls/Makefile.in.orig 2007-03-17 18:51:38.000000000 +0100 +++ postfix-2.6.1-dynamic_maps.patch//src/tls/Makefile.in 2009-05-27 12:50:33.000000000 +0200
+++ src/tls/Makefile.in 2007-08-06 00:02:19.731474245 +0200 @@ -22,7 +22,7 @@
@@ -22,7 +22,7 @@ LIB_DIR = ../../lib
INC_DIR = ../../include INC_DIR = ../../include
MAKES = MAKES =
@ -423,7 +437,7 @@ Index: src/tls/Makefile.in
all: $(LIB) all: $(LIB)
@@ -38,12 +38,10 @@ tests: @@ -38,12 +38,10 @@
root_tests: root_tests:
$(LIB): $(OBJS) $(LIB): $(OBJS)
@ -437,141 +451,34 @@ Index: src/tls/Makefile.in
update: $(LIB_DIR)/$(LIB) $(HDRS) update: $(LIB_DIR)/$(LIB) $(HDRS)
-for i in $(HDRS); \ -for i in $(HDRS); \
Index: src/util/Makefile.in diff -ruN postfix-2.6.1//src/tls/tls_client.c postfix-2.6.1-dynamic_maps.patch//src/tls/tls_client.c
=================================================================== --- postfix-2.6.1//src/tls/tls_client.c 2008-11-09 00:51:41.000000000 +0100
--- src/util/Makefile.in.orig 2008-01-07 17:22:02.000000000 +0100 +++ postfix-2.6.1-dynamic_maps.patch//src/tls/tls_client.c 2009-05-27 12:50:33.000000000 +0200
+++ src/util/Makefile.in 2008-01-28 17:05:05.000000000 +0100 @@ -155,6 +155,8 @@
@@ -31,15 +31,16 @@ #define STR vstring_str
vstream_popen.c vstring.c vstring_vstream.c watchdog.c writable.c \ #define LEN VSTRING_LEN
write_buf.c write_wait.c sane_basename.c format_tv.c allspace.c \
allascii.c load_file.c killme_after.c vstream_tweak.c upass_connect.c \
- upass_listen.c upass_trigger.c
+ upass_listen.c upass_trigger.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 \
@@ -64,7 +65,8 @@
vstream_popen.o vstring.o vstring_vstream.o watchdog.o writable.o \
write_buf.o write_wait.o sane_basename.o format_tv.o allspace.o \
allascii.o load_file.o killme_after.o vstream_tweak.o upass_connect.o \
- upass_listen.o upass_trigger.o
+ upass_listen.o upass_trigger.o \
+ load_lib.o sdbm.o
HDRS = argv.h attr.h attr_clnt.h auto_clnt.h base64_code.h binhash.h \
chroot_uid.h cidr_match.h clean_env.h connect.h ctable.h dict.h \
dict_cdb.h dict_cidr.h dict_db.h dict_dbm.h dict_env.h dict_ht.h \
@@ -78,7 +80,7 @@
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 \
@@ -90,6 +92,8 @@
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 \
@@ -104,10 +108,11 @@
LIB_DIR = ../../lib +int var_tls_daemon_rand_bytes;
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
@@ -116,15 +121,25 @@
test: $(TESTPROG)
+$(PCRESO): dict_pcre.o
+ gcc -shared -Wl,-soname,dict_pcre.so -o $@ $? -lpcre -L. -lutil
+ +
+$(TCPSO): dict_tcp.o /* load_clnt_session - load session from client cache (non-callback) */
+ gcc -shared -Wl,-soname,dict_tcp.so -o $@ $? -L. -lutil
static SSL_SESSION *load_clnt_session(TLS_SESS_STATE *TLScontext)
diff -ruN postfix-2.6.1//src/tls/tls_server.c postfix-2.6.1-dynamic_maps.patch//src/tls/tls_server.c
--- postfix-2.6.1//src/tls/tls_server.c 2008-11-09 00:51:48.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/tls/tls_server.c 2009-05-27 12:50:33.000000000 +0200
@@ -124,6 +124,8 @@
#define STR(x) vstring_str(x)
#define LEN(x) VSTRING_LEN(x)
+int var_tls_daemon_rand_bytes;
+ +
$(LIB): $(OBJS) /* Application-specific. */
- $(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) diff -ruN postfix-2.6.1//src/util/dict_db.c postfix-2.6.1-dynamic_maps.patch//src/util/dict_db.c
- $(RANLIB) $(LIB_DIR)/$(LIB) --- postfix-2.6.1//src/util/dict_db.c 2007-01-04 15:06:07.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/util/dict_db.c 2009-05-27 12:50:33.000000000 +0200
-update: $(LIB_DIR)/$(LIB) $(HDRS) @@ -664,6 +664,12 @@
+$(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); \
@@ -146,7 +161,8 @@
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: src/util/dict.h
===================================================================
--- src/util/dict.h.orig 2007-01-05 01:48:48.000000000 +0100
+++ src/util/dict.h 2007-08-06 00:02:19.799478404 +0200
@@ -66,6 +66,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 */
@@ -136,6 +137,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: src/util/dict_db.c
===================================================================
--- src/util/dict_db.c.orig 2007-01-04 15:06:07.000000000 +0100
+++ src/util/dict_db.c 2007-08-06 00:02:19.843481095 +0200
@@ -664,6 +664,12 @@ static DICT *dict_db_open(const char *cl
msg_fatal("set DB cache size %d: %m", dict_db_cache_size); 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) 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); msg_fatal("set DB hash element count %d: %m", DICT_DB_NELM);
@ -584,11 +491,10 @@ Index: src/util/dict_db.c
#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0) #if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0)
if ((errno = db->open(db, 0, db_path, 0, type, db_flags, 0644)) != 0) if ((errno = db->open(db, 0, db_path, 0, type, db_flags, 0644)) != 0)
msg_fatal("open database %s: %m", db_path); msg_fatal("open database %s: %m", db_path);
Index: src/util/dict_dbm.c diff -ruN postfix-2.6.1//src/util/dict_dbm.c postfix-2.6.1-dynamic_maps.patch//src/util/dict_dbm.c
=================================================================== --- postfix-2.6.1//src/util/dict_dbm.c 2007-01-04 15:07:36.000000000 +0100
--- src/util/dict_dbm.c.orig 2007-01-04 15:07:36.000000000 +0100 +++ postfix-2.6.1-dynamic_maps.patch//src/util/dict_dbm.c 2009-05-27 12:50:33.000000000 +0200
+++ src/util/dict_dbm.c 2007-08-06 00:02:19.867482562 +0200 @@ -407,6 +407,10 @@
@@ -407,6 +407,10 @@ DICT *dict_dbm_open(const char *path,
char *dbm_path; char *dbm_path;
int lock_fd; int lock_fd;
@ -599,10 +505,32 @@ Index: src/util/dict_dbm.c
/* /*
* Note: DICT_FLAG_LOCK is used only by programs that do fine-grained (in * Note: DICT_FLAG_LOCK is used only by programs that do fine-grained (in
* the time domain) locking while accessing individual database records. * the time domain) locking while accessing individual database records.
Index: src/util/dict_open.c diff -ruN postfix-2.6.1//src/util/dict.h postfix-2.6.1-dynamic_maps.patch//src/util/dict.h
=================================================================== --- postfix-2.6.1//src/util/dict.h 2007-12-03 20:42:26.000000000 +0100
--- src/util/dict_open.c.orig 2006-06-26 14:59:19.000000000 +0200 +++ postfix-2.6.1-dynamic_maps.patch//src/util/dict.h 2009-05-27 12:50:33.000000000 +0200
+++ src/util/dict_open.c 2007-08-06 00:02:19.907485009 +0200 @@ -66,6 +66,7 @@
#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 */
@@ -138,6 +139,11 @@
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) ((const char *) (dp)->lookup((dp), (key)))
#define dict_put(dp, key, val) (dp)->update((dp), (key), (val))
diff -ruN postfix-2.6.1//src/util/dict_open.c postfix-2.6.1-dynamic_maps.patch//src/util/dict_open.c
--- postfix-2.6.1//src/util/dict_open.c 2008-01-08 22:05:20.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/util/dict_open.c 2009-05-27 12:50:33.000000000 +0200
@@ -44,6 +44,8 @@ @@ -44,6 +44,8 @@
/* DICT *(*open) (const char *, int, int); /* DICT *(*open) (const char *, int, int);
/* /*
@ -612,7 +540,7 @@ Index: src/util/dict_open.c
/* DESCRIPTION /* DESCRIPTION
/* This module implements a low-level interface to multiple /* This module implements a low-level interface to multiple
/* physical dictionary types. /* physical dictionary types.
@@ -156,6 +158,9 @@ @@ -159,6 +161,9 @@
/* /*
/* dict_mapnames() returns a sorted list with the names of all available /* dict_mapnames() returns a sorted list with the names of all available
/* dictionary types. /* dictionary types.
@ -622,7 +550,7 @@ Index: src/util/dict_open.c
/* DIAGNOSTICS /* DIAGNOSTICS
/* Fatal error: open error, unsupported dictionary type, attempt to /* Fatal error: open error, unsupported dictionary type, attempt to
/* update non-writable dictionary. /* update non-writable dictionary.
@@ -180,6 +185,9 @@ @@ -183,6 +188,9 @@
#include <strings.h> #include <strings.h>
#endif #endif
@ -632,7 +560,7 @@ Index: src/util/dict_open.c
/* Utility library. */ /* Utility library. */
#include <argv.h> #include <argv.h>
@@ -204,6 +212,27 @@ @@ -207,6 +215,27 @@
#include <split_at.h> #include <split_at.h>
#include <htable.h> #include <htable.h>
@ -660,7 +588,7 @@ Index: src/util/dict_open.c
/* /*
* lookup table for available map types. * lookup table for available map types.
*/ */
@@ -218,9 +247,11 @@ static DICT_OPEN_INFO dict_open_info[] = @@ -221,9 +250,11 @@
#endif #endif
DICT_TYPE_ENVIRON, dict_env_open, DICT_TYPE_ENVIRON, dict_env_open,
DICT_TYPE_UNIX, dict_unix_open, DICT_TYPE_UNIX, dict_unix_open,
@ -672,7 +600,7 @@ Index: src/util/dict_open.c
#ifdef HAS_SDBM #ifdef HAS_SDBM
DICT_TYPE_SDBM, dict_sdbm_open, DICT_TYPE_SDBM, dict_sdbm_open,
#endif #endif
@@ -240,9 +271,11 @@ static DICT_OPEN_INFO dict_open_info[] = @@ -243,9 +274,11 @@
#ifdef HAS_NETINFO #ifdef HAS_NETINFO
DICT_TYPE_NETINFO, dict_ni_open, DICT_TYPE_NETINFO, dict_ni_open,
#endif #endif
@ -684,7 +612,7 @@ Index: src/util/dict_open.c
#ifdef HAS_POSIX_REGEXP #ifdef HAS_POSIX_REGEXP
DICT_TYPE_REGEXP, dict_regexp_open, DICT_TYPE_REGEXP, dict_regexp_open,
#endif #endif
@@ -300,8 +333,31 @@ DICT *dict_open3(const char *dict_type @@ -303,8 +336,31 @@
dict_type, dict_name); dict_type, dict_name);
if (dict_open_hash == 0) if (dict_open_hash == 0)
dict_open_init(); dict_open_init();
@ -718,7 +646,7 @@ Index: src/util/dict_open.c
if ((dict = dp->open(dict_name, open_flags, dict_flags)) == 0) if ((dict = dp->open(dict_name, open_flags, dict_flags)) == 0)
msg_fatal("opening %s:%s %m", dict_type, dict_name); msg_fatal("opening %s:%s %m", dict_type, dict_name);
if (msg_verbose) if (msg_verbose)
@@ -309,6 +365,36 @@ DICT *dict_open3(const char *dict_type @@ -312,6 +368,36 @@
return (dict); return (dict);
} }
@ -755,7 +683,7 @@ Index: src/util/dict_open.c
/* dict_open_register - register dictionary type */ /* dict_open_register - register dictionary type */
void dict_open_register(const char *type, void dict_open_register(const char *type,
@@ -342,6 +428,9 @@ ARGV *dict_mapnames() @@ -345,6 +431,9 @@
HTABLE_INFO **ht; HTABLE_INFO **ht;
DICT_OPEN_INFO *dp; DICT_OPEN_INFO *dp;
ARGV *mapnames; ARGV *mapnames;
@ -765,7 +693,7 @@ Index: src/util/dict_open.c
if (dict_open_hash == 0) if (dict_open_hash == 0)
dict_open_init(); dict_open_init();
@@ -350,6 +439,13 @@ ARGV *dict_mapnames() @@ -353,6 +442,13 @@
dp = (DICT_OPEN_INFO *) ht[0]->value; dp = (DICT_OPEN_INFO *) ht[0]->value;
argv_add(mapnames, dp->type, ARGV_END); argv_add(mapnames, dp->type, ARGV_END);
} }
@ -779,7 +707,7 @@ Index: src/util/dict_open.c
qsort((void *) mapnames->argv, mapnames->argc, sizeof(mapnames->argv[0]), qsort((void *) mapnames->argv, mapnames->argc, sizeof(mapnames->argv[0]),
dict_sort_alpha_cpp); dict_sort_alpha_cpp);
myfree((char *) ht_info); myfree((char *) ht_info);
@@ -357,6 +453,87 @@ ARGV *dict_mapnames() @@ -360,6 +456,87 @@
return mapnames; return mapnames;
} }
@ -867,10 +795,9 @@ Index: src/util/dict_open.c
#ifdef TEST #ifdef TEST
/* /*
Index: src/util/load_lib.c diff -ruN postfix-2.6.1//src/util/load_lib.c postfix-2.6.1-dynamic_maps.patch//src/util/load_lib.c
=================================================================== --- postfix-2.6.1//src/util/load_lib.c 1970-01-01 01:00:00.000000000 +0100
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ postfix-2.6.1-dynamic_maps.patch//src/util/load_lib.c 2009-05-27 12:50:33.000000000 +0200
+++ src/util/load_lib.c 2007-08-06 00:02:19.939486966 +0200
@@ -0,0 +1,135 @@ @@ -0,0 +1,135 @@
+/*++ +/*++
+/* NAME +/* NAME
@ -1007,10 +934,9 @@ Index: src/util/load_lib.c
+#endif +#endif
+ return 0; + return 0;
+} +}
Index: src/util/load_lib.h diff -ruN postfix-2.6.1//src/util/load_lib.h postfix-2.6.1-dynamic_maps.patch//src/util/load_lib.h
=================================================================== --- postfix-2.6.1//src/util/load_lib.h 1970-01-01 01:00:00.000000000 +0100
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ postfix-2.6.1-dynamic_maps.patch//src/util/load_lib.h 2009-05-27 12:50:33.000000000 +0200
+++ src/util/load_lib.h 2007-08-06 00:02:19.971488923 +0200
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
+#ifndef _LOAD_LIB_H_INCLUDED_ +#ifndef _LOAD_LIB_H_INCLUDED_
+#define _LOAD_LIB_H_INCLUDED_ +#define _LOAD_LIB_H_INCLUDED_
@ -1053,10 +979,114 @@ Index: src/util/load_lib.h
+/*--*/ +/*--*/
+ +
+#endif +#endif
Index: src/util/sdbm.c diff -ruN postfix-2.6.1//src/util/Makefile.in postfix-2.6.1-dynamic_maps.patch//src/util/Makefile.in
=================================================================== --- postfix-2.6.1//src/util/Makefile.in 2009-04-27 14:04:22.000000000 +0200
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ postfix-2.6.1-dynamic_maps.patch//src/util/Makefile.in 2009-05-27 16:05:55.000000000 +0200
+++ src/util/sdbm.c 2007-08-06 00:02:19.995490390 +0200 @@ -31,15 +31,16 @@
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 killme_after.c vstream_tweak.c upass_connect.c \
- upass_listen.c upass_trigger.c edit_file.c inet_windowsize.c
+ upass_listen.c upass_trigger.c edit_file.c inet_windowsize.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 \
@@ -64,7 +65,8 @@
vstream_popen.o vstring.o vstring_vstream.o watchdog.o writable.o \
write_buf.o write_wait.o sane_basename.o format_tv.o allspace.o \
allascii.o load_file.o killme_after.o vstream_tweak.o upass_connect.o \
- upass_listen.o upass_trigger.o edit_file.o inet_windowsize.o
+ upass_listen.o upass_trigger.o edit_file.o inet_windowsize.o \
+ load_lib.o sdbm.o
HDRS = argv.h attr.h attr_clnt.h auto_clnt.h base64_code.h binhash.h \
chroot_uid.h cidr_match.h clean_env.h connect.h ctable.h dict.h \
dict_cdb.h dict_cidr.h dict_db.h dict_dbm.h dict_env.h dict_ht.h \
@@ -78,7 +80,7 @@
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 \
@@ -91,6 +93,8 @@
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 \
@@ -105,10 +109,11 @@
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
@@ -117,15 +122,25 @@
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); \
@@ -147,7 +162,8 @@
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
diff -ruN postfix-2.6.1//src/util/sdbm.c postfix-2.6.1-dynamic_maps.patch//src/util/sdbm.c
--- postfix-2.6.1//src/util/sdbm.c 1970-01-01 01:00:00.000000000 +0100
+++ postfix-2.6.1-dynamic_maps.patch//src/util/sdbm.c 2009-05-27 12:50:33.000000000 +0200
@@ -0,0 +1,972 @@ @@ -0,0 +1,972 @@
+/*++ +/*++
+/* NAME +/* NAME
@ -2030,10 +2060,9 @@ Index: src/util/sdbm.c
+ return db; + return db;
+} +}
+ +
Index: src/util/sdbm.h diff -ruN postfix-2.6.1//src/util/sdbm.h postfix-2.6.1-dynamic_maps.patch//src/util/sdbm.h
=================================================================== --- postfix-2.6.1//src/util/sdbm.h 1970-01-01 01:00:00.000000000 +0100
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ postfix-2.6.1-dynamic_maps.patch//src/util/sdbm.h 2009-05-27 12:50:33.000000000 +0200
+++ src/util/sdbm.h 2007-08-06 00:02:20.023492103 +0200
@@ -0,0 +1,97 @@ @@ -0,0 +1,97 @@
+/*++ +/*++
+/* NAME +/* NAME
@ -2132,11 +2161,10 @@ Index: src/util/sdbm.h
+#define BADMESS /* generate a message for worst case: +#define BADMESS /* generate a message for worst case:
+ cannot make room after SPLTMAX splits */ + cannot make room after SPLTMAX splits */
+#endif /* UTIL_SDBM_H */ +#endif /* UTIL_SDBM_H */
Index: src/util/sys_defs.h diff -ruN postfix-2.6.1//src/util/sys_defs.h postfix-2.6.1-dynamic_maps.patch//src/util/sys_defs.h
=================================================================== --- postfix-2.6.1//src/util/sys_defs.h 2009-05-11 02:45:27.000000000 +0200
--- src/util/sys_defs.h.orig 2007-03-24 23:45:33.000000000 +0100 +++ postfix-2.6.1-dynamic_maps.patch//src/util/sys_defs.h 2009-05-27 13:19:08.000000000 +0200
+++ src/util/sys_defs.h 2007-08-06 00:02:20.039493081 +0200 @@ -710,6 +710,7 @@
@@ -689,6 +689,7 @@ extern int initgroups(const char *, int)
#define INTERNAL_LOCK MYFLOCK_STYLE_FLOCK #define INTERNAL_LOCK MYFLOCK_STYLE_FLOCK
#define DEF_MAILBOX_LOCK "fcntl, dotlock" /* RedHat >= 4.x */ #define DEF_MAILBOX_LOCK "fcntl, dotlock" /* RedHat >= 4.x */
#define HAS_FSYNC #define HAS_FSYNC
@ -2144,7 +2172,7 @@ Index: src/util/sys_defs.h
#define HAS_DB #define HAS_DB
#define DEF_DB_TYPE "hash" #define DEF_DB_TYPE "hash"
#define ALIAS_DB_MAP "hash:/etc/aliases" #define ALIAS_DB_MAP "hash:/etc/aliases"
@@ -700,11 +701,25 @@ extern int initgroups(const char *, int) @@ -721,11 +722,25 @@
#define STATFS_IN_SYS_VFS_H #define STATFS_IN_SYS_VFS_H
#define PREPEND_PLUS_TO_OPTSTRING #define PREPEND_PLUS_TO_OPTSTRING
#define HAS_POSIX_REGEXP #define HAS_POSIX_REGEXP
@ -2167,10 +2195,10 @@ Index: src/util/sys_defs.h
+#else +#else
#define NATIVE_DAEMON_DIR "/usr/libexec/postfix" #define NATIVE_DAEMON_DIR "/usr/libexec/postfix"
+#endif +#endif
#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 #ifdef __GLIBC_PREREQ
#define SOCKADDR_SIZE socklen_t # define HAVE_GLIBC_API_VERSION_SUPPORT(maj, min) __GLIBC_PREREQ(maj, min)
#define SOCKOPT_SIZE socklen_t #else
@@ -859,6 +874,7 @@ extern int h_errno; /* <netdb.h> impor @@ -891,6 +906,7 @@
#define USE_STATFS #define USE_STATFS
#define STATFS_IN_SYS_VFS_H #define STATFS_IN_SYS_VFS_H
#define HAS_POSIX_REGEXP #define HAS_POSIX_REGEXP
@ -2178,7 +2206,7 @@ Index: src/util/sys_defs.h
#define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" #define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail"
#define NATIVE_MAILQ_PATH "/usr/bin/mailq" #define NATIVE_MAILQ_PATH "/usr/bin/mailq"
#define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases"
@@ -896,6 +912,7 @@ extern int h_errno; /* <netdb.h> impor @@ -928,6 +944,7 @@
#define USE_STATFS #define USE_STATFS
#define STATFS_IN_SYS_VFS_H #define STATFS_IN_SYS_VFS_H
#define HAS_POSIX_REGEXP #define HAS_POSIX_REGEXP
@ -2186,7 +2214,7 @@ Index: src/util/sys_defs.h
#define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail" #define NATIVE_SENDMAIL_PATH "/usr/sbin/sendmail"
#define NATIVE_MAILQ_PATH "/usr/bin/mailq" #define NATIVE_MAILQ_PATH "/usr/bin/mailq"
#define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases"
@@ -935,6 +952,7 @@ extern int h_errno; @@ -967,6 +984,7 @@
#define USE_STATFS #define USE_STATFS
#define STATFS_IN_SYS_VFS_H #define STATFS_IN_SYS_VFS_H
#define HAS_POSIX_REGEXP #define HAS_POSIX_REGEXP
@ -2194,56 +2222,3 @@ Index: src/util/sys_defs.h
#define NATIVE_SENDMAIL_PATH "/usr/bin/sendmail" #define NATIVE_SENDMAIL_PATH "/usr/bin/sendmail"
#define NATIVE_MAILQ_PATH "/usr/bin/mailq" #define NATIVE_MAILQ_PATH "/usr/bin/mailq"
#define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases" #define NATIVE_NEWALIAS_PATH "/usr/bin/newaliases"
Index: src/tls/tls_client.c
===================================================================
--- src/tls/tls_client.c.orig 2007-02-22 01:08:45.000000000 +0100
+++ src/tls/tls_client.c 2007-08-06 00:02:20.079495528 +0200
@@ -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: src/tls/tls_server.c
===================================================================
--- src/tls/tls_server.c.orig 2007-02-22 01:08:45.000000000 +0100
+++ src/tls/tls_server.c 2007-08-06 00:02:20.095496506 +0200
@@ -120,6 +120,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: src/milter/Makefile.in
===================================================================
--- src/milter/Makefile.in.orig 2007-03-17 18:51:39.000000000 +0100
+++ src/milter/Makefile.in 2007-08-06 00:02:20.211503600 +0200
@@ -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); \

View File

@ -0,0 +1,42 @@
diff -ruN postfix-2.2.9-orig/conf/main.cf postfix-2.2.9/conf/main.cf
--- postfix-2.2.9-orig/conf/main.cf 2005-03-04 17:48:25.000000000 +0000
+++ postfix-2.2.9/conf/main.cf 2008-08-04 19:08:01.086201423 +0000
@@ -405,7 +405,7 @@
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
-#home_mailbox = Maildir/
+home_mailbox = Maildir/
# The mail_spool_directory parameter specifies the directory where
# UNIX-style mailboxes are kept. The default setting depends on the
@@ -642,3 +642,29 @@
# readme_directory: The location of the Postfix README files.
#
readme_directory =
+
+
+############################################################
+# Start MySQL from postfixwiki.org
+############################################################
+virtual_alias_maps = hash:/etc/postfix/virtual
+#virtual_uid_maps = static:303
+#virtual_gid_maps = static:303
+#virtual_minimum_uid = 303
+#virtual_mailbox_base = /srv/maildirs
+#virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
+#virtual_mailbox_limit = 0
+#virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
+#virtual_transport = virtual
+## Additional for quota support
+#virtual_create_maildirsize = yes
+#virtual_mailbox_extended = yes
+#virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
+#virtual_mailbox_limit_override = yes
+#virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
+#virtual_overquota_bounce = yes
+relay_domains = $mydestination, hash:/etc/postfix/relay
+############################################################
+# End MySQL from postfixwiki.org
+############################################################
+

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:59d810fde87c73dc50d309051e726a1ad25f5ea081aa1d0fe00dc9d6aa4405f1
size 2304976

View File

@ -0,0 +1,225 @@
diff -uNr postfix-2.5.6-vda-ng.orig/src/util/vbuf_print.c postfix-2.5.6/src/util/vbuf_print.c
--- postfix-2.5.6-vda-ng.orig/src/util/vbuf_print.c 2006-12-10 18:13:07.000000000 +0100
+++ postfix-2.5.6/src/util/vbuf_print.c 2008-08-25 12:20:41.032890016 +0200
@@ -193,8 +193,13 @@
msg_warn("%s: bad precision %d in %.50s", myname, prec, format);
prec = 0;
}
- if ((long_flag = (*cp == 'l')) != 0)/* long whatever */
+ if ((long_flag = (*cp == 'l')) != 0) { /* long whatever */
VSTRING_ADDCH(fmt, *cp++);
+ if (*cp == 'l') { /* we have long long param */
+ long_flag = 2;
+ VSTRING_ADDCH(fmt, *cp++);
+ }
+ }
if (*cp == 0) /* premature end, punt */
break;
VSTRING_ADDCH(fmt, *cp); /* type (checked below) */
@@ -226,8 +231,10 @@
case 'X':
if (VBUF_SPACE(bp, (width > prec ? width : prec) + INT_SPACE))
return (bp);
- if (long_flag)
+ if (long_flag == 1)
sprintf((char *) bp->ptr, vstring_str(fmt), va_arg(ap, long));
+ else if (long_flag == 2)
+ sprintf((char *) bp->ptr, vstring_str(fmt), va_arg(ap, long long));
else
sprintf((char *) bp->ptr, vstring_str(fmt), va_arg(ap, int));
VBUF_SKIP(bp);
diff -uNr postfix-2.5.6-vda-ng.orig/src/virtual/mailbox.c postfix-2.5.6/src/virtual/mailbox.c
--- postfix-2.5.6-vda-ng.orig/src/virtual/mailbox.c 2008-08-25 11:57:48.000000000 +0200
+++ postfix-2.5.6/src/virtual/mailbox.c 2008-08-25 12:20:41.032890016 +0200
@@ -120,7 +120,6 @@
myname, usr_attr.mailbox, OFF_T_MAX);
}
else {
- /* Invalid limit size (negative). Use default virtual_mailbox_limit. */
set_file_limit(var_virt_mailbox_limit);
status = NO;
}
diff -uNr postfix-2.5.6-vda-ng.orig/src/virtual/maildir.c postfix-2.5.6/src/virtual/maildir.c
--- postfix-2.5.6-vda-ng.orig/src/virtual/maildir.c 2008-08-25 11:57:48.000000000 +0200
+++ postfix-2.5.6/src/virtual/maildir.c 2008-08-25 12:20:41.033889864 +0200
@@ -65,6 +65,8 @@
/* Patch library. */
+#include <syslog.h>
+#include <stdint.h>
#include <sys/types.h> /* opendir(3), stat(2) */
#include <sys/stat.h> /* stat(2) */
#include <dirent.h> /* opendir(3) */
@@ -98,14 +100,14 @@
* Returns the size of all mails as read from maildirsize,
* zero if it couldn't read the file.
*/
-static long read_maildirsize(char *dirname, long *countptr)
+static uint64_t read_maildirsize(char *dirname, uint64_t *countptr)
{
struct stat statbuf;
VSTRING *sizefilename = vstring_alloc(1024);
VSTREAM *sizefile;
char *p;
int len, first;
- long sum = 0, count = 0;
+ uint64_t sum = 0, count = 0;
vstring_sprintf(sizefilename, "%s/%s", dirname, "maildirsize");
@@ -128,7 +130,7 @@
first = 1;
while (*p) {
- long n = 0, c = 0;
+ uint64_t n = 0, c = 0;
char *q = p;
while (*p) {
@@ -143,7 +145,7 @@
continue;
}
- if(sscanf(q, "%ld %ld", &n, &c) == 2) {
+ if(sscanf(q, "%llu %llu", &n, &c) == 2) {
sum += n;
count += c;
}
@@ -179,7 +181,7 @@
* Returns the size given in ",S=<size>" in the filename,
* zero if it cannot find ",S=<size>" in the filename.
*/
-static long maildir_parsequota(const char *n)
+static uint64_t maildir_parsequota(const char *n)
{
const char *o;
int yes = 0;
@@ -204,7 +206,7 @@
}
if (yes) {
- long s = 0;
+ uint64_t s = 0;
while (*o >= '0' && *o <= '9')
s = s*10 + (*o++ - '0');
@@ -231,17 +233,17 @@
* Returns the sum of the sizes of all measurable files,
* zero if the directory could not be opened.
*/
-static long check_dir_size(char *dirname, long *countptr)
+static uint64_t check_dir_size(char *dirname, uint64_t *countptr)
{
char *myname = "check_dir_size";
DIR *dir;
- long sum = 0;
+ uint64_t sum = 0;
struct dirent *ent;
struct stat statbuf;
if (!var_virt_mailbox_limit_inbox && var_virt_maildir_extended && (sum = read_maildirsize(dirname, countptr))) {
if (msg_verbose)
- msg_info("%s: maildirsize used: dir=%s sum=%ld count=%ld", myname, dirname, sum, *countptr);
+ msg_info("%s: maildirsize used: dir=%s sum=%llu count=%llu", myname, dirname, sum, *countptr);
return sum;
}
@@ -262,7 +264,7 @@
while ((ent = readdir(dir)) != NULL) {
char *name = ent->d_name;
- long tmpsum = 0;
+ uint64_t tmpsum = 0;
VSTRING *buffer;
if (var_virt_trash_count) {
@@ -325,7 +327,7 @@
closedir(dir);
if (msg_verbose)
- msg_info("%s: full scan done: dir=%s sum=%ld count=%ld", myname, dirname, sum, *countptr);
+ msg_info("%s: full scan done: dir=%s sum=%llu count=%llu", myname, dirname, sum, *countptr);
return sum;
}
@@ -443,9 +445,9 @@
char *sizefilename = (char *) 0; /* Maildirsize file name. */
VSTRING *filequota; /* Quota setting from the maildirsize file. */
VSTREAM *sizefile; /* Maildirsize file handle. */
- long n = 0; /* Limit in long integer format. */
- long saved_count = 0; /* The total number of files. */
- long saved_size = 0; /* The total quota of all files. */
+ uint64_t n = 0; /* Limit in long integer format. */
+ uint64_t saved_count = 0; /* The total number of files. */
+ uint64_t saved_size = 0; /* The total quota of all files. */
struct stat mail_stat; /* To check the size of the mail to be written. */
struct stat sizefile_stat; /* To check the size of the maildirsize file. */
time_t tm; /* To check the age of the maildirsize file. */
@@ -520,7 +522,8 @@
* warn the user, else use the value directly as the maildir limit.
*/
if (*var_virt_mailbox_limit_maps != 0 && (limit_res = mail_addr_find(virtual_mailbox_limit_maps, state.msg_attr.user, (char **) NULL)) != 0) {
- n = atol(limit_res);
+ /* if there is some unexpected char in limit_res var, n will be zero! */
+ n = strtoull(limit_res, NULL, 10);
if (n > 0) {
if ((n < var_message_limit) && (!var_virt_mailbox_limit_override)) {
n = var_virt_mailbox_limit;
@@ -535,13 +538,13 @@
}
else {
if (msg_verbose)
- msg_info("%s: set virtual maildir limit size for %s to %ld",
+ msg_info("%s: set virtual maildir limit size for %s to %llu",
myname, usr_attr.mailbox, n);
}
}
else if (n == 0) {
if (msg_verbose)
- msg_info("%s: set virtual maildir limit size for %s to %ld",
+ msg_info("%s: set virtual maildir limit size for %s to %llu",
myname, usr_attr.mailbox, n);
}
else {
@@ -662,7 +665,7 @@
*/
if (stat(tmpfile, &mail_stat) == 0) {
if (n != 0) {
- saved_size += (long) mail_stat.st_size;
+ saved_size += (uint64_t) mail_stat.st_size;
saved_count++;
}
if (var_virt_maildir_extended) {
@@ -866,7 +869,9 @@
filequota = vstring_alloc(128);
vstring_get_null_bound(filequota, sizefile, 127);
vstream_fclose(sizefile);
- if (atol(vstring_export(filequota)) != n)
+ /* if there will be some unexpected char in filequota var, strtoull() return 0
+ and this probably != n, so file will be rewritten */
+ if (strtoull(vstring_export(filequota), NULL, 10) != n)
unlink(sizefilename);
}
@@ -886,7 +891,7 @@
/* If the creation worked, write to the file, otherwise just give up. */
if (sizefile) {
- vstream_fprintf(sizefile, "%ldS\n%ld %ld\n", n, saved_size, saved_count);
+ vstream_fprintf(sizefile, "%lluS\n%llu %llu\n", n, saved_size, saved_count);
vstream_fclose(sizefile);
}
}
diff -uNr postfix-2.5.6-vda-ng.orig/src/virtual/Makefile.in postfix-2.5.6/src/virtual/Makefile.in
--- postfix-2.5.6-vda-ng.orig/src/virtual/Makefile.in 2007-03-17 18:51:46.000000000 +0100
+++ postfix-2.5.6/src/virtual/Makefile.in 2008-08-25 12:20:41.034889712 +0200
@@ -4,7 +4,7 @@
HDRS = virtual.h
TESTSRC =
DEFS = -I. -I$(INC_DIR) -D$(SYSTYPE)
-CFLAGS = $(DEBUG) $(OPT) $(DEFS)
+CFLAGS = $(DEBUG) $(OPT) $(DEFS) -std=gnu99
PROG = virtual
TESTPROG=
INC_DIR = ../../include

1459
postfix-2.6.1-vda-ng.patch Normal file

File diff suppressed because it is too large Load Diff

3
postfix-2.6.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:09fd1b79d900b42e41c9f3ed31c6400dfb6e0d2955aed27d76d5e464bf2d09c9
size 2438713

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5e9732abe32e8eebb4fb53a2e338cc31d2307f96af303f6f5d2b0993040684c2 oid sha256:81bb95c7b712f3ac4a1356917992e7c5e650e03b192f9a35117351360386cc97
size 18111 size 21145

3
postfix-mysql.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cff3c067d45ff6a9c7ce1c7ac47c155955fe55b965ef1bf030b1bd912ce55479
size 1743

View File

@ -1,3 +1,75 @@
-------------------------------------------------------------------
Mon Sep 28 09:22:54 CEST 2009 - varkoly@suse.de
- bnc#540538 postfix-2.6.1-10.1 installs new files in /etc/postfix and does not generate <file>.db
- bnc#519438 - Postfix: Running chrooted lets qmgr loosing his syslog-socket
- remove obsolate version tests from SuSEconfig.postfix
-------------------------------------------------------------------
Mon Sep 28 08:24:43 CEST 2009 - varkoly@suse.de
- bnc#525825 - when using cyrus in a chroot environment Suseconfig does not
create socket /var/lib/imap/socket/lmtp
-------------------------------------------------------------------
Mon Sep 14 11:34:41 UTC 2009 - chris@computersalat.de
- spec
o fdupes if >= 1100
-------------------------------------------------------------------
Thu Sep 10 21:22:46 CEST 2009 - chris@computersalat.de
- update to 2.6.1
o merge home:varkoly:Factory and o:F
- spec mods
o use of getent
- rpmlint
o remove unneeded dists from examples/chroot-setup/
o postin-without-ldconfig
o files-duplicate /usr/share/doc/packages/postfix-doc/html/
o files-duplicate /usr/share/man/man?
-------------------------------------------------------------------
Mon Apr 13 18:21:14 UTC 2009 - chris@computersalat.de
- added VDA patch
o Mailbox / Maildir size limit, known also as "soft quota",
to avoid user take all you disk space
o Customizable "limit" message when the soft quota limit is reached.
NOTE: message is sent to senders, but NOT to the owner of the mailbox.
o Limit only 'INBOX', because some people use IMAP and don't want
the same limit in IMAP folder that are differents from INBOX.
o Support for 'Courier' style Maildir, usefull for people that
use courier as pop3/imap server and to get fast soft quota summary.
Note that it is also compatible with qmail maildir per default.
o Supports for Courier 'maildirsize' file in Maildir folder that
is used to read quotas quickly. Note that this option is not
actived per default and can be dangerous on some NFS client
implementation
(like for example Solaris that cache some filesystem operations).
o Customisable suffix for Maildir support, when share same external
dict between postfix and pop3/imap server sometime "Maildir/" suffix
is needed to avoid extra database handling (eg LDAP, MySQL...).
- some improvements of SuSEconfig.postfix
o POSTFIX_LISTEN: Comma separated list of IP's
o POSTFIX_INET_PROTO: ipv4, ipv6, all
o POSTFIX_MYHOSTNAME: define SMTPs FQHOSTNAME
o POSTFIX_WITH_MYSQL: when using MySQL as backend
o POSTFIX_BASIC_SPAM_PREVENTION: "custom"
you can now define your own rules
- POSTFIX_SMTPD_CLIENT_RESTRICTIONS
- POSTFIX_SMTPD_HELO_RESTRICTIONS
- POSTFIX_SMTPD_SENDER_RESTRICTIONS
- POSTFIX_SMTPD_RECIPIENT_RESTRICTIONS
- added helo_access for helo checks
- added relay for relaying domain
- added MySQL stuff when using MySQL as backend (virtuser)
o you should consider postfixAdmin as mgmnt interface
o when runninng postfix chrooted:
you have to run SUSEconfig each time when you have restarted MySQL
because of linking mysql.sock
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Mar 29 15:18:52 CEST 2009 - varkoly@suse.de Sun Mar 29 15:18:52 CEST 2009 - varkoly@suse.de

View File

@ -1,5 +1,5 @@
# #
# spec file for package postfix (Version 2.5.6) # spec file for package postfix (Version 2.6.1)
# #
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
@ -17,69 +17,53 @@
# norootforbuild # norootforbuild
%define usetls 1
Name: postfix Name: postfix
#!BuildIgnore: sendmail Summary: A fast, secure, and flexible mailer
BuildRequires: db-devel mysql-devel openldap2-devel pcre-devel postgresql-devel Version: 2.6.1
# require pwdutils to make postinstall script check work Release: 1
BuildRequires: pwdutils
%define usetls 1
Url: http://www.postfix.org/
License: IBM Public License .. License: IBM Public License ..
Group: Productivity/Networking/Email/Servers Group: Productivity/Networking/Email/Servers
Provides: smtp_daemon Url: http://www.postfix.org/
Conflicts: sendmail exim
AutoReqProv: on AutoReqProv: on
Summary: A fast, secure, and flexible mailer Source: %{name}-%{version}.tar.bz2
Version: 2.5.6 Source1: %{name}-SuSE.tar.gz
Release: 5 Source2: %{name}-mysql.tar.bz2
Source: postfix-%{version}.tar.bz2 Source10: rpmlintrc
Source1: postfix-SuSE.tar.gz
Patch: dynamic_maps.patch Patch: dynamic_maps.patch
Patch1: dynamic_maps_pie.patch Patch1: dynamic_maps_pie.patch
Patch2: pointer_to_literals.patch Patch2: pointer_to_literals.patch
Patch3: ipv6_disabled.patch Patch3: ipv6_disabled.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 Patch10: %{name}-2.2.9-main.cf.patch
Patch11: %{name}-%{version}-vda-ng.patch
Patch12: %{name}-%{version}-vda-ng-64bit.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %insserv_prereq %fillup_prereq
PreReq: /usr/bin/getent
PreReq: /usr/sbin/useradd /usr/sbin/groupadd
PreReq: /bin/sed /bin/awk /bin/grep
PreReq: textutils sh-utils fileutils pcre openldap2-client netcfg
BuildRequires: db-devel
BuildRequires: mysql-devel
BuildRequires: openldap2-devel pcre-devel postgresql-devel
# require pwdutils to make postinstall script check work
BuildRequires: pwdutils
%if 0%{?suse_version} >= 1100
BuildRequires: fdupes
%endif
# #
Conflicts: sendmail exim
%package mysql Provides: smtp_daemon
License: IBM Public License ..
Summary: Postfix plugin to support MySQL maps
AutoReqProv: on
Group: Productivity/Networking/Email/Servers
PreReq: %{name} = %{version}
#
%package postgresql
License: IBM Public License ..
Summary: Postfix plugin to support PostgreSQL maps
AutoReqProv: on
Group: Productivity/Networking/Email/Servers
PreReq: %{name} = %{version}
#
%package devel
License: IBM Public License ..
Summary: Development headers for the postfix package
AutoReqProv: on
Group: Productivity/Networking/Email/Servers
PreReq: %{name} = %{version}
%package doc
License: IBM Public License ..
Summary: Documentations for the postfix package
AutoReqProv: on
Group: Productivity/Networking/Email/Servers
PreReq: %{name} = %{version}
# #
# Some defines # Some defines
# #
%define postfixfiles postfix.filelist %define pf_docdir %{_docdir}/%{name}-doc
%define pf_config_directory /etc/postfix %define postfixfiles %{name}.filelist
%define pf_daemon_directory /usr/lib/postfix %define pf_config_directory /etc/%{name}
%define pf_daemon_directory /usr/lib/%{name}
%define pf_command_directory /usr/sbin %define pf_command_directory /usr/sbin
%define pf_queue_directory var/spool/postfix %define pf_queue_directory var/spool/%{name}
%define pf_sendmail_path /usr/sbin/sendmail %define pf_sendmail_path /usr/sbin/sendmail
%define pf_newaliases_path /usr/bin/newaliases %define pf_newaliases_path /usr/bin/newaliases
%define pf_mailq_path /usr/bin/mailq %define pf_mailq_path /usr/bin/mailq
@ -87,22 +71,102 @@ PreReq: %{name} = %{version}
%define pf_readme_directory %{_docdir}/%{name}-doc/README_FILES %define pf_readme_directory %{_docdir}/%{name}-doc/README_FILES
%define pf_html_directory %{_docdir}/%{name}-doc/html %define pf_html_directory %{_docdir}/%{name}-doc/html
%define pf_sample_directory %{_docdir}/%{name}-doc/samples %define pf_sample_directory %{_docdir}/%{name}-doc/samples
%define pf_data_directory /var/lib/postfix %define pf_data_directory /var/lib/%{name}
%define postfix_uid 51 %define pf_uid 51
%define postfix_gid 51 %define pf_gid 51
%define maildrop_gid 59 %define maildrop_gid 59
%define conf_backup_dir /var/adm/backup/postfix %define conf_backup_dir /var/adm/backup/%{name}
%define omc_pdir /usr/share/omc/ %define omc_pdir /usr/share/omc/
%define omc_dir /usr/share/omc/svcinfo.d/ %define omc_dir /usr/share/omc/svcinfo.d/
# #
%define vmusr vmail
%define vmgid 303
%define vmid 303
%define vmdir /srv/maildirs
#
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
%description
Postfix aims to be an alternative to the widely-used sendmail program.
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%package devel
Summary: Development headers for the postfix package
License: IBM Public License ..
Group: Development/Libraries/C and C++
AutoReqProv: on
PreReq: %{name} = %{version}
%description devel
Postfix aims to be an alternative to the widely-used sendmail program.
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%package doc
Summary: Documentations for the postfix package
License: IBM Public License ..
Group: Productivity/Networking/Email/Servers
%description doc
Postfix aims to be an alternative to the widely-used sendmail program.
This package contains the documentation for %{name}
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%package mysql
Summary: Postfix plugin to support MySQL maps
License: IBM Public License ..
Group: Productivity/Networking/Email/Servers
AutoReqProv: on
PreReq: %{name} = %{version}
%description mysql
Postfix plugin to support MySQL maps. This library will be loaded by
starting %{name} if you'll access a postmap which is stored in mysql.
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%package postgresql
Summary: Postfix plugin to support PostgreSQL maps
License: IBM Public License ..
Group: Productivity/Networking/Email/Servers
AutoReqProv: on
PreReq: %{name} = %{version}
%description postgresql
Postfix plugin to support PostgreSQL maps. This library will be loaded
by starting %{name} if you'll access a postmap which is stored in
PostgreSQL.
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%prep %prep
%setup -n postfix-%{version} -a 1 %setup -n %{name}-%{version} -a 1 -a 2
%patch %patch -p1
%patch1 %patch1
%patch2 -p1 %patch2 -p1
%patch3 -p1 %patch3 -p1
%patch10 -p1
%patch11 -p1
%ifarch x86_64
%patch12 -p1
%endif
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
%build %build
@ -124,16 +188,16 @@ export PIE=-pie
make makefiles DEBUG="" make makefiles DEBUG=""
cd lib cd lib
for i in dns global master tls util milter; do for i in dns global master tls util milter; do
ln -sf lib${i}.a libpostfix-${i}.so.1.0.1; ln -sf lib${i}.a lib%{name}-${i}.so.1.0.1;
done done
cd - cd -
make LD_LIBRARY_PATH=$(pwd)/lib:${LD_LIBRARY_PATH} make LD_LIBRARY_PATH=$(pwd)/lib:${LD_LIBRARY_PATH}
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
%install %install
/usr/sbin/groupadd -g %{postfix_gid} -o -r postfix 2> /dev/null || : /usr/sbin/groupadd -g %{pf_gid} -o -r %{name} 2> /dev/null || :
/usr/sbin/groupadd -g %{maildrop_gid} -o -r maildrop 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 /%{pf_queue_directory} postfix 2> /dev/null || : /usr/sbin/useradd -r -o -g %{name} -u %{pf_uid} -s /bin/false -c "Postfix Daemon" -d /%{pf_queue_directory} %{name} 2> /dev/null || :
mkdir -p $RPM_BUILD_ROOT/%{_libdir} mkdir -p $RPM_BUILD_ROOT/%{_libdir}
install lib/*.1 $RPM_BUILD_ROOT/%{_libdir} install lib/*.1 $RPM_BUILD_ROOT/%{_libdir}
for i in $RPM_BUILD_ROOT/%{_libdir}/*.1; do for i in $RPM_BUILD_ROOT/%{_libdir}/*.1; do
@ -170,17 +234,17 @@ mkdir -p $RPM_BUILD_ROOT/%{_libdir}/sasl2
mkdir -p $RPM_BUILD_ROOT/usr/sbin mkdir -p $RPM_BUILD_ROOT/usr/sbin
mkdir -p $RPM_BUILD_ROOT/%{conf_backup_dir} mkdir -p $RPM_BUILD_ROOT/%{conf_backup_dir}
mkdir -p $RPM_BUILD_ROOT/%{pf_sample_directory} mkdir -p $RPM_BUILD_ROOT/%{pf_sample_directory}
mkdir -p $RPM_BUILD_ROOT/usr/include/postfix mkdir -p $RPM_BUILD_ROOT/usr/include/%{name}
mkdir -p $RPM_BUILD_ROOT/etc/pam.d mkdir -p $RPM_BUILD_ROOT/etc/pam.d
install -m 644 postfix-SuSE/smtp $RPM_BUILD_ROOT/etc/pam.d/smtp install -m 644 %{name}-SuSE/smtp $RPM_BUILD_ROOT/etc/pam.d/smtp
#mkdir samples #mkdir samples
install -m 755 postfix-SuSE/rc.postfix $RPM_BUILD_ROOT/etc/init.d/postfix install -m 755 %{name}-SuSE/rc.%{name} $RPM_BUILD_ROOT/etc/init.d/%{name}
ln -sf ../etc/init.d/postfix $RPM_BUILD_ROOT/sbin/rcpostfix ln -sf ../etc/init.d/%{name} $RPM_BUILD_ROOT/sbin/rc%{name}
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
rm -f $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.postfix rm -f $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.%{name}
sed -e 's;@lib@;%{_lib};g' postfix-SuSE/sysconfig.postfix > $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.postfix sed -e 's;@lib@;%{_lib};g' %{name}-SuSE/sysconfig.%{name} > $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.%{name}
install -m 644 postfix-SuSE/sysconfig.mail-postfix $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.mail-postfix install -m 644 %{name}-SuSE/sysconfig.mail-%{name} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.mail-%{name}
rm -f $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.postfix rm -f $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.%{name}
sed -e 's;@lib@;%{_lib};g' \ sed -e 's;@lib@;%{_lib};g' \
-e 's;@conf_backup_dir@;%{conf_backup_dir};' \ -e 's;@conf_backup_dir@;%{conf_backup_dir};' \
-e 's;@daemon_directory@;%{pf_daemon_directory};' \ -e 's;@daemon_directory@;%{pf_daemon_directory};' \
@ -191,25 +255,27 @@ sed -e 's;@lib@;%{_lib};g' \
-e 's;@manpage_directory@;%{_mandir};' \ -e 's;@manpage_directory@;%{_mandir};' \
-e 's;@newaliases_path@;%{pf_newaliases_path};' \ -e 's;@newaliases_path@;%{pf_newaliases_path};' \
-e 's;@sample_directory@;%{pf_sample_directory};' \ -e 's;@sample_directory@;%{pf_sample_directory};' \
-e 's;@mailq_path@;%{pf_mailq_path};' postfix-SuSE/SuSEconfig.postfix \ -e 's;@mailq_path@;%{pf_mailq_path};' %{name}-SuSE/SuSEconfig.%{name} \
> $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.postfix > $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.%{name}
chmod 755 $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.postfix chmod 755 $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.%{name}
install -m 644 postfix-SuSE/master.cf $RPM_BUILD_ROOT/etc/postfix/master.cf install -m 644 %{name}-SuSE/master.cf $RPM_BUILD_ROOT/etc/%{name}/master.cf
install -m 644 postfix-SuSE/dynamicmaps.cf $RPM_BUILD_ROOT/etc/postfix/dynamicmaps.cf install -m 644 %{name}-SuSE/dynamicmaps.cf $RPM_BUILD_ROOT/etc/%{name}/dynamicmaps.cf
install -m 644 postfix-SuSE/permissions $RPM_BUILD_ROOT/etc/permissions.d/postfix install -m 644 %{name}-SuSE/helo_access $RPM_BUILD_ROOT/etc/postfix/helo_access
install -m 644 postfix-SuSE/sender_canonical $RPM_BUILD_ROOT/etc/postfix/sender_canonical install -m 644 %{name}-SuSE/permissions $RPM_BUILD_ROOT/etc/permissions.d/%{name}
install -m 644 postfix-SuSE/relay_ccerts $RPM_BUILD_ROOT/etc/postfix/relay_ccerts install -m 644 %{name}-SuSE/sender_canonical $RPM_BUILD_ROOT/etc/%{name}/sender_canonical
install -m 600 postfix-SuSE/sasl_passwd $RPM_BUILD_ROOT/etc/postfix/sasl_passwd install -m 644 %{name}-SuSE/relay $RPM_BUILD_ROOT/etc/postfix/relay
install -m 644 %{name}-SuSE/relay_ccerts $RPM_BUILD_ROOT/etc/%{name}/relay_ccerts
install -m 600 %{name}-SuSE/sasl_passwd $RPM_BUILD_ROOT/etc/%{name}/sasl_passwd
mkdir -p $RPM_BUILD_ROOT/etc/sasl2 mkdir -p $RPM_BUILD_ROOT/etc/sasl2
install -m 600 postfix-SuSE/smtpd.conf $RPM_BUILD_ROOT/etc/sasl2/smtpd.conf install -m 600 %{name}-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 644 %{name}-SuSE/openssl_%{name}.conf.in $RPM_BUILD_ROOT/etc/%{name}/openssl_%{name}.conf.in
install -m 755 postfix-SuSE/mkpostfixcert $RPM_BUILD_ROOT/usr/sbin/mkpostfixcert install -m 755 %{name}-SuSE/mk%{name}cert $RPM_BUILD_ROOT/usr/sbin/mk%{name}cert
rm -rf $RPM_BUILD_ROOT/%{pf_queue_directory} rm -rf $RPM_BUILD_ROOT/%{pf_queue_directory}
install -m 644 postfix-SuSE/master.cf $RPM_BUILD_ROOT/%{conf_backup_dir}/master.cf install -m 644 %{name}-SuSE/master.cf $RPM_BUILD_ROOT/%{conf_backup_dir}/master.cf
mkdir -p $RPM_BUILD_ROOT/%{omc_dir} mkdir -p $RPM_BUILD_ROOT/%{omc_dir}
install -m 644 postfix-SuSE/postfix.xml $RPM_BUILD_ROOT/%{omc_dir} install -m 644 %{name}-SuSE/%{name}.xml $RPM_BUILD_ROOT/%{omc_dir}
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/ mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/
install -m 644 postfix-SuSE/postfix-fw $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/postfix install -m 644 %{name}-SuSE/%{name}-fw $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name}
{ {
cat<<EOF cat<<EOF
# #
@ -222,8 +288,8 @@ cat<<EOF
# #
EOF EOF
cat conf/main.cf cat conf/main.cf
} > $RPM_BUILD_ROOT/etc/postfix/main.cf } > $RPM_BUILD_ROOT/etc/%{name}/main.cf
$RPM_BUILD_ROOT/usr/sbin/postconf -c $RPM_BUILD_ROOT/etc/postfix \ $RPM_BUILD_ROOT/usr/sbin/postconf -c $RPM_BUILD_ROOT/etc/%{name} \
-e "manpage_directory = %{_mandir}" \ -e "manpage_directory = %{_mandir}" \
"setgid_group = %{pf_setgid_group}" \ "setgid_group = %{pf_setgid_group}" \
"mailq_path = %{pf_mailq_path}" \ "mailq_path = %{pf_mailq_path}" \
@ -235,7 +301,7 @@ $RPM_BUILD_ROOT/usr/sbin/postconf -c $RPM_BUILD_ROOT/etc/postfix \
"daemon_directory = %{pf_daemon_directory}" \ "daemon_directory = %{pf_daemon_directory}" \
"biff = no" \ "biff = no" \
"inet_protocols = all" "inet_protocols = all"
install -m 644 $RPM_BUILD_ROOT/etc/postfix/main.cf $RPM_BUILD_ROOT/%{conf_backup_dir}/main.cf install -m 644 $RPM_BUILD_ROOT/etc/%{name}/main.cf $RPM_BUILD_ROOT/%{conf_backup_dir}/main.cf
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
# preparing /etc/postfix/postfix-files to be able to use postfix # preparing /etc/postfix/postfix-files to be able to use postfix
# own upgrade script. Unfortunately it looks in postfix-files and # own upgrade script. Unfortunately it looks in postfix-files and
@ -244,17 +310,17 @@ install -m 644 $RPM_BUILD_ROOT/etc/postfix/main.cf $RPM_BUILD_ROOT/%{conf_backup
# also remove the both sql dictionary libs as they will not be installed # also remove the both sql dictionary libs as they will not be installed
# per default # per default
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
rm -f $RPM_BUILD_ROOT/etc/postfix/aliases rm -f $RPM_BUILD_ROOT/etc/%{name}/aliases
rm -f $RPM_BUILD_ROOT/etc/postfix/postfix-files rm -f $RPM_BUILD_ROOT/etc/%{name}/%{name}-files
sed 's;^$config_directory/aliases\(.*\);/etc/aliases\1;' conf/postfix-files \ sed 's;^$config_directory/aliases\(.*\);/etc/aliases\1;' conf/%{name}-files \
| grep -v '^$manpage_directory' | grep -Ev 'dict_(mysql|pgsql)' > $RPM_BUILD_ROOT/etc/postfix/postfix-files | grep -v '^$manpage_directory' | grep -Ev 'dict_(mysql|pgsql)' > $RPM_BUILD_ROOT/etc/%{name}/%{name}-files
rm -f %{postfixfiles} rm -f %{postfixfiles}
test -f conf/postfix-files || { test -f conf/%{name}-files || {
echo "conf/postfix-files does not exist!" echo "conf/%{name}-files does not exist!"
exit 1 exit 1
} }
echo "%defattr(-,root,root)" >> %{postfixfiles} echo "%defattr(-,root,root)" >> %{postfixfiles}
exec <conf/postfix-files exec <conf/%{name}-files
while IFS=: read path type owner group mode flags junk; do while IFS=: read path type owner group mode flags junk; do
owner=${owner/\$mail_owner/postfix} owner=${owner/\$mail_owner/postfix}
group=${group/\$setgid_group/%{pf_setgid_group}} group=${group/\$setgid_group/%{pf_setgid_group}}
@ -264,72 +330,99 @@ while IFS=: read path type owner group mode flags junk; do
group=${group/-/root} group=${group/-/root}
echo "%dir %attr($mode,$owner,$group) $path/" >> %{postfixfiles} echo "%dir %attr($mode,$owner,$group) $path/" >> %{postfixfiles}
mkdir -m $mode -p $RPM_BUILD_ROOT/$path mkdir -m $mode -p $RPM_BUILD_ROOT/$path
printf '%%-38s %%-18s %%04d\n' $path "${owner}.${group}" $mode >> $RPM_BUILD_ROOT/etc/permissions.d/postfix printf '%%-38s %%-18s %%04d\n' $path "${owner}.${group}" $mode >> $RPM_BUILD_ROOT/etc/permissions.d/%{name}
;; ;;
\$command_directory/*) \$command_directory/*)
path=${path/\$command_directory/\/usr\/sbin} path=${path/\$command_directory/\/usr\/sbin}
group=${group/-/root} group=${group/-/root}
echo "%attr($mode,$owner,$group) $path" >> %{postfixfiles} echo "%attr($mode,$owner,$group) $path" >> %{postfixfiles}
printf '%%-38s %%-18s %%04d\n' $path "${owner}.${group}" $mode >> $RPM_BUILD_ROOT/etc/permissions.d/postfix printf '%%-38s %%-18s %%04d\n' $path "${owner}.${group}" $mode >> $RPM_BUILD_ROOT/etc/permissions.d/%{name}
;; ;;
*) continue;; *) continue;;
esac esac
done done
# postfix-mysql
install -m 644 %{name}-mysql/main.cf-mysql $RPM_BUILD_ROOT/etc/%{name}/main.cf-mysql
install -m 640 %{name}-mysql/*_maps.cf $RPM_BUILD_ROOT/etc/%{name}/
# create paranoid permissions file # 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/postdrop "root.%{pf_setgid_group}" "0755" >> $RPM_BUILD_ROOT/etc/permissions.d/%{name}.paranoid
printf '%%-38s %%-18s %%s\n' /usr/sbin/postqueue "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/%{name}.paranoid
install -m 644 include/*.h $RPM_BUILD_ROOT/usr/include/postfix/ install -m 644 include/*.h $RPM_BUILD_ROOT/usr/include/%{name}/
# some rpmlint stuff
# remove unneeded examples/chroot-setup
for example in AIX42 BSDI* F* HPUX* IRIX* NETBSD1 NEXTSTEP3 OPENSTEP4 OSF1 Solaris*; do
%{__rm} examples/chroot-setup/${example}
done
# files-duplicate /usr/share/doc/packages/postfix-doc/html/
# so we copy all docs to a postfix-doc to do fdupes :)
%{__install} -d $RPM_BUILD_ROOT%{pf_docdir}/html
for doc in AAAREADME COMPATIBILITY COPYRIGHT HISTORY INSTALL IPv6-ChangeLog LICENSE PORTING RELEASE_NOTES* US_PATENT_6321267 TLS_LICENSE README_FILES auxiliary examples html %{name}-SuSE/README.SuSE %{name}-SuSE/SPAMASSASSIN+POSTFIX.SuSE; do
%{__cp} -rv ${doc} $RPM_BUILD_ROOT%{pf_docdir}/
done
%if 0%{?suse_version} >= 1100
%fdupes $RPM_BUILD_ROOT%{pf_docdir}
# files-duplicate /usr/share/man/man?
%fdupes $RPM_BUILD_ROOT%{_mandir}
%endif
# ---------------------------------------------------------------------------
%pre %pre
VERSIONTEST=$(test -x usr/sbin/postconf && usr/sbin/postconf proxy_read_maps 2>/dev/null) VERSIONTEST=$(test -x usr/sbin/postconf && usr/sbin/postconf proxy_read_maps 2>/dev/null)
if [ -z "$VERSIONTEST" -a -f %{pf_queue_directory}/pid/master.pid ]; then if [ -z "$VERSIONTEST" -a -f %{pf_queue_directory}/pid/master.pid ]; then
if checkproc -p %{pf_queue_directory}/pid/master.pid usr/lib/postfix/master; then if checkproc -p %{pf_queue_directory}/pid/master.pid usr/lib/%{name}/master; then
echo "postfix is still running. You have to stop postfix in order to" echo "%{name} is still running. You have to stop %{name} in order to"
echo "install a newer version." echo "install a newer version."
exit 1 exit 1
fi fi
fi fi
/usr/sbin/groupadd -g %{postfix_gid} -o -r postfix 2> /dev/null || : /usr/sbin/groupadd -g %{pf_gid} -o -r %{name} 2> /dev/null || :
/usr/sbin/groupadd -g %{maildrop_gid} -o -r maildrop 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 /%{pf_queue_directory} postfix 2> /dev/null || : /usr/sbin/useradd -r -o -g %{name} -u %{pf_uid} -s /bin/false -c "Postfix Daemon" -d /%{pf_queue_directory} %{name} 2> /dev/null || :
# ---------------------------------------------------------------------------
%pre mysql
#echo "PARAM_pre: "$1
# on `rpm -ivh` PARAM is 1
# on `rpm -Uvh` PARAM is 2
if [ "$1" = "1" ]; then
echo "Adding %{vmusr} user"
if [ -z "`%{_bindir}/getent group %{vmusr} 2>/dev/null`" ]; then
%{_sbindir}/groupadd -r -g %{vmgid} %{vmusr}
fi
if [ -z "`%{_bindir}/getent passwd %{vmusr} 2>/dev/null`" ]; then
%{_sbindir}/useradd -c "maildirs chef" -d %{vmdir} -g %{vmusr} -u %{vmid} -r -s /bin/false %{vmusr}
fi
fi
# ---------------------------------------------------------------------------
%preun %preun
%stop_on_removal postfix %stop_on_removal %{name}
# ---------------------------------------------------------------------------
%post %preun mysql
%{fillup_and_insserv -y postfix} #echo "PARAM_preun: "$1
# We never have to run suseconfig for postfix after installation # on `rpm -e` PARAM is 0
# We only start postfix own upgrade-configuration by update if [ "$1" = "0" ]; then
if [ ${1:-0} -gt 1 ]; then FILE=etc/%{name}/dynamicmaps.cf
echo "executing upgrade-configuration" if [ -e "$FILE" ] ; then
/usr/sbin/postfix set-permissions upgrade-configuration setgid_group=%{pf_setgid_group} if grep -q "^mysql[[:space:]]" ${FILE}; then
fi echo "Removing mysql map entry from ${FILE}"
sed "/^mysql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \
%postun cp --remove-destination ${FILE}.$$ ${FILE} && \
%restart_on_update postfix rm ${FILE}.$$
%insserv_cleanup fi
ldconfig else
echo "Can not find \"$FILE\". Not updating the file." >&2
%clean fi
#rm -rf $RPM_BUILD_ROOT echo "Removing %{vmusr} user"
userdel %{vmusr} 2> /dev/null
%post postgresql groupdel %{vmusr} 2> /dev/null
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 fi
# ---------------------------------------------------------------------------
%preun postgresql %preun postgresql
if [ "$1" = 0 ] ; then if [ "$1" = 0 ] ; then
FILE=etc/postfix/dynamicmaps.cf FILE=etc/%{name}/dynamicmaps.cf
if [ -e "$FILE" ] ; then if [ -e "$FILE" ] ; then
if grep -q "^pgsql[[:space:]]" ${FILE}; then if grep -q "^pgsql[[:space:]]" ${FILE}; then
echo "Removing pgsql map entry from ${FILE}" echo "Removing pgsql map entry from ${FILE}"
@ -341,150 +434,127 @@ if [ "$1" = 0 ] ; then
echo "Can not find \"$FILE\". Not updating the file." >&2 echo "Can not find \"$FILE\". Not updating the file." >&2
fi fi
fi fi
# ---------------------------------------------------------------------------
%preun mysql %post
if [ "$1" = 0 ] ; then %{fillup_and_insserv -y postfix}
FILE=etc/postfix/dynamicmaps.cf # We never have to run suseconfig for postfix after installation
if [ -e "$FILE" ] ; then # We only start postfix own upgrade-configuration by update
if grep -q "^mysql[[:space:]]" ${FILE}; then if [ ${1:-0} -gt 1 ]; then
echo "Removing mysql map entry from ${FILE}" echo "executing upgrade-configuration"
sed "/^mysql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \ /usr/sbin/%{name} set-permissions upgrade-configuration setgid_group=%{pf_setgid_group}
cp --remove-destination ${FILE}.$$ ${FILE} && \ #New map in 11.2 #TODO remove it later
rm ${FILE}.$$ . /etc/sysconfig/postfix
fi sed -i "s/^POSTFIX_MAP_LIST=.*/POSTFIX_MAP_LIST=\"$POSTFIX_MAP_LIST relay\"/" /etc/sysconfig/postfix
else
echo "Can not find \"$FILE\". Not updating the file." >&2
fi
fi fi
ldconfig
# ---------------------------------------------------------------------------
%files postgresql %postun
%defattr(-,root,root) %restart_on_update %{name}
/usr/lib/postfix/dict_pgsql.so %insserv_cleanup
ldconfig
# ---------------------------------------------------------------------------
%files mysql %post postgresql
%defattr(-,root,root) FILE=etc/%{name}/dynamicmaps.cf
/usr/lib/postfix/dict_mysql.so if ! grep -q "^pgsql[[:space:]]" ${FILE}; then
echo "Adding pgsql map entry to ${FILE}"
echo "pgsql /usr/lib/%{name}/dict_pgsql.so dict_pgsql_open" >> ${FILE}
fi
# ---------------------------------------------------------------------------
%files devel %post mysql
%defattr(-,root,root) FILE=etc/%{name}/dynamicmaps.cf
/usr/include/postfix/ if ! grep -q "^mysql[[:space:]]" ${FILE}; then
echo "Adding mysql map entry to ${FILE}"
echo "mysql /usr/lib/%{name}/dict_mysql.so dict_mysql_open" >> ${FILE}
fi
# ---------------------------------------------------------------------------
%files doc %clean
%defattr(-,root,root) rm -rf $RPM_BUILD_ROOT
%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
%files -f %{postfixfiles} %files -f %{postfixfiles}
%defattr(-,root,root) %defattr(-,root,root)
%config /etc/pam.d/* %config /etc/pam.d/*
/var/adm/fillup-templates/sysconfig.postfix /var/adm/fillup-templates/sysconfig.%{name}
/var/adm/fillup-templates/sysconfig.mail-postfix /var/adm/fillup-templates/sysconfig.mail-%{name}
/sbin/conf.d/SuSEconfig.postfix /sbin/conf.d/SuSEconfig.%{name}
%config(noreplace) %{omc_dir}/postfix.xml %config(noreplace) %{omc_dir}/%{name}.xml
%dir /etc/postfix %dir /etc/%{name}
%config(noreplace) /etc/postfix/access %config(noreplace) /etc/%{name}/access
%config(noreplace) /etc/postfix/generic %config(noreplace) /etc/%{name}/generic
%config(noreplace) /etc/postfix/canonical %config(noreplace) /etc/%{name}/helo_access
#%config(noreplace) /etc/postfix/cidr_table %config(noreplace) /etc/%{name}/canonical
%config(noreplace) /etc/postfix/main.cf #%config(noreplace) /etc/%{name}/cidr_table
%config /etc/postfix/main.cf.default %config(noreplace) /etc/%{name}/main.cf
%config(noreplace) /etc/postfix/master.cf %config /etc/%{name}/main.cf.default
%config(noreplace) /etc/postfix/openssl_postfix.conf.in %config(noreplace) /etc/%{name}/master.cf
%config(noreplace) /etc/postfix/relocated %config(noreplace) /etc/%{name}/openssl_%{name}.conf.in
%config(noreplace) /etc/postfix/transport %config(noreplace) /etc/%{name}/relocated
%config(noreplace) /etc/postfix/virtual %config(noreplace) /etc/%{name}/transport
%config(noreplace) /etc/postfix/sasl_passwd %config(noreplace) /etc/%{name}/virtual
%config(noreplace) /etc/postfix/sender_canonical %config(noreplace) /etc/%{name}/sasl_passwd
#%config(noreplace) /etc/postfix/tcp_table %config(noreplace) /etc/%{name}/sender_canonical
#%config(noreplace) /etc/postfix/pcre_table #%config(noreplace) /etc/%{name}/tcp_table
#%config(noreplace) /etc/postfix/regexp_table #%config(noreplace) /etc/%{name}/pcre_table
%config(noreplace) /etc/postfix/relay_ccerts #%config(noreplace) /etc/%{name}/regexp_table
%config(noreplace) /etc/postfix/header_checks %config(noreplace) /etc/%{name}/relay
%config(noreplace) /etc/postfix/bounce.cf.default %config(noreplace) /etc/%{name}/relay_ccerts
%config(noreplace) /etc/postfix/dynamicmaps.cf %config(noreplace) /etc/%{name}/header_checks
%config /etc/sysconfig/SuSEfirewall2.d/services/postfix %config(noreplace) /etc/%{name}/bounce.cf.default
%config(noreplace) /etc/%{name}/dynamicmaps.cf
%config /etc/sysconfig/SuSEfirewall2.d/services/%{name}
%dir /etc/sasl2/ %dir /etc/sasl2/
%config(noreplace) /etc/sasl2/smtpd.conf %config(noreplace) /etc/sasl2/smtpd.conf
%config /etc/postfix/LICENSE %config /etc/%{name}/LICENSE
%if %{usetls} %if %{usetls}
%config /etc/postfix/TLS_LICENSE %config /etc/%{name}/TLS_LICENSE
%endif %endif
%config /etc/permissions.d/postfix %config /etc/permissions.d/%{name}
%config /etc/permissions.d/postfix.paranoid %config /etc/permissions.d/%{name}.paranoid
%attr(0644, root, root) /etc/postfix/makedefs.out %attr(0644, root, root) %config /etc/%{name}/makedefs.out
%attr(0755, root, root) /etc/postfix/postfix-script %attr(0644, root, root) %config /etc/%{name}/%{name}-files
%attr(0755, root, root) /etc/postfix/post-install /usr/lib/%{name}/%{name}-files
%attr(0644, root, root) /etc/postfix/postfix-files %config %attr(0755,root,root) /etc/init.d/%{name}
%config %attr(0755,root,root) /etc/init.d/postfix
/usr/bin/mailq /usr/bin/mailq
/usr/bin/newaliases /usr/bin/newaliases
%attr(0755, root, root) /usr/sbin/sendmail %attr(0755, root, root) /usr/sbin/sendmail
/usr/sbin/qmqp-source /usr/sbin/qmqp-source
/usr/sbin/smtp-sink /usr/sbin/smtp-sink
/usr/sbin/smtp-source /usr/sbin/smtp-source
/usr/sbin/mkpostfixcert /usr/sbin/mk%{name}cert
/sbin/rcpostfix /sbin/rc%{name}
%{_libdir}/lib* %{_libdir}/lib*
/usr/lib/sendmail /usr/lib/sendmail
%dir /usr/lib/postfix %dir /usr/lib/%{name}
/usr/lib/postfix/*[^.so] /usr/lib/%{name}/*[^.so]
/usr/lib/postfix/dict_ldap.so /usr/lib/%{name}/dict_ldap.so
/usr/lib/postfix/dict_pcre.so /usr/lib/%{name}/dict_pcre.so
/usr/lib/postfix/dict_tcp.so /usr/lib/%{name}/dict_tcp.so
%{conf_backup_dir} %{conf_backup_dir}
%dir %attr(0700,postfix,root) %{pf_data_directory} %dir %attr(0700,%{name},root) %{pf_data_directory}
%{_mandir}/man?/*.gz %{_mandir}/man?/*.gz
%description %files devel
Postfix aims to be an alternative to the widely-used sendmail program. %defattr(-,root,root)
/usr/include/%{name}/
%files doc
%defattr(0644,root,root,0755)
%dir %{pf_docdir}/
%{pf_docdir}/
%files mysql
%defattr(-,root,root)
%doc %{name}-mysql/%{name}-mysql.sql
%config(noreplace) %attr(640, root, %{name}) /etc/%{name}/*_maps.cf
%config(noreplace) /etc/%{name}/main.cf-mysql
/usr/lib/%{name}/dict_mysql.so
Authors: %files postgresql
-------- %defattr(-,root,root)
Wietse Venema <wietse@porcupine.org> /usr/lib/%{name}/dict_pgsql.so
%description mysql
Postfix plugin to support MySQL maps. This library will be loaded by
starting postfix if you'll access a postmap which is stored in mysql.
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%description postgresql
Postfix plugin to support PostgreSQL maps. This library will be loaded
by starting postfix if you'll access a postmap which is stored in
PostgreSQL.
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%description devel
Postfix aims to be an alternative to the widely-used sendmail program.
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%description doc
Postfix aims to be an alternative to the widely-used sendmail program.
This package contains the documentation for postfix
Authors:
--------
Wietse Venema <wietse@porcupine.org>
%changelog %changelog

4
rpmlintrc Normal file
View File

@ -0,0 +1,4 @@
addFilter("executable-sourced-script .*/sbin/conf.d/SuSEconfig.postfix")
addFilter("sourced-script-with-shebang .*/sbin/conf.d/SuSEconfig.postfix")
addFilter("devel-file-in-non-devel-package .*/usr/lib/libpostfix*.so")
addFilter("devel-file-in-non-devel-package .*/usr/lib64/libpostfix*.so")