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