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 Requires(post): textutils
66 Requires(post,preun): /sbin/chkconfig
67 Requires(post,preun): rc-scripts >= 0.4.0.20
68 Requires(postun): /usr/sbin/groupdel
69 Requires(postun): /usr/sbin/userdel
70 Requires(pre): /bin/id
71 Requires(pre): /usr/bin/getgid
72 Requires(pre): /usr/sbin/groupadd
73 Requires(pre): /usr/sbin/useradd
74 Requires: db >= 4.1.25
76 Requires: pam >= 0.79.0
78 Provides: group(smmsp)
88 Obsoletes: sendmail-cf
89 Obsoletes: sendmail-doc
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %define _sysconfdir /etc/mail
97 %define specflags -fPIC
100 The Sendmail program is a very widely used Mail Transport Agent (MTA).
101 MTAs send mail from one machine to another. Sendmail is not a client
102 program, which you use to read your e-mail. Sendmail is a
103 behind-the-scenes program which actually moves your e-mail over
104 networks or the Internet to where you want it to go.
106 %description -l de.UTF-8
107 Sendmail überträgt Mails zwischen Rechnern. Es implementiert eine
108 allgemeine Mail-Routing-Funktion über das Netzwerk mit Aliasing und
109 Weiterleiten von Nachrichten, automatischem Routing an
110 Netzwerk-Gateways und flexible Konfiguration. Wenn Sie E-Mails über
111 das Internet senden und empfangen möchten, brauchen Sie sendmail.
113 %description -l es.UTF-8
114 sendmail es un agente de transporte de correo electrónico, que mueve
115 mensajes entre máquinas. Implementa facilidades de internetwork y
116 rutado, caracterizando cambio de nombres (aliases) y envío a nuevas
117 direcciones ( forwarding ), rutado automático para gateways de la red
118 y configuración flexible. Necesitarás del sendmail si deseas enviar y
119 recibir mensajes a través de la Internet.
121 %description -l fr.UTF-8
122 Sendmail est un agent de transport de courrier, qui est le programme
123 transférent le courrier d'une machine à l'autre. Sendmail implémente
124 une facilité générale de routage de courrier entre les réseaux, permet
125 l'"aliasing" et le "forwarding", un routage automatique sur les
126 passerelles du réseau, et une configuration flexible.
128 %description -l ko.UTF-8
129 Sendamil은 매우 널리 사용되는 Mail 전송 프로그램이다(MTA). Mail 전송
130 프로그램들(MTA)은 어떠한 machine에서 다른 machine으로 메일을 보내며
131 Sendmail은 e-mail을 읽기위해 사용하는 client program은 아니다.
132 Sendamil은 원하는 곳으로 Internet이나 Network를 통해 e-mail을 보내는
133 역할을 하는 backgrond에서 작업을 하는 프로그램이다.
135 %description -l pl.UTF-8
136 Sendmail jest programem umożliwiającym wymianę poczty elektronicznej
137 między komputerami w sieci (MTA). Zajmuje się przekazywaniem poczty
138 elektronicznej między bramkami pocztowymi i dostarczaniem przesyłek na
139 konta docelowe. Bardzo dobrze obsługuje aliasy pocztowe a jego
140 dodatkowym atutem jest prosta konfiguracja. Dzięki rozbudowanym
141 możliwościom konfiguracyjnym jest w stanie dostarczać przesyłki za
142 pośrednictwem protokołów: SMTP, ESMTP, UUCP, X.400 i innych.
144 %description -l pt_BR.UTF-8
145 O sendmail é um agente de transporte de correio eletrônico, que move
146 mensagens entre máquinas. Ele implementa facilidades de internetwork e
147 roteamento, caracterizando troca de nomes (aliases) e remessa a novos
148 endereços ( forwarding ), roteamento automático para gateways da rede
149 e configuração flexível.
151 %description -l ru.UTF-8
152 Sendmail - это Mail Transport Agent, программа пересылающая почту с
153 машины на машину. Sendmail предоставляет стандартные средства
154 межсетевой маршрутизации почты, aliasing, forwarding, автоматическую
155 маршрутизацию для сетевых шлюзов и гибкий механизм конфигурации.
157 %description -l tr.UTF-8
158 Sendmail, bir mektubu bir makineden diğerine taşır. Pek çok davranışı
159 ayarlanabilir. Internet üzerinden mektup almak veya göndermek
160 istiyorsanız bu pakete gereksiniminiz olacaktır.
162 %description -l uk.UTF-8
163 Sendmail - це Mail Transport Agent, програма що пересилає пошту з
164 машини на машину. Sendmail надає стандартні засоби міжмережевої
165 маршрутизації пошти, aliasing, forwarding, автоматичну маршрутизацію
166 для мережевих шлюзів та гнучкий механізм маршрутизації.
168 %package -n libmilter-devel
169 Summary: Header files and static libmilter library
170 Summary(pl.UTF-8): Pliki nagłówkowe i statyczna biblioteka libmilter
171 Group: Development/Libraries
172 Provides: sendmail-devel
173 Obsoletes: sendmail-devel
175 %description -n libmilter-devel
176 Header files and static libmilter library.
178 %description -n libmilter-devel -l pl.UTF-8
179 Pliki nagłówkowe i statyczna biblioteka libmilter.
190 %{?with_pgsql:%patch7 -p1}
192 sed -e 's|@@PATH@@|\.\.|' < %{SOURCE6} > cf/cf/pld.mc
194 install %{SOURCE7} config.m4
197 # It's problem with _simultanous_ building when builders are on the same
198 # machine. These are anonymous SHM tests (AFAIR) which must fail when called
201 # send on builders requests only for some arch - it won't fail.
203 %ifarch i386 i586 athlon
204 %{__sed} -i -e 's/^\(smtest.*t-shm\)/dnl \1/' libsm/Makefile.m4
205 %{__sed} -i -e 's/^\(smtest.*t-sem\)/dnl \1/' libsm/Makefile.m4
209 echo "define(\`confCC', \`%{__cc}')" >> config.m4
210 echo "define(\`confOPTIMIZE', \`%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DNETINET6')" >> config.m4
211 echo "APPENDDEF(\`confINCDIRS', \`-I/usr/include/sasl')" >> config.m4
212 echo "define(\`confLIBSEARCHPATH', \`/%{_lib} %{_prefix}/%{_lib}')" >> config.m4
213 echo "define(\`confLIBSEARCH', \`db resolv')" >> config.m4
215 echo "define(\`confLDOPTS', \`-s')" >> config.m4
218 echo "APPENDDEF(\`confMAPDEF', \`-DLDAPMAP')" >> config.m4
219 echo "APPENDDEF(\`confLIBS', \`-lldap -llber')" >> config.m4
222 echo "APPENDDEF(\`confENVDEF', \`-DSASL')" >> config.m4
223 echo "APPENDDEF(\`confMAPDEF', \`-DPGSQLMAP')" >> config.m4
224 echo "APPENDDEF(\`confLIBS', \`-lpq -lresolv')" >> config.m4
225 echo "APPENDDEF(\`confLIBS', \`-lsasl -lcrypto')" >> config.m4
228 echo "APPENDDEF(\`confENVDEF', \`-DSTARTTLS')" >> config.m4
229 echo "APPENDDEF(\`confENVDEF', \`-D_FFR_DEAL_WITH_ERROR_SSL')" >> config.m4
230 echo "APPENDDEF(\`confLIBS', \`-lssl -lcrypto')" >> config.m4
231 echo "APPENDDEF(\`confENVDEF', \`-D_FFR_SMTP_SSL')" >> config.m4
234 echo "APPENDDEF(\`confENVDEF', \`-DMILTER')" >> config.m4
236 cd sendmail && sh Build -f ../config.m4
237 cd ../mailstats && sh Build -f ../config.m4
238 cd ../rmail && sh Build -f ../config.m4
239 cd ../makemap && sh Build -f ../config.m4
240 cd ../praliases && sh Build -f ../config.m4
241 cd ../smrsh && sh Build -f ../config.m4
242 cd ../libmilter && sh Build -f ../config.m4
247 rm -rf $RPM_BUILD_ROOT
248 install -d $RPM_BUILD_ROOT%{_mandir}/man{1,5,8} \
249 $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,monit,sysconfig,sasl,smrsh} \
250 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_prefix}/lib} \
251 $RPM_BUILD_ROOT{%{_datadir}/sendmail-cf,%{_libdir}} \
252 $RPM_BUILD_ROOT/var/{log,spool/mqueue} \
253 $RPM_BUILD_ROOT{%{_sysconfdir},%{_includedir}}
255 OBJDIR=obj.$(uname -s).$(uname -r).$(arch)
259 SMINSTOPT="DESTDIR=$RPM_BUILD_ROOT SBINOWN=$IDNU SBINGRP=$IDNG \
260 UBINOWN=$IDNU UBINGRP=$IDNG MANOWN=$IDNU MANGRP=$IDNG \
261 CFOWN=$IDNU CFGRP=$IDNG MSPQOWN=$IDNU GBINGRP=$IDNG GBINOWN=$IDNU \
262 BINOWN=$IDNU BINGRP=$IDNG LIBOWN=$IDNU LIBGRP=$IDNG INCOWN=$IDNU INCGRP=$IDNG"
264 %{__make} -C $OBJDIR/sendmail install \
266 %{__make} -C $OBJDIR/mailstats install \
268 %{__make} -C $OBJDIR/praliases install \
270 %{__make} -C $OBJDIR/rmail force-install \
272 %{__make} -C $OBJDIR/makemap install \
274 %{__make} -C $OBJDIR/smrsh install \
276 %{__make} -C $OBJDIR/libmilter install \
280 ln -sf %{_sbindir}/makemap $RPM_BUILD_ROOT%{_bindir}/makemap
282 # install the cf files
284 rm -f cf/{Build,Makefile} feature/*~
285 cp -a * $RPM_BUILD_ROOT%{_datadir}/sendmail-cf
289 install cf/cf/pld.cf $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf
290 sed -e 's|@@PATH@@|%{_datadir}/sendmail-cf|' < %{SOURCE6} \
291 > $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.mc
294 install bluelabs.mc $RPM_BUILD_ROOT%{_sysconfdir}/bluelabs.mc
297 # submit.mc (submit.cf is installed automatically)
298 install cf/cf/submit.mc $RPM_BUILD_ROOT%{_sysconfdir}
300 echo "# local-host-names - include all aliases for your machine here." \
301 > $RPM_BUILD_ROOT%{_sysconfdir}/local-host-names
304 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_prefix}/lib/sendmail
307 for f in hoststat mailq newaliases purgestat; do
308 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
311 for map in virtusertable access domaintable mailertable; do
312 touch $RPM_BUILD_ROOT%{_sysconfdir}/${map}
313 $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
314 $RPM_BUILD_ROOT%{_sysconfdir}/${map}.db < $RPM_BUILD_ROOT%{_sysconfdir}/${map}
317 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/aliases
318 $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
319 $RPM_BUILD_ROOT%{_sysconfdir}/aliases.db < %{SOURCE3}
321 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/sendmail
322 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/sendmail
323 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/Makefile
324 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sasl/Sendmail.conf
325 install %{SOURCE13} $RPM_BUILD_ROOT/etc/pam.d/smtp
326 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/access
327 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/mailertable
328 install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/virtusertable
329 install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/domaintable
330 install %{SOURCE14} $RPM_BUILD_ROOT/etc/monit/
332 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
334 mv -f smrsh/README README.smrsh
335 mv -f cf/README README.cf
338 bzip2 -dc %{SOURCE4} | tar xf -
340 # for perl-Sendmail-Milter
341 install $OBJDIR/libsm/libsm.a $OBJDIR/libsmutil/libsmutil.a \
342 $RPM_BUILD_ROOT%{_libdir}
345 rm -rf $RPM_BUILD_ROOT
348 %groupadd -g 25 smmsp
349 %useradd -u 25 -d /var/spool/clientqueue -s /bin/false -c "Sendmail Message Submission Program" -g smmsp smmsp
354 # Convert old format to new
356 if [ -f /etc/mail/deny ] ; then
357 cat /etc/mail/deny | \
358 awk 'BEGIN{ print "# Entries from obsoleted /etc/mail/deny"} \
359 {print $1" REJECT"}' >> /etc/mail/access
360 mv -f /etc/mail/deny /etc/mail/deny.rpmorig
362 for oldfile in relay_allow ip_allow name_allow ; do
363 if [ -f /etc/mail/$oldfile ] ; then
364 cat /etc/mail/$oldfile | \
365 awk "BEGIN { print \"# Entries from obsoleted /etc/mail/$oldfile\" ;} \
366 { print $1\" RELAY\" }" >> /etc/mail/access
367 mv -f /etc/mail/$oldfile /etc/mail/$oldfile.rpmorig
372 # Oops, these files moved
374 if [ -f /etc/sendmail.cw ] ; then
375 cat /etc/sendmail.cw | \
376 awk 'BEGIN { print "# Entries from obsoleted /etc/sendmail.cw" ;} \
377 { print $1 }' >> /etc/mail/local-host-names
378 mv -f /etc/sendmail.cw /etc/sendmail.cw.rpmorig
381 # Rebuild maps (next reboot will rebuild also)
383 { /usr/bin/newaliases
384 for map in virtusertable access domaintable mailertable; do
385 if [ -f /etc/mail/${map} ] ; then
386 /usr/bin/makemap hash /etc/mail/${map} < /etc/mail/${map}
392 /sbin/chkconfig --add sendmail
393 %service sendmail restart "sendmail daemon"
396 if [ "$1" = "0" ]; then
397 %service sendmail stop
398 /sbin/chkconfig --del sendmail
402 if [ "$1" = "0" ]; then
407 # removal of compatibility links
408 %triggerpostun -- sendmail < 8.10.1
409 /sbin/chkconfig --add sendmail
412 %defattr(644,root,root,755)
413 %doc FAQ KNOWNBUGS README* op.me RELEASE_NOTES examples/
414 %attr(755,root,root) %{_sbindir}/mailstats
415 %attr(755,root,root) %{_sbindir}/praliases
416 %attr(755,root,root) %{_bindir}/hoststat
417 %attr(755,root,root) %{_bindir}/purgestat
418 %attr(755,root,root) %{_bindir}/rmail
419 %attr(755,root,root) %{_bindir}/makemap
420 %attr(755,root,root) %{_sbindir}/makemap
421 %attr(2755,root,smmsp) %{_sbindir}/sendmail
422 %attr(755,root,root) %{_bindir}/newaliases
423 %attr(755,root,root) %{_bindir}/mailq
424 %attr(755,root,root) %{_sbindir}/smrsh
425 %{_prefix}/lib/sendmail
427 %{_mandir}/man1/mailq.1*
428 %{_mandir}/man1/newaliases.1*
429 %{_mandir}/man5/aliases.5*
430 %{_mandir}/man8/mailstats.8*
431 %{_mandir}/man8/makemap.8*
432 %{_mandir}/man8/praliases.8*
433 %{_mandir}/man8/rmail.8*
434 %{_mandir}/man8/sendmail.8*
435 %{_mandir}/man8/smrsh.8*
440 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sendmail.cf
441 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sendmail.mc
442 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/submit.cf
443 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/submit.mc
444 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local-host-names
445 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/aliases
446 %{?with_pgsql:%{_sysconfdir}/bluelabs.mc}
447 %attr(644,root,mail) %ghost %{_sysconfdir}/aliases.db
448 %attr(770,root,smmsp) %dir /var/spool/clientmqueue
449 %attr(750,root,mail) %dir /var/spool/mqueue
451 %config %{_sysconfdir}/Makefile
452 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/access
453 %ghost %{_sysconfdir}/access.db
454 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/domaintable
455 %ghost %{_sysconfdir}/domaintable.db
456 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mailertable
457 %ghost %{_sysconfdir}/mailertable.db
458 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/virtusertable
459 %ghost %{_sysconfdir}/virtusertable.db
460 %config(noreplace) %{_sysconfdir}/helpfile
462 %attr(754,root,root) /etc/rc.d/init.d/sendmail
463 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/sendmail
464 %config(noreplace) %verify(not md5 mtime size) /etc/sasl/Sendmail.conf
465 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
466 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
467 %config(noreplace) %verify(not md5 mtime size) /etc/monit/*.monitrc
469 %dir %{_datadir}/sendmail-cf
470 %dir %{_datadir}/sendmail-cf/cf
471 %{_datadir}/sendmail-cf/cf/pld.mc
472 %{_datadir}/sendmail-cf/feature
473 %{_datadir}/sendmail-cf/m4
474 %{_datadir}/sendmail-cf/mailer
475 %dir %{_datadir}/sendmail-cf/ostype
476 %{_datadir}/sendmail-cf/ostype/linux.m4
477 %dir %{_datadir}/sendmail-cf/sh
478 %{_datadir}/sendmail-cf/sh/makeinfo.sh
479 %{_datadir}/sendmail-cf/siteconfig
481 %files -n libmilter-devel
482 %defattr(644,root,root,755)
483 %{_libdir}/libmilter.a
485 %{_libdir}/libsmutil.a
486 %{_includedir}/libmilter