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