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 # with VDA patch
10 %bcond_with hir # with Beeth's header_if_reject patch
11 %bcond_with tcp # with unofficial tcp: lookup table
13 Summary: Postfix Mail Transport Agent
14 Summary(cs.UTF-8): Postfix - program pro přepravu pošty (MTA)
15 Summary(es.UTF-8): Postfix - Un MTA (Mail Transport Agent) de alto desempeño
16 Summary(fr.UTF-8): Agent de transport de courrier Postfix
17 Summary(pl.UTF-8): Serwer SMTP Postfix
18 Summary(pt_BR.UTF-8): Postfix - Um MTA (Mail Transport Agent) de alto desempenho
19 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: ceba0cde05d12baa0ba2ed69fbb96b42
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: 35fa62c93091d42ab02f67d0614d7086
37 Patch0: %{name}-config.patch
38 Patch1: %{name}-conf_msg.patch
39 Patch2: %{name}-dynamicmaps.patch
40 Patch3: %{name}-master.cf_cyrus.patch
41 # from http://akson.sgh.waw.pl/~chopin/unix/postfix-2.1.5-header_if_reject.diff
42 Patch4: %{name}-header_if_reject.patch
43 Patch5: %{name}-log-proxy-rejects.patch
44 Patch6: %{name}-ident.patch
45 Patch7: %{name}-lib64.patch
46 Patch8: %{name}-conf.patch
47 Patch9: %{name}-dictname.patch
48 URL: http://www.postfix.org/
49 %{?with_sasl:BuildRequires: cyrus-sasl-devel}
50 BuildRequires: db-devel
51 # getifaddrs() with IPv6 support
52 BuildRequires: glibc-devel >= 6:2.3.4
53 %{?with_mysql:BuildRequires: mysql-devel}
54 %{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
55 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.8b}
56 BuildRequires: pcre-devel
57 %{?with_pgsql:BuildRequires: postgresql-devel}
58 BuildRequires: rpmbuild(macros) >= 1.268
59 BuildRequires: sed >= 4.0
60 %{?with_cdb:BuildRequires: tinycdb-devel}
61 %{?with_mysql:BuildRequires: zlib-devel}
62 Requires(post): /bin/hostname
63 Requires(post,postun): /sbin/ldconfig
64 Requires(post,preun): /sbin/chkconfig
65 Requires(postun): /usr/sbin/groupdel
66 Requires(postun): /usr/sbin/userdel
67 Requires(pre): /bin/id
68 Requires(pre): /usr/bin/getgid
69 Requires(pre): /usr/sbin/groupadd
70 Requires(pre): /usr/sbin/useradd
71 Requires: /sbin/chkconfig
76 %{?with_cdb:Requires:tinycdb}
77 Suggests: cyrus-sasl-saslauthd
78 Provides: group(postfix)
80 Provides: user(postfix)
82 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
85 Postfix is attempt to provide an alternative to the widely-used
86 Sendmail program. Postfix attempts to be fast, easy to administer, and
87 hopefully secure, while at the same time being sendmail compatible
88 enough to not upset your users. This version has IPv6 support.
90 %description -l es.UTF-8
91 Postfix es una alternativa para el mundialmente utilizado sendmail. Si
92 desea tener un servidor SMTP *rápido*, debe instalar este paquete.
94 %description -l fr.UTF-8
95 Postfix (voir http://www.postfix.org/) se veut une alternative à
96 sendmail, responsable de l'acheminement de 70% des courriers
97 électroniques sur Internet. IBM en a suppotré le développement, mais
98 ne contrôle pas son évolution. Le but est d'installer Postfix sur le
99 plus grand nombre de systèmes possible. Dans cette optique, il a été
100 écrit pour être totalement sous le contrôle de l'utilisateur.
102 %description -l it.UTF-8
103 Postfix (http://www.postfix.org/) e' un'alternativa al programma
104 sendmail utilizzato per la gestione del 70 per cento della posta
107 Seppur IBM supporti lo sviluppo di Postfix, non controlla la sua
110 Consultate la pagine web http://www.moongroup.com/how-to.phtml nella
111 quale troverete le indicazioni per una corretta installazione e
112 configurazione di questo programma.
114 %description -l pl.UTF-8
115 Postfix jest próbą dostarczenia alternatywnego MTA w stosunku do
116 szeroko używanego sendmaila. Postfix w zamierzeniu ma być szybki,
117 łatwy w administrowaniu, bezpieczny oraz ma być na tyle kompatybilny z
118 sendmailem by nie denerwować użytkowników. Ta wersja obsługuje IPv6.
120 %description -l pt_BR.UTF-8
121 O Postfix é uma alternativa para o mundialmente utilizado sendmail. Se
122 você deseja um servidor SMTP *rápido*, instale este pacote.
124 %description -l sk.UTF-8
125 Postfix (pozri http://www.postfix.org/) má za cieľ byť alternatívou k
126 široko rozšírenému programu sendmail, zodpovednému za 70% všetkej
127 elektronickej pošty doručenej na Internete.
129 Aj keď IBM podporovala vývoj Postfixu, zdržiava sa vplyvu na jeho
130 vývoj. Cieľom je inštalácia Postfixu na čo najväčšom počte systémov.
131 Do tohoto momentu je softvér poskytovaný bez ovplyvňovania, takže sa
132 môže vyvíjať podľa jeho používateľov.
134 Určite si prečítajte http://www.moongroup.com/how-to.phtml, kde sú
135 popísané kroky potrebné pred a po inštalácii Postfixu.
138 Summary: Postfix loadable modules development package
139 Summary(pl.UTF-8): Pakiet dla programistów ładowanych modułów do postfiksa
140 Group: Development/Libraries
141 Requires: %{name} = %{epoch}:%{version}-%{release}
144 Header files to build additional map types for Postfix.
146 %description devel -l pl.UTF-8
147 Pliki nagłówkowe do tworzenia dodatkowych typów map dla Postfiksa.
150 Summary: LDAP map support for Postfix
151 Summary(pl.UTF-8): Obsługa map LDAP dla Postfiksa
152 Group: Networking/Daemons
153 Requires: %{name} = %{epoch}:%{version}-%{release}
154 Requires: openldap >= 2.3.0
156 %description dict-ldap
157 This package provides support for LDAP maps in Postfix.
159 %description dict-ldap -l pl.UTF-8
160 Ten pakiet dodaje obsługę map LDAP do Postfiksa.
163 Summary: MySQL map support for Postfix
164 Summary(pl.UTF-8): Obsługa map MySQL dla Postfiksa
165 Group: Networking/Daemons
166 Requires: %{name} = %{epoch}:%{version}-%{release}
168 %description dict-mysql
169 This package provides support for MySQL maps in Postfix.
171 %description dict-mysql -l pl.UTF-8
172 Ten pakiet dodaje obsługę map MySQL do Postfiksa.
175 Summary: PCRE map support for Postfix
176 Summary(pl.UTF-8): Obsługa map PCRE dla Postfiksa
177 Group: Networking/Daemons
178 Requires: %{name} = %{epoch}:%{version}-%{release}
180 %description dict-pcre
181 This package provides support for PCRE maps in Postfix.
183 %description dict-pcre -l pl.UTF-8
184 Ten pakiet dodaje obsługę map PCRE do Postfiksa.
187 Summary: PostgreSQL map support for Postfix
188 Summary(pl.UTF-8): Obsługa map PostgreSQL dla Postfiksa
189 Group: Networking/Daemons
190 Requires: %{name} = %{epoch}:%{version}-%{release}
192 %description dict-pgsql
193 This package provides support for PostgreSQL maps in Postfix.
195 %description dict-pgsql -l pl.UTF-8
196 Ten pakiet dodaje obsługę map PostgreSQL do Postfiksa.
199 Summary: qshape - Print Postfix queue domain and age distribution
200 Summary(pl.UTF-8): qshape - wypisywanie rozkładu domen i wieku z kolejki Postfiksa
201 Group: Networking/Daemons
202 Requires: %{name} = %{epoch}:%{version}-%{release}
205 The qshape program helps the administrator understand the Postfix
206 queue message distribution in time and by sender domain or recipient
207 domain. The program needs read access to the queue directories and
208 queue files, so it must run as the superuser or the mail_owner
209 specified in main.cf (typically postfix).
211 %description qshape -l pl.UTF-8
212 Program qshape pomaga administratorowi zrozumieć rozkład kolejki
213 wiadomości Postfiksa w czasie i w zależności od domeny nadawcy lub
214 adresata. Program wymaga prawa odczytu do katalogów kolejki i plików
215 kolejki, więc musi być uruchamiany przez superużytkownika lub
216 użytkownika mail_owner podanego w main.cf (zwykle nazywającego się
221 %{?with_vda:zcat %{SOURCE7} | patch -p1 -s}
223 find -type f | xargs sed -i -e 's|/etc/postfix|/etc/mail|g'
229 %{?with_hir:%patch4 -p0}
232 sed -i '/scache_clnt_create/s/server/var_scache_service/' src/global/scache_clnt.c
233 %if "%{_lib}" == "lib64"
240 sed -i 's/ifdef SNAPSHOT/if 1/' src/util/dict_open.c
244 %{__make} -f Makefile.init makefiles
250 OPT="%{rpmcflags} -D_FILE_OFFSET_BITS=64" \
251 %{!?with_ldap:LDAPSO=""} \
252 %{!?with_mysql:MYSQLSO=""} \
253 %{!?with_pgsql:PGSQLSO=""} \
254 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} %{?with_ssl:-DUSE_TLS} -DMAX_DYNAMIC_MAPS %{?with_cdb:-DHAS_CDB} -DHAVE_GETIFADDRS" \
255 AUXLIBS="-ldb -lresolv %{?with_sasl:-lsasl} %{?with_ssl:-lssl -lcrypto} %{?with_cdb:-lcdb} -lpcre"
259 rm -rf $RPM_BUILD_ROOT
260 install -d $RPM_BUILD_ROOT/etc/{cron.daily,rc.d/init.d,sysconfig,pam.d,security} \
261 $RPM_BUILD_ROOT%{_sysconfdir}/{mail,sasl} \
262 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/postfix,/usr/lib}\
263 $RPM_BUILD_ROOT{%{_includedir}/postfix,%{_mandir}} \
264 $RPM_BUILD_ROOT%{_var}/spool/postfix/{active,corrupt,deferred,maildrop,private,saved,bounce,defer,incoming,pid,public}
266 rm -f html/Makefile.in conf/{LICENSE,main.cf.default}
268 install bin/* $RPM_BUILD_ROOT%{_sbindir}
269 install libexec/* $RPM_BUILD_ROOT%{_libdir}/postfix
270 ln $RPM_BUILD_ROOT%{_libdir}/postfix/smtp $RPM_BUILD_ROOT%{_libdir}/postfix/lmtp
271 ln $RPM_BUILD_ROOT%{_libdir}/postfix/qmgr $RPM_BUILD_ROOT%{_libdir}/postfix/nqmgr
272 install conf/* $RPM_BUILD_ROOT%{_sysconfdir}/mail
273 sed -e's,^daemon_directory = .*,daemon_directory = %{_libdir}/postfix,' \
274 conf/main.cf > $RPM_BUILD_ROOT%{_sysconfdir}/mail/main.cf
276 for f in dns global master util ; do
277 install lib/lib${f}.a $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so.1
278 ln -sf lib${f}.so.1 $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so
280 install lib/dict*.so $RPM_BUILD_ROOT%{_libdir}/postfix
281 install include/*.h $RPM_BUILD_ROOT%{_includedir}/postfix
283 cp -a man/man* $RPM_BUILD_ROOT%{_mandir}
285 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mail/aliases
286 install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/postfix
287 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/postfix
288 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/postfix
289 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
290 install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/smtp
291 install auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail
292 install auxiliary/qshape/qshape.pl $RPM_BUILD_ROOT%{_bindir}/qshape
294 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
295 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/newaliases
296 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT/usr/lib/sendmail
298 touch $RPM_BUILD_ROOT%{_sysconfdir}/mail/\
299 {aliases,access,canonical,relocated,transport,virtual}{,.db}
301 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
303 > $RPM_BUILD_ROOT/var/spool/postfix/.nofinger
305 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/mail/makedefs.out
308 rm -rf $RPM_BUILD_ROOT
311 %groupadd -g 62 postfix
312 %groupadd -g 63 maildrop
313 %useradd -u 62 -d /var/spool/postfix -s /bin/false -c "Postfix User" -g postfix postfix
317 if ! grep -q "^postmaster:" %{_sysconfdir}/mail/aliases; then
318 echo "Adding Entry for postmaster in %{_sysconfdir}/mail/aliases" >&2
319 echo "postmaster: root" >>%{_sysconfdir}/mail/aliases
321 if [ "$1" = "1" ]; then
322 # only on installation, not upgrade
323 if ! grep -q "^myhostname" %{_sysconfdir}/mail/main.cf; then
324 postconf -e myhostname=`/bin/hostname -f`
327 postfix upgrade-configuration
331 /sbin/chkconfig --add postfix
332 %service postfix restart "postfix daemon"
335 if [ "$1" = "0" ]; then
336 %service postfix stop
337 /sbin/chkconfig --del postfix
342 if [ "$1" = "0" ]; then
343 %groupremove maildrop
349 %defattr(644,root,root,755)
350 %doc html *README COMPATIBILITY HISTORY LICENSE RELEASE_NOTES TLS_*
351 %doc README_FILES/*README
352 %doc examples/smtpd-policy
353 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/access
354 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/aliases
355 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/canonical
356 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/generic
357 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/regexp_table
358 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/relocated
359 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/transport
360 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/virtual
361 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/header_checks
362 #%ghost %{_sysconfdir}/mail/*.db
363 %dir %{_sysconfdir}/mail
364 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/dynamicmaps.cf
365 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/main.cf
366 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/master.cf
367 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/postfix-script
368 %attr(755,root,root) %{_sysconfdir}/mail/post-install
369 %{_sysconfdir}/mail/postfix-files
370 %attr(740,root,root) /etc/cron.daily/postfix
371 %attr(754,root,root) /etc/rc.d/init.d/postfix
372 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postfix
373 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
374 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
375 %{?with_sasl:%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl/smtpd.conf}
376 %attr(755,root,root) %{_libdir}/libpostfix-*.so.*
377 %attr(755,root,root) %{_bindir}/mailq
378 %attr(755,root,root) %{_bindir}/newaliases
379 %attr(755,root,root) %{_bindir}/rmail
380 %attr(755,root,root) %{_sbindir}/s*
381 %attr(755,root,root) %{_sbindir}/postfix
382 %attr(755,root,root) %{_sbindir}/postalias
383 %attr(755,root,root) %{_sbindir}/postkick
384 %attr(755,root,root) %{_sbindir}/postl*
385 %attr(755,root,root) %{_sbindir}/postc*
386 %attr(755,root,root) %{_sbindir}/postmap
387 %attr(2755,root,maildrop) %{_sbindir}/postqueue
388 %attr(755,root,root) %{_sbindir}/postsuper
389 %attr(2755,root,maildrop) %{_sbindir}/postdrop
390 %attr(755,root,root) %{_sbindir}/qmqp-sink
391 %attr(755,root,root) %{_sbindir}/qmqp-source
392 %attr(755,root,root) /usr/lib/sendmail
393 %dir %{_libdir}/postfix
394 %attr(755,root,root) %{_libdir}/postfix/[!d]*
395 %attr(755,root,root) %{_libdir}/postfix/discard
396 %attr(755,root,root) %dir %{_var}/spool/postfix
397 %attr(700,postfix,root) %dir %{_var}/spool/postfix/active
398 %attr(700,postfix,root) %dir %{_var}/spool/postfix/bounce
399 %attr(700,postfix,root) %dir %{_var}/spool/postfix/corrupt
400 %attr(700,postfix,root) %dir %{_var}/spool/postfix/defer
401 %attr(700,postfix,root) %dir %{_var}/spool/postfix/deferred
402 %attr(700,postfix,root) %dir %{_var}/spool/postfix/incoming
403 %attr(1730,postfix,maildrop) %dir %{_var}/spool/postfix/maildrop
404 %attr(755,postfix,root) %dir %{_var}/spool/postfix/pid
405 %attr(700,postfix,root) %dir %{_var}/spool/postfix/private
406 %attr(710,postfix,maildrop) %dir %{_var}/spool/postfix/public
407 %attr(700,postfix,root) %dir %{_var}/spool/postfix/saved
408 %attr(644,postfix,root) %{_var}/spool/postfix/.nofinger
409 %{_mandir}/man1/mailq.1*
410 %{_mandir}/man1/newaliases.1*
411 %{_mandir}/man1/post*.1*
412 %{_mandir}/man1/qmqp-*.1*
413 %{_mandir}/man1/sendmail.1*
414 %{_mandir}/man1/smtp-*.1*
415 %{_mandir}/man5/access.5*
416 %{_mandir}/man5/aliases.5*
417 %{_mandir}/man5/body_checks.5*
418 %{_mandir}/man5/bounce.5*
419 %{_mandir}/man5/canonical.5*
420 %{_mandir}/man5/cidr_table.5*
421 %{_mandir}/man5/generic.5*
422 %{_mandir}/man5/header_checks.5*
423 %{_mandir}/man5/master.5*
424 %{_mandir}/man5/nisplus_table.5*
425 %{_mandir}/man5/postconf.5*
426 %{_mandir}/man5/regexp_table.5*
427 %{_mandir}/man5/relocated.5*
428 %{_mandir}/man5/tcp_table.5*
429 %{_mandir}/man5/transport.5*
430 %{_mandir}/man5/virtual.5*
434 %defattr(644,root,root,755)
435 %attr(755,root,root) %{_libdir}/libpostfix-*.so
436 %{_includedir}/postfix
440 %defattr(644,root,root,755)
441 %attr(755,root,root) %{_libdir}/postfix/dict_ldap.so
442 %{_mandir}/man5/ldap_table.5*
447 %defattr(644,root,root,755)
448 %attr(755,root,root) %{_libdir}/postfix/dict_mysql.so
449 %{_mandir}/man5/mysql_table.5*
453 %defattr(644,root,root,755)
454 %attr(755,root,root) %{_libdir}/postfix/dict_pcre.so
455 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/pcre_table
456 %{_mandir}/man5/pcre_table.5*
460 %defattr(644,root,root,755)
461 %attr(755,root,root) %{_libdir}/postfix/dict_pgsql.so
462 %{_mandir}/man5/pgsql_table.5*
466 %defattr(644,root,root,755)
467 %attr(755,root,root) %{_bindir}/qshape
468 %{_mandir}/man1/qshape.1*