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