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
12 %bcond_without epoll # disable epoll for 2.4 kernels
15 Summary: Postfix Mail Transport Agent
16 Summary(cs.UTF-8): Postfix - program pro přepravu pošty (MTA)
17 Summary(es.UTF-8): Postfix - Un MTA (Mail Transport Agent) de alto desempeño
18 Summary(fr.UTF-8): Agent de transport de courrier Postfix
19 Summary(pl.UTF-8): Serwer SMTP Postfix
20 Summary(pt_BR.UTF-8): Postfix - Um MTA (Mail Transport Agent) de alto desempenho
21 Summary(sk.UTF-8): Agent prenosu pošty Postfix
26 License: distributable
27 Group: Networking/Daemons
28 Source0: ftp://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
29 # Source0-md5: 95a559c509081fdd07d78eafd4f4c3b4
30 Source1: %{name}.aliases
33 Source4: %{name}.sysconfig
36 Source7: http://vda.sourceforge.net/VDA/%{name}-%{vda_ver}-vda-ng.patch.gz
37 # Source7-md5: bba9426f8ae9d8603861ce782f117760
38 Source8: %{name}-bounce.cf.pl
39 # http://postfix.state-of-mind.de/bounce-templates/bounce.de-DE.cf
40 Source9: %{name}-bounce.cf.de
41 Source10: %{name}.monitrc
42 Patch0: %{name}-config.patch
43 Patch1: %{name}-conf_msg.patch
44 Patch2: %{name}-dynamicmaps.patch
45 Patch3: %{name}-master.cf_cyrus.patch
46 # from http://akson.sgh.waw.pl/~chopin/unix/postfix-2.1.5-header_if_reject.diff
47 Patch4: %{name}-header_if_reject.patch
48 Patch5: %{name}-log-proxy-rejects.patch
49 Patch6: %{name}-ident.patch
50 Patch7: %{name}-lib64.patch
51 Patch8: %{name}-conf.patch
52 Patch9: %{name}-dictname.patch
53 Patch10: %{name}-make-jN.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.0.12}
61 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.7l}
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
82 %{?with_cdb:Requires:tinycdb}
83 Suggests: cyrus-sasl-saslauthd
84 Provides: group(postfix)
86 Provides: user(postfix)
88 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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.
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.
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.
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
113 Seppur IBM supporti lo sviluppo di Postfix, non controlla la sua
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.
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.
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.
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.
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.
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.
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}
150 Header files to build additional map types for Postfix.
152 %description devel -l pl.UTF-8
153 Pliki nagłówkowe do tworzenia dodatkowych typów map dla Postfiksa.
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.6
162 %description dict-ldap
163 This package provides support for LDAP maps in Postfix.
165 %description dict-ldap -l pl.UTF-8
166 Ten pakiet dodaje obsługę map LDAP do Postfiksa.
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}
174 %description dict-mysql
175 This package provides support for MySQL maps in Postfix.
177 %description dict-mysql -l pl.UTF-8
178 Ten pakiet dodaje obsługę map MySQL do Postfiksa.
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}
186 %description dict-pcre
187 This package provides support for PCRE maps in Postfix.
189 %description dict-pcre -l pl.UTF-8
190 Ten pakiet dodaje obsługę map PCRE do Postfiksa.
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}
198 %description dict-pgsql
199 This package provides support for PostgreSQL maps in Postfix.
201 %description dict-pgsql -l pl.UTF-8
202 Ten pakiet dodaje obsługę map PostgreSQL do Postfiksa.
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}
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).
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ę
225 %package -n monit-rc-%{name}
226 Summary: monit support for Postfix
227 Summary(pl.UTF-8): Wsparcie monita dla Postfiksa
228 Group: Applications/System
229 Requires: %{name} = %{epoch}:%{version}-%{release}
232 %description -n monit-rc-%{name}
233 monitrc file for monitoring Postfix.
235 %description -n monit-rc-%{name} -l pl.UTF-8
236 Plik monitrc do monitorowania serwera Postfix.
240 %{?with_vda:zcat %{SOURCE7} | patch -p1 -s}
242 find -type f | xargs sed -i -e 's|/etc/postfix|/etc/mail|g'
248 %{?with_hir:%patch4 -p0}
251 sed -i '/scache_clnt_create/s/server/var_scache_service/' src/global/scache_clnt.c
252 %if "%{_lib}" == "lib64"
260 sed -i 's/ifdef SNAPSHOT/if 1/' src/util/dict_open.c
264 %{__make} -f Makefile.init makefiles
270 OPT="%{rpmcflags} -D_FILE_OFFSET_BITS=64" \
271 %{!?with_ldap:LDAPSO=""} \
272 %{!?with_mysql:MYSQLSO=""} \
273 %{!?with_pgsql:PGSQLSO=""} \
274 CCARGS="%{?with_epoll:-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" \
275 AUXLIBS="-ldb -lresolv %{?with_sasl:-lsasl} %{?with_ssl:-lssl -lcrypto} %{?with_cdb:-lcdb} -lpcre"
278 rm -rf $RPM_BUILD_ROOT
279 install -d $RPM_BUILD_ROOT/etc/{cron.daily,rc.d/init.d,sysconfig,pam.d,security,monit} \
280 $RPM_BUILD_ROOT%{_sysconfdir}/{mail,sasl} \
281 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/postfix,/usr/lib}\
282 $RPM_BUILD_ROOT{%{_includedir}/postfix,%{_mandir}} \
283 $RPM_BUILD_ROOT%{_var}/spool/postfix/{active,corrupt,deferred,maildrop,private,saved,bounce,defer,incoming,pid,public} \
284 $RPM_BUILD_ROOT%{_var}/lib/postfix
285 rm -f html/Makefile.in conf/{LICENSE,main.cf.default}
287 install bin/* $RPM_BUILD_ROOT%{_sbindir}
288 install libexec/* $RPM_BUILD_ROOT%{_libdir}/postfix
289 ln $RPM_BUILD_ROOT%{_libdir}/postfix/smtp $RPM_BUILD_ROOT%{_libdir}/postfix/lmtp
290 ln $RPM_BUILD_ROOT%{_libdir}/postfix/qmgr $RPM_BUILD_ROOT%{_libdir}/postfix/nqmgr
291 install conf/* $RPM_BUILD_ROOT%{_sysconfdir}/mail
292 sed -e's,^daemon_directory = .*,daemon_directory = %{_libdir}/postfix,' \
293 conf/main.cf > $RPM_BUILD_ROOT%{_sysconfdir}/mail/main.cf
295 for f in dns global master util ; do
296 install lib/lib${f}.a $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so.1
297 ln -sf lib${f}.so.1 $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so
299 install lib/dict*.so $RPM_BUILD_ROOT%{_libdir}/postfix
300 install include/*.h $RPM_BUILD_ROOT%{_includedir}/postfix
302 cp -a man/man* $RPM_BUILD_ROOT%{_mandir}
304 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mail/aliases
305 install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/postfix
306 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/postfix
307 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/postfix
308 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
309 install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/smtp
310 install %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/mail/bounce.cf.pl
311 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/mail/bounce.cf.de
312 install %{SOURCE10} $RPM_BUILD_ROOT/etc/monit/%{name}.monitrc
313 install auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail
314 install auxiliary/qshape/qshape.pl $RPM_BUILD_ROOT%{_bindir}/qshape
316 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
317 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/newaliases
318 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT/usr/lib/sendmail
320 touch $RPM_BUILD_ROOT%{_sysconfdir}/mail/\
321 {aliases,access,canonical,relocated,transport,virtual}{,.db}
323 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
325 > $RPM_BUILD_ROOT/var/spool/postfix/.nofinger
327 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/mail/makedefs.out
328 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/mail/TLS_LICENSE
331 rm -rf $RPM_BUILD_ROOT
334 %groupadd -g 62 postfix
335 %groupadd -g 63 maildrop
336 %useradd -u 62 -d /var/spool/postfix -s /bin/false -c "Postfix User" -g postfix postfix
340 if ! grep -q "^postmaster:" %{_sysconfdir}/mail/aliases; then
341 echo "Adding Entry for postmaster in %{_sysconfdir}/mail/aliases" >&2
342 echo "postmaster: root" >>%{_sysconfdir}/mail/aliases
344 if [ "$1" -gt "1" ]; then
345 postfix upgrade-configuration
349 /sbin/chkconfig --add postfix
350 %service postfix restart "postfix daemon"
353 if [ "$1" = "0" ]; then
354 %service postfix stop
355 /sbin/chkconfig --del postfix
360 if [ "$1" = "0" ]; then
361 %groupremove maildrop
367 %defattr(644,root,root,755)
368 %doc html COMPATIBILITY HISTORY LICENSE RELEASE_NOTES* TLS_*
369 %doc README_FILES/*README
370 %doc examples/smtpd-policy
371 %dir %{_sysconfdir}/mail
372 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/access
373 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/aliases
374 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/bounce.cf.default
375 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/bounce.cf.de
376 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/bounce.cf.pl
377 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/canonical
378 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/generic
379 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/regexp_table
380 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/relocated
381 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/transport
382 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/virtual
383 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/header_checks
384 #%ghost %{_sysconfdir}/mail/*.db
385 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/dynamicmaps.cf
386 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/main.cf
387 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/master.cf
388 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/postfix-script
389 %attr(755,root,root) %{_sysconfdir}/mail/post-install
390 %{_sysconfdir}/mail/postfix-files
391 %attr(740,root,root) /etc/cron.daily/postfix
392 %attr(754,root,root) /etc/rc.d/init.d/postfix
393 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postfix
394 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
395 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
396 %{?with_sasl:%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl/smtpd.conf}
397 %attr(755,root,root) %{_libdir}/libpostfix-*.so.*
398 %attr(755,root,root) %{_bindir}/mailq
399 %attr(755,root,root) %{_bindir}/newaliases
400 %attr(755,root,root) %{_bindir}/rmail
401 %attr(755,root,root) %{_sbindir}/s*
402 %attr(755,root,root) %{_sbindir}/postfix
403 %attr(755,root,root) %{_sbindir}/postalias
404 %attr(755,root,root) %{_sbindir}/postkick
405 %attr(755,root,root) %{_sbindir}/postl*
406 %attr(755,root,root) %{_sbindir}/postc*
407 %attr(755,root,root) %{_sbindir}/postmap
408 %attr(2755,root,maildrop) %{_sbindir}/postqueue
409 %attr(755,root,root) %{_sbindir}/postsuper
410 %attr(2755,root,maildrop) %{_sbindir}/postdrop
411 %attr(755,root,root) %{_sbindir}/qmqp-sink
412 %attr(755,root,root) %{_sbindir}/qmqp-source
413 %attr(755,root,root) /usr/lib/sendmail
414 %dir %{_libdir}/postfix
415 %attr(755,root,root) %{_libdir}/postfix/[!d]*
416 %attr(755,root,root) %{_libdir}/postfix/discard
417 %attr(755,root,root) %dir %{_var}/spool/postfix
418 %attr(700,postfix,root) %dir %{_var}/spool/postfix/active
419 %attr(700,postfix,root) %dir %{_var}/spool/postfix/bounce
420 %attr(700,postfix,root) %dir %{_var}/spool/postfix/corrupt
421 %attr(700,postfix,root) %dir %{_var}/spool/postfix/defer
422 %attr(700,postfix,root) %dir %{_var}/spool/postfix/deferred
423 %attr(700,postfix,root) %dir %{_var}/spool/postfix/incoming
424 %attr(1730,postfix,maildrop) %dir %{_var}/spool/postfix/maildrop
425 %attr(755,postfix,root) %dir %{_var}/spool/postfix/pid
426 %attr(700,postfix,root) %dir %{_var}/spool/postfix/private
427 %attr(710,postfix,maildrop) %dir %{_var}/spool/postfix/public
428 %attr(700,postfix,root) %dir %{_var}/spool/postfix/saved
429 %attr(644,postfix,root) %{_var}/spool/postfix/.nofinger
430 %attr(700,postfix,root) %{_var}/lib/postfix
431 %{_mandir}/man1/mailq.1*
432 %{_mandir}/man1/newaliases.1*
433 %{_mandir}/man1/post*.1*
434 %{_mandir}/man1/qmqp-*.1*
435 %{_mandir}/man1/sendmail.1*
436 %{_mandir}/man1/smtp-*.1*
437 %{_mandir}/man5/access.5*
438 %{_mandir}/man5/aliases.5*
439 %{_mandir}/man5/body_checks.5*
440 %{_mandir}/man5/bounce.5*
441 %{_mandir}/man5/canonical.5*
442 %{_mandir}/man5/cidr_table.5*
443 %{_mandir}/man5/generic.5*
444 %{_mandir}/man5/header_checks.5*
445 %{_mandir}/man5/master.5*
446 %{_mandir}/man5/nisplus_table.5*
447 %{_mandir}/man5/postconf.5*
448 %{_mandir}/man5/regexp_table.5*
449 %{_mandir}/man5/relocated.5*
450 %{_mandir}/man5/tcp_table.5*
451 %{_mandir}/man5/transport.5*
452 %{_mandir}/man5/virtual.5*
456 %defattr(644,root,root,755)
457 %attr(755,root,root) %{_libdir}/libpostfix-*.so
458 %{_includedir}/postfix
462 %defattr(644,root,root,755)
463 %attr(755,root,root) %{_libdir}/postfix/dict_ldap.so
464 %{_mandir}/man5/ldap_table.5*
469 %defattr(644,root,root,755)
470 %attr(755,root,root) %{_libdir}/postfix/dict_mysql.so
471 %{_mandir}/man5/mysql_table.5*
475 %defattr(644,root,root,755)
476 %attr(755,root,root) %{_libdir}/postfix/dict_pcre.so
477 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/pcre_table
478 %{_mandir}/man5/pcre_table.5*
482 %defattr(644,root,root,755)
483 %attr(755,root,root) %{_libdir}/postfix/dict_pgsql.so
484 %{_mandir}/man5/pgsql_table.5*
488 %defattr(644,root,root,755)
489 %attr(755,root,root) %{_bindir}/qshape
490 %{_mandir}/man1/qshape.1*
492 %files -n monit-rc-%{name}
493 %defattr(644,root,root,755)
494 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/monit/%{name}.monitrc