%bcond_without sasl # without SMTP AUTH support
%bcond_without ssl # without SSL/TLS support
%bcond_without cdb # without cdb map support
-%bcond_with polish # with double English+Polish messages
+%bcond_with vda # with VDA patch
+%bcond_with hir # with Beeth's header_if_reject patch
+#%bcond_with polish # with double English+Polish messages
+#
+# TODO:
+# - check/fix 'polish' bcond
#
-%define _tls_ipv6_ver 1.23-pf-2.0.20
Summary: Postfix Mail Transport Agent
Summary(cs): Postfix - program pro pøepravu po¹ty (MTA)
Summary(es): Postfix - Un MTA (Mail Transport Agent) de alto desempeño
Summary(pt_BR): Postfix - Um MTA (Mail Transport Agent) de alto desempenho
Summary(sk): Agent prenosu po¹ty Postfix
Name: postfix
-Version: 2.0.20
-Release: 1
+Version: 2.2.3
+Release: 1.1
Epoch: 2
Group: Networking/Daemons
License: distributable
Source0: ftp://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
-# Source0-md5: 92479b64d132262be505a17ec02bc2a8
+# Source0-md5: f164b701c3e97b950d4cc64aff4de3c0
Source1: %{name}.aliases
Source2: %{name}.cron
Source3: %{name}.init
-Source5: %{name}.sysconfig
-Source6: %{name}.sasl
-Source7: ftp://ftp.corpit.ru/pub/postfix/%{name}-dict_cdb-1.1.11-20021104.tar.gz
-# Source7-md5: 5731b5081725f4688dc6fae119d617e4
-Source8: http://www.ipnet6.org/postfix/download/tls+ipv6-%{_tls_ipv6_ver}.patch.gz
-# Source8-md5: f22ddc33b8fc103c0ab953579e90ecd0
+Source4: %{name}.sysconfig
+Source5: %{name}.sasl
+Source6: %{name}.pamd
+Source7: http://web.onda.com.br/nadal/postfix/VDA/%{name}-%{version}-vda.patch.gz
+# Source7-md5: fcc8b7e7d94a9ce2d97453da0e6cd7c9
Patch0: %{name}-config.patch
Patch1: %{name}-conf_msg.patch
Patch2: %{name}-dynamicmaps.patch
-Patch3: %{name}-pgsql.patch
-Patch4: %{name}-master.cf_cyrus.patch
-Patch5: %{name}-pl.patch
-Patch6: %{name}-cdb_man.patch
-Patch7: %{name}-ns-mx-acl.patch
-Patch8: %{name}-kill_warnings.patch
-Patch9: %{name}-ipv6-kill_warnings.patch
-Patch10: %{name}-dict_ldap.patch
+Patch3: %{name}-master.cf_cyrus.patch
+# from http://akson.sgh.waw.pl/~chopin/unix/postfix-2.1.5-header_if_reject.diff
+Patch4: %{name}-header_if_reject.patch
+#Patch5: %{name}-pl.patch
+Patch6: %{name}-setsid.patch
URL: http://www.postfix.org/
BuildRequires: awk
%{?with_sasl:BuildRequires: cyrus-sasl-devel}
BuildRequires: db-devel
+# getifaddrs() with IPv6 support
+BuildRequires: glibc-devel >= 6:2.3.4
BuildRequires: grep
-BuildRequires: libinet6 >= 0.20030228-1
%{?with_mysql:BuildRequires: mysql-devel}
%{?with_ldap:BuildRequires: openldap-devel >= 2.2.0}
%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
BuildRequires: pcre-devel
%{?with_pgsql:BuildRequires: postgresql-devel}
+BuildRequires: rpmbuild(macros) >= 1.202
%{?with_cdb:BuildRequires: tinycdb-devel}
PreReq: rc-scripts
PreReq: sed
-Requires(pre): /usr/sbin/useradd
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
Requires(post): /bin/hostname
-Requires(post,postun): /sbin/ldconfig
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires(post,preun): /sbin/chkconfig
-Requires(postun): /usr/sbin/userdel
+Requires(post,postun): /sbin/ldconfig
Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
Requires: diffutils
Requires: findutils
%{?with_cdb:Requires:tinycdb}
+Provides: group(postfix)
Provides: smtpdaemon
+Provides: user(postfix)
Obsoletes: courier
Obsoletes: exim
Obsoletes: masqmail
Postfix jest prób± dostarczenia alternatywnego MTA w stosunku do
szeroko u¿ywanego sendmaila. Postfix w zamierzeniu ma byæ szybki,
³atwy w administrowaniu, bezpieczny oraz ma byæ na tyle kompatybilny z
-sendmailem by nie denerwowaæ Twoich u¿ytkowników. Ta wersja wspiera IPv6.
+sendmailem by nie denerwowaæ u¿ytkowników. Ta wersja obs³uguje IPv6.
%description -l pt_BR
O Postfix é uma alternativa para o mundialmente utilizado sendmail. Se
Ten pakiet dodaje obs³ugê map PostgreSQL do Postfiksa.
%prep
-%setup -q %{?with_cdb:-a7}
-zcat %{SOURCE8} | patch -p1 -s
+%setup -q
+%{?with_vda:zcat %{SOURCE7} | patch -p1 -s}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
-%{?with_polish:%patch5 -p1}
-%{?with_cdb:%patch6 -p1}
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%{?with_cdb:sh dict_cdb.sh}
-%patch10 -p1
+%{?with_hir:%patch4 -p0}
+#%{?with_polish:%patch5 -p1}
+%patch6 -p1
%build
%{__make} -f Makefile.init makefiles
%{__make} tidy
-%{__make} DEBUG="" OPT="%{rpmcflags}" \
+%{__make} \
+ DEBUG="" \
+ OPT="%{rpmcflags}" \
%{!?with_ldap:LDAPSO=""} \
%{!?with_mysql:MYSQLSO=""} \
%{!?with_pgsql:PGSQLSO=""} \
- CCARGS="%{?with_ldap:-DHAS_LDAP} -DHAS_PCRE %{?with_sasl:-DUSE_SASL_AUTH -I/usr/include/sasl} %{?with_mysql:-DHAS_MYSQL -I/usr/include/mysql} %{?with_pgsql:-DHAS_PGSQL -I/usr/include/postgresql} %{?with_ssl:-DHAS_SSL -I/usr/include/openssl} -DMAX_DYNAMIC_MAPS %{?with_cdb:-DHAS_CDB}" \
+ CCARGS="%{?with_ldap:-DHAS_LDAP} -DHAS_PCRE %{?with_sasl:-DUSE_SASL_AUTH -I/usr/include/sasl} %{?with_mysql:-DHAS_MYSQL -I/usr/include/mysql} %{?with_pgsql:-DHAS_PGSQL -I/usr/include/postgresql} %{?with_ssl:-DUSE_TLS -I/usr/include/openssl} -DMAX_DYNAMIC_MAPS %{?with_cdb:-DHAS_CDB} -DHAVE_GETIFADDRS" \
AUXLIBS="-ldb -lresolv %{?with_sasl:-lsasl} %{?with_ssl:-lssl -lcrypto} %{?with_cdb:-lcdb}"
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{cron.daily,rc.d/init.d,sysconfig} \
+install -d $RPM_BUILD_ROOT/etc/{cron.daily,rc.d/init.d,sysconfig,pam.d} \
$RPM_BUILD_ROOT%{_sysconfdir}/{mail,sasl} \
$RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/postfix,/usr/lib}\
$RPM_BUILD_ROOT{%{_includedir}/postfix,%{_mandir}/man{1,5,8}} \
- $RPM_BUILD_ROOT%{_var}/spool/postfix/{active,corrupt,deferred,maildrop,private,saved,bounce,defer,incoming,pid,public} \
- pfixtls
+ $RPM_BUILD_ROOT%{_var}/spool/postfix/{active,corrupt,deferred,maildrop,private,saved,bounce,defer,incoming,pid,public}
rm -f {html,man}/Makefile.in conf/{LICENSE,main.cf.default}
-install -d sample-conf; mv -f conf/sample* sample-conf || :
-
install bin/* $RPM_BUILD_ROOT%{_sbindir}
install libexec/* $RPM_BUILD_ROOT%{_libdir}/postfix
install conf/* $RPM_BUILD_ROOT%{_sysconfdir}/mail
install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mail/aliases
install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/postfix
install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/postfix
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/postfix
-install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
+install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/postfix
+install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
+install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/smtp
install auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail
ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
> $RPM_BUILD_ROOT/var/spool/postfix/.nofinger
+rm -rf $RPM_BUILD_ROOT/etc/mail/makedefs.out $RPM_BUILD_ROOT/usr/share/man/cat*
+
%clean
rm -rf $RPM_BUILD_ROOT
%pre
-if [ -n "`/usr/bin/getgid postfix`" ]; then
- if [ "`getgid postfix`" != "62" ]; then
- echo "Error: group postfix doesn't have gid=62. Correct this before installing postfix." 1>&2
- exit 1
- fi
-else
- /usr/sbin/groupadd -g 62 -r -f postfix
-fi
-if [ -n "`/usr/bin/getgid maildrop`" ]; then
- if [ "`/usr/bin/getgid maildrop`" != "63" ]; then
- echo "Error: group maildrop doesn't have gid=63. Correct this before installing postfix." 1>&2
- exit 1
- fi
-else
- /usr/sbin/groupadd -g 63 -r -f maildrop
-fi
-if [ -n "`/bin/id -u postfix 2>/dev/null`" ]; then
- if [ "`/bin/id -u postfix`" != "62" ]; then
- echo "Error: user postfix doesn't have uid=62. Correct this before installing postfix." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 62 -r -d /var/spool/postfix -s /bin/false -c "Postfix User" -g postfix postfix 1>&2
-fi
+%groupadd -g 62 postfix
+%groupadd -g 63 maildrop
+%useradd -u 62 -d /var/spool/postfix -s /bin/false -c "Postfix User" -g postfix postfix
%post
/sbin/ldconfig
echo "postmaster: root" >>/etc/mail/aliases
fi
if [ "$1" = "1" ]; then
-# only on installation, not upgrade
+ # only on installation, not upgrade
if ! grep -q "^myhostname" /etc/mail/main.cf; then
postconf -e myhostname=`/bin/hostname -f`
fi
+else
+ postfix upgrade-configuration
fi
newaliases
%postun
/sbin/ldconfig
if [ "$1" = "0" ]; then
- /usr/sbin/groupdel maildrop 2> /dev/null
- /usr/sbin/userdel postfix 2> /dev/null
- /usr/sbin/groupdel postfix 2> /dev/null
+ %groupremove maildrop
+ %userremove postfix
+ %groupremove postfix
fi
-%triggerpostun -- postfix < 1:1.1.2
-umask 022
-sed -e 's/^\(pickup[ ]\+fifo[ ]\+[^ ]\+[ ]\+\)[^ ]\+\([ ]\)/\1-\2/;
-s/^\(cleanup[ ]\+unix[ ]\+\)[^ ]\+\([ ]\)/\1n\2/' /etc/mail/master.cf \
- > /etc/mail/master.cf.rpmtmp
-mv -f /etc/mail/master.cf.rpmtmp /etc/mail/master.cf
-
%files
%defattr(644,root,root,755)
-%doc html *README COMPATIBILITY HISTORY LICENSE RELEASE_NOTES
+%doc html *README COMPATIBILITY HISTORY LICENSE RELEASE_NOTES TLS_*
%doc README_FILES/*README
-%doc sample-conf
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/access
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/aliases
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/canonical
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/pcre_table
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/regexp_table
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/relocated
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/transport
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/virtual
+%doc examples/smtpd-policy
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/access
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/aliases
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/canonical
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/generic
+#%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/pcre_table
+#%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/regexp_table
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/relocated
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/transport
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/virtual
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/header_checks
#%ghost %{_sysconfdir}/mail/*.db
%dir %{_sysconfdir}/mail
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/dynamicmaps.cf
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/main.cf
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/master.cf
-%attr(755,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mail/postfix-script
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/dynamicmaps.cf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/main.cf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/master.cf
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/postfix-script
%attr(755,root,root) %{_sysconfdir}/mail/post-install
%{_sysconfdir}/mail/postfix-files
%attr(740,root,root) /etc/cron.daily/postfix
%attr(754,root,root) /etc/rc.d/init.d/postfix
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/postfix
-%{?with_sasl:%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/sasl/smtpd.conf}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postfix
+%config(noreplace) %verify(not md5 size mtime) /etc/pam.d/smtp
+%{?with_sasl:%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl/smtpd.conf}
%attr(755,root,root) %{_libdir}/libpostfix-*.so.*
%attr(755,root,root) %{_bindir}/*
%attr(755,root,root) %{_sbindir}/s*
%attr(2755,root,maildrop) %{_sbindir}/postqueue
%attr(755,root,root) %{_sbindir}/postsuper
%attr(2755,root,maildrop) %{_sbindir}/postdrop
+%attr(755,root,root) %{_sbindir}/qmqp-sink
%attr(755,root,root) %{_sbindir}/qmqp-source
%attr(755,root,root) /usr/lib/sendmail
%dir %{_libdir}/postfix
%attr(755,root,root) %{_libdir}/postfix/[!d]*
+%attr(755,root,root) %{_libdir}/postfix/discard
%attr(755,root,root) %dir %{_var}/spool/postfix
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/active
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/bounce
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/corrupt
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/defer
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/deferred
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/incoming
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/active
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/bounce
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/corrupt
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/defer
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/deferred
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/incoming
%attr(1730,postfix,maildrop) %dir %{_var}/spool/postfix/maildrop
-%attr(755, postfix,root) %dir %{_var}/spool/postfix/pid
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/private
-%attr(710, postfix,maildrop) %dir %{_var}/spool/postfix/public
-%attr(700, postfix,root) %dir %{_var}/spool/postfix/saved
-%attr(644, postfix,root) %{_var}/spool/postfix/.nofinger
+%attr(755,postfix,root) %dir %{_var}/spool/postfix/pid
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/private
+%attr(710,postfix,maildrop) %dir %{_var}/spool/postfix/public
+%attr(700,postfix,root) %dir %{_var}/spool/postfix/saved
+%attr(644,postfix,root) %{_var}/spool/postfix/.nofinger
%{_mandir}/man*/*
%files devel