#
# Conditional build:
-# _without_ldap - without LDAP
-#
+# _without_ldap without LDAP support
+# _without_tls without TLS (SSL) support
+# _with_auth with AUTH support
+
Summary: A widely used Mail Transport Agent (MTA)
Summary(de): sendmail-Mail-Übertragungsagent
Summary(fr): Agent de transport de courrier sendmail
Summary(pl): Sendmail - serwer poczty elektronicznej
Summary(tr): Elektronik posta hizmetleri sunucusu
Name: sendmail
-Version: 8.11.6
-Release: 3
+Version: 8.12.2
+Release: 2
License: BSD
Group: Networking/Daemons
-Group(de): Netzwerkwesen/Server
-Group(pl): Sieciowe/Serwery
-Provides: smtpdaemon
Source0: ftp://ftp.sendmail.org/pub/sendmail/%{name}.%{version}.tar.gz
Source1: %{name}.init
Source2: http://www.informatik.uni-kiel.de/~ca/email/rules/check.tar
Source6: %{name}.mc
Source7: %{name}-config.m4
Source8: %{name}.sasl
-Patch0: %{name}-redhat.patch
-Patch1: %{name}-makemapman.patch
-Patch2: %{name}-smrsh-paths.patch
-Patch3: %{name}-rmail.patch
-Patch4: %{name}-manpath.patch
-Patch5: %{name}-m4path.patch
-Patch6: %{name}-dtelnet.patch
-Patch7: %{name}-pld.mc.patch
-Patch8: %{name}-redirect.patch
-Patch9: %{name}-hprescan-dos.patch
-Patch10: %{name}-aliasesDoS.patch
+Patch0: %{name}-makemapman.patch
+Patch1: %{name}-smrsh-paths.patch
+Patch2: %{name}-rmail.patch
+Patch3: %{name}-os-paths.patch
+Patch4: %{name}-m4path.patch
+Patch5: %{name}-dtelnet.patch
+Patch6: %{name}-pld.mc.patch
+Patch7: %{name}-redirect.patch
+Patch8: %{name}-hprescan-dos.patch
+Patch9: %{name}-auth.patch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
BuildRequires: cyrus-sasl-devel
BuildRequires: db3-devel
%{!?_without_ldap:BuildRequires: openldap-devel}
-BuildRequires: pam-devel
+%{!?_without_tls:BuildRequires: openssl-devel}
Requires: m4
-Prereq: /sbin/chkconfig
+Requires: procmail
+%{?_with_auth:Requires: cyrus-sasl-{plain,login}}
+PreReq: /sbin/chkconfig
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires(post): awk
+Requires(post): textutils
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
Provides: smtpdaemon
Obsoletes: smtpdaemon
Obsoletes: exim
Obsoletes: masqmail
+Obsoletes: omta
Obsoletes: postfix
Obsoletes: qmail
Obsoletes: sendmail-cf
Obsoletes: sendmail-doc
Obsoletes: smail
Obsoletes: zmailer
-Obsoletes: omta
%define _sysconfdir /etc/mail
%description -l pl
Sendmail jest programem umo¿liwiaj±cym wymianê poczty elektronicznej
-miêdzy komputerami w sieci internet. Zajmuje siê przekazywaniem poczty
+miêdzy komputerami w sieci (MTA). Zajmuje siê przekazywaniem poczty
elektronicznej miêdzy bramkami pocztowymi i dostarczaniem przesy³ek na
konta docelowe. Bardzo dobrze obs³uguje aliasy pocztowe a jego
dodatkowym atutem jest prosta konfiguracja. Dziêki rozbudowanym
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p0
+%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
-%patch9 -p1
-%patch10 -p1
+%if %{?_with_auth:1}%{!?_with_auth:0}
+patch -p0 %{SOURCE6} %{PATCH9}
+%endif
# seems to be obsoleted...
#tar xf %{SOURCE2} -C cf
install %{SOURCE7} config.m4
%build
-
%if %{?debug:0}%{!?debug:1}
-echo "define(\`confLDOPTS\', \`-s\')" >> config.m4
+echo "define(\`confLDOPTS', \`-s')" >> config.m4
%endif
%if %{?_without_ldap:0}%{!?_without_ldap:1}
-echo "APPENDDEF(\`confMAPDEF\', \`-DLDAPMAP\')" >> config.m4
-echo "APPENDDEF(\`confLIBS\', \`-lldap -llber\')" >> config.m4
+echo "APPENDDEF(\`confMAPDEF', \`-DLDAPMAP')" >> config.m4
+echo "APPENDDEF(\`confLIBS', \`-lldap -llber')" >> config.m4
+%endif
+%if %{?_without_tls:0}%{!?_without_tls:1}
+echo "APPENDDEF(\`confENVDEF', \`-DSTARTTLS')" >> config.m4
+echo "APPENDDEF(\`confLIBS', \`-lssl -lcrypto')" >> config.m4
%endif
-RPM_OPT_FLAGS="%{rpmcflags} \
- -DUSE_VENDOR_CF_PATH=1 -DNETINET6 -D_FFR_TESTMODE_DROP_PRIVS"
+RPM_OPT_FLAGS="%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DNETINET6"
export RPM_OPT_FLAGS
cd sendmail && sh Build -f ../config.m4
IDNU=`id -nu`
IDNG=`id -ng`
SMINSTOPT="DESTDIR=$RPM_BUILD_ROOT SBINOWN=$IDNU SBINGRP=$IDNG \
- UBINOWN=$IDNU UBINGRP=$IDNG MANOWN=$IDNU MANGRP=$IDNG"
+ UBINOWN=$IDNU UBINGRP=$IDNG MANOWN=$IDNU MANGRP=$IDNG \
+ CFOWN=$IDNU CFGRP=$IDNG MSPQOWN=$IDNU GBINGRP=$IDNG GBINOWN=$IDNU \
+ BINOWN=$IDNU BINGRP=$IDNG"
%{__make} $SMINSTOPT install -C $OBJDIR/sendmail
%{__make} $SMINSTOPT install -C $OBJDIR/mailstats
%{__make} $SMINSTOPT install -C $OBJDIR/praliases
ln -sf ../sbin/makemap $RPM_BUILD_ROOT%{_bindir}/makemap
%{__make} $SMINSTOPT install -C $OBJDIR/smrsh
-# install docs by hand
-install -d $RPM_BUILD_ROOT%{_docdir}/sendmail
-cp -ar FAQ LICENSE KNOWNBUGS README RELEASE_NOTES doc $RPM_BUILD_ROOT%{_docdir}/sendmail
-cp smrsh/README $RPM_BUILD_ROOT%{_docdir}/sendmail/README.smrsh
-cp cf/README $RPM_BUILD_ROOT%{_docdir}/sendmail/README.cf
-
# install the cf files
cd cf
rm -f cf/{Build,Makefile} feature/*~
cp -ar * $RPM_BUILD_ROOT%{_libdir}/sendmail-cf
cd -
+# sendmail.{cf,mc}
install cf/cf/redhat.cf $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf
sed -e 's|@@PATH@@|%{_libdir}/sendmail-cf|' < %{SOURCE6} \
> $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.mc
+
+# submit.mc (submit.cf is installed automatically)
+install cf/cf/submit.mc $RPM_BUILD_ROOT%{_sysconfdir}
+
echo "# local-host-names - include all aliases for your machine here." \
> $RPM_BUILD_ROOT%{_sysconfdir}/local-host-names
# dangling symlinks
for f in hoststat mailq newaliases purgestat ; do
- ln -sf ../sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
+ ln -sf ../sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
done
cat <<EOF > $RPM_BUILD_ROOT%{_sysconfdir}/access
for map in virtusertable access domaintable mailertable ; do
touch $RPM_BUILD_ROOT%{_sysconfdir}/${map}
- $RPM_BUILD_ROOT%{_bindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
+ $RPM_BUILD_ROOT%{_bindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
$RPM_BUILD_ROOT%{_sysconfdir}/${map}.db < $RPM_BUILD_ROOT%{_sysconfdir}/${map}
done
install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/Makefile
install %{SOURCE8} $RPM_BUILD_ROOT/etc/sasl/Sendmail.conf
-mv -f $RPM_BUILD_ROOT/usr/share/doc/sendmail/{FAQ,KNOWNBUGS,LICENSE,README,README.cf,doc/op/op.me} .
+mv -f smrsh/README README.smrsh
+mv -f cf/README README.cf
+mv -f doc/op/op.me .
-gzip -9nf FAQ KNOWNBUGS README README.cf op.me RELEASE_NOTES
+gzip -9nf FAQ KNOWNBUGS README* op.me RELEASE_NOTES
%clean
rm -rf $RPM_BUILD_ROOT
+%pre
+if [ -n "`/usr/bin/getgid smmsp`" ]; then
+ if [ "`/usr/bin/getgid smmsp`" != "25" ]; then
+ echo "Warning: group smmsp haven't gid=25. Correct this before installing sendmail." 1>&2
+ exit 1
+ fi
+else
+ /usr/sbin/groupadd -g 25 -r -f smmsp
+fi
+if [ -n "`/bin/id -u smmsp 2>/dev/null`" ]; then
+ if [ "`/bin/id -u smmsp`" != "25" ]; then
+ echo "Warning: user smmsp haven't uid=25. Correct this before installing sendmail." 1>&2
+ exit 1
+ fi
+else
+ /usr/sbin/useradd -u 25 -r -d /var/spool/clientqueue -s /bin/false -c "Sendmail Message Submission Program" -g smmsp smmsp 1>&2
+fi
+
%post
#
# Convert old format to new
cat /etc/mail/deny | \
awk 'BEGIN{ print "# Entries from obsoleted /etc/mail/deny"} \
{print $1" REJECT"}' >> /etc/mail/access
- cp /etc/mail/deny /etc/mail/deny.rpmorig
+ mv -f /etc/mail/deny /etc/mail/deny.rpmorig
fi
for oldfile in relay_allow ip_allow name_allow ; do
if [ -f /etc/mail/$oldfile ] ; then
cat /etc/mail/$oldfile | \
awk "BEGIN { print \"# Entries from obsoleted /etc/mail/$oldfile\" ;} \
{ print $1\" RELAY\" }" >> /etc/mail/access
- cp /etc/mail/$oldfile /etc/mail/$oldfile.rpmorig
+ mv -f /etc/mail/$oldfile /etc/mail/$oldfile.rpmorig
fi
done
# Oops, these files moved
#
if [ -f /etc/sendmail.cw ] ; then
- cat /etc/sendmail.cw | \
+ cat /etc/sendmail.cw | \
awk 'BEGIN { print "# Entries from obsoleted /etc/sendmail.cw" ;} \
{ print $1 }' >> /etc/mail/local-host-names
- cp /etc/sendmail.cw /etc/sendmail.cw.rpmorig
+ mv -f /etc/sendmail.cw /etc/sendmail.cw.rpmorig
fi
#
# Rebuild maps (next reboot will rebuild also)
/sbin/chkconfig --del sendmail
fi
+%postun
+if [ "$1" = "0" ]; then
+ /usr/sbin/userdel smmsp 2>/dev/null
+ /usr/sbin/groupdel smmsp 2>/dev/null
+fi
+
# removal of compatibility links
%triggerpostun -- sendmail < 8.10.1
/sbin/chkconfig --add sendmail
%attr(755,root,root) %{_bindir}/rmail
%attr(755,root,root) %{_bindir}/makemap
%attr(755,root,root) %{_sbindir}/makemap
-%attr(6755,root,mail) %{_sbindir}/sendmail
+%attr(2755,root,smmsp) %{_sbindir}/sendmail
%attr(755,root,root) %{_bindir}/newaliases
%attr(755,root,root) %{_bindir}/mailq
%attr(755,root,root) %{_sbindir}/smrsh
%{_mandir}/man1/newaliases.1*
%{_mandir}/man1/mailq.1*
-/var/log/statistics
-# XXX can't do noreplace here or new sendmail will not deliver.
-%config(noreplace) %{_sysconfdir}/sendmail.cf
-%config(noreplace) %{_sysconfdir}/sendmail.mc
-%config(noreplace) %{_sysconfdir}/local-host-names
-%config(noreplace) %{_sysconfdir}/aliases
-%attr(0644,root,mail) %ghost %{_sysconfdir}/aliases.db
-%attr(0770,root,mail) %dir /var/spool/mqueue
%dir /etc/smrsh
%dir %{_sysconfdir}
+/var/log/statistics
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sendmail.cf
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sendmail.mc
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/submit.cf
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/submit.mc
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/local-host-names
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/aliases
+%attr(0644,root,mail) %ghost %{_sysconfdir}/aliases.db
+%attr(0770,root,smmsp) %dir /var/spool/clientmqueue
+%attr(0750,root,mail) %dir /var/spool/mqueue
%config %{_sysconfdir}/Makefile
-%ghost %{_sysconfdir}/virtusertable.db
-%config(noreplace) %{_sysconfdir}/virtusertable
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/access
%ghost %{_sysconfdir}/access.db
-%config(noreplace) %{_sysconfdir}/access
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/domaintable
%ghost %{_sysconfdir}/domaintable.db
-%config(noreplace) %{_sysconfdir}/domaintable
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/mailertable
%ghost %{_sysconfdir}/mailertable.db
-%config(noreplace) %{_sysconfdir}/mailertable
+%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/virtusertable
+%ghost %{_sysconfdir}/virtusertable.db
%config(noreplace) %{_sysconfdir}/helpfile
%attr(754,root,root) /etc/rc.d/init.d/sendmail
-%config(noreplace) /etc/sysconfig/sendmail
-%config(noreplace) /etc/sasl/Sendmail.conf
+%config(noreplace) %verify(not md5 size mtime) /etc/sysconfig/sendmail
+%config(noreplace) %verify(not md5 size mtime) /etc/sasl/Sendmail.conf
%dir %{_libdir}/sendmail-cf
%dir %{_libdir}/sendmail-cf/cf