]> git.pld-linux.org Git - packages/sendmail.git/blob - sendmail.spec
- use makemap in buildroot directly (no matter which links there will be)
[packages/sendmail.git] / sendmail.spec
1 #
2 # Conditional build:
3 # _without_ldap         without LDAP support
4 # _without_tls          without TLS (SSL) support
5 # _with_pgsql           without pgsql support (bluelabs)
6
7 Summary:        A widely used Mail Transport Agent (MTA)
8 Summary(de):    sendmail-Mail-Übertragungsagent
9 Summary(es):    Sendmail - agente de transporte de mail
10 Summary(fr):    Agent de transport de courrier sendmail
11 Summary(pl):    Sendmail - serwer poczty elektronicznej
12 Summary(pt_BR): Sendmail - agente de transporte de mail
13 Summary(ru):    ðÏÞÔÏ×ÙÊ ÔÒÁÎÓÐÏÒÔÎÙÊ ÁÇÅÎÔ sendmail
14 Summary(tr):    Elektronik posta hizmetleri sunucusu
15 Summary(uk):    ðÏÛÔÏ×ÉÊ ÔÒÁÎÓÐÏÒÔÎÉÊ ÁÇÅÎÔ sendmail
16 Name:           sendmail
17 Version:        8.12.6
18 Release:        3
19 License:        BSD
20 Group:          Networking/Daemons
21 Source0:        ftp://ftp.sendmail.org/pub/sendmail/%{name}.%{version}.tar.gz
22 Source1:        %{name}.init
23 Source2:        %{name}.sysconfig
24 Source3:        %{name}.aliases
25 # From http://doc.phpauction.org/sendmail/examples/
26 Source4:        %{name}-examples.tar.bz2
27 Source5:        %{name}-etc-mail-Makefile
28 Source6:        %{name}.mc
29 Source7:        %{name}-config.m4
30 Source8:        %{name}.sasl
31 Source9:        %{name}.access
32 Source10:       %{name}.mailertable
33 Source11:       %{name}.virtusertable
34 Source12:       %{name}.domaintable
35 Source13:       %{name}-smtp.pamd
36 Patch0:         %{name}-makemapman.patch
37 Patch1:         %{name}-smrsh-paths.patch
38 Patch2:         %{name}-rmail.patch
39 Patch3:         %{name}-os-paths.patch
40 Patch4:         %{name}-m4path.patch
41 Patch5:         %{name}-redirect.patch
42 Patch6:         %{name}-hprescan-dos.patch
43 Patch7:         http://blue-labs.org/clue/bluelabs.patch-8.12.3
44 Patch8:         smrsh-20020924.patch
45 BuildRequires:  cyrus-sasl-devel
46 BuildRequires:  db3-devel
47 %{!?_without_ldap:BuildRequires:        openldap-devel}
48 %{!?_without_tls:BuildRequires: openssl-devel}
49 %{?_with_pgsql:BuildRequires: postgresql-devel}
50 Requires:       m4
51 Requires:       procmail
52 Requires(pre):  /bin/id
53 Requires(pre):  /usr/bin/getgid
54 Requires(pre):  /usr/sbin/groupadd
55 Requires(pre):  /usr/sbin/useradd
56 Requires(post): awk
57 Requires(post): textutils
58 Requires(post,preun):/sbin/chkconfig
59 Requires(postun):       /usr/sbin/groupdel
60 Requires(postun):       /usr/sbin/userdel
61 Provides:       smtpdaemon
62 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
63 Obsoletes:      smtpdaemon
64 Obsoletes:      exim
65 Obsoletes:      masqmail
66 Obsoletes:      omta
67 Obsoletes:      postfix
68 Obsoletes:      qmail
69 Obsoletes:      sendmail-cf
70 Obsoletes:      sendmail-doc
71 Obsoletes:      smail
72 Obsoletes:      zmailer
73
74 %define         _sysconfdir     /etc/mail
75
76 %description
77 The Sendmail program is a very widely used Mail Transport Agent (MTA).
78 MTAs send mail from one machine to another. Sendmail is not a client
79 program, which you use to read your e-mail. Sendmail is a
80 behind-the-scenes program which actually moves your e-mail over
81 networks or the Internet to where you want it to go.
82
83 %description -l de
84 Sendmail überträgt Mails zwischen Rechnern. Es implementiert eine
85 allgemeine Mail-Routing-Funktion über das Netzwerk mit Aliasing und
86 Weiterleiten von Nachrichten, automatischem Routing an
87 Netzwerk-Gateways und flexible Konfiguration. Wenn Sie E-Mails über
88 das Internet senden und empfangen möchten, brauchen Sie sendmail.
89
90 %description -l es
91 sendmail es un agente de transporte de correo electrónico, que mueve
92 mensajes entre máquinas. Implementa facilidades de internetwork y
93 rutado, caracterizando cambio de nombres (aliases) y envío a nuevas
94 direcciones ( forwarding ), rutado automático para gateways de la red
95 y configuración flexible. Necesitarás del sendmail si deseas enviar y
96 recibir mensajes a través de la Internet.
97
98 %description -l fr
99 Sendmail est un agent de transport de courrier, qui est le programme
100 transférent le courrier d'une machine à l'autre. Sendmail implémente
101 une facilité générale de routage de courrier entre les réseaux, permet
102 l'\"aliasing\" et le \"forwarding\", un routage automatique sur les
103 passerelles du réseau, et une configuration flexible.
104
105 %description -l pl
106 Sendmail jest programem umo¿liwiaj±cym wymianê poczty elektronicznej
107 miêdzy komputerami w sieci (MTA). Zajmuje siê przekazywaniem poczty
108 elektronicznej miêdzy bramkami pocztowymi i dostarczaniem przesy³ek na
109 konta docelowe. Bardzo dobrze obs³uguje aliasy pocztowe a jego
110 dodatkowym atutem jest prosta konfiguracja. Dziêki rozbudowanym
111 mo¿liwo¶ciom konfiguracyjnym jest w stanie dostarczaæ przesy³ki za
112 po¶rednictwem protoko³ów: SMTP, ESMTP, UUCP, X.400 i innych.
113
114 %description -l pt_BR
115 O sendmail é um agente de transporte de correio eletrônico, que move
116 mensagens entre máquinas. Ele implementa facilidades de internetwork e
117 roteamento, caracterizando troca de nomes (aliases) e remessa a novos
118 endereços ( forwarding ), roteamento automático para gateways da rede
119 e configuração flexível.
120
121 %description -l ru
122 Sendmail - ÜÔÏ Mail Transport Agent, ÐÒÏÇÒÁÍÍÁ ÐÅÒÅÓÙÌÁÀÝÁÑ ÐÏÞÔÕ Ó
123 ÍÁÛÉÎÙ ÎÁ ÍÁÛÉÎÕ. Sendmail ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÓÔÁÎÄÁÒÔÎÙÅ ÓÒÅÄÓÔ×Á
124 ÍÅÖÓÅÔÅ×ÏÊ ÍÁÒÛÒÕÔÉÚÁÃÉÉ ÐÏÞÔÙ, aliasing, forwarding, Á×ÔÏÍÁÔÉÞÅÓËÕÀ
125 ÍÁÒÛÒÕÔÉÚÁÃÉÀ ÄÌÑ ÓÅÔÅ×ÙÈ ÛÌÀÚÏ× É ÇÉÂËÉÊ ÍÅÈÁÎÉÚÍ ËÏÎÆÉÇÕÒÁÃÉÉ.
126
127 %description -l tr
128 Sendmail, bir mektubu bir makineden diðerine taþýr. Pek çok davranýþý
129 ayarlanabilir. Internet üzerinden mektup almak veya göndermek
130 istiyorsanýz bu pakete gereksiniminiz olacaktýr.
131
132 %description -l uk
133 Sendmail - ÃÅ Mail Transport Agent, ÐÒÏÇÒÁÍÁ ÝÏ ÐÅÒÅÓÉÌÁ¤ ÐÏÛÔÕ Ú
134 ÍÁÛÉÎÉ ÎÁ ÍÁÛÉÎÕ. Sendmail ÎÁÄÁ¤ ÓÔÁÎÄÁÒÔΦ ÚÁÓÏÂɠͦÖÍÅÒÅÖÅ×ϧ
135 ÍÁÒÛÒÕÔÉÚÁ槠ÐÏÛÔÉ, aliasing, forwarding, Á×ÔÏÍÁÔÉÞÎÕ ÍÁÒÛÒÕÔÉÚÁæÀ
136 ÄÌÑ ÍÅÒÅÖÅ×ÉÈ ÛÌÀڦנÔÁ ÇÎÕÞËÉÊ ÍÅÈÁΦÚÍ ÍÁÒÛÒÕÔÉÚÁæ§.
137
138 %prep
139 %setup -q
140 %patch0 -p1
141 %patch1 -p1
142 %patch2 -p1
143 %patch3 -p1
144 %patch4 -p1
145 %patch5 -p1
146 %patch6 -p1
147 %if %{?_with_pgsql:1}%{!?_with_pgsql:0}
148 %patch7 -p1
149 %endif
150 %patch8 -p1
151
152 sed -e 's|@@PATH@@|\.\.|' < %{SOURCE6} > cf/cf/pld.mc
153
154 install %{SOURCE7} config.m4
155
156 %build
157 echo "define(\`confCC', \`%{__cc}')" >> config.m4
158 echo "define(\`confOPTIMIZE', \`%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DNETINET6')" >> config.m4
159 echo "define(\`confLIBSEARCH', \`db')" >> config.m4
160 %if %{?debug:0}%{!?debug:1}
161 echo "define(\`confLDOPTS', \`-s')" >> config.m4
162 %endif
163 %if %{?_without_ldap:0}%{!?_without_ldap:1}
164 echo "APPENDDEF(\`confMAPDEF', \`-DLDAPMAP')" >> config.m4
165 echo "APPENDDEF(\`confLIBS', \`-lldap -llber')" >> config.m4
166 %endif
167 %if %{?_with_pgsql:1}%{!?_with_pgsql:0}
168 echo "APPENDDEF(\`confENVDEF', \`-DSASL')" >> config.m4
169 echo "APPENDDEF(\`confMAPDEF', \`-DPGSQLMAP')" >> config.m4
170 echo "APPENDDEF(\`confLIBS', \`-lpq -lresolv')" >> config.m4
171 echo "APPENDDEF(\`confLIBS', \`-lsasl -lcrypto')" >> config.m4
172 %endif
173 %if %{?_without_tls:0}%{!?_without_tls:1}
174 echo "APPENDDEF(\`confENVDEF', \`-DSTARTTLS')" >> config.m4
175 echo "APPENDDEF(\`confLIBS', \`-lssl -lcrypto')" >> config.m4
176 %endif
177
178 cd sendmail     && sh Build -f ../config.m4
179 cd ../mailstats && sh Build -f ../config.m4
180 cd ../rmail     && sh Build -f ../config.m4
181 cd ../makemap   && sh Build -f ../config.m4
182 cd ../praliases && sh Build -f ../config.m4
183 cd ../smrsh     && sh Build -f ../config.m4
184 cd ../cf/cf
185 m4 pld.mc > pld.cf
186
187 %install
188 rm -rf $RPM_BUILD_ROOT
189 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig,sasl,smrsh}} \
190         $RPM_BUILD_ROOT%{_bindir} $RPM_BUILD_ROOT%{_sbindir} $RPM_BUILD_ROOT%{_libdir} \
191         $RPM_BUILD_ROOT%{_mandir}/man{1,5,8} \
192         $RPM_BUILD_ROOT/var/log $RPM_BUILD_ROOT/var/spool/mqueue \
193         $RPM_BUILD_ROOT%{_libdir}/sendmail-cf \
194         $RPM_BUILD_ROOT/etc/pam.d \
195
196 OBJDIR=obj.$(uname -s).$(uname -r).$(arch)
197
198 IDNU=`id -nu`
199 IDNG=`id -ng`
200 SMINSTOPT="DESTDIR=$RPM_BUILD_ROOT SBINOWN=$IDNU SBINGRP=$IDNG \
201         UBINOWN=$IDNU UBINGRP=$IDNG MANOWN=$IDNU MANGRP=$IDNG \
202         CFOWN=$IDNU CFGRP=$IDNG MSPQOWN=$IDNU GBINGRP=$IDNG GBINOWN=$IDNU \
203         BINOWN=$IDNU BINGRP=$IDNG"
204 %{__make} $SMINSTOPT install -C $OBJDIR/sendmail
205 %{__make} $SMINSTOPT install -C $OBJDIR/mailstats
206 %{__make} $SMINSTOPT install -C $OBJDIR/praliases
207 %{__make} $SMINSTOPT force-install -C $OBJDIR/rmail
208 %{__make} $SMINSTOPT install -C $OBJDIR/makemap
209 ln -sf /usr/sbin/makemap $RPM_BUILD_ROOT%{_bindir}/makemap
210 %{__make} $SMINSTOPT install -C $OBJDIR/smrsh
211
212 # install the cf files
213 cd cf
214 rm -f cf/{Build,Makefile} feature/*~
215 cp -ar * $RPM_BUILD_ROOT%{_libdir}/sendmail-cf
216 cd -
217
218 # sendmail.{cf,mc}
219 install cf/cf/pld.cf $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf
220 sed -e 's|@@PATH@@|%{_libdir}/sendmail-cf|' < %{SOURCE6} \
221         > $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.mc
222
223 %if %{?_with_pgsql:1}%{!?_with_pgsql:0}
224 install bluelabs.mc $RPM_BUILD_ROOT%{_sysconfdir}/bluelabs.mc
225 %endif
226
227 # submit.mc (submit.cf is installed automatically)
228 install cf/cf/submit.mc $RPM_BUILD_ROOT%{_sysconfdir}
229
230 echo "# local-host-names - include all aliases for your machine here." \
231         > $RPM_BUILD_ROOT%{_sysconfdir}/local-host-names
232
233 ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_libdir}/sendmail
234
235 # dangling symlinks
236 for f in hoststat mailq newaliases purgestat ; do
237         ln -sf /usr/sbin/sendmail $RPM_BUILD_ROOT%{_bindir}/${f}
238 done
239
240 for map in virtusertable access domaintable mailertable ; do
241         touch $RPM_BUILD_ROOT%{_sysconfdir}/${map}
242         $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
243                 $RPM_BUILD_ROOT%{_sysconfdir}/${map}.db < $RPM_BUILD_ROOT%{_sysconfdir}/${map}
244 done
245
246 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/aliases
247 $RPM_BUILD_ROOT%{_sbindir}/makemap -C $RPM_BUILD_ROOT%{_sysconfdir}/sendmail.cf hash \
248         $RPM_BUILD_ROOT%{_sysconfdir}/aliases.db < %{SOURCE3}
249
250 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/sendmail
251 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/sendmail
252 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/Makefile
253 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sasl/Sendmail.conf
254 install %{SOURCE13} $RPM_BUILD_ROOT/etc/pam.d/smtp
255 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/access
256 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/mailertable
257 install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/virtusertable
258 install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/domaintable
259
260 mv -f smrsh/README README.smrsh
261 mv -f cf/README README.cf
262 mv -f doc/op/op.me .
263
264 bzip2 -dc %{SOURCE4} | tar xf -
265
266 %clean
267 rm -rf $RPM_BUILD_ROOT
268
269 %pre
270 if [ -n "`/usr/bin/getgid smmsp`" ]; then
271         if [ "`/usr/bin/getgid smmsp`" != "25" ]; then
272                 echo "Error: group smmsp doesn't have gid=25. Correct this before installing sendmail." 1>&2
273                 exit 1
274         fi
275 else
276         /usr/sbin/groupadd -g 25 -r -f smmsp
277 fi
278 if [ -n "`/bin/id -u smmsp 2>/dev/null`" ]; then
279         if [ "`/bin/id -u smmsp`" != "25" ]; then
280                 echo "Error: user smmsp doesn't have uid=25. Correct this before installing sendmail." 1>&2
281                 exit 1
282         fi
283 else
284         /usr/sbin/useradd -u 25 -r -d /var/spool/clientqueue -s /bin/false -c "Sendmail Message Submission Program" -g smmsp smmsp 1>&2
285 fi
286
287 %post
288 #
289 # Convert old format to new
290 #
291 if [ -f /etc/mail/deny ] ; then
292         cat /etc/mail/deny | \
293                 awk 'BEGIN{ print "# Entries from obsoleted /etc/mail/deny"} \
294                 {print $1" REJECT"}' >> /etc/mail/access
295         mv -f /etc/mail/deny /etc/mail/deny.rpmorig
296 fi
297 for oldfile in relay_allow ip_allow name_allow ; do
298         if [ -f /etc/mail/$oldfile ] ; then
299                 cat /etc/mail/$oldfile | \
300                         awk "BEGIN { print \"# Entries from obsoleted /etc/mail/$oldfile\" ;} \
301                         { print $1\" RELAY\" }" >> /etc/mail/access
302                 mv -f /etc/mail/$oldfile /etc/mail/$oldfile.rpmorig
303         fi
304 done
305
306 #
307 # Oops, these files moved
308 #
309 if [ -f /etc/sendmail.cw ] ; then
310         cat /etc/sendmail.cw | \
311                 awk 'BEGIN { print "# Entries from obsoleted /etc/sendmail.cw" ;} \
312                 { print $1 }' >> /etc/mail/local-host-names
313         mv -f /etc/sendmail.cw /etc/sendmail.cw.rpmorig
314 fi
315 #
316 # Rebuild maps (next reboot will rebuild also)
317 #
318 { /usr/bin/newaliases
319  for map in virtusertable access domaintable mailertable; do
320         if [ -f /etc/mail/${map} ] ; then
321                 /usr/bin/makemap hash /etc/mail/${map} < /etc/mail/${map}
322                 sleep 1
323         fi
324  done
325 } > /dev/null 2>&1
326
327 /sbin/chkconfig --add sendmail
328 if [ -f /var/lock/subsys/sendmail ]; then
329         /etc/rc.d/init.d/sendmail restart >&2
330 else
331         echo "Run \"/etc/rc.d/init.d/sendmail start\" to start sendmail daemon." >&2
332 fi
333
334 %preun
335 if [ "$1" = "0" ]; then
336         if [ -f /var/lock/subsys/sendmail ]; then
337                 /etc/rc.d/init.d/sendmail stop >&2
338         fi
339         /sbin/chkconfig --del sendmail
340 fi
341
342 %postun
343 if [ "$1" = "0" ]; then
344         /usr/sbin/userdel smmsp 2>/dev/null
345         /usr/sbin/groupdel smmsp 2>/dev/null
346 fi
347
348 # removal of compatibility links
349 %triggerpostun -- sendmail < 8.10.1
350 /sbin/chkconfig --add sendmail
351
352 %files
353 %defattr(644,root,root,755)
354 %doc FAQ KNOWNBUGS README* op.me RELEASE_NOTES examples/
355 %attr(755,root,root) %{_sbindir}/mailstats
356 %attr(755,root,root) %{_sbindir}/praliases
357 %attr(755,root,root) %{_bindir}/hoststat
358 %attr(755,root,root) %{_bindir}/purgestat
359 %attr(755,root,root) %{_bindir}/rmail
360 %attr(755,root,root) %{_bindir}/makemap
361 %attr(755,root,root) %{_sbindir}/makemap
362 %attr(2755,root,smmsp) %{_sbindir}/sendmail
363 %attr(755,root,root) %{_bindir}/newaliases
364 %attr(755,root,root) %{_bindir}/mailq
365 %attr(755,root,root) %{_sbindir}/smrsh
366 %{_libdir}/sendmail
367
368 %{_mandir}/man1/mailq.1*
369 %{_mandir}/man1/newaliases.1*
370 %{_mandir}/man5/aliases.5*
371 %{_mandir}/man8/mailstats.8*
372 %{_mandir}/man8/makemap.8*
373 %{_mandir}/man8/praliases.8*
374 %{_mandir}/man8/rmail.8*
375 %{_mandir}/man8/sendmail.8*
376 %{_mandir}/man8/smrsh.8*
377
378 %dir /etc/smrsh
379 %dir %{_sysconfdir}
380 /var/log/statistics
381 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sendmail.cf
382 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sendmail.mc
383 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/submit.cf
384 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/submit.mc
385 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/local-host-names
386 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/aliases
387 %{?_with_pgsql:%{_sysconfdir}/bluelabs.mc}
388 %attr(644,root,mail) %ghost %{_sysconfdir}/aliases.db
389 %attr(770,root,smmsp) %dir /var/spool/clientmqueue
390 %attr(750,root,mail) %dir /var/spool/mqueue
391
392 %config %{_sysconfdir}/Makefile
393 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/access
394 %ghost %{_sysconfdir}/access.db
395 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/domaintable
396 %ghost %{_sysconfdir}/domaintable.db
397 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/mailertable
398 %ghost %{_sysconfdir}/mailertable.db
399 %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/virtusertable
400 %ghost %{_sysconfdir}/virtusertable.db
401 %config(noreplace) %{_sysconfdir}/helpfile
402
403 %attr(754,root,root) /etc/rc.d/init.d/sendmail
404 %config(noreplace) %verify(not md5 size mtime) /etc/sysconfig/sendmail
405 %config(noreplace) %verify(not md5 size mtime) /etc/sasl/Sendmail.conf
406 %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/smtp
407
408 %dir %{_libdir}/sendmail-cf
409 %dir %{_libdir}/sendmail-cf/cf
410 %{_libdir}/sendmail-cf/cf/pld.mc
411 %{_libdir}/sendmail-cf/feature
412 %{_libdir}/sendmail-cf/m4
413 %{_libdir}/sendmail-cf/mailer
414 %dir %{_libdir}/sendmail-cf/ostype
415 %{_libdir}/sendmail-cf/ostype/linux.m4
416 %dir %{_libdir}/sendmail-cf/sh
417 %{_libdir}/sendmail-cf/sh/makeinfo.sh
418 %{_libdir}/sendmail-cf/siteconfig
This page took 0.04958 seconds and 4 git commands to generate.