]> git.pld-linux.org Git - packages/postfix.git/blob - postfix.spec
- added missing mailq,newaliases symlinks
[packages/postfix.git] / postfix.spec
1 # TODO:
2 # - check/fix 'polish' bcond
3 # - add http://www.aurore.net/projects/postfix_memcached/
4 #
5 # Conditional build:
6 %bcond_without  ldap    # without LDAP map module
7 %bcond_without  mysql   # without MySQL map module
8 %bcond_without  pgsql   # without PostgreSQL map module
9 %bcond_without  sasl    # without SMTP AUTH support
10 %bcond_without  ssl     # without SSL/TLS support
11 %bcond_without  cdb     # without cdb map support
12 %bcond_without  vda     # with VDA patch
13 %bcond_with     hir     # with Beeth's header_if_reject patch
14 %bcond_with     tcp     # with unofficial tcp: lookup table
15 #%bcond_with    polish  # with double English+Polish messages
16 #
17 Summary:        Postfix Mail Transport Agent
18 Summary(cs.UTF-8):      Postfix - program pro přepravu pošty (MTA)
19 Summary(es.UTF-8):      Postfix - Un MTA (Mail Transport Agent) de alto desempeño
20 Summary(fr.UTF-8):      Agent de transport de courrier Postfix
21 Summary(pl.UTF-8):      Serwer SMTP Postfix
22 Summary(pt_BR.UTF-8):   Postfix - Um MTA (Mail Transport Agent) de alto desempenho
23 Summary(sk.UTF-8):      Agent prenosu pošty Postfix
24 Name:           postfix
25 Version:        2.3.12
26 %define         vda_ver 2.3.3
27 Release:        2
28 Epoch:          2
29 License:        distributable
30 Group:          Networking/Daemons
31 Source0:        ftp://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
32 # Source0-md5:  54aa9e61cc640d2515d965b30cf73e37
33 Source1:        %{name}.aliases
34 Source2:        %{name}.cron
35 Source3:        %{name}.init
36 Source4:        %{name}.sysconfig
37 Source5:        %{name}.sasl
38 Source6:        %{name}.pamd
39 Source7:        http://web.onda.com.br/nadal/postfix/VDA/%{name}-%{vda_ver}-vda.patch.gz
40 # Source7-md5:  3506ab432360766b6a2708042b29943a
41 Patch0:         %{name}-config.patch
42 Patch1:         %{name}-conf_msg.patch
43 Patch2:         %{name}-dynamicmaps.patch
44 Patch3:         %{name}-master.cf_cyrus.patch
45 # from http://akson.sgh.waw.pl/~chopin/unix/postfix-2.1.5-header_if_reject.diff
46 Patch4:         %{name}-header_if_reject.patch
47 #Patch5:        %{name}-pl.patch
48 #Patch6:        %{name}-size-check-before-proxy.patch
49 #Patch7:        %{name}-log-proxy-rejects.patch
50 Patch8:         %{name}-ident.patch
51 Patch9:         %{name}-lib64.patch
52 Patch10:        %{name}-conf.patch
53 Patch11:        %{name}-dictname.patch
54 URL:            http://www.postfix.org/
55 %{?with_sasl:BuildRequires:     cyrus-sasl-devel}
56 BuildRequires:  db-devel
57 # getifaddrs() with IPv6 support
58 BuildRequires:  glibc-devel >= 6:2.3.4
59 %{?with_mysql:BuildRequires:    mysql-devel}
60 %{?with_ldap:BuildRequires:     openldap-devel >= 2.3.0}
61 %{?with_ssl:BuildRequires:      openssl-devel >= 0.9.8b}
62 BuildRequires:  pcre-devel
63 %{?with_pgsql:BuildRequires:    postgresql-devel}
64 BuildRequires:  rpmbuild(macros) >= 1.268
65 BuildRequires:  sed >= 4.0
66 %{?with_cdb:BuildRequires:      tinycdb-devel}
67 %{?with_mysql:BuildRequires:    zlib-devel}
68 Requires(post): /bin/hostname
69 Requires(post,postun):  /sbin/ldconfig
70 Requires(post,preun):   /sbin/chkconfig
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:       /sbin/chkconfig
78 Requires:       diffutils
79 Requires:       findutils
80 Requires:       rc-scripts
81 Requires:       sed
82 %{?with_cdb:Requires:tinycdb}
83 Suggests:       cyrus-sasl-saslauthd
84 Provides:       group(postfix)
85 Provides:       smtpdaemon
86 Provides:       user(postfix)
87 Obsoletes:      smtpdaemon
88 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89
90 %description
91 Postfix is attempt to provide an alternative to the widely-used
92 Sendmail program. Postfix attempts to be fast, easy to administer, and
93 hopefully secure, while at the same time being sendmail compatible
94 enough to not upset your users. This version has IPv6 support.
95
96 %description -l es.UTF-8
97 Postfix es una alternativa para el mundialmente utilizado sendmail. Si
98 desea tener un servidor SMTP *rápido*, debe instalar este paquete.
99
100 %description -l fr.UTF-8
101 Postfix (voir http://www.postfix.org/) se veut une alternative à
102 sendmail, responsable de l'acheminement de 70% des courriers
103 électroniques sur Internet. IBM en a suppotré le développement, mais
104 ne contrôle pas son évolution. Le but est d'installer Postfix sur le
105 plus grand nombre de systèmes possible. Dans cette optique, il a été
106 écrit pour être totalement sous le contrôle de l'utilisateur.
107
108 %description -l it.UTF-8
109 Postfix (http://www.postfix.org/) e' un'alternativa al programma
110 sendmail utilizzato per la gestione del 70 per cento della posta
111 Internet.
112
113 Seppur IBM supporti lo sviluppo di Postfix, non controlla la sua
114 evoluzione.
115
116 Consultate la pagine web http://www.moongroup.com/how-to.phtml nella
117 quale troverete le indicazioni per una corretta installazione e
118 configurazione di questo programma.
119
120 %description -l pl.UTF-8
121 Postfix jest próbą dostarczenia alternatywnego MTA w stosunku do
122 szeroko używanego sendmaila. Postfix w zamierzeniu ma być szybki,
123 łatwy w administrowaniu, bezpieczny oraz ma być na tyle kompatybilny z
124 sendmailem by nie denerwować użytkowników. Ta wersja obsługuje IPv6.
125
126 %description -l pt_BR.UTF-8
127 O Postfix é uma alternativa para o mundialmente utilizado sendmail. Se
128 você deseja um servidor SMTP *rápido*, instale este pacote.
129
130 %description -l sk.UTF-8
131 Postfix (pozri http://www.postfix.org/) má za cieľ byť alternatívou k
132 široko rozšírenému programu sendmail, zodpovednému za 70% všetkej
133 elektronickej pošty doručenej na Internete.
134
135 Aj keď IBM podporovala vývoj Postfixu, zdržiava sa vplyvu na jeho
136 vývoj. Cieľom je inštalácia Postfixu na čo najväčšom počte systémov.
137 Do tohoto momentu je softvér poskytovaný bez ovplyvňovania, takže sa
138 môže vyvíjať podľa jeho používateľov.
139
140 Určite si prečítajte http://www.moongroup.com/how-to.phtml, kde sú
141 popísané kroky potrebné pred a po inštalácii Postfixu.
142
143 %package devel
144 Summary:        Postfix loadable modules development package
145 Summary(pl.UTF-8):      Pakiet dla programistów ładowanych modułów do postfiksa
146 Group:          Development/Libraries
147 Requires:       %{name} = %{epoch}:%{version}-%{release}
148
149 %description devel
150 Header files to build additional map types for Postfix.
151
152 %description devel -l pl.UTF-8
153 Pliki nagłówkowe do tworzenia dodatkowych typów map dla Postfiksa.
154
155 %package dict-ldap
156 Summary:        LDAP map support for Postfix
157 Summary(pl.UTF-8):      Obsługa map LDAP dla Postfiksa
158 Group:          Networking/Daemons
159 Requires:       %{name} = %{epoch}:%{version}-%{release}
160 Requires:       openldap >= 2.3.0
161
162 %description dict-ldap
163 This package provides support for LDAP maps in Postfix.
164
165 %description dict-ldap -l pl.UTF-8
166 Ten pakiet dodaje obsługę map LDAP do Postfiksa.
167
168 %package dict-mysql
169 Summary:        MySQL map support for Postfix
170 Summary(pl.UTF-8):      Obsługa map MySQL dla Postfiksa
171 Group:          Networking/Daemons
172 Requires:       %{name} = %{epoch}:%{version}-%{release}
173
174 %description dict-mysql
175 This package provides support for MySQL maps in Postfix.
176
177 %description dict-mysql -l pl.UTF-8
178 Ten pakiet dodaje obsługę map MySQL do Postfiksa.
179
180 %package dict-pcre
181 Summary:        PCRE map support for Postfix
182 Summary(pl.UTF-8):      Obsługa map PCRE dla Postfiksa
183 Group:          Networking/Daemons
184 Requires:       %{name} = %{epoch}:%{version}-%{release}
185
186 %description dict-pcre
187 This package provides support for PCRE maps in Postfix.
188
189 %description dict-pcre -l pl.UTF-8
190 Ten pakiet dodaje obsługę map PCRE do Postfiksa.
191
192 %package dict-pgsql
193 Summary:        PostgreSQL map support for Postfix
194 Summary(pl.UTF-8):      Obsługa map PostgreSQL dla Postfiksa
195 Group:          Networking/Daemons
196 Requires:       %{name} = %{epoch}:%{version}-%{release}
197
198 %description dict-pgsql
199 This package provides support for PostgreSQL maps in Postfix.
200
201 %description dict-pgsql -l pl.UTF-8
202 Ten pakiet dodaje obsługę map PostgreSQL do Postfiksa.
203
204 %package qshape
205 Summary:        qshape - Print Postfix queue domain and age distribution
206 Summary(pl.UTF-8):      qshape - wypisywanie rozkładu domen i wieku z kolejki Postfiksa
207 Group:          Networking/Daemons
208 Requires:       %{name} = %{epoch}:%{version}-%{release}
209
210 %description qshape
211 The qshape program helps the administrator understand the Postfix
212 queue message distribution in time and by sender domain or recipient
213 domain. The program needs read access to the queue directories and
214 queue files, so it must run as the superuser or the mail_owner
215 specified in main.cf (typically postfix).
216
217 %description qshape -l pl.UTF-8
218 Program qshape pomaga administratorowi zrozumieć rozkład kolejki
219 wiadomości Postfiksa w czasie i w zależności od domeny nadawcy lub
220 adresata. Program wymaga prawa odczytu do katalogów kolejki i plików
221 kolejki, więc musi być uruchamiany przez superużytkownika lub
222 użytkownika mail_owner podanego w main.cf (zwykle nazywającego się
223 postfix).
224
225 %prep
226 %setup -q
227 %{?with_vda:zcat %{SOURCE7} | patch -p1 -s}
228 %patch0 -p1
229 %patch1 -p0
230 %patch2 -p1
231 %patch3 -p1
232 %{?with_hir:%patch4 -p0}
233 #%{?with_polish:%patch5 -p1}
234 #%patch6 -p1
235 #%patch7 -p1 --obsolete ?
236 %patch8 -p1
237 sed -i '/scache_clnt_create/s/server/var_scache_service/' src/global/scache_clnt.c
238 %if "%{_lib}" == "lib64"
239 %patch9 -p1
240 %endif
241 %patch10 -p1
242 %patch11 -p1
243
244 %if %{with tcp}
245 sed -i 's/ifdef SNAPSHOT/if 1/' src/util/dict_open.c
246 %endif
247
248 %build
249 %{__make} -f Makefile.init makefiles
250 %{__make} tidy
251 %{__make} \
252         DEBUG="" \
253         OPT="%{rpmcflags} -D_FILE_OFFSET_BITS=64" \
254         %{!?with_ldap:LDAPSO=""} \
255         %{!?with_mysql:MYSQLSO=""} \
256         %{!?with_pgsql:PGSQLSO=""} \
257         CCARGS="%{?with_ldap:-DHAS_LDAP} -DHAS_PCRE %{?with_sasl:-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl} %{?with_mysql:-DHAS_MYSQL -I/usr/include/mysql} %{?with_pgsql:-DHAS_PGSQL -I/usr/include/postgresql} %{?with_ssl:-DUSE_TLS -I/usr/include/openssl} -DMAX_DYNAMIC_MAPS %{?with_cdb:-DHAS_CDB} -DHAVE_GETIFADDRS" \
258         AUXLIBS="-ldb -lresolv %{?with_sasl:-lsasl} %{?with_ssl:-lssl -lcrypto} %{?with_cdb:-lcdb} -lpcre %{?with_ldap:-lldap -llber} %{?with_pgsql:-lpq} %{?with_mysql:-lmysqlclient -lz}"
259
260 %install
261 rm -rf $RPM_BUILD_ROOT
262 install -d $RPM_BUILD_ROOT/etc/{cron.daily,rc.d/init.d,sysconfig,pam.d,security} \
263         $RPM_BUILD_ROOT%{_sysconfdir}/{mail,sasl} \
264         $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/postfix,%{_prefix}/lib}\
265         $RPM_BUILD_ROOT{%{_includedir}/postfix,%{_mandir}/man{1,5,8}} \
266         $RPM_BUILD_ROOT%{_var}/spool/postfix/{active,corrupt,deferred,maildrop,private,saved,bounce,defer,incoming,pid,public}
267
268 rm -f {html,man}/Makefile.in conf/{LICENSE,main.cf.default}
269
270 install bin/* $RPM_BUILD_ROOT%{_sbindir}
271 install libexec/* $RPM_BUILD_ROOT%{_libdir}/postfix
272 ln $RPM_BUILD_ROOT%{_libdir}/postfix/smtp $RPM_BUILD_ROOT%{_libdir}/postfix/lmtp
273 ln $RPM_BUILD_ROOT%{_libdir}/postfix/qmgr $RPM_BUILD_ROOT%{_libdir}/postfix/nqmgr
274 install conf/* $RPM_BUILD_ROOT%{_sysconfdir}/mail
275 sed -e's,^daemon_directory = .*,daemon_directory = %{_libdir}/postfix,' \
276         conf/main.cf > $RPM_BUILD_ROOT%{_sysconfdir}/mail/main.cf
277
278 for f in dns global master util ; do
279         install lib/lib${f}.a $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so.1
280         ln -sf lib${f}.so.1 $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so
281 done
282 install lib/dict*.so $RPM_BUILD_ROOT%{_libdir}/postfix
283 install include/*.h $RPM_BUILD_ROOT%{_includedir}/postfix
284
285 tar cf - -C man . | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
286
287 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mail/aliases
288 install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/postfix
289 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/postfix
290 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/postfix
291 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
292 install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/smtp
293 install auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail
294 install auxiliary/qshape/qshape.pl $RPM_BUILD_ROOT%{_bindir}/qshape
295
296 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
297 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/newaliases
298 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT/usr/lib/sendmail
299
300 touch $RPM_BUILD_ROOT%{_sysconfdir}/mail/\
301         {aliases,access,canonical,relocated,transport,virtual}{,.db}
302
303 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
304
305 > $RPM_BUILD_ROOT/var/spool/postfix/.nofinger
306
307 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/mail/makedefs.out $RPM_BUILD_ROOT%{_mandir}/cat*
308
309 %clean
310 rm -rf $RPM_BUILD_ROOT
311
312 %pre
313 %groupadd -g 62 postfix
314 %groupadd -g 63 maildrop
315 %useradd -u 62 -d /var/spool/postfix -s /bin/false -c "Postfix User" -g postfix postfix
316
317 %post
318 /sbin/ldconfig
319 if ! grep -q "^postmaster:" %{_sysconfdir}/mail/aliases; then
320 echo "Adding Entry for postmaster in %{_sysconfdir}/mail/aliases" >&2
321 echo "postmaster: root" >>%{_sysconfdir}/mail/aliases
322 fi
323 if [ "$1" = "1" ]; then
324         # only on installation, not upgrade
325         if ! grep -q "^myhostname" %{_sysconfdir}/mail/main.cf; then
326                 postconf -e myhostname=`/bin/hostname -f`
327         fi
328 else
329         postfix upgrade-configuration
330 fi
331
332 newaliases
333 /sbin/chkconfig --add postfix
334 %service postfix restart "postfix daemon"
335
336 %preun
337 if [ "$1" = "0" ]; then
338         %service postfix stop
339         /sbin/chkconfig --del postfix
340 fi
341
342 %postun
343 /sbin/ldconfig
344 if [ "$1" = "0" ]; then
345         %groupremove maildrop
346         %userremove postfix
347         %groupremove postfix
348 fi
349
350 %files
351 %defattr(644,root,root,755)
352 %doc html *README COMPATIBILITY HISTORY LICENSE RELEASE_NOTES TLS_*
353 %doc README_FILES/*README
354 %doc examples/smtpd-policy
355 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/access
356 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/aliases
357 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/canonical
358 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/generic
359 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/pcre_table
360 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/regexp_table
361 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/relocated
362 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/transport
363 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/virtual
364 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/header_checks
365 #%ghost %{_sysconfdir}/mail/*.db
366 %dir %{_sysconfdir}/mail
367 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/dynamicmaps.cf
368 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/main.cf
369 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/master.cf
370 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/postfix-script
371 %attr(755,root,root) %{_sysconfdir}/mail/post-install
372 %{_sysconfdir}/mail/postfix-files
373 %attr(740,root,root) /etc/cron.daily/postfix
374 %attr(754,root,root) /etc/rc.d/init.d/postfix
375 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postfix
376 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
377 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
378 %{?with_sasl:%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl/smtpd.conf}
379 %attr(755,root,root) %{_libdir}/libpostfix-*.so.*
380 %attr(755,root,root) %{_bindir}/mailq
381 %attr(755,root,root) %{_bindir}/newaliases
382 %attr(755,root,root) %{_bindir}/rmail
383 %attr(755,root,root) %{_sbindir}/s*
384 %attr(755,root,root) %{_sbindir}/postfix
385 %attr(755,root,root) %{_sbindir}/postalias
386 %attr(755,root,root) %{_sbindir}/postkick
387 %attr(755,root,root) %{_sbindir}/postl*
388 %attr(755,root,root) %{_sbindir}/postc*
389 %attr(755,root,root) %{_sbindir}/postmap
390 %attr(2755,root,maildrop) %{_sbindir}/postqueue
391 %attr(755,root,root) %{_sbindir}/postsuper
392 %attr(2755,root,maildrop) %{_sbindir}/postdrop
393 %attr(755,root,root) %{_sbindir}/qmqp-sink
394 %attr(755,root,root) %{_sbindir}/qmqp-source
395 %attr(755,root,root) /usr/lib/sendmail
396 %dir %{_libdir}/postfix
397 %attr(755,root,root) %{_libdir}/postfix/[!d]*
398 %attr(755,root,root) %{_libdir}/postfix/discard
399 %attr(755,root,root) %dir %{_var}/spool/postfix
400 %attr(700,postfix,root) %dir %{_var}/spool/postfix/active
401 %attr(700,postfix,root) %dir %{_var}/spool/postfix/bounce
402 %attr(700,postfix,root) %dir %{_var}/spool/postfix/corrupt
403 %attr(700,postfix,root) %dir %{_var}/spool/postfix/defer
404 %attr(700,postfix,root) %dir %{_var}/spool/postfix/deferred
405 %attr(700,postfix,root) %dir %{_var}/spool/postfix/incoming
406 %attr(1730,postfix,maildrop) %dir %{_var}/spool/postfix/maildrop
407 %attr(755,postfix,root) %dir %{_var}/spool/postfix/pid
408 %attr(700,postfix,root) %dir %{_var}/spool/postfix/private
409 %attr(710,postfix,maildrop) %dir %{_var}/spool/postfix/public
410 %attr(700,postfix,root) %dir %{_var}/spool/postfix/saved
411 %attr(644,postfix,root) %{_var}/spool/postfix/.nofinger
412 %{_mandir}/man*/*
413
414 %files devel
415 %defattr(644,root,root,755)
416 %attr(755,root,root) %{_libdir}/libpostfix-*.so
417 %{_includedir}/postfix
418
419 %if %{with ldap}
420 %files dict-ldap
421 %defattr(644,root,root,755)
422 %attr(755,root,root) %{_libdir}/postfix/dict_ldap.so
423 %endif
424
425 %if %{with mysql}
426 %files dict-mysql
427 %defattr(644,root,root,755)
428 %attr(755,root,root) %{_libdir}/postfix/dict_mysql.so
429 %endif
430
431 %files dict-pcre
432 %defattr(644,root,root,755)
433 %attr(755,root,root) %{_libdir}/postfix/dict_pcre.so
434
435 %if %{with pgsql}
436 %files dict-pgsql
437 %defattr(644,root,root,755)
438 %attr(755,root,root) %{_libdir}/postfix/dict_pgsql.so
439 %endif
440
441 %files qshape
442 %defattr(644,root,root,755)
443 %attr(755,root,root) %{_bindir}/qshape
This page took 0.499083 seconds and 4 git commands to generate.