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