3 %bcond_without ldap # without LDAP map module
4 %bcond_without mysql # without MySQL map module
5 %bcond_without pgsql # without PostgreSQL map module
6 %bcond_without sasl # without SMTP AUTH support
7 %bcond_without ssl # without SSL/TLS support
8 %bcond_without cdb # without cdb map support
9 %bcond_without vda # without VDA patch
10 %bcond_with hir # with Beeth's header_if_reject patch
11 %bcond_with tcp # with unofficial tcp: lookup table
14 Summary: Postfix Mail Transport Agent
15 Summary(cs.UTF-8): Postfix - program pro přepravu pošty (MTA)
16 Summary(es.UTF-8): Postfix - Un MTA (Mail Transport Agent) de alto desempeño
17 Summary(fr.UTF-8): Agent de transport de courrier Postfix
18 Summary(pl.UTF-8): Serwer SMTP Postfix
19 Summary(pt_BR.UTF-8): Postfix - Um MTA (Mail Transport Agent) de alto desempenho
20 Summary(sk.UTF-8): Agent prenosu pošty Postfix
25 License: distributable
26 Group: Networking/Daemons
27 Source0: ftp://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
28 # Source0-md5: 95a559c509081fdd07d78eafd4f4c3b4
29 Source1: %{name}.aliases
32 Source4: %{name}.sysconfig
35 Source7: http://vda.sourceforge.net/VDA/%{name}-%{vda_ver}-vda-ng.patch.gz
36 # Source7-md5: bba9426f8ae9d8603861ce782f117760
37 Source8: %{name}-bounce.cf.pl
38 # http://postfix.state-of-mind.de/bounce-templates/bounce.de-DE.cf
39 Source9: %{name}-bounce.cf.de
40 Source10: %{name}.monitrc
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}-log-proxy-rejects.patch
48 Patch6: %{name}-ident.patch
49 Patch7: %{name}-lib64.patch
50 Patch8: %{name}-conf.patch
51 Patch9: %{name}-dictname.patch
52 URL: http://www.postfix.org/
53 %{?with_sasl:BuildRequires: cyrus-sasl-devel}
54 BuildRequires: db-devel
55 # getifaddrs() with IPv6 support
56 BuildRequires: glibc-devel >= 6:2.3.4
57 %{?with_mysql:BuildRequires: mysql-devel}
58 %{?with_ldap:BuildRequires: openldap-devel >= 2.0.12}
59 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.7l}
60 BuildRequires: pcre-devel
61 %{?with_pgsql:BuildRequires: postgresql-devel}
62 BuildRequires: rpmbuild(macros) >= 1.268
63 BuildRequires: sed >= 4.0
64 %{?with_cdb:BuildRequires: tinycdb-devel}
65 %{?with_mysql:BuildRequires: zlib-devel}
66 Requires(post): /bin/hostname
67 Requires(post,postun): /sbin/ldconfig
68 Requires(post,preun): /sbin/chkconfig
69 Requires(postun): /usr/sbin/groupdel
70 Requires(postun): /usr/sbin/userdel
71 Requires(pre): /bin/id
72 Requires(pre): /usr/bin/getgid
73 Requires(pre): /usr/sbin/groupadd
74 Requires(pre): /usr/sbin/useradd
75 Requires: /sbin/chkconfig
80 %{?with_cdb:Requires:tinycdb}
81 Suggests: cyrus-sasl-saslauthd
82 Provides: group(postfix)
84 Provides: user(postfix)
86 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89 Postfix is attempt to provide an alternative to the widely-used
90 Sendmail program. Postfix attempts to be fast, easy to administer, and
91 hopefully secure, while at the same time being sendmail compatible
92 enough to not upset your users. This version has IPv6 support.
94 %description -l es.UTF-8
95 Postfix es una alternativa para el mundialmente utilizado sendmail. Si
96 desea tener un servidor SMTP *rápido*, debe instalar este paquete.
98 %description -l fr.UTF-8
99 Postfix (voir http://www.postfix.org/) se veut une alternative à
100 sendmail, responsable de l'acheminement de 70% des courriers
101 électroniques sur Internet. IBM en a suppotré le développement, mais
102 ne contrôle pas son évolution. Le but est d'installer Postfix sur le
103 plus grand nombre de systèmes possible. Dans cette optique, il a été
104 écrit pour être totalement sous le contrôle de l'utilisateur.
106 %description -l it.UTF-8
107 Postfix (http://www.postfix.org/) e' un'alternativa al programma
108 sendmail utilizzato per la gestione del 70 per cento della posta
111 Seppur IBM supporti lo sviluppo di Postfix, non controlla la sua
114 Consultate la pagine web http://www.moongroup.com/how-to.phtml nella
115 quale troverete le indicazioni per una corretta installazione e
116 configurazione di questo programma.
118 %description -l pl.UTF-8
119 Postfix jest próbą dostarczenia alternatywnego MTA w stosunku do
120 szeroko używanego sendmaila. Postfix w zamierzeniu ma być szybki,
121 łatwy w administrowaniu, bezpieczny oraz ma być na tyle kompatybilny z
122 sendmailem by nie denerwować użytkowników. Ta wersja obsługuje IPv6.
124 %description -l pt_BR.UTF-8
125 O Postfix é uma alternativa para o mundialmente utilizado sendmail. Se
126 você deseja um servidor SMTP *rápido*, instale este pacote.
128 %description -l sk.UTF-8
129 Postfix (pozri http://www.postfix.org/) má za cieľ byť alternatívou k
130 široko rozšírenému programu sendmail, zodpovednému za 70% všetkej
131 elektronickej pošty doručenej na Internete.
133 Aj keď IBM podporovala vývoj Postfixu, zdržiava sa vplyvu na jeho
134 vývoj. Cieľom je inštalácia Postfixu na čo najväčšom počte systémov.
135 Do tohoto momentu je softvér poskytovaný bez ovplyvňovania, takže sa
136 môže vyvíjať podľa jeho používateľov.
138 Určite si prečítajte http://www.moongroup.com/how-to.phtml, kde sú
139 popísané kroky potrebné pred a po inštalácii Postfixu.
142 Summary: Postfix loadable modules development package
143 Summary(pl.UTF-8): Pakiet dla programistów ładowanych modułów do postfiksa
144 Group: Development/Libraries
145 Requires: %{name} = %{epoch}:%{version}-%{release}
148 Header files to build additional map types for Postfix.
150 %description devel -l pl.UTF-8
151 Pliki nagłówkowe do tworzenia dodatkowych typów map dla Postfiksa.
154 Summary: LDAP map support for Postfix
155 Summary(pl.UTF-8): Obsługa map LDAP dla Postfiksa
156 Group: Networking/Daemons
157 Requires: %{name} = %{epoch}:%{version}-%{release}
158 Requires: openldap >= 2.3.6
160 %description dict-ldap
161 This package provides support for LDAP maps in Postfix.
163 %description dict-ldap -l pl.UTF-8
164 Ten pakiet dodaje obsługę map LDAP do Postfiksa.
167 Summary: MySQL map support for Postfix
168 Summary(pl.UTF-8): Obsługa map MySQL dla Postfiksa
169 Group: Networking/Daemons
170 Requires: %{name} = %{epoch}:%{version}-%{release}
172 %description dict-mysql
173 This package provides support for MySQL maps in Postfix.
175 %description dict-mysql -l pl.UTF-8
176 Ten pakiet dodaje obsługę map MySQL do Postfiksa.
179 Summary: PCRE map support for Postfix
180 Summary(pl.UTF-8): Obsługa map PCRE dla Postfiksa
181 Group: Networking/Daemons
182 Requires: %{name} = %{epoch}:%{version}-%{release}
184 %description dict-pcre
185 This package provides support for PCRE maps in Postfix.
187 %description dict-pcre -l pl.UTF-8
188 Ten pakiet dodaje obsługę map PCRE do Postfiksa.
191 Summary: PostgreSQL map support for Postfix
192 Summary(pl.UTF-8): Obsługa map PostgreSQL dla Postfiksa
193 Group: Networking/Daemons
194 Requires: %{name} = %{epoch}:%{version}-%{release}
196 %description dict-pgsql
197 This package provides support for PostgreSQL maps in Postfix.
199 %description dict-pgsql -l pl.UTF-8
200 Ten pakiet dodaje obsługę map PostgreSQL do Postfiksa.
203 Summary: qshape - Print Postfix queue domain and age distribution
204 Summary(pl.UTF-8): qshape - wypisywanie rozkładu domen i wieku z kolejki Postfiksa
205 Group: Networking/Daemons
206 Requires: %{name} = %{epoch}:%{version}-%{release}
209 The qshape program helps the administrator understand the Postfix
210 queue message distribution in time and by sender domain or recipient
211 domain. The program needs read access to the queue directories and
212 queue files, so it must run as the superuser or the mail_owner
213 specified in main.cf (typically postfix).
215 %description qshape -l pl.UTF-8
216 Program qshape pomaga administratorowi zrozumieć rozkład kolejki
217 wiadomości Postfiksa w czasie i w zależności od domeny nadawcy lub
218 adresata. Program wymaga prawa odczytu do katalogów kolejki i plików
219 kolejki, więc musi być uruchamiany przez superużytkownika lub
220 użytkownika mail_owner podanego w main.cf (zwykle nazywającego się
223 %package -n monit-rc-%{name}
224 Summary: monit support for Postfix
225 Summary(pl.UTF-8): Wsparcie monita dla Postfiksa
226 Group: Applications/System
227 Requires: %{name} = %{epoch}:%{version}-%{release}
230 %description -n monit-rc-%{name}
231 monitrc file for monitoring Postfix.
233 %description -n monit-rc-%{name} -l pl.UTF-8
234 Plik monitrc do monitorowania serwera Postfix.
238 %{?with_vda:zcat %{SOURCE7} | patch -p1 -s}
240 find -type f | xargs sed -i -e 's|/etc/postfix|/etc/mail|g'
246 %{?with_hir:%patch4 -p0}
249 sed -i '/scache_clnt_create/s/server/var_scache_service/' src/global/scache_clnt.c
250 %if "%{_lib}" == "lib64"
257 sed -i 's/ifdef SNAPSHOT/if 1/' src/util/dict_open.c
261 %{__make} -f Makefile.init makefiles
267 OPT="%{rpmcflags} -D_FILE_OFFSET_BITS=64" \
268 %{!?with_ldap:LDAPSO=""} \
269 %{!?with_mysql:MYSQLSO=""} \
270 %{!?with_pgsql:PGSQLSO=""} \
271 CCARGS="-DNO_EPOLL %{?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} %{?with_ssl:-DUSE_TLS} -DMAX_DYNAMIC_MAPS %{?with_cdb:-DHAS_CDB} -DHAVE_GETIFADDRS" \
272 AUXLIBS="-ldb -lresolv %{?with_sasl:-lsasl} %{?with_ssl:-lssl -lcrypto} %{?with_cdb:-lcdb} -lpcre"
275 rm -rf $RPM_BUILD_ROOT
276 install -d $RPM_BUILD_ROOT/etc/{cron.daily,rc.d/init.d,sysconfig,pam.d,security,monit} \
277 $RPM_BUILD_ROOT%{_sysconfdir}/{mail,sasl} \
278 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/postfix,/usr/lib}\
279 $RPM_BUILD_ROOT{%{_includedir}/postfix,%{_mandir}} \
280 $RPM_BUILD_ROOT%{_var}/spool/postfix/{active,corrupt,deferred,maildrop,private,saved,bounce,defer,incoming,pid,public} \
281 $RPM_BUILD_ROOT%{_var}/lib/postfix
282 rm -f html/Makefile.in conf/{LICENSE,main.cf.default}
284 install bin/* $RPM_BUILD_ROOT%{_sbindir}
285 install libexec/* $RPM_BUILD_ROOT%{_libdir}/postfix
286 ln $RPM_BUILD_ROOT%{_libdir}/postfix/smtp $RPM_BUILD_ROOT%{_libdir}/postfix/lmtp
287 ln $RPM_BUILD_ROOT%{_libdir}/postfix/qmgr $RPM_BUILD_ROOT%{_libdir}/postfix/nqmgr
288 install conf/* $RPM_BUILD_ROOT%{_sysconfdir}/mail
289 sed -e's,^daemon_directory = .*,daemon_directory = %{_libdir}/postfix,' \
290 conf/main.cf > $RPM_BUILD_ROOT%{_sysconfdir}/mail/main.cf
292 for f in dns global master util ; do
293 install lib/lib${f}.a $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so.1
294 ln -sf lib${f}.so.1 $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so
296 install lib/dict*.so $RPM_BUILD_ROOT%{_libdir}/postfix
297 install include/*.h $RPM_BUILD_ROOT%{_includedir}/postfix
299 cp -a man/man* $RPM_BUILD_ROOT%{_mandir}
301 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mail/aliases
302 install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/postfix
303 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/postfix
304 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/postfix
305 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
306 install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/smtp
307 install %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/mail/bounce.cf.pl
308 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/mail/bounce.cf.de
309 install %{SOURCE10} $RPM_BUILD_ROOT/etc/monit/%{name}.monitrc
310 install auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail
311 install auxiliary/qshape/qshape.pl $RPM_BUILD_ROOT%{_bindir}/qshape
313 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
314 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/newaliases
315 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT/usr/lib/sendmail
317 touch $RPM_BUILD_ROOT%{_sysconfdir}/mail/\
318 {aliases,access,canonical,relocated,transport,virtual}{,.db}
320 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
322 > $RPM_BUILD_ROOT/var/spool/postfix/.nofinger
324 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/mail/makedefs.out
325 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/mail/TLS_LICENSE
328 rm -rf $RPM_BUILD_ROOT
331 %groupadd -g 62 postfix
332 %groupadd -g 63 maildrop
333 %useradd -u 62 -d /var/spool/postfix -s /bin/false -c "Postfix User" -g postfix postfix
337 if ! grep -q "^postmaster:" %{_sysconfdir}/mail/aliases; then
338 echo "Adding Entry for postmaster in %{_sysconfdir}/mail/aliases" >&2
339 echo "postmaster: root" >>%{_sysconfdir}/mail/aliases
341 if [ "$1" -gt "1" ]; then
342 postfix upgrade-configuration
346 /sbin/chkconfig --add postfix
347 %service postfix restart "postfix daemon"
350 if [ "$1" = "0" ]; then
351 %service postfix stop
352 /sbin/chkconfig --del postfix
357 if [ "$1" = "0" ]; then
358 %groupremove maildrop
364 %defattr(644,root,root,755)
365 %doc html COMPATIBILITY HISTORY LICENSE RELEASE_NOTES* TLS_*
366 %doc README_FILES/*README
367 %doc examples/smtpd-policy
368 %dir %{_sysconfdir}/mail
369 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/access
370 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/aliases
371 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/bounce.cf.default
372 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/bounce.cf.de
373 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/bounce.cf.pl
374 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/canonical
375 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/generic
376 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/regexp_table
377 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/relocated
378 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/transport
379 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/virtual
380 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/header_checks
381 #%ghost %{_sysconfdir}/mail/*.db
382 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/dynamicmaps.cf
383 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/main.cf
384 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/master.cf
385 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/postfix-script
386 %attr(755,root,root) %{_sysconfdir}/mail/post-install
387 %{_sysconfdir}/mail/postfix-files
388 %attr(740,root,root) /etc/cron.daily/postfix
389 %attr(754,root,root) /etc/rc.d/init.d/postfix
390 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postfix
391 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
392 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
393 %{?with_sasl:%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl/smtpd.conf}
394 %attr(755,root,root) %{_libdir}/libpostfix-*.so.*
395 %attr(755,root,root) %{_bindir}/mailq
396 %attr(755,root,root) %{_bindir}/newaliases
397 %attr(755,root,root) %{_bindir}/rmail
398 %attr(755,root,root) %{_sbindir}/s*
399 %attr(755,root,root) %{_sbindir}/postfix
400 %attr(755,root,root) %{_sbindir}/postalias
401 %attr(755,root,root) %{_sbindir}/postkick
402 %attr(755,root,root) %{_sbindir}/postl*
403 %attr(755,root,root) %{_sbindir}/postc*
404 %attr(755,root,root) %{_sbindir}/postmap
405 %attr(2755,root,maildrop) %{_sbindir}/postqueue
406 %attr(755,root,root) %{_sbindir}/postsuper
407 %attr(2755,root,maildrop) %{_sbindir}/postdrop
408 %attr(755,root,root) %{_sbindir}/qmqp-sink
409 %attr(755,root,root) %{_sbindir}/qmqp-source
410 %attr(755,root,root) /usr/lib/sendmail
411 %dir %{_libdir}/postfix
412 %attr(755,root,root) %{_libdir}/postfix/[!d]*
413 %attr(755,root,root) %{_libdir}/postfix/discard
414 %attr(755,root,root) %dir %{_var}/spool/postfix
415 %attr(700,postfix,root) %dir %{_var}/spool/postfix/active
416 %attr(700,postfix,root) %dir %{_var}/spool/postfix/bounce
417 %attr(700,postfix,root) %dir %{_var}/spool/postfix/corrupt
418 %attr(700,postfix,root) %dir %{_var}/spool/postfix/defer
419 %attr(700,postfix,root) %dir %{_var}/spool/postfix/deferred
420 %attr(700,postfix,root) %dir %{_var}/spool/postfix/incoming
421 %attr(1730,postfix,maildrop) %dir %{_var}/spool/postfix/maildrop
422 %attr(755,postfix,root) %dir %{_var}/spool/postfix/pid
423 %attr(700,postfix,root) %dir %{_var}/spool/postfix/private
424 %attr(710,postfix,maildrop) %dir %{_var}/spool/postfix/public
425 %attr(700,postfix,root) %dir %{_var}/spool/postfix/saved
426 %attr(644,postfix,root) %{_var}/spool/postfix/.nofinger
427 %attr(700,postfix,root) %{_var}/lib/postfix
428 %{_mandir}/man1/mailq.1*
429 %{_mandir}/man1/newaliases.1*
430 %{_mandir}/man1/post*.1*
431 %{_mandir}/man1/qmqp-*.1*
432 %{_mandir}/man1/sendmail.1*
433 %{_mandir}/man1/smtp-*.1*
434 %{_mandir}/man5/access.5*
435 %{_mandir}/man5/aliases.5*
436 %{_mandir}/man5/body_checks.5*
437 %{_mandir}/man5/bounce.5*
438 %{_mandir}/man5/canonical.5*
439 %{_mandir}/man5/cidr_table.5*
440 %{_mandir}/man5/generic.5*
441 %{_mandir}/man5/header_checks.5*
442 %{_mandir}/man5/master.5*
443 %{_mandir}/man5/nisplus_table.5*
444 %{_mandir}/man5/postconf.5*
445 %{_mandir}/man5/regexp_table.5*
446 %{_mandir}/man5/relocated.5*
447 %{_mandir}/man5/tcp_table.5*
448 %{_mandir}/man5/transport.5*
449 %{_mandir}/man5/virtual.5*
453 %defattr(644,root,root,755)
454 %attr(755,root,root) %{_libdir}/libpostfix-*.so
455 %{_includedir}/postfix
459 %defattr(644,root,root,755)
460 %attr(755,root,root) %{_libdir}/postfix/dict_ldap.so
461 %{_mandir}/man5/ldap_table.5*
466 %defattr(644,root,root,755)
467 %attr(755,root,root) %{_libdir}/postfix/dict_mysql.so
468 %{_mandir}/man5/mysql_table.5*
472 %defattr(644,root,root,755)
473 %attr(755,root,root) %{_libdir}/postfix/dict_pcre.so
474 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/pcre_table
475 %{_mandir}/man5/pcre_table.5*
479 %defattr(644,root,root,755)
480 %attr(755,root,root) %{_libdir}/postfix/dict_pgsql.so
481 %{_mandir}/man5/pgsql_table.5*
485 %defattr(644,root,root,755)
486 %attr(755,root,root) %{_bindir}/qshape
487 %{_mandir}/man1/qshape.1*
489 %files -n monit-rc-%{name}
490 %defattr(644,root,root,755)
491 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/monit/%{name}.monitrc