2 # - make sid-milter support:
3 # http://sourceforge.net/projects/sid-milter/
4 # http://www.sendmail.net/
5 # - http://blue-labs.org/clue/bluelabs.patch-8.12.3 has been updated upstream
6 # - move compilation from install to build section, fix re-entrancy of install
7 # - add tests bcond and/or disable tests tha fail on (AC-)builders
10 %bcond_without ldap # without LDAP support
11 %bcond_without tls # without TLS (SSL) support
12 %bcond_with pgsql # with PostgreSQL support (bluelabs)
14 Summary: A widely used Mail Transport Agent (MTA)
15 Summary(de.UTF-8): sendmail-Mail-Übertragungsagent
16 Summary(es.UTF-8): Sendmail - agente de transporte de mail
17 Summary(fr.UTF-8): Agent de transport de courrier sendmail
18 Summary(ko.UTF-8): SMTP_AUTH와 TLS를 지원하는 Mail 전송 프로그램(MTA)
19 Summary(pl.UTF-8): Sendmail - serwer poczty elektronicznej
20 Summary(pt_BR.UTF-8): Sendmail - agente de transporte de mail
21 Summary(ru.UTF-8): Почтовый транспортный агент sendmail
22 Summary(tr.UTF-8): Elektronik posta hizmetleri sunucusu
23 Summary(uk.UTF-8): Поштовий транспортний агент sendmail
28 Group: Networking/Daemons
29 Source0: ftp://ftp.sendmail.org/pub/sendmail/%{name}.%{version}.tar.gz
30 # Source0-md5: 5f29c94b42e0bb74d546b2ae84203a1e
32 Source2: %{name}.sysconfig
33 Source3: %{name}.aliases
34 # From http://doc.phpauction.org/sendmail/examples/
35 Source4: %{name}-examples.tar.bz2
36 # Source4-md5: d00d817cd456a947a7fc6c04072a7d68
37 Source5: %{name}-etc-mail-Makefile
39 Source7: %{name}-config.m4
41 Source9: %{name}.access
42 Source10: %{name}.mailertable
43 Source11: %{name}.virtusertable
44 Source12: %{name}.domaintable
45 Source13: %{name}-smtp.pamd
46 Source14: %{name}.monitrc
47 Patch0: %{name}-makemapman.patch
48 Patch1: %{name}-smrsh-paths.patch
49 Patch2: %{name}-rmail.patch
50 Patch3: %{name}-os-paths.patch
51 Patch4: %{name}-m4path.patch
52 Patch5: %{name}-redirect.patch
53 Patch6: %{name}-hprescan-dos.patch
54 Patch7: http://blue-labs.org/clue/bluelabs.patch-8.12.3
55 URL: http://www.sendmail.org/
56 BuildRequires: cyrus-sasl-devel
57 BuildRequires: db-devel >= 4.1.25
59 %{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
60 %{?with_tls:BuildRequires: openssl-devel >= 0.9.7d}
61 %{?with_pgsql:BuildRequires: postgresql-devel}
62 BuildRequires: rpmbuild(macros) >= 1.310
63 BuildRequires: sed >= 4.0
65 BuildRequires: sparc32
68 Requires(post): textutils
69 Requires(post,preun): /sbin/chkconfig
70 Requires(post,preun): rc-scripts >= 0.4.0.20
71 Requires(postun): /usr/sbin/groupdel
72 Requires(postun): /usr/sbin/userdel
73 Requires(pre): /bin/id
74 Requires(pre): /usr/bin/getgid
75 Requires(pre): /usr/sbin/groupadd
76 Requires(pre): /usr/sbin/useradd
77 Requires: db >= 4.1.25
79 Requires: pam >= 0.79.0
81 Provides: group(smmsp)
91 Obsoletes: sendmail-cf
92 Obsoletes: sendmail-doc
97 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
99 %define _sysconfdir /etc/mail
100 %define specflags -fPIC
103 The Sendmail program is a very widely used Mail Transport Agent (MTA).
104 MTAs send mail from one machine to another. Sendmail is not a client
105 program, which you use to read your e-mail. Sendmail is a
106 behind-the-scenes program which actually moves your e-mail over
107 networks or the Internet to where you want it to go.
109 %description -l de.UTF-8
110 Sendmail überträgt Mails zwischen Rechnern. Es implementiert eine
111 allgemeine Mail-Routing-Funktion über das Netzwerk mit Aliasing und
112 Weiterleiten von Nachrichten, automatischem Routing an
113 Netzwerk-Gateways und flexible Konfiguration. Wenn Sie E-Mails über
114 das Internet senden und empfangen möchten, brauchen Sie sendmail.
116 %description -l es.UTF-8
117 sendmail es un agente de transporte de correo electrónico, que mueve
118 mensajes entre máquinas. Implementa facilidades de internetwork y
119 rutado, caracterizando cambio de nombres (aliases) y envío a nuevas
120 direcciones ( forwarding ), rutado automático para gateways de la red
121 y configuración flexible. Necesitarás del sendmail si deseas enviar y
122 recibir mensajes a través de la Internet.
124 %description -l fr.UTF-8
125 Sendmail est un agent de transport de courrier, qui est le programme
126 transférent le courrier d'une machine à l'autre. Sendmail implémente
127 une facilité générale de routage de courrier entre les réseaux, permet
128 l'"aliasing" et le "forwarding", un routage automatique sur les
129 passerelles du réseau, et une configuration flexible.
131 %description -l ko.UTF-8
132 Sendamil은 매우 널리 사용되는 Mail 전송 프로그램이다(MTA). Mail 전송
133 프로그램들(MTA)은 어떠한 machine에서 다른 machine으로 메일을 보내며
134 Sendmail은 e-mail을 읽기위해 사용하는 client program은 아니다.
135 Sendamil은 원하는 곳으로 Internet이나 Network를 통해 e-mail을 보내는
136 역할을 하는 backgrond에서 작업을 하는 프로그램이다.
138 %description -l pl.UTF-8
139 Sendmail jest programem umożliwiającym wymianę poczty elektronicznej
140 między komputerami w sieci (MTA). Zajmuje się przekazywaniem poczty
141 elektronicznej między bramkami pocztowymi i dostarczaniem przesyłek na
142 konta docelowe. Bardzo dobrze obsługuje aliasy pocztowe a jego
143 dodatkowym atutem jest prosta konfiguracja. Dzięki rozbudowanym
144 możliwościom konfiguracyjnym jest w stanie dostarczać przesyłki za
145 pośrednictwem protokołów: SMTP, ESMTP, UUCP, X.400 i innych.
147 %description -l pt_BR.UTF-8
148 O sendmail é um agente de transporte de correio eletrônico, que move
149 mensagens entre máquinas. Ele implementa facilidades de internetwork e
150 roteamento, caracterizando troca de nomes (aliases) e remessa a novos
151 endereços ( forwarding ), roteamento automático para gateways da rede
152 e configuração flexível.
154 %description -l ru.UTF-8
155 Sendmail - это Mail Transport Agent, программа пересылающая почту с
156 машины на машину. Sendmail предоставляет стандартные средства
157 межсетевой маршрутизации почты, aliasing, forwarding, автоматическую
158 маршрутизацию для сетевых шлюзов и гибкий механизм конфигурации.
160 %description -l tr.UTF-8
161 Sendmail, bir mektubu bir makineden diğerine taşır. Pek çok davranışı
162 ayarlanabilir. Internet üzerinden mektup almak veya göndermek
163 istiyorsanız bu pakete gereksiniminiz olacaktır.
165 %description -l uk.UTF-8
166 Sendmail - це Mail Transport Agent, програма що пересилає пошту з
167 машини на машину. Sendmail надає стандартні засоби міжмережевої
168 маршрутизації пошти, aliasing, forwarding, автоматичну маршрутизацію
169 для мережевих шлюзів та гнучкий механізм маршрутизації.
171 %package -n libmilter-devel
172 Summary: Header files and static libmilter library
173 Summary(pl.UTF-8): Pliki nagłówkowe i statyczna biblioteka libmilter
174 Group: Development/Libraries
175 Provides: sendmail-devel
176 Obsoletes: sendmail-devel
178 %description -n libmilter-devel
179 Header files and static libmilter library.
181 %description -n libmilter-devel -l pl.UTF-8
182 Pliki nagłówkowe i statyczna biblioteka libmilter.
193 %{?with_pgsql:%patch7 -p1}
195 sed -e 's|@@PATH@@|\.\.|' < %{SOURCE6} > cf/cf/pld.mc
197 install %{SOURCE7} config.m4
200 # It's problem with _simultanous_ building when builders are on the same
201 # machine. These are anonymous SHM tests (AFAIR) which must fail when called
204 # send on builders requests only for some arch - it won't fail.
206 %ifarch i386 i586 athlon
207 %{__sed} -i -e 's/^\(smtest.*t-shm\)/dnl \1/' libsm/Makefile.m4
208 %{__sed} -i -e 's/^\(smtest.*t-sem\)/dnl \1/' libsm/Makefile.m4
212 echo "define(\`confCC', \`%{__cc}')" >> config.m4
213 echo "define(\`confOPTIMIZE', \`%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DNETINET6')" >> config.m4
214 echo "APPENDDEF(\`confINCDIRS', \`-I/usr/include/sasl')" >> config.m4
215 echo "define(\`confLIBSEARCHPATH', \`/%{_lib} %{_prefix}/%{_lib}')" >> config.m4
216 echo "define(\`confLIBSEARCH', \`db resolv')" >> config.m4
218 echo "define(\`confLDOPTS', \`-s')" >> config.m4
221 echo "APPENDDEF(\`confMAPDEF', \`-DLDAPMAP')" >> config.m4
222 echo "APPENDDEF(\`confLIBS', \`-lldap -llber')" >> config.m4
225 echo "APPENDDEF(\`confENVDEF', \`-DSASL')" >> config.m4
226 echo "APPENDDEF(\`confMAPDEF', \`-DPGSQLMAP')" >> config.m4
227 echo "APPENDDEF(\`confLIBS', \`-lpq -lresolv')" >> config.m4
228 echo "APPENDDEF(\`confLIBS', \`-lsasl -lcrypto')" >> config.m4
231 echo "APPENDDEF(\`confENVDEF', \`-DSTARTTLS')" >> config.m4
232 echo "APPENDDEF(\`confENVDEF', \`-D_FFR_DEAL_WITH_ERROR_SSL')" >> config.m4
233 echo "APPENDDEF(\`confLIBS', \`-lssl -lcrypto')" >> config.m4
234 echo "APPENDDEF(\`confENVDEF', \`-D_FFR_SMTP_SSL')" >> config.m4
237 echo "APPENDDEF(\`confENVDEF', \`-DMILTER')" >> config.m4
240 %define Build sparc32 sh Build
242 %define Build sh Build
245 cd sendmail && %{Build} -f ../config.m4
246 cd ../mailstats && %{Build} -f ../config.m4
247 cd ../rmail && %{Build} -f ../config.m4
248 cd ../makemap && %{Build} -f ../config.m4
249 cd ../praliases && %{Build} -f ../config.m4
250 cd ../smrsh && %{Build} -f ../config.m4
251 cd ../libmilter && %{Build} -f ../config.m4
256 rm -rf $RPM_BUILD_ROOT
257 install -d $RPM_BUILD_ROOT%{_mandir}/man{1,5,8} \
258 $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,monit,sysconfig,sasl,smrsh,security} \
259 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_prefix}/lib} \
260 $RPM_BUILD_ROOT{%{_datadir}/sendmail-cf,%{_libdir}} \
261 $RPM_BUILD_ROOT/var/{log,spool/mqueue} \
262 $RPM_BUILD_ROOT{%{_sysconfdir},%{_includedir}}
264 OBJDIR=obj.$(uname -s).$(uname -r).%{_target_base_arch}
268 SMINSTOPT="DESTDIR=$RPM_BUILD_ROOT SBINOWN=$IDNU SBINGRP=$IDNG \
269 UBINOWN=$IDNU UBINGRP=$IDNG MANOWN=$IDNU MANGRP=$IDNG \
270 CFOWN=$IDNU CFGRP=$IDNG MSPQOWN=$IDNU GBINGRP=$IDNG GBINOWN=$IDNU \
271 BINOWN=$IDNU BINGRP=$IDNG LIBOWN=$IDNU LIBGRP=$IDNG INCOWN=$IDNU INCGRP=$IDNG"
273 %{__make} -C $OBJDIR/sendmail install \
275 %{__make} -C $OBJDIR/mailstats install \
277 %{__make} -C $OBJDIR/praliases install \
279 %{__make} -C $OBJDIR/rmail force-install \
281 %{__make} -C $OBJDIR/makemap install \
283 %{__make} -C $OBJDIR/smrsh install \
285 %{__make} -C $OBJDIR/libmilter install \
289 ln -sf %{_sbindir}/makemap $RPM_BUILD_ROOT%{_bindir}/makemap
291 # install the cf files
293 rm -f cf/{Build,Makefile} feature/*~
294 cp -a * $RPM_BUILD_ROOT%{_datadir}/sendmail-cf
298 install cf/cf/pld.cf $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf
299 sed -e 's|@@PATH@@|%{_datadir}/sendmail-cf|' < %{SOURCE6} \
300 > $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.mc
303 install bluelabs.mc $RPM_BUILD_ROOT%{_sysconfdir}/bluelabs.mc
306 # submit.mc (submit.cf is installed automatically)
307 install cf/cf/submit.mc $RPM_BUILD_ROOT%{_sysconfdir}
309 echo "# local-host-names - include all aliases for your machine here." \
310 > $RPM_BUILD_ROOT%{_sysconfdir}/local-host-names
313 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_prefix}/lib/sendmail
316 for f in hoststat mailq newaliases purgestat; do
317 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
320 for map in virtusertable access domaintable mailertable; do
321 touch $RPM_BUILD_ROOT%{_sysconfdir}/${map}
322 $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
323 $RPM_BUILD_ROOT%{_sysconfdir}/${map}.db < $RPM_BUILD_ROOT%{_sysconfdir}/${map}
326 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/aliases
327 $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
328 $RPM_BUILD_ROOT%{_sysconfdir}/aliases.db < %{SOURCE3}
330 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/sendmail
331 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/sendmail
332 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/Makefile
333 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sasl/Sendmail.conf
334 install %{SOURCE13} $RPM_BUILD_ROOT/etc/pam.d/smtp
335 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/access
336 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/mailertable
337 install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/virtusertable
338 install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/domaintable
339 install %{SOURCE14} $RPM_BUILD_ROOT/etc/monit/
341 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
343 mv -f smrsh/README README.smrsh
344 mv -f cf/README README.cf
347 bzip2 -dc %{SOURCE4} | tar xf -
349 # for perl-Sendmail-Milter
350 install $OBJDIR/libsm/libsm.a $OBJDIR/libsmutil/libsmutil.a \
351 $RPM_BUILD_ROOT%{_libdir}
354 rm -rf $RPM_BUILD_ROOT
357 %groupadd -g 25 smmsp
358 %useradd -u 25 -d /var/spool/clientqueue -s /bin/false -c "Sendmail Message Submission Program" -g smmsp smmsp
363 # Convert old format to new
365 if [ -f /etc/mail/deny ] ; then
366 cat /etc/mail/deny | \
367 awk 'BEGIN{ print "# Entries from obsoleted /etc/mail/deny"} \
368 {print $1" REJECT"}' >> /etc/mail/access
369 mv -f /etc/mail/deny /etc/mail/deny.rpmorig
371 for oldfile in relay_allow ip_allow name_allow ; do
372 if [ -f /etc/mail/$oldfile ] ; then
373 cat /etc/mail/$oldfile | \
374 awk "BEGIN { print \"# Entries from obsoleted /etc/mail/$oldfile\" ;} \
375 { print $1\" RELAY\" }" >> /etc/mail/access
376 mv -f /etc/mail/$oldfile /etc/mail/$oldfile.rpmorig
381 # Oops, these files moved
383 if [ -f /etc/sendmail.cw ] ; then
384 cat /etc/sendmail.cw | \
385 awk 'BEGIN { print "# Entries from obsoleted /etc/sendmail.cw" ;} \
386 { print $1 }' >> /etc/mail/local-host-names
387 mv -f /etc/sendmail.cw /etc/sendmail.cw.rpmorig
390 # Rebuild maps (next reboot will rebuild also)
392 { /usr/bin/newaliases
393 for map in virtusertable access domaintable mailertable; do
394 if [ -f /etc/mail/${map} ] ; then
395 /usr/bin/makemap hash /etc/mail/${map} < /etc/mail/${map}
401 /sbin/chkconfig --add sendmail
402 %service sendmail restart "sendmail daemon"
405 if [ "$1" = "0" ]; then
406 %service sendmail stop
407 /sbin/chkconfig --del sendmail
411 if [ "$1" = "0" ]; then
416 # removal of compatibility links
417 %triggerpostun -- sendmail < 8.10.1
418 /sbin/chkconfig --add sendmail
421 %defattr(644,root,root,755)
422 %doc FAQ KNOWNBUGS README* op.me RELEASE_NOTES examples/
423 %attr(755,root,root) %{_sbindir}/mailstats
424 %attr(755,root,root) %{_sbindir}/praliases
425 %attr(755,root,root) %{_bindir}/hoststat
426 %attr(755,root,root) %{_bindir}/purgestat
427 %attr(755,root,root) %{_bindir}/rmail
428 %attr(755,root,root) %{_bindir}/makemap
429 %attr(755,root,root) %{_sbindir}/makemap
430 %attr(2755,root,smmsp) %{_sbindir}/sendmail
431 %attr(755,root,root) %{_bindir}/newaliases
432 %attr(755,root,root) %{_bindir}/mailq
433 %attr(755,root,root) %{_sbindir}/smrsh
434 %{_prefix}/lib/sendmail
436 %{_mandir}/man1/mailq.1*
437 %{_mandir}/man1/newaliases.1*
438 %{_mandir}/man5/aliases.5*
439 %{_mandir}/man8/mailstats.8*
440 %{_mandir}/man8/makemap.8*
441 %{_mandir}/man8/praliases.8*
442 %{_mandir}/man8/rmail.8*
443 %{_mandir}/man8/sendmail.8*
444 %{_mandir}/man8/smrsh.8*
449 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sendmail.cf
450 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sendmail.mc
451 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/submit.cf
452 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/submit.mc
453 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local-host-names
454 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/aliases
455 %{?with_pgsql:%{_sysconfdir}/bluelabs.mc}
456 %attr(644,root,mail) %ghost %{_sysconfdir}/aliases.db
457 %attr(770,root,smmsp) %dir /var/spool/clientmqueue
458 %attr(750,root,mail) %dir /var/spool/mqueue
460 %config %{_sysconfdir}/Makefile
461 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/access
462 %ghost %{_sysconfdir}/access.db
463 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/domaintable
464 %ghost %{_sysconfdir}/domaintable.db
465 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mailertable
466 %ghost %{_sysconfdir}/mailertable.db
467 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/virtusertable
468 %ghost %{_sysconfdir}/virtusertable.db
469 %config(noreplace) %{_sysconfdir}/helpfile
471 %attr(754,root,root) /etc/rc.d/init.d/sendmail
472 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/sendmail
473 %config(noreplace) %verify(not md5 mtime size) /etc/sasl/Sendmail.conf
474 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
475 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
476 %config(noreplace) %verify(not md5 mtime size) /etc/monit/*.monitrc
478 %dir %{_datadir}/sendmail-cf
479 %dir %{_datadir}/sendmail-cf/cf
480 %{_datadir}/sendmail-cf/cf/pld.mc
481 %{_datadir}/sendmail-cf/feature
482 %{_datadir}/sendmail-cf/m4
483 %{_datadir}/sendmail-cf/mailer
484 %dir %{_datadir}/sendmail-cf/ostype
485 %{_datadir}/sendmail-cf/ostype/linux.m4
486 %dir %{_datadir}/sendmail-cf/sh
487 %{_datadir}/sendmail-cf/sh/makeinfo.sh
488 %{_datadir}/sendmail-cf/siteconfig
490 %files -n libmilter-devel
491 %defattr(644,root,root,755)
492 %{_libdir}/libmilter.a
494 %{_libdir}/libsmutil.a
495 %{_includedir}/libmilter