Thu, 09 Aug 2012 00:41:14 +0200
Introduce a lot of changes to correct source and build logic including:
Correct URLs, reorder existing patch hunks, update vendor version and
patch accordingly, integrate optional SQLite storage, modernize package
(remove boilerplate RPM logic), correct preprocessor definitions as
NIS+was removed from Solaris 11, use parallel make, improve configuration
spacing and whitespace, and remove now uneeded postfix-script(1) and
post-install(1) relocation.
1.1 --- a/postfix/postfix.patch Wed Aug 08 20:36:32 2012 +0200 1.2 +++ b/postfix/postfix.patch Thu Aug 09 00:41:14 2012 +0200 1.3 @@ -1,20 +1,18 @@ 1.4 Index: makedefs 1.5 ---- makedefs.orig 2008-01-15 21:20:24 +0100 1.6 -+++ makedefs 2008-01-24 12:31:48 +0100 1.7 -@@ -132,6 +132,10 @@ 1.8 +--- makedefs.orig 2011-01-16 22:02:31.000000000 +0100 1.9 ++++ makedefs 2011-01-21 09:43:55.000000000 +0100 1.10 +@@ -153,6 +153,8 @@ 1.11 ;; 1.12 - FreeBSD.7*) SYSTYPE=FREEBSD7 1.13 + FreeBSD.8*) SYSTYPE=FREEBSD8 1.14 ;; 1.15 -+ FreeBSD.7*) SYSTYPE=FREEBSD7 1.16 -+ ;; 1.17 -+ FreeBSD.8*) SYSTYPE=FREEBSD8 1.18 ++ FreeBSD.9*) SYSTYPE=FREEBSD9 1.19 + ;; 1.20 OpenBSD.2*) SYSTYPE=OPENBSD2 1.21 ;; 1.22 OpenBSD.3*) SYSTYPE=OPENBSD3 1.23 Index: src/util/file_limit.c 1.24 ---- src/util/file_limit.c.orig 2003-10-22 20:48:36 +0200 1.25 -+++ src/util/file_limit.c 2008-01-24 12:31:48 +0100 1.26 +--- src/util/file_limit.c.orig 2003-10-22 20:48:36.000000000 +0200 1.27 ++++ src/util/file_limit.c 2011-01-21 09:43:55.000000000 +0100 1.28 @@ -80,12 +80,21 @@ 1.29 void set_file_limit(off_t limit) 1.30 { 1.31 @@ -38,8 +36,8 @@ 1.32 msg_fatal("setrlimit: %m"); 1.33 #ifdef SIGXFSZ 1.34 Index: src/util/msg_syslog.c 1.35 ---- src/util/msg_syslog.c.orig 2006-06-15 20:07:16 +0200 1.36 -+++ src/util/msg_syslog.c 2008-01-24 12:31:48 +0100 1.37 +--- src/util/msg_syslog.c.orig 2006-06-15 20:07:16.000000000 +0200 1.38 ++++ src/util/msg_syslog.c 2011-01-21 09:43:55.000000000 +0100 1.39 @@ -50,6 +50,11 @@ 1.40 #include <syslog.h> 1.41 #include <string.h> 1.42 @@ -89,27 +87,25 @@ 1.43 1.44 /* msg_syslog_init - initialize */ 1.45 Index: src/util/sys_defs.h 1.46 ---- src/util/sys_defs.h.orig 2008-01-15 01:51:44 +0100 1.47 -+++ src/util/sys_defs.h 2008-01-24 12:32:41 +0100 1.48 -@@ -24,7 +24,7 @@ 1.49 - * 4.4BSD and close derivatives. 1.50 +--- src/util/sys_defs.h.orig 2011-01-17 15:44:25.000000000 +0100 1.51 ++++ src/util/sys_defs.h 2011-01-21 09:43:55.000000000 +0100 1.52 +@@ -25,7 +25,7 @@ 1.53 */ 1.54 #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \ 1.55 -- || defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) \ 1.56 -+ || defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) || defined(FREEBSD8) \ 1.57 + || defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) \ 1.58 +- || defined(FREEBSD8) \ 1.59 ++ || defined(FREEBSD8) || defined(FREEBSD9) \ 1.60 || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \ 1.61 || defined(OPENBSD2) || defined(OPENBSD3) || defined(OPENBSD4) \ 1.62 - || defined(NETBSD1) || defined(NETBSD2) || defined(NETBSD3) \ 1.63 -Index: src/smtp/smtp_reuse.c 1.64 ---- src/smtp/smtp_reuse.c.orig 2008-12-04 01:06:42.000000000 +0100 1.65 -+++ src/smtp/smtp_reuse.c 2009-04-06 20:38:18.974597344 +0200 1.66 -@@ -216,7 +216,9 @@ 1.67 - /* 1.68 - * Avoid poor performance when TCP MSS > VSTREAM_BUFSIZE. 1.69 - */ 1.70 -+#if 0 1.71 - vstream_tweak_sock(session->stream); 1.72 + || defined(OPENBSD5) \ 1.73 +@@ -117,6 +117,10 @@ 1.74 + #define HAS_CLOSEFROM 1.75 + #endif 1.76 + 1.77 ++#if (__FreeBSD_version < 800000 && __FreeBSD_version >= 702104) || (__FreeBSD_version >= 800100) 1.78 ++#define HAS_CLOSEFROM 1.79 +#endif 1.80 ++ 1.81 + /* OpenBSD version is year+month */ 1.82 1.83 - /* 1.84 - * Update the list of used cached addresses. 1.85 + #if OpenBSD >= 199805 /* XXX */
2.1 --- a/postfix/postfix.patch.pfls Wed Aug 08 20:36:32 2012 +0200 2.2 +++ b/postfix/postfix.patch.pfls Thu Aug 09 00:41:14 2012 +0200 2.3 @@ -1,32 +1,28 @@ 2.4 -This patch makes Pflogsumm working with the particular format 2.5 -of the OSSP fsl based Postfix logfile and additionally allows 2.6 -one to specify a more flexible data format. 2.7 - 2.8 Index: pflogsumm.1 2.9 ---- pflogsumm.1.orig 2007-04-06 16:11:28 +0200 2.10 -+++ pflogsumm.1 2007-04-06 17:35:12 +0200 2.11 -@@ -172,6 +172,8 @@ 2.12 - .Vb 2 2.13 - \& -d today generate report for just today 2.14 - \& -d yesterday generate report for just "yesterday" 2.15 -+\& -d YYYY-MM-DD generate report for just "YYYY-MM-DD" 2.16 -+\& (Really takes string Date::Parse will handle) 2.17 - .Ve 2.18 - .PP 2.19 - .Vb 1 2.20 +--- pflogsumm.1.orig 2012-02-05 23:34:29.000000000 +0100 2.21 ++++ pflogsumm.1 2012-02-06 08:49:47.000000000 +0100 2.22 +@@ -171,6 +171,8 @@ 2.23 + \& 2.24 + \& \-d today generate report for just today 2.25 + \& \-d yesterday generate report for just "yesterday" 2.26 ++\& \-d YYYY-MM-DD generate report for just "YYYY-MM-DD" 2.27 ++\& (Really takes string Date::Parse will handle) 2.28 + \& 2.29 + \& \-\-deferral\-detail <cnt> 2.30 + \& 2.31 Index: pflogsumm.pl 2.32 ---- pflogsumm.pl.orig 2008-06-29 15:46:01 +0200 2.33 -+++ pflogsumm.pl 2008-06-29 19:39:07 +0200 2.34 +--- pflogsumm.pl.orig 2012-02-05 23:25:25.000000000 +0100 2.35 ++++ pflogsumm.pl 2012-02-06 20:53:39.000000000 +0100 2.36 @@ -10,7 +10,7 @@ 2.37 2.38 =head1 SYNOPSIS 2.39 2.40 -- pflogsumm.pl -[eq] [-d <today|yesterday>] [-h <cnt>] [-u <cnt>] 2.41 -+ pflogsumm.pl -[eq] [-d <today|yesterday|YYYY-MM-DD>] [-h <cnt>] [-u <cnt>] 2.42 - [--verp_mung[=<n>]] [--verbose_msg_detail] [--iso_date_time] 2.43 - [-m|--uucp_mung] [-i|--ignore_case] [--smtpd_stats] [--mailq] 2.44 - [--problems_first] [--rej_add_from] [--no_bounce_detail] 2.45 -@@ -37,6 +37,9 @@ 2.46 +- pflogsumm.pl -[eq] [-d <today|yesterday>] [--detail <cnt>] 2.47 ++ pflogsumm.pl -[eq] [-d <today|yesterday|YYYY-MM-DD>] [--detail <cnt>] 2.48 + [--bounce-detail <cnt>] [--deferral-detail <cnt>] 2.49 + [-h <cnt>] [-i|--ignore-case] [--iso-date-time] [--mailq] 2.50 + [-m|--uucp-mung] [--no-no-msg-size] [--problems-first] 2.51 +@@ -43,6 +43,9 @@ 2.52 2.53 -d today generate report for just today 2.54 -d yesterday generate report for just "yesterday" 2.55 @@ -34,9 +30,9 @@ 2.56 + (Actually this will take any date string 2.57 + parsable by the perl Date::Parse module) 2.58 2.59 - -e extended (extreme? excessive?) detail 2.60 + --deferral-detail <cnt> 2.61 2.62 -@@ -359,6 +362,7 @@ 2.63 +@@ -398,6 +401,7 @@ 2.64 use strict; 2.65 use locale; 2.66 use Getopt::Long; 2.67 @@ -44,28 +40,28 @@ 2.68 eval { require Date::Calc }; 2.69 my $hasDateCalc = $@ ? 0 : 1; 2.70 2.71 -@@ -542,8 +546,8 @@ 2.72 - my $logRmdr; 2.73 - next unless((($msgMonStr, $msgDay, $msgHr, $msgMin, $msgSec, $logRmdr) = 2.74 - /^(...) +(\d+) (..):(..):(..) \S+ (.+)$/o) == 6); 2.75 -- unless((($cmd, $qid) = $logRmdr =~ m#^(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 2.76 +@@ -639,8 +643,8 @@ 2.77 + --$msgMon; 2.78 + } 2.79 + 2.80 +- unless((($cmd, $qid) = $logRmdr =~ m#^(?:postfix|$syslogName)(?:/(?:smtps|submission))?/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 2.81 - (($cmd, $qid) = $logRmdr =~ m#^((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2) 2.82 -+ unless((($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 2.83 ++ unless((($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+(?:postfix|$syslogName)(?:/(?:smtps|submission))?/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 2.84 + (($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2) 2.85 { 2.86 #print UNPROCD "$_"; 2.87 next; 2.88 -@@ -1406,11 +1410,11 @@ 2.89 +@@ -1514,11 +1518,11 @@ 2.90 # Back up to yesterday 2.91 $time -= ((localtime($time))[2] + 2) * 3600; 2.92 } elsif($dateOpt ne "today") { 2.93 - die "$usageMsg\n"; 2.94 + $time = str2time($dateOpt); 2.95 } 2.96 - my ($t_mday, $t_mon) = (localtime($time))[3,4]; 2.97 + my ($t_mday, $t_mon, $t_year) = (localtime($time))[3,4,5]; 2.98 2.99 -- return sprintf("%s %2d", $monthNames[$t_mon], $t_mday); 2.100 -+ return sprintf("%s %02d", $monthNames[$t_mon], $t_mday); 2.101 +- return sprintf("%s %2d", $monthNames[$t_mon], $t_mday), sprintf("%04d-%02d-%02d", $t_year+1900, $t_mon+1, $t_mday); 2.102 ++ return sprintf("%s %02d", $monthNames[$t_mon], $t_mday), sprintf("%04d-%02d-%02d", $t_year+1900, $t_mon+1, $t_mday); 2.103 } 2.104 2.105 # if there's a real domain: uses that. Otherwise uses the IP addr.
3.1 --- a/postfix/postfix.spec Wed Aug 08 20:36:32 2012 +0200 3.2 +++ b/postfix/postfix.spec Thu Aug 09 00:41:14 2012 +0200 3.3 @@ -22,8 +22,8 @@ 3.4 ## 3.5 3.6 # package versions 3.7 -%define V_postfix 2.5.6 3.8 -%define V_pflogsumm 1.1.2 3.9 +%define V_postfix 2.9.4 3.10 +%define V_pflogsumm 1.1.5 3.11 %define V_whoson 2.4.0 3.12 3.13 # package information 3.14 @@ -37,12 +37,13 @@ 3.15 Group: Mail 3.16 License: IPL 3.17 Version: %{V_postfix} 3.18 -Release: 20090418 3.19 +Release: 20120800 3.20 3.21 # package options 3.22 %option with_fsl yes 3.23 %option with_ssl no 3.24 %option with_sasl no 3.25 +%option with_sqlite no 3.26 %option with_mysql no 3.27 %option with_pgsql no 3.28 %option with_ldap no 3.29 @@ -57,13 +58,11 @@ 3.30 Source4: rc.postfix 3.31 Patch0: postfix.patch 3.32 Patch1: postfix.patch.pfls 3.33 -Patch2: ftp://ftp.openpkg.org/sources/CPY/postfix/postfix-%{V_whoson}-whoson.patch 3.34 +Patch2: http://download.openpkg.org/components/versioned/postfix/postfix-%{V_whoson}-whoson.patch 3.35 3.36 # build information 3.37 -Prefix: %{l_prefix} 3.38 -BuildRoot: %{l_buildroot} 3.39 -BuildPreReq: OpenPKG, openpkg >= 20060823, perl, gcc 3.40 -PreReq: OpenPKG, openpkg >= 20060823, perl, procmail, perl-time 3.41 +BuildPreReq: OpenPKG, openpkg >= 20120101, perl, gcc 3.42 +PreReq: OpenPKG, openpkg >= 20120101, perl, procmail, perl-time 3.43 BuildPreReq: make, pcre, db 3.44 PreReq: make, pcre, db 3.45 %if "%{with_fsl}" == "yes" 3.46 @@ -78,6 +77,10 @@ 3.47 BuildPreReq: sasl 3.48 PreReq: sasl 3.49 %endif 3.50 +%if "%{with_sqlite}" == "yes" 3.51 +BuildPreReq: sqlite 3.52 +PreReq: sqlite 3.53 +%endif 3.54 %if "%{with_mysql}" == "yes" 3.55 BuildPreReq: mysql 3.56 PreReq: mysql 3.57 @@ -94,8 +97,6 @@ 3.58 BuildPreReq: whoson 3.59 PreReq: whoson 3.60 %endif 3.61 -AutoReq: no 3.62 -AutoReqProv: no 3.63 Provides: MTA 3.64 Conflicts: exim, sendmail, ssmtp 3.65 3.66 @@ -111,6 +112,7 @@ 3.67 o PCRE matching support 3.68 o Optional STARTTLS encryption support (see package options) 3.69 o Optional SASL2 authentication support (see package options) 3.70 + o Optional SQLite dictionary support (see package options) 3.71 o Optional MySQL dictionary support (see package options) 3.72 o Optional PostgreSQL dictionary support (see package options) 3.73 o Optional OpenLDAP dictionary support (see package options) 3.74 @@ -129,7 +131,7 @@ 3.75 } 3.76 prog postfix:whoson = { 3.77 version = %{V_whoson} 3.78 - url = ftp://ftp.openpkg.org/sources/CPY/postfix/ 3.79 + url = http://download.openpkg.org/components/versioned/postfix/ 3.80 regex = postfix-(__VER__)-whoson.patch 3.81 } 3.82 3.83 @@ -142,15 +144,24 @@ 3.84 %patch -p0 3.85 ( cd pflogsumm-%{V_pflogsumm} && %{l_patch} -p0 -b <%{PATCH1} ) || exit $? 3.86 3.87 + # apply vendor WHOSON patch 3.88 +%if "%{with_whoson}" == "yes" 3.89 + %patch -p0 -P 2 3.90 +%endif 3.91 + 3.92 # remove OpenPKG privelege model incompatible exit conditions 3.93 %{l_shtool} subst \ 3.94 -e 's;msg_fatal\(.*attribute specifies mail system\);msg_info\1;g' \ 3.95 src/pipe/pipe.c 3.96 3.97 - # apply vendor WHOSON patch 3.98 -%if "%{with_whoson}" == "yes" 3.99 - %patch -p0 -P 2 3.100 -%endif 3.101 + # platform specific corrections 3.102 + case "%{l_platform -t}" in 3.103 + *-sunos5.11 ) 3.104 + %{l_shtool} subst \ 3.105 + -e 's;#define HAS_NISPLUS;#undef HAS_NISPLUS;' \ 3.106 + src/util/sys_defs.h 3.107 + ;; 3.108 + esac 3.109 3.110 %build 3.111 # configure Postfix (hard-core part I) 3.112 @@ -182,6 +193,10 @@ 3.113 AUXLIBS="$AUXLIBS -ldb" 3.114 CCARGS="$CCARGS -DHAS_PCRE" 3.115 AUXLIBS="$AUXLIBS -lpcre" 3.116 +%if "%{with_sqlite}" == "yes" 3.117 + CCARGS="$CCARGS -DHAS_SQLITE" 3.118 + AUXLIBS="$AUXLIBS -lsqlite3" 3.119 +%endif 3.120 %if "%{with_mysql}" == "yes" 3.121 CCARGS="$CCARGS -DHAS_MYSQL %{l_cppflags mysql .}" 3.122 AUXLIBS="$AUXLIBS %{l_ldflags mysql .} -lmysqlclient -lz -lm" 3.123 @@ -232,10 +247,9 @@ 3.124 src/util/sys_defs.h 3.125 3.126 # build Postfix 3.127 - %{l_make} %{l_mflags} 3.128 + %{l_make} %{l_mflags -O} 3.129 3.130 %install 3.131 - rm -rf $RPM_BUILD_ROOT 3.132 3.133 # perform standard installation procedure 3.134 %{l_shtool} subst -e "s;chown;true;" postfix-install 3.135 @@ -270,11 +284,6 @@ 3.136 main.cf master.cf main.cf.default; do 3.137 rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/$cfg 3.138 done 3.139 - mv $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/postfix-script \ 3.140 - $RPM_BUILD_ROOT%{l_prefix}/sbin/postfix-script 3.141 - rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/postfix-script* 3.142 - mv $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/post-install \ 3.143 - $RPM_BUILD_ROOT%{l_prefix}/sbin/postfix-install 3.144 3.145 # install default configuration 3.146 for name in `grep "^<file" %{SOURCE postfix.txt} | sed -e 's;^.*name=";;' -e 's;".*$;;'`; do 3.147 @@ -335,12 +344,12 @@ 3.148 '%attr(2755,%{l_musr},%{l_rgrp}) %{l_prefix}/sbin/{postdrop,postqueue}' \ 3.149 '%dir %attr(-,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/postfix' \ 3.150 '%dir %attr(-,%{l_susr},%{l_mgrp}) %{l_prefix}/var/postfix' \ 3.151 + '%dir %attr(-,%{l_susr},%{l_mgrp}) %{l_prefix}/var/postfix/pid' \ 3.152 '%dir %attr(-,%{l_musr},%{l_rgrp}) %{l_prefix}/var/postfix/{maildrop,public}' 3.153 3.154 %files -f files 3.155 3.156 %clean 3.157 - rm -rf $RPM_BUILD_ROOT 3.158 3.159 %pre 3.160 # before upgrade, save status and stop service 3.161 @@ -371,8 +380,8 @@ 3.162 rm -f $RPM_INSTALL_PREFIX/var/postfix/log/postfix.sum* >/dev/null 2>&1 || true 3.163 # remove generated configuration files 3.164 ( cd $RPM_INSTALL_PREFIX/etc/postfix && %{l_make} clean >/dev/null 2>&1; true ) || true 3.165 - # remove generated run-time files and directories 3.166 - rm -rf $RPM_INSTALL_PREFIX/etc/postfix/data/* 3.167 + # remove generated runtime files and directories 3.168 + rm -rf $RPM_INSTALL_PREFIX/var/postfix/data/* 3.169 rm -rf $RPM_INSTALL_PREFIX/var/postfix/pid/* 3.170 rm -rf $RPM_INSTALL_PREFIX/var/postfix/private/* 3.171 rm -rf $RPM_INSTALL_PREFIX/var/postfix/public/*
4.1 --- a/postfix/postfix.txt Wed Aug 08 20:36:32 2012 +0200 4.2 +++ b/postfix/postfix.txt Thu Aug 09 00:41:14 2012 +0200 4.3 @@ -103,7 +103,11 @@ 4.4 # (yes) (yes) (yes) (never) (100) 4.5 # ========================================================================== 4.6 smtp inet n - n - - smtpd 4.7 -#smtp inet n - n - - smtpd -o content_filter=spamass 4.8 +#smtp inet n - n - - smtpd -o content_filter=spamass 4.9 +#smtp inet n - n - 1 postscreen 4.10 +#smtpd pass - - n - - smtpd 4.11 +#dnsblog unix - - n - 0 dnsblog 4.12 +#tlsproxy unix - - n - 0 tlsproxy 4.13 #628 inet n - n - - qmqpd 4.14 pickup fifo n - n 60 1 pickup 4.15 cleanup unix n - n - 0 cleanup 4.16 @@ -129,8 +133,8 @@ 4.17 scache unix - - n - 1 scache 4.18 #maildrop unix - n n - - pipe flags=DRhu user=@l_nusr@ argv=@l_prefix@/bin/maildrop -d ${recipient} 4.19 #cyrus unix - n n - - pipe user=@l_nusr@ argv=@l_prefix@/bin/cyrdeliver -e -r ${sender} -m ${extension} ${user} 4.20 -#dovecot unix - n n - - pipe flags=DR user=@l_rusr@ argv=@l_prefix@/libexec/dovecot/deliver -f ${sender} -d ${user} -n -m ${extension} 4.21 -#spamass unix - n n - - pipe flags=R user=@l_rusr@ argv=@l_prefix@/bin/spamc -f -u ${user} -e @l_prefix@/sbin/sendmail -oi -f ${sender} ${recipient} 4.22 +#dovecot unix - n n - - pipe flags=DR user=@l_rusr@ argv=@l_prefix@/libexec/dovecot/deliver -f ${sender} -d ${user} -n -m ${extension} 4.23 +#spamass unix - n n - - pipe flags=R user=@l_rusr@ argv=@l_prefix@/bin/spamc -f -u ${user} -e @l_prefix@/sbin/sendmail -oi -f ${sender} ${recipient} 4.24 #uucp unix - n n - - pipe flags=Fqhu user=@l_nusr@ argv=@l_prefix@/bin/uux -r -n -z -a$sender - $nexthop!rmail ($recipient) 4.25 #ifmail unix - n n - - pipe flags=F user=@l_nusr@ argv=@l_prefix@/bin/ifmail -r $nexthop ($recipient) 4.26 #bsmtp unix - n n - - pipe flags=Fq. user=@l_nusr@ argv=@l_prefix@/bin/bsmtp -f $sender $nexthop $recipient