#
+# TODO:
+# - fix ipv6 patch against IPv4 RBLs
+# - 0.0.0.0/0 is still being added to mynetworks if any ipv6/ip
+# tunnels are present
+#
# Conditional build:
-# --without sasl - build wihtout SMTP AUTH support
-# --without ssl - build without SSL/TLS support
-# --without ipv6 - build without IPv6 support
+# _without_ipv6 - without IPv6 support
+# _without_ldap - without LDAP map module
+# _without_mysql - without MySQL map module
+# _without_pgsql - without PostgreSQL map module
+# _without_sasl - without SMTP AUTH support
+# _without_ssl - without SSL/TLS support
+# _with_polish - with double English+Polish messages
+# _with_cdb - tinycdb mapfile support
#
-%define tls_ver 0.8.10-1.1.10-0.9.6d
+%define tls_ver 0.8.16-2.0.15-0.9.7b
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(fr): Agent de transport de courrier Postfix
Summary(pl): Serwer SMTP Postfix
+Summary(pt_BR): Postfix - Um MTA (Mail Transport Agent) de alto desempenho
Summary(sk): Agent prenosu po¹ty Postfix
Name: postfix
-Version: 1.1.10
-Release: 1
+Version: 2.0.15
+Release: 2
Epoch: 2
Group: Networking/Daemons
License: distributable
Source0: ftp://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
+# Source0-md5: 723c2b7f67016e0c19b0e1aa08dad246
Source1: %{name}.aliases
Source2: %{name}.cron
Source3: %{name}.init
Source5: %{name}.sysconfig
Source6: ftp://ftp.aet.tu-cottbus.de/pub/pfixtls/pfixtls-%{tls_ver}.tar.gz
+# Source6-md5: 6823c6645d64c80b63597db8b4a29d16
Source7: %{name}.sasl
+Source8: ftp://ftp.corpit.ru/pub/postfix/%{name}-dict_cdb-1.1.11-20021104.tar.gz
+# Source8-md5: 5731b5081725f4688dc6fae119d617e4
Patch0: %{name}-config.patch
-Patch1: %{name}-pl.patch
-Patch2: %{name}-conf_msg.patch
-Patch3: %{name}-ipv6.patch
-Patch4: %{name}-dynamicmaps.patch
-Patch5: %{name}-pgsql.patch
+Patch1: %{name}-conf_msg.patch
+Patch2: %{name}-dynamicmaps.patch
+Patch3: %{name}-pgsql.patch
+Patch4: %{name}-master.cf_cyrus.patch
+Patch5: %{name}-ipv6.patch
+Patch6: %{name}-pl.patch
+Patch7: %{name}-cdb_man.patch
+Patch8: %{name}-ns-mx-acl.patch
URL: http://www.postfix.org/
BuildRequires: awk
%{!?_without_sasl:BuildRequires: cyrus-sasl-devel}
-BuildRequires: db3-devel
+BuildRequires: db-devel
BuildRequires: grep
-%{!?_without_ipv6:BuildRequires: libinet6 >= 0.20010420-3}
-BuildRequires: mysql-devel
-BuildRequires: openldap-devel >= 2.0.0
-%{!?_without_ssl:BuildRequires: openssl-devel >= 0.9.6a}
+%{!?_without_ipv6:BuildRequires: libinet6 >= 0.20030228-1}
+%{!?_without_mysql:BuildRequires: mysql-devel}
+%{!?_without_ldap:BuildRequires: openldap-devel >= 2.0.0}
+%{!?_without_ssl:BuildRequires: openssl-devel >= 0.9.7b}
BuildRequires: pcre-devel
-BuildRequires: postgresql-devel
+%{!?_without_pgsql:BuildRequires: postgresql-devel}
+%{?_with_cdb:BuildRequires: tinycdb-devel}
PreReq: rc-scripts
PreReq: sed
Requires(pre): /usr/sbin/useradd
Requires(pre): /usr/bin/getgid
Requires(pre): /bin/id
Requires(post): /bin/hostname
-Requires(post,postun):/sbin/ldconfig
-Requires(post,preun):/sbin/chkconfig
+Requires(post,postun): /sbin/ldconfig
+Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/userdel
Requires(postun): /usr/sbin/groupdel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Obsoletes: zmailer
Requires: diffutils
Requires: findutils
+%{?_with_cdb:Requires:tinycdb}
%description
Postfix is attempt to provide an alternative to the widely-used
Sendmail program. Postfix attempts to be fast, easy to administer, and
hopefully secure, while at the same time being sendmail compatible
-enough to not upset your users. This version has IPv6 support.
+enough to not upset your users. %{!?_without_ipv6:This version has IPv6 support.}
+
+%description -l pt_BR
+O Postfix é uma alternativa para o mundialmente utilizado sendmail. Se
+você deseja um servidor SMTP *rápido*, instale este pacote.
+
+%description -l es
+Postfix es una alternativa para el mundialmente utilizado sendmail. Si
+desea tener un servidor SMTP *rápido*, debe instalar este paquete.
%description -l fr
Postfix (voir http://www.postfix.org/) se veut une alternative à
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æ Twoich u¿ytkowników. %{!?_without_ipv6:Ta wersja wspiera IPv6.}
+
+%description -l pt_BR
+O Postfix é uma alternativa para o mundialmente utilizado sendmail. Se
+você deseja um servidor SMTP *rápido*, instale este pacote.
%description -l sk
Postfix (pozri http://www.postfix.org/) má za cieµ by» alternatívou k
Summary: Postfix loadable modules development package
Summary(pl): Pakiet dla programistów ³adowanych modu³ów do postfiksa
Group: Development/Libraries
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description devel
Header files to build additional map types for Postfix.
Summary: LDAP map support for Postfix
Summary(pl): Obs³uga map LDAP dla Postfiksa
Group: Networking/Daemons
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
Requires: openldap >= 2.0.0
%description dict-ldap
Summary: MySQL map support for Postfix
Summary(pl): Obs³uga map MySQL dla Postfiksa
Group: Networking/Daemons
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description dict-mysql
This package provides support for MySQL maps in Postfix.
Summary: PCRE map support for Postfix
Summary(pl): Obs³uga map PCRE dla Postfiksa
Group: Networking/Daemons
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description dict-pcre
This package provides support for PCRE maps in Postfix.
Summary: PostgreSQL map support for Postfix
Summary(pl): Obs³uga map PostgreSQL dla Postfiksa
Group: Networking/Daemons
-Requires: %{name} = %{version}
+Requires: %{name} = %{epoch}:%{version}
%description dict-pgsql
This package provides support for PostgreSQL maps in Postfix.
Ten pakiet dodaje obs³ugê map PostgreSQL do Postfiksa.
%prep
-%setup -q -a6
+%setup -q -a6 %{?_with_cdb:-a8}
+echo Postfix TLS patch:
+patch -p1 -s <pfixtls-%{tls_ver}/pfixtls.diff
%patch0 -p1
%patch1 -p1
-patch -p1 -s <pfixtls-%{tls_ver}/pfixtls.diff
%patch2 -p1
-%{!?_without_ipv6:%patch3 -p1 }
+%patch3 -p1
%patch4 -p1
-%patch5 -p1
+%{!?_without_ipv6:%patch5 -p1}
+%{?_with_polish:%patch6 -p1}
+%{?_with_cdb:%patch7 -p1}
+%patch8 -p1
+%{?_with_cdb:sh dict_cdb.sh}
%build
%{__make} -f Makefile.init makefiles
%{__make} tidy
%{__make} DEBUG="" OPT="%{rpmcflags}" \
- CCARGS="-DHAS_LDAP -DHAS_PCRE %{!?_without_sasl:-DUSE_SASL_AUTH} -DHAS_MYSQL -DHAS_PGSQL -I/usr/include/mysql -I/usr/include/postgresql %{!?_without_ssl:-DHAS_SSL -I/usr/include/openssl} -DMAX_DYNAMIC_MAPS" \
- AUXLIBS="-ldb -lresolv %{!?_without_sasl:-lsasl} %{!?_without_ssl:-lssl -lcrypto}"
+ %{?_without_ldap:LDAPSO=""} \
+ %{?_without_mysql:MYSQLSO=""} \
+ %{?_without_pgsql:PGSQLSO=""} \
+ CCARGS="%{!?_without_ldap:-DHAS_LDAP} -DHAS_PCRE %{!?_without_sasl:-DUSE_SASL_AUTH -I/usr/include/sasl} %{!?_without_mysql:-DHAS_MYSQL -I/usr/include/mysql} %{!?_without_pgsql:-DHAS_PGSQL -I/usr/include/postgresql} %{!?_without_ssl:-DHAS_SSL -I/usr/include/openssl} -DMAX_DYNAMIC_MAPS %{?_with_cdb:-DHAS_CDB -I/usr/include/cdb.h}" \
+ AUXLIBS="-ldb -lresolv %{!?_without_sasl:-lsasl} %{!?_without_ssl:-lssl -lcrypto} %{?_with_cdb:-L/usr/lib/libcdb.a -lcdb}"
%install
rm -rf $RPM_BUILD_ROOT
(cd man; tar cf - .) | (cd $RPM_BUILD_ROOT%{_mandir}; tar xf -)
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 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/postfix
+install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/postfix
+install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/postfix
install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
install auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail
-ln -sf ../sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
-ln -sf ../sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/newaliases
-ln -sf ../sbin/sendmail $RPM_BUILD_ROOT%{_libdir}/sendmail
+ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
+ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/newaliases
+ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_libdir}/sendmail
touch $RPM_BUILD_ROOT%{_sysconfdir}/mail/\
{aliases,access,canonical,relocated,transport,virtual}{,.db}
-gzip -9nf *README COMPATIBILITY HISTORY LICENSE RELEASE_NOTES \
- README_FILES/*README
-
> $RPM_BUILD_ROOT/var/spool/postfix/.nofinger
%clean
%pre
if [ -n "`/usr/bin/getgid postfix`" ]; then
if [ "`getgid postfix`" != "62" ]; then
- echo "Warning: group postfix haven't gid=62. Correct this before installing postfix" 1>&2
+ echo "Error: group postfix doesn't have gid=62. Correct this before installing postfix." 1>&2
exit 1
fi
else
fi
if [ -n "`/usr/bin/getgid maildrop`" ]; then
if [ "`/usr/bin/getgid maildrop`" != "63" ]; then
- echo "Warning: group maildrop haven't gid=63. Correct this before installing postfix" 1>&2
+ echo "Error: group maildrop doesn't have gid=63. Correct this before installing postfix." 1>&2
exit 1
fi
else
fi
if [ -n "`/bin/id -u postfix 2>/dev/null`" ]; then
if [ "`/bin/id -u postfix`" != "62" ]; then
- echo "Warning: user postfix haven't uid=62. Correct this before installing postfix" 1>&2
+ echo "Error: user postfix doesn't have uid=62. Correct this before installing postfix." 1>&2
exit 1
fi
else
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
%files
%defattr(644,root,root,755)
-%doc html *.gz README_FILES/*.gz
+%doc html *README COMPATIBILITY HISTORY LICENSE RELEASE_NOTES
+%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
%attr(755,root,root) %config(noreplace) %verify(not size mtime md5) %{_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
-%{!?_without_sasl:%config(noreplace) %verify(not size mtime md5) /etc/sasl/smtpd.conf}
+%attr(740,root,root) %{_sysconfdir}/cron.daily/postfix
+%attr(754,root,root) %{_sysconfdir}/rc.d/init.d/postfix
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/sysconfig/postfix
+%{!?_without_sasl:%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/sasl/smtpd.conf}
%attr(755,root,root) %{_libdir}/libpostfix-*.so.*
%attr(755,root,root) %{_bindir}/*
%attr(755,root,root) %{_sbindir}/s*
%attr(755,root,root) %{_libdir}/libpostfix-*.so
%{_includedir}/postfix
+%if 0%{!?_without_ldap:1}
%files dict-ldap
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/postfix/dict_ldap.so
+%endif
+%if 0%{!?_without_mysql:1}
%files dict-mysql
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/postfix/dict_mysql.so
+%endif
%files dict-pcre
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/postfix/dict_pcre.so
+%if 0%{!?_without_pgsql:1}
%files dict-pgsql
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/postfix/dict_pgsql.so
+%endif