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