## ## postfix.spec -- OpenPKG RPM Specification ## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH ## Copyright (c) 2000-2003 The OpenPKG Project ## Copyright (c) 2000-2003 Ralf S. Engelschall ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package versions %define V_postfix 2.0.13 %define V_tls 0.8.14-2.0.12-0.9.7b %define V_pflogsumm 1.0.11 %define V_whoson 2.0.0.2 # package information Name: postfix Summary: Mail Transfer Agent (MTA) URL: http://www.postfix.org/ Vendor: Wietse Venema Packager: The OpenPKG Project Distribution: OpenPKG [BASE] Group: Mail License: IPL Version: %{V_postfix} Release: 20030702 # package options %option with_fsl yes %option with_tls no %option with_sasl no %option with_mysql no %option with_ldap no %option with_whoson no # list of sources Source0: ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-%{V_postfix}.tar.gz Source1: ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/pfixtls-%{V_tls}.tar.gz Source2: http://jimsun.linxnet.com/downloads/pflogsumm-%{V_pflogsumm}.tar.gz Source3: etc.tar Source4: fsl.postfix Source5: rc.postfix Patch0: pflogsumm.patch Patch1: postfix.patch Patch2: ftp://victor.teaser.fr/pub/lwa/postfix/postfix-%{V_whoson}-whoson.patch # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20030415, perl, pcre, db PreReq: OpenPKG, openpkg >= 20030415, perl, procmail, perl-time %if "%{with_fsl}" == "yes" BuildPreReq: fsl PreReq: fsl %endif %if "%{with_tls}" == "yes" BuildPreReq: openssl %endif %if "%{with_sasl}" == "yes" BuildPreReq: sasl PreReq: sasl %endif %if "%{with_mysql}" == "yes" BuildPreReq: MYSQL PreReq: MYSQL %endif %if "%{with_ldap}" == "yes" BuildPreReq: openldap, openssl PreReq: openldap %endif %if "%{with_whoson}" == "yes" BuildPreReq: whoson PreReq: whoson %endif AutoReq: no AutoReqProv: no Provides: MTA Conflicts: sendmail, ssmtp, exim %description Postfix is a new-generation Mail Transfer Agent (MTA) able to fully replace the Sendmail MTA. Local specifics in this OpenPKG version: o Postfix delivers locally via Procmail o Postfix logs directly to the filesystem and not via syslog(3) o Berkeley-DB lookup table support o PCRE matching support o Optional STARTTLS support (see package options below) o Optional SASL2 authentication support (see package options below) o Optional MySQL support (see package options below) o Optional OpenLDAP support (see package options below) o Optional WHOSON support (see package options below) %prep # unpack distribution files %setup0 -q %if "%{with_tls}" == "yes" %setup1 -q -T -D -a 1 %endif %setup2 -q -T -D -a 2 %setup3 -q -T -D -a 3 # apply external TLS patches %if "%{with_tls}" == "yes" %{l_patch} -p1 /dev/null 2>&1 || true strip $RPM_BUILD_ROOT%{l_prefix}/libexec/postfix/* >/dev/null 2>&1 || true # post-adjust configuration %{l_shtool} subst \ -e "s;^\\(mail_owner[^=]*=\\).*;\\1 %{l_musr};" \ $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/main.cf rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/*.orig rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/LICENSE mv $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/postfix-script \ $RPM_BUILD_ROOT%{l_prefix}/sbin/postfix-script rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/postfix-script* mv $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/post-install \ $RPM_BUILD_ROOT%{l_prefix}/sbin/postfix-install ( cd $RPM_BUILD_ROOT%{l_prefix}/etc/postfix %{l_shtool} mkdir -f -p -m 755 sample for cfg in access aliases canonical pcre_table regexp_table \ relocated sample-* transport virtual \ main.cf master.cf main.cf.default; do mv $cfg sample/ done ) # install default configuration %{l_shtool} install -c -m 644 \ -e 's;@l_prefix@;%{l_prefix};g' \ -e 's;@l_musr@;%{l_musr};g' \ -e 's;@l_mgrp@;%{l_mgrp};g' \ -e 's;@l_rusr@;%{l_rusr};g' \ -e 's;@l_rgrp@;%{l_rgrp};g' \ -e 's;@l_nusr@;%{l_nusr};g' \ -e 's;@l_ngrp@;%{l_ngrp};g' \ etc/* $RPM_BUILD_ROOT%{l_prefix}/etc/postfix/ # pre-create variable stuff ( cd $RPM_BUILD_ROOT%{l_prefix}/var/postfix %{l_shtool} mkdir -f -p -m 700 \ active bounce corrupt defer deferred \ flush incoming private saved %{l_shtool} mkdir -f -p -m 730 maildrop %{l_shtool} mkdir -f -p -m 710 public %{l_shtool} mkdir -f -p -m 755 log pid ) # install addons ( cd pflogsumm-%{V_pflogsumm} %{l_shtool} install -c -m 755 \ -e 's;/usr/bin/perl;%{l_prefix}/bin/perl;g' \ pflogsumm.pl $RPM_BUILD_ROOT%{l_prefix}/sbin/pflogsumm %{l_shtool} install -c -m 644 \ pflogsumm.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/ ) # install run-command script %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d %{l_shtool} install -c -m 755 \ -e 's;@l_prefix@;%{l_prefix};g' \ -e 's;@l_susr@;%{l_susr};g' \ -e 's;@l_musr@;%{l_musr};g' \ -e 's;@l_mgrp@;%{l_mgrp};g' \ -e 's;@l_rusr@;%{l_rusr};g' \ -e 's;@l_rgrp@;%{l_rgrp};g' \ %{SOURCE rc.postfix} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ # adjust installation to avoid file name conflicts ( cd $RPM_BUILD_ROOT%{l_prefix}/man/man8 mv master.8 postfix_master.8 ) # OSSP fake syslog library %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl %{l_shtool} install -c -m 644 \ -e 's;@l_prefix@;%{l_prefix};g' \ %{SOURCE fsl.%{name}} \ $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ # generate file list %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%not %dir %{l_prefix}/etc/fsl' \ '%config %{l_prefix}/etc/fsl/fsl.%{name}' \ '%attr(-,root,%{l_mgrp}) %{l_prefix}/etc/postfix' \ '%config %attr(-,root,%{l_mgrp}) %{l_prefix}/etc/postfix/*' \ '%attr(-,root,%{l_mgrp}) %{l_prefix}/libexec/postfix/*' \ '%attr(2755,%{l_musr},%{l_rgrp}) %{l_prefix}/sbin/{postdrop,postqueue}' \ '%dir %attr(-,root,%{l_mgrp}) %{l_prefix}/libexec/postfix' \ '%dir %attr(-,root,%{l_mgrp}) %{l_prefix}/var/postfix' \ '%dir %attr(-,%{l_musr},%{l_rgrp}) %{l_prefix}/var/postfix/{maildrop,public}' %files -f files %clean rm -rf $RPM_BUILD_ROOT %post if [ $1 -eq 1 ]; then # generate logfile with correct owner and permissions if [ ! -f $RPM_INSTALL_PREFIX/var/postfix/log/postfix.log ]; then $RPM_INSTALL_PREFIX/lib/openpkg/shtool \ install -c -m 755 -o %{l_musr} -g %{l_mgrp} \ /dev/null $RPM_INSTALL_PREFIX/var/postfix/log/postfix.log fi # generate initial configuration (cd $RPM_INSTALL_PREFIX/etc/postfix; %{l_make} all >/dev/null 2>&1 || true) elif [ $1 -gt 1 ]; then # re-generate configuration (cd $RPM_INSTALL_PREFIX/etc/postfix; %{l_make} clean all >/dev/null 2>&1 || true) # re-load daemon $RPM_INSTALL_PREFIX/etc/rc postfix reload >/dev/null 2>&1 || true fi %preun if [ $1 -eq 0 ]; then # stop daemon $RPM_INSTALL_PREFIX/etc/rc postfix stop >/dev/null 2>&1 || true # remove generated configuration files (cd $RPM_INSTALL_PREFIX/etc/postfix/; %{l_make} clean >/dev/null 2>&1 || true) # remove generated run-time files and directories rm -rf $RPM_INSTALL_PREFIX/etc/postfix/prng_exch rm -rf $RPM_INSTALL_PREFIX/var/postfix/pid/* rm -rf $RPM_INSTALL_PREFIX/var/postfix/private/* rm -rf $RPM_INSTALL_PREFIX/var/postfix/public/* find $RPM_INSTALL_PREFIX/var/postfix/active/ -type d -print |\ xargs rmdir >/dev/null 2>&1 || true find $RPM_INSTALL_PREFIX/var/postfix/incoming/ -type d -print |\ xargs rmdir >/dev/null 2>&1 || true fi