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/SMTP
29 Source0: ftp://ftp.sendmail.org/pub/sendmail/%{name}.%{version}.tar.gz
30 # Source0-md5: a5ee5d26e1f546a2da5fb9a513bd6bce
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 Patch0: %{name}-makemapman.patch
47 Patch1: %{name}-smrsh-paths.patch
48 Patch2: %{name}-rmail.patch
49 Patch3: %{name}-os-paths.patch
50 Patch4: %{name}-m4path.patch
51 Patch5: %{name}-redirect.patch
52 Patch6: %{name}-hprescan-dos.patch
53 Patch7: http://blue-labs.org/clue/bluelabs.patch-8.12.3
54 URL: http://www.sendmail.org/
55 BuildRequires: cyrus-sasl-devel
56 BuildRequires: db-devel >= 4.1.25
58 %{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
59 %{?with_tls:BuildRequires: openssl-devel >= 0.9.7d}
60 %{?with_pgsql:BuildRequires: postgresql-devel}
61 BuildRequires: rpmbuild(macros) >= 1.310
62 BuildRequires: sed >= 4.0
64 BuildRequires: sparc32
67 Requires(post): textutils
68 Requires(post,preun): /sbin/chkconfig
69 Requires(post,preun): rc-scripts >= 0.4.0.20
70 Requires(postun): /usr/sbin/groupdel
71 Requires(postun): /usr/sbin/userdel
72 Requires(pre): /bin/id
73 Requires(pre): /usr/bin/getgid
74 Requires(pre): /usr/sbin/groupadd
75 Requires(pre): /usr/sbin/useradd
76 Requires: db >= 4.1.25
78 Requires: pam >= 0.79.0
80 Provides: group(smmsp)
83 Obsoletes: sendmail-cf
84 Obsoletes: sendmail-doc
86 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
88 %define _sysconfdir /etc/mail
89 %define specflags -fPIC
92 The Sendmail program is a very widely used Mail Transport Agent (MTA).
93 MTAs send mail from one machine to another. Sendmail is not a client
94 program, which you use to read your e-mail. Sendmail is a
95 behind-the-scenes program which actually moves your e-mail over
96 networks or the Internet to where you want it to go.
98 %description -l de.UTF-8
99 Sendmail überträgt Mails zwischen Rechnern. Es implementiert eine
100 allgemeine Mail-Routing-Funktion über das Netzwerk mit Aliasing und
101 Weiterleiten von Nachrichten, automatischem Routing an
102 Netzwerk-Gateways und flexible Konfiguration. Wenn Sie E-Mails über
103 das Internet senden und empfangen möchten, brauchen Sie sendmail.
105 %description -l es.UTF-8
106 sendmail es un agente de transporte de correo electrónico, que mueve
107 mensajes entre máquinas. Implementa facilidades de internetwork y
108 rutado, caracterizando cambio de nombres (aliases) y envío a nuevas
109 direcciones ( forwarding ), rutado automático para gateways de la red
110 y configuración flexible. Necesitarás del sendmail si deseas enviar y
111 recibir mensajes a través de la Internet.
113 %description -l fr.UTF-8
114 Sendmail est un agent de transport de courrier, qui est le programme
115 transférent le courrier d'une machine à l'autre. Sendmail implémente
116 une facilité générale de routage de courrier entre les réseaux, permet
117 l'"aliasing" et le "forwarding", un routage automatique sur les
118 passerelles du réseau, et une configuration flexible.
120 %description -l ko.UTF-8
121 Sendamil은 매우 널리 사용되는 Mail 전송 프로그램이다(MTA). Mail 전송
122 프로그램들(MTA)은 어떠한 machine에서 다른 machine으로 메일을 보내며
123 Sendmail은 e-mail을 읽기위해 사용하는 client program은 아니다.
124 Sendamil은 원하는 곳으로 Internet이나 Network를 통해 e-mail을 보내는
125 역할을 하는 backgrond에서 작업을 하는 프로그램이다.
127 %description -l pl.UTF-8
128 Sendmail jest programem umożliwiającym wymianę poczty elektronicznej
129 między komputerami w sieci (MTA). Zajmuje się przekazywaniem poczty
130 elektronicznej między bramkami pocztowymi i dostarczaniem przesyłek na
131 konta docelowe. Bardzo dobrze obsługuje aliasy pocztowe a jego
132 dodatkowym atutem jest prosta konfiguracja. Dzięki rozbudowanym
133 możliwościom konfiguracyjnym jest w stanie dostarczać przesyłki za
134 pośrednictwem protokołów: SMTP, ESMTP, UUCP, X.400 i innych.
136 %description -l pt_BR.UTF-8
137 O sendmail é um agente de transporte de correio eletrônico, que move
138 mensagens entre máquinas. Ele implementa facilidades de internetwork e
139 roteamento, caracterizando troca de nomes (aliases) e remessa a novos
140 endereços ( forwarding ), roteamento automático para gateways da rede
141 e configuração flexível.
143 %description -l ru.UTF-8
144 Sendmail - это Mail Transport Agent, программа пересылающая почту с
145 машины на машину. Sendmail предоставляет стандартные средства
146 межсетевой маршрутизации почты, aliasing, forwarding, автоматическую
147 маршрутизацию для сетевых шлюзов и гибкий механизм конфигурации.
149 %description -l tr.UTF-8
150 Sendmail, bir mektubu bir makineden diğerine taşır. Pek çok davranışı
151 ayarlanabilir. Internet üzerinden mektup almak veya göndermek
152 istiyorsanız bu pakete gereksiniminiz olacaktır.
154 %description -l uk.UTF-8
155 Sendmail - це Mail Transport Agent, програма що пересилає пошту з
156 машини на машину. Sendmail надає стандартні засоби міжмережевої
157 маршрутизації пошти, aliasing, forwarding, автоматичну маршрутизацію
158 для мережевих шлюзів та гнучкий механізм маршрутизації.
160 %package -n libmilter-devel
161 Summary: Header files and static libmilter library
162 Summary(pl.UTF-8): Pliki nagłówkowe i statyczna biblioteka libmilter
163 Group: Development/Libraries
164 Provides: sendmail-devel
165 Obsoletes: sendmail-devel
167 %description -n libmilter-devel
168 Header files and static libmilter library.
170 %description -n libmilter-devel -l pl.UTF-8
171 Pliki nagłówkowe i statyczna biblioteka libmilter.
182 %{?with_pgsql:%patch7 -p1}
184 sed -e 's|@@PATH@@|\.\.|' < %{SOURCE6} > cf/cf/pld.mc
186 cp -p %{SOURCE7} config.m4
189 # It's problem with _simultanous_ building when builders are on the same
190 # machine. These are anonymous SHM tests (AFAIR) which must fail when called
193 # send on builders requests only for some arch - it won't fail.
195 %ifarch i386 i586 athlon
196 %{__sed} -i -e 's/^\(smtest.*t-shm\)/dnl \1/' libsm/Makefile.m4
197 %{__sed} -i -e 's/^\(smtest.*t-sem\)/dnl \1/' libsm/Makefile.m4
201 echo "define(\`confCC', \`%{__cc}')" >> config.m4
202 %ifarch sparc sparc64
203 echo "define(\`confOPTIMIZE', \`%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DSM_CONF_SEM=0 -DNETINET6')" >> config.m4
205 echo "define(\`confOPTIMIZE', \`%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DNETINET6')" >> config.m4
207 echo "APPENDDEF(\`confINCDIRS', \`-I/usr/include/sasl')" >> config.m4
208 echo "define(\`confLIBSEARCHPATH', \`/%{_lib} %{_prefix}/%{_lib}')" >> config.m4
209 echo "define(\`confLIBSEARCH', \`db resolv')" >> config.m4
211 echo "define(\`confLDOPTS', \`-s')" >> config.m4
214 echo "APPENDDEF(\`confMAPDEF', \`-DLDAPMAP')" >> config.m4
215 echo "APPENDDEF(\`confLIBS', \`-lldap -llber')" >> config.m4
218 echo "APPENDDEF(\`confENVDEF', \`-DSASL')" >> config.m4
219 echo "APPENDDEF(\`confMAPDEF', \`-DPGSQLMAP')" >> config.m4
220 echo "APPENDDEF(\`confLIBS', \`-lpq -lresolv')" >> config.m4
221 echo "APPENDDEF(\`confLIBS', \`-lsasl -lcrypto')" >> config.m4
224 echo "APPENDDEF(\`confENVDEF', \`-DSTARTTLS')" >> config.m4
225 echo "APPENDDEF(\`confENVDEF', \`-D_FFR_DEAL_WITH_ERROR_SSL')" >> config.m4
226 echo "APPENDDEF(\`confLIBS', \`-lssl -lcrypto')" >> config.m4
227 echo "APPENDDEF(\`confENVDEF', \`-D_FFR_SMTP_SSL')" >> config.m4
230 echo "APPENDDEF(\`confENVDEF', \`-DMILTER')" >> config.m4
233 %define Build sparc32 sh Build
235 %define Build sh Build
238 cd sendmail && %{Build} -f ../config.m4
239 cd ../mailstats && %{Build} -f ../config.m4
240 cd ../rmail && %{Build} -f ../config.m4
241 cd ../makemap && %{Build} -f ../config.m4
242 cd ../praliases && %{Build} -f ../config.m4
243 cd ../smrsh && %{Build} -f ../config.m4
244 cd ../libmilter && %{Build} -f ../config.m4
249 rm -rf $RPM_BUILD_ROOT
250 install -d $RPM_BUILD_ROOT%{_mandir}/man{1,5,8} \
251 $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,monit,sysconfig,sasl,smrsh,security} \
252 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},/usr/lib} \
253 $RPM_BUILD_ROOT{%{_datadir}/sendmail-cf,%{_libdir}} \
254 $RPM_BUILD_ROOT/var/{log,spool/mqueue} \
255 $RPM_BUILD_ROOT{%{_sysconfdir},%{_includedir}}
257 OBJDIR=obj.$(uname -s).$(uname -r).$(\
265 SMINSTOPT="DESTDIR=$RPM_BUILD_ROOT SBINOWN=$IDNU SBINGRP=$IDNG \
266 UBINOWN=$IDNU UBINGRP=$IDNG MANOWN=$IDNU MANGRP=$IDNG \
267 CFOWN=$IDNU CFGRP=$IDNG MSPQOWN=$IDNU GBINGRP=$IDNG GBINOWN=$IDNU \
268 BINOWN=$IDNU BINGRP=$IDNG LIBOWN=$IDNU LIBGRP=$IDNG INCOWN=$IDNU INCGRP=$IDNG"
270 %{__make} -C $OBJDIR/sendmail install \
272 %{__make} -C $OBJDIR/mailstats install \
274 %{__make} -C $OBJDIR/praliases install \
276 %{__make} -C $OBJDIR/rmail force-install \
278 %{__make} -C $OBJDIR/makemap install \
280 %{__make} -C $OBJDIR/smrsh install \
282 %{__make} -C $OBJDIR/libmilter install \
286 ln -sf %{_sbindir}/makemap $RPM_BUILD_ROOT%{_bindir}/makemap
288 # install the cf files
290 rm -f cf/{Build,Makefile}
291 rm -f feature/*~ feature/*.orig
292 cp -a * $RPM_BUILD_ROOT%{_datadir}/sendmail-cf
296 cp -p cf/cf/pld.cf $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf
297 sed -e 's|@@PATH@@|%{_datadir}/sendmail-cf|' < %{SOURCE6} \
298 > $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.mc
301 cp -p bluelabs.mc $RPM_BUILD_ROOT%{_sysconfdir}/bluelabs.mc
304 # submit.mc (submit.cf is installed automatically)
305 cp -p cf/cf/submit.mc $RPM_BUILD_ROOT%{_sysconfdir}
307 echo "# local-host-names - include all aliases for your machine here." \
308 > $RPM_BUILD_ROOT%{_sysconfdir}/local-host-names
310 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT/usr/lib/sendmail
313 for f in hoststat mailq newaliases purgestat; do
314 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
317 for map in virtusertable access domaintable mailertable; do
318 touch $RPM_BUILD_ROOT%{_sysconfdir}/${map}
319 $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
320 $RPM_BUILD_ROOT%{_sysconfdir}/${map}.db < $RPM_BUILD_ROOT%{_sysconfdir}/${map}
323 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/aliases
324 $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
325 $RPM_BUILD_ROOT%{_sysconfdir}/aliases.db < %{SOURCE3}
327 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/sendmail
328 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/sendmail
329 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/Makefile
330 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sasl/Sendmail.conf
331 cp -p %{SOURCE13} $RPM_BUILD_ROOT/etc/pam.d/smtp
332 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/access
333 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/mailertable
334 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/virtusertable
335 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/domaintable
337 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
339 mv -f smrsh/README README.smrsh
340 mv -f cf/README README.cf
343 bzip2 -dc %{SOURCE4} | tar xf -
345 # for perl-Sendmail-Milter
346 install $OBJDIR/libsm/libsm.a $OBJDIR/libsmutil/libsmutil.a \
347 $RPM_BUILD_ROOT%{_libdir}
350 rm -rf $RPM_BUILD_ROOT
353 %groupadd -g 25 smmsp
354 %useradd -u 25 -d /var/spool/clientqueue -s /bin/false -c "Sendmail Message Submission Program" -g smmsp smmsp
359 # Convert old format to new
361 if [ -f /etc/mail/deny ] ; then
362 cat /etc/mail/deny | \
363 awk 'BEGIN{ print "# Entries from obsoleted /etc/mail/deny"} \
364 {print $1" REJECT"}' >> /etc/mail/access
365 mv -f /etc/mail/deny /etc/mail/deny.rpmorig
367 for oldfile in relay_allow ip_allow name_allow ; do
368 if [ -f /etc/mail/$oldfile ] ; then
369 cat /etc/mail/$oldfile | \
370 awk "BEGIN { print \"# Entries from obsoleted /etc/mail/$oldfile\" ;} \
371 { print $1\" RELAY\" }" >> /etc/mail/access
372 mv -f /etc/mail/$oldfile /etc/mail/$oldfile.rpmorig
377 # Oops, these files moved
379 if [ -f /etc/sendmail.cw ] ; then
380 cat /etc/sendmail.cw | \
381 awk 'BEGIN { print "# Entries from obsoleted /etc/sendmail.cw" ;} \
382 { print $1 }' >> /etc/mail/local-host-names
383 mv -f /etc/sendmail.cw /etc/sendmail.cw.rpmorig
386 # Rebuild maps (next reboot will rebuild also)
388 { /usr/bin/newaliases
389 for map in virtusertable access domaintable mailertable; do
390 if [ -f /etc/mail/${map} ] ; then
391 /usr/bin/makemap hash /etc/mail/${map} < /etc/mail/${map}
397 /sbin/chkconfig --add sendmail
398 %service sendmail restart "sendmail daemon"
401 if [ "$1" = "0" ]; then
402 %service sendmail stop
403 /sbin/chkconfig --del sendmail
407 if [ "$1" = "0" ]; then
412 # removal of compatibility links
413 %triggerpostun -- sendmail < 8.10.1
414 /sbin/chkconfig --add sendmail
417 %defattr(644,root,root,755)
418 %doc FAQ KNOWNBUGS README* op.me RELEASE_NOTES examples/
419 %attr(755,root,root) %{_sbindir}/mailstats
420 %attr(755,root,root) %{_sbindir}/praliases
421 %attr(755,root,root) %{_bindir}/hoststat
422 %attr(755,root,root) %{_bindir}/purgestat
423 %attr(755,root,root) %{_bindir}/rmail
424 %attr(755,root,root) %{_bindir}/makemap
425 %attr(755,root,root) %{_sbindir}/makemap
426 %attr(2755,root,smmsp) %{_sbindir}/sendmail
427 %attr(755,root,root) %{_bindir}/newaliases
428 %attr(755,root,root) %{_bindir}/mailq
429 %attr(755,root,root) %{_sbindir}/smrsh
432 %{_mandir}/man1/mailq.1*
433 %{_mandir}/man1/newaliases.1*
434 %{_mandir}/man5/aliases.5*
435 %{_mandir}/man8/mailstats.8*
436 %{_mandir}/man8/makemap.8*
437 %{_mandir}/man8/praliases.8*
438 %{_mandir}/man8/rmail.8*
439 %{_mandir}/man8/sendmail.8*
440 %{_mandir}/man8/smrsh.8*
445 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sendmail.cf
446 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sendmail.mc
447 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/submit.cf
448 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/submit.mc
449 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local-host-names
450 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/aliases
451 %{?with_pgsql:%{_sysconfdir}/bluelabs.mc}
452 %attr(644,root,mail) %ghost %{_sysconfdir}/aliases.db
453 %attr(770,root,smmsp) %dir /var/spool/clientmqueue
454 %attr(750,root,mail) %dir /var/spool/mqueue
456 %config %{_sysconfdir}/Makefile
457 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/access
458 %ghost %{_sysconfdir}/access.db
459 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/domaintable
460 %ghost %{_sysconfdir}/domaintable.db
461 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mailertable
462 %ghost %{_sysconfdir}/mailertable.db
463 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/virtusertable
464 %ghost %{_sysconfdir}/virtusertable.db
465 %config(noreplace) %{_sysconfdir}/helpfile
467 %attr(754,root,root) /etc/rc.d/init.d/sendmail
468 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/sendmail
469 %config(noreplace) %verify(not md5 mtime size) /etc/sasl/Sendmail.conf
470 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
471 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
473 %dir %{_datadir}/sendmail-cf
474 %dir %{_datadir}/sendmail-cf/cf
475 %{_datadir}/sendmail-cf/cf/pld.mc
476 %{_datadir}/sendmail-cf/feature
477 %{_datadir}/sendmail-cf/m4
478 %{_datadir}/sendmail-cf/mailer
479 %dir %{_datadir}/sendmail-cf/ostype
480 %{_datadir}/sendmail-cf/ostype/linux.m4
481 %dir %{_datadir}/sendmail-cf/sh
482 %{_datadir}/sendmail-cf/sh/makeinfo.sh
483 %{_datadir}/sendmail-cf/siteconfig
485 %files -n libmilter-devel
486 %defattr(644,root,root,755)
487 %{_libdir}/libmilter.a
489 %{_libdir}/libsmutil.a
490 %{_includedir}/libmilter