+#
+# TODO:
+# - make sid-milter support:
+# http://sourceforge.net/projects/sid-milter/
+# http://www.sendmail.net/
#
# Conditional build:
-# _without_ldap without LDAP support
-# _without_tls without TLS (SSL) support
-
+%bcond_without ldap # without LDAP support
+%bcond_without tls # without TLS (SSL) support
+%bcond_with db3 # use db3 instead of db package
+%bcond_with pgsql # with PostgreSQL support (bluelabs)
+#
Summary: A widely used Mail Transport Agent (MTA)
Summary(de): sendmail-Mail-Übertragungsagent
+Summary(es): Sendmail - agente de transporte de mail
Summary(fr): Agent de transport de courrier sendmail
+Summary(ko): SMTP_AUTH¿Í TLS¸¦ Áö¿øÇÏ´Â Mail Àü¼Û ÇÁ·Î±×·¥(MTA)
Summary(pl): Sendmail - serwer poczty elektronicznej
+Summary(pt_BR): Sendmail - agente de transporte de mail
Summary(ru): ðÏÞÔÏ×ÙÊ ÔÒÁÎÓÐÏÒÔÎÙÊ ÁÇÅÎÔ sendmail
Summary(tr): Elektronik posta hizmetleri sunucusu
Summary(uk): ðÏÛÔÏ×ÉÊ ÔÒÁÎÓÐÏÒÔÎÉÊ ÁÇÅÎÔ sendmail
Name: sendmail
-Version: 8.12.3
-Release: 4
+Version: 8.13.1
+Release: 2
License: BSD
Group: Networking/Daemons
Source0: ftp://ftp.sendmail.org/pub/sendmail/%{name}.%{version}.tar.gz
+# Source0-md5: 5407db289086261d7e7a09920d2ea14e
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.aliases
# From http://doc.phpauction.org/sendmail/examples/
Source4: %{name}-examples.tar.bz2
+# Source4-md5: d00d817cd456a947a7fc6c04072a7d68
Source5: %{name}-etc-mail-Makefile
Source6: %{name}.mc
Source7: %{name}-config.m4
Source11: %{name}.virtusertable
Source12: %{name}.domaintable
Source13: %{name}-smtp.pamd
+Source14: %{name}.monitrc
Patch0: %{name}-makemapman.patch
Patch1: %{name}-smrsh-paths.patch
Patch2: %{name}-rmail.patch
Patch4: %{name}-m4path.patch
Patch5: %{name}-redirect.patch
Patch6: %{name}-hprescan-dos.patch
+Patch7: http://blue-labs.org/clue/bluelabs.patch-8.12.3
BuildRequires: cyrus-sasl-devel
-BuildRequires: db3-devel
-%{!?_without_ldap:BuildRequires: openldap-devel}
-%{!?_without_tls:BuildRequires: openssl-devel}
-Requires: m4
-Requires: procmail
-PreReq: /sbin/chkconfig
+%{?with_db3:BuildRequires: db3-devel}
+%{!?with_db3:BuildRequires: db-devel >= 4.1.25}
+BuildRequires: man
+%{?with_ldap:BuildRequires: openldap-devel}
+%{?with_tls:BuildRequires: openssl-devel >= 0.9.7d}
+%{?with_pgsql:BuildRequires: postgresql-devel}
+BuildRequires: rpmbuild(macros) >= 1.159
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(post,preun):/sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires(postun): /usr/sbin/userdel
+%{!?with_db3:Requires: db >= 4.1.25}
+Requires: m4
+Requires: procmail
+Requires: pam >= 0.77.3
+Provides: group(smmsp)
Provides: smtpdaemon
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-Obsoletes: smtpdaemon
+Provides: user(smmsp)
+Obsoletes: courier
Obsoletes: exim
Obsoletes: masqmail
+Obsoletes: nullmailer
Obsoletes: omta
Obsoletes: postfix
Obsoletes: qmail
Obsoletes: sendmail-cf
Obsoletes: sendmail-doc
Obsoletes: smail
+Obsoletes: smtpdaemon
+Obsoletes: ssmtp
Obsoletes: zmailer
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sysconfdir /etc/mail
Netzwerk-Gateways und flexible Konfiguration. Wenn Sie E-Mails über
das Internet senden und empfangen möchten, brauchen Sie sendmail.
+%description -l es
+sendmail es un agente de transporte de correo electrónico, que mueve
+mensajes entre máquinas. Implementa facilidades de internetwork y
+rutado, caracterizando cambio de nombres (aliases) y envío a nuevas
+direcciones ( forwarding ), rutado automático para gateways de la red
+y configuración flexible. Necesitarás del sendmail si deseas enviar y
+recibir mensajes a través de la Internet.
+
%description -l fr
Sendmail est un agent de transport de courrier, qui est le programme
transférent le courrier d'une machine à l'autre. Sendmail implémente
l'\"aliasing\" et le \"forwarding\", un routage automatique sur les
passerelles du réseau, et une configuration flexible.
+%description -l ko
+SendamilÀº ¸Å¿ì ³Î¸® »ç¿ëµÇ´Â Mail Àü¼Û ÇÁ·Î±×·¥ÀÌ´Ù(MTA). Mail Àü¼Û
+ÇÁ·Î±×·¥µé(MTA)Àº ¾î¶°ÇÑ machine¿¡¼ ´Ù¸¥ machineÀ¸·Î ¸ÞÀÏÀ» º¸³»¸ç
+SendmailÀº e-mailÀ» ÀбâÀ§ÇØ »ç¿ëÇÏ´Â client programÀº ¾Æ´Ï´Ù.
+SendamilÀº ¿øÇÏ´Â °÷À¸·Î InternetÀ̳ª Network¸¦ ÅëÇØ e-mailÀ» º¸³»´Â
+¿ªÇÒÀ» ÇÏ´Â backgrond¿¡¼ ÀÛ¾÷À» ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
+
%description -l pl
Sendmail jest programem umo¿liwiaj±cym wymianê poczty elektronicznej
miêdzy komputerami w sieci (MTA). Zajmuje siê przekazywaniem poczty
mo¿liwo¶ciom konfiguracyjnym jest w stanie dostarczaæ przesy³ki za
po¶rednictwem protoko³ów: SMTP, ESMTP, UUCP, X.400 i innych.
+%description -l pt_BR
+O sendmail é um agente de transporte de correio eletrônico, que move
+mensagens entre máquinas. Ele implementa facilidades de internetwork e
+roteamento, caracterizando troca de nomes (aliases) e remessa a novos
+endereços ( forwarding ), roteamento automático para gateways da rede
+e configuração flexível.
+
%description -l ru
Sendmail - ÜÔÏ Mail Transport Agent, ÐÒÏÇÒÁÍÍÁ ÐÅÒÅÓÙÌÁÀÝÁÑ ÐÏÞÔÕ Ó
ÍÁÛÉÎÙ ÎÁ ÍÁÛÉÎÕ. Sendmail ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÓÔÁÎÄÁÒÔÎÙÅ ÓÒÅÄÓÔ×Á
ÍÁÒÛÒÕÔÉÚÁæ§ ÐÏÛÔÉ, aliasing, forwarding, Á×ÔÏÍÁÔÉÞÎÕ ÍÁÒÛÒÕÔÉÚÁæÀ
ÄÌÑ ÍÅÒÅÖÅ×ÉÈ ÛÌÀÚ¦× ÔÁ ÇÎÕÞËÉÊ ÍÅÈÁΦÚÍ ÍÁÒÛÒÕÔÉÚÁæ§.
+%package devel
+Summary: Header files and static libmilter library
+Summary(pl): Pliki nag³ówkowe i statyczna biblioteka libmilter
+Group: Development/Libraries
+
+%description devel
+Header files and static libmilter library.
+
+%description devel -l pl
+Pliki nag³ówkowe i statyczna biblioteka libmilter.
+
%prep
%setup -q
%patch0 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%{?with_pgsql:%patch7 -p1}
sed -e 's|@@PATH@@|\.\.|' < %{SOURCE6} > cf/cf/pld.mc
install %{SOURCE7} config.m4
+# Ac-specific hack - ac-i386 builder has not fully operational shm
+%ifarch i386
+%{__perl} -pi -e 's/^(smtest.*t-shm)/dnl $1/' libsm/Makefile.m4
+%endif
+
%build
echo "define(\`confCC', \`%{__cc}')" >> config.m4
echo "define(\`confOPTIMIZE', \`%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DNETINET6')" >> config.m4
-%if %{?debug:0}%{!?debug:1}
+echo "APPENDDEF(\`confINCDIRS', \`-I/usr/include/sasl')" >> config.m4
+echo "define(\`confLIBSEARCHPATH', \`/%{_lib} /usr/%{_lib}')" >> config.m4
+echo "define(\`confLIBSEARCH', \`db resolv')" >> config.m4
+%if 0%{!?debug:1}
echo "define(\`confLDOPTS', \`-s')" >> config.m4
%endif
-%if %{?_without_ldap:0}%{!?_without_ldap:1}
+%if %{with ldap}
echo "APPENDDEF(\`confMAPDEF', \`-DLDAPMAP')" >> config.m4
echo "APPENDDEF(\`confLIBS', \`-lldap -llber')" >> config.m4
%endif
-%if %{?_without_tls:0}%{!?_without_tls:1}
+%if %{with pgsql}
+echo "APPENDDEF(\`confENVDEF', \`-DSASL')" >> config.m4
+echo "APPENDDEF(\`confMAPDEF', \`-DPGSQLMAP')" >> config.m4
+echo "APPENDDEF(\`confLIBS', \`-lpq -lresolv')" >> config.m4
+echo "APPENDDEF(\`confLIBS', \`-lsasl -lcrypto')" >> config.m4
+%endif
+%if %{with tls}
echo "APPENDDEF(\`confENVDEF', \`-DSTARTTLS')" >> config.m4
+echo "APPENDDEF(\`confENVDEF', \`-D_FFR_DEAL_WITH_ERROR_SSL')" >> config.m4
echo "APPENDDEF(\`confLIBS', \`-lssl -lcrypto')" >> config.m4
+echo "APPENDDEF(\`confENVDEF', \`-D_FFR_SMTP_SSL')" >> config.m4
%endif
+echo "APPENDDEF(\`confENVDEF', \`-DMILTER')" >> config.m4
+
cd sendmail && sh Build -f ../config.m4
cd ../mailstats && sh Build -f ../config.m4
cd ../rmail && sh Build -f ../config.m4
cd ../makemap && sh Build -f ../config.m4
cd ../praliases && sh Build -f ../config.m4
cd ../smrsh && sh Build -f ../config.m4
+cd ../libmilter && sh Build -f ../config.m4
cd ../cf/cf
m4 pld.mc > pld.cf
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig,sasl,smrsh}} \
- $RPM_BUILD_ROOT%{_bindir} $RPM_BUILD_ROOT%{_sbindir} $RPM_BUILD_ROOT%{_libdir} \
- $RPM_BUILD_ROOT%{_mandir}/man{1,5,8} \
- $RPM_BUILD_ROOT/var/log $RPM_BUILD_ROOT/var/spool/mqueue \
- $RPM_BUILD_ROOT%{_libdir}/sendmail-cf \
- $RPM_BUILD_ROOT/etc/pam.d \
+install -d $RPM_BUILD_ROOT%{_mandir}/man{1,5,8} \
+ $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,monit,sysconfig,sasl,smrsh} \
+ $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/sendmail-cf} \
+ $RPM_BUILD_ROOT/var/{log,spool/mqueue} \
+ $RPM_BUILD_ROOT{%{_sysconfdir},%{_includedir}}
OBJDIR=obj.$(uname -s).$(uname -r).$(arch)
SMINSTOPT="DESTDIR=$RPM_BUILD_ROOT SBINOWN=$IDNU SBINGRP=$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
-%{__make} $SMINSTOPT force-install -C $OBJDIR/rmail
-%{__make} $SMINSTOPT install -C $OBJDIR/makemap
-ln -sf ../sbin/makemap $RPM_BUILD_ROOT%{_bindir}/makemap
-%{__make} $SMINSTOPT install -C $OBJDIR/smrsh
+ BINOWN=$IDNU BINGRP=$IDNG LIBOWN=$IDNU LIBGRP=$IDNG INCOWN=$IDNU INCGRP=$IDNG"
+
+%{__make} -C $OBJDIR/sendmail install \
+ $SMINSTOPT
+%{__make} -C $OBJDIR/mailstats install \
+ $SMINSTOPT
+%{__make} -C $OBJDIR/praliases install \
+ $SMINSTOPT
+%{__make} -C $OBJDIR/rmail force-install \
+ $SMINSTOPT
+%{__make} -C $OBJDIR/makemap install \
+ $SMINSTOPT
+%{__make} -C $OBJDIR/smrsh install \
+ $SMINSTOPT
+%{__make} -C $OBJDIR/libmilter install \
+ $SMINSTOPT \
+ LIBDIR=%{_libdir}
+
+ln -sf %{_sbindir}/makemap $RPM_BUILD_ROOT%{_bindir}/makemap
# install the cf files
cd cf
sed -e 's|@@PATH@@|%{_libdir}/sendmail-cf|' < %{SOURCE6} \
> $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.mc
+%if %{with pgsql}
+install bluelabs.mc $RPM_BUILD_ROOT%{_sysconfdir}/bluelabs.mc
+%endif
+
# 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
-ln -sf ../sbin/sendmail $RPM_BUILD_ROOT%{_libdir}/sendmail
+ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_libdir}/sendmail
# dangling symlinks
for f in hoststat mailq newaliases purgestat ; do
- ln -sf ../sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
+ ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
done
-
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%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
$RPM_BUILD_ROOT%{_sysconfdir}/${map}.db < $RPM_BUILD_ROOT%{_sysconfdir}/${map}
done
install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/aliases
-$RPM_BUILD_ROOT%{_bindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
+$RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
$RPM_BUILD_ROOT%{_sysconfdir}/aliases.db < %{SOURCE3}
install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/sendmail
install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/mailertable
install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/virtusertable
install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/domaintable
+install %{SOURCE14} $RPM_BUILD_ROOT/etc/monit/
mv -f smrsh/README README.smrsh
mv -f cf/README README.cf
mv -f doc/op/op.me .
-bzip2 -dc %{SOURCE4} | tar xf -
-gzip -9nf FAQ KNOWNBUGS README* op.me RELEASE_NOTES
+bzip2 -dc %{SOURCE4} | tar xf -
%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
+ echo "Error: group smmsp doesn't have gid=25. Correct this before installing sendmail." 1>&2
exit 1
fi
else
- /usr/sbin/groupadd -g 25 -r -f smmsp
+ /usr/sbin/groupadd -g 25 smmsp 1>&2
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
+ echo "Error: user smmsp doesn't have 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
+ /usr/sbin/useradd -u 25 -d /var/spool/clientqueue -s /bin/false \
+ -c "Sendmail Message Submission Program" -g smmsp smmsp 1>&2
fi
%post
+umask 022
#
# Convert old format to new
#
%postun
if [ "$1" = "0" ]; then
- /usr/sbin/userdel smmsp 2>/dev/null
- /usr/sbin/groupdel smmsp 2>/dev/null
+ %userremove smmsp
+ %groupremove smmsp
fi
# removal of compatibility links
%files
%defattr(644,root,root,755)
-%doc *.gz examples/
+%doc FAQ KNOWNBUGS README* op.me RELEASE_NOTES examples/
%attr(755,root,root) %{_sbindir}/mailstats
%attr(755,root,root) %{_sbindir}/praliases
%attr(755,root,root) %{_bindir}/hoststat
%attr(755,root,root) %{_sbindir}/smrsh
%{_libdir}/sendmail
-%{_mandir}/man8/rmail.8*
-%{_mandir}/man8/praliases.8*
+%{_mandir}/man1/mailq.1*
+%{_mandir}/man1/newaliases.1*
+%{_mandir}/man5/aliases.5*
%{_mandir}/man8/mailstats.8*
%{_mandir}/man8/makemap.8*
+%{_mandir}/man8/praliases.8*
+%{_mandir}/man8/rmail.8*
%{_mandir}/man8/sendmail.8*
-%{_mandir}/man5/aliases.5*
-%{_mandir}/man1/newaliases.1*
-%{_mandir}/man1/mailq.1*
+%{_mandir}/man8/smrsh.8*
%dir /etc/smrsh
%dir %{_sysconfdir}
%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
+%{?with_pgsql:%{_sysconfdir}/bluelabs.mc}
%attr(644,root,mail) %ghost %{_sysconfdir}/aliases.db
%attr(770,root,smmsp) %dir /var/spool/clientmqueue
%attr(750,root,mail) %dir /var/spool/mqueue
-%attr(755,root,root) %dir /etc/pam.d
%config %{_sysconfdir}/Makefile
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/access
%config(noreplace) %verify(not md5 size mtime) /etc/sysconfig/sendmail
%config(noreplace) %verify(not md5 size mtime) /etc/sasl/Sendmail.conf
%config(noreplace) %verify(not md5 size mtime) /etc/pam.d/smtp
+%attr(750,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/monit/*.monitrc
%dir %{_libdir}/sendmail-cf
%dir %{_libdir}/sendmail-cf/cf
%dir %{_libdir}/sendmail-cf/sh
%{_libdir}/sendmail-cf/sh/makeinfo.sh
%{_libdir}/sendmail-cf/siteconfig
+
+%files devel
+%defattr(644,root,root,755)
+%{_libdir}/libmilter.a
+%{_includedir}/libmilter