2 # - check/fix 'polish' bcond
3 # - add http://www.aurore.net/projects/postfix_memcached/
6 %bcond_without ldap # without LDAP map module
7 %bcond_without mysql # without MySQL map module
8 %bcond_without pgsql # without PostgreSQL map module
9 %bcond_without sasl # without SMTP AUTH support
10 %bcond_without ssl # without SSL/TLS support
11 %bcond_without cdb # without cdb map support
12 %bcond_without vda # with VDA patch
13 %bcond_with hir # with Beeth's header_if_reject patch
14 %bcond_with tcp # with unofficial tcp: lookup table
15 #%bcond_with polish # with double English+Polish messages
17 Summary: Postfix Mail Transport Agent
18 Summary(cs.UTF-8): Postfix - program pro přepravu pošty (MTA)
19 Summary(es.UTF-8): Postfix - Un MTA (Mail Transport Agent) de alto desempeño
20 Summary(fr.UTF-8): Agent de transport de courrier Postfix
21 Summary(pl.UTF-8): Serwer SMTP Postfix
22 Summary(pt_BR.UTF-8): Postfix - Um MTA (Mail Transport Agent) de alto desempenho
23 Summary(sk.UTF-8): Agent prenosu pošty Postfix
29 License: distributable
30 Group: Networking/Daemons
31 Source0: ftp://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
32 # Source0-md5: 24f3a076a2a1af0ca8dcb9bac3f145fa
33 Source1: %{name}.aliases
36 Source4: %{name}.sysconfig
39 Source7: http://web.onda.com.br/nadal/postfix/VDA/%{name}-%{vda_ver}-vda.patch.gz
40 # Source7-md5: fc7c1676ceecbfb414353af1dafe11de
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}-pl.patch
48 #Patch6: %{name}-size-check-before-proxy.patch
49 #Patch7: %{name}-log-proxy-rejects.patch
50 Patch8: %{name}-ident.patch
51 Patch9: %{name}-lib64.patch
52 Patch10: %{name}-conf.patch
53 Patch11: %{name}-dictname.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.3.0}
61 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.8b}
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)
87 Provides: /usr/lib/sendmail
95 Obsoletes: sendmail-cf
96 Obsoletes: sendmail-doc
101 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
104 Postfix is attempt to provide an alternative to the widely-used
105 Sendmail program. Postfix attempts to be fast, easy to administer, and
106 hopefully secure, while at the same time being sendmail compatible
107 enough to not upset your users. This version has IPv6 support.
109 %description -l es.UTF-8
110 Postfix es una alternativa para el mundialmente utilizado sendmail. Si
111 desea tener un servidor SMTP *rápido*, debe instalar este paquete.
113 %description -l fr.UTF-8
114 Postfix (voir http://www.postfix.org/) se veut une alternative à
115 sendmail, responsable de l'acheminement de 70% des courriers
116 électroniques sur Internet. IBM en a suppotré le développement, mais
117 ne contrôle pas son évolution. Le but est d'installer Postfix sur le
118 plus grand nombre de systèmes possible. Dans cette optique, il a été
119 écrit pour être totalement sous le contrôle de l'utilisateur.
121 %description -l it.UTF-8
122 Postfix (http://www.postfix.org/) e' un'alternativa al programma
123 sendmail utilizzato per la gestione del 70 per cento della posta
126 Seppur IBM supporti lo sviluppo di Postfix, non controlla la sua
129 Consultate la pagine web http://www.moongroup.com/how-to.phtml nella
130 quale troverete le indicazioni per una corretta installazione e
131 configurazione di questo programma.
133 %description -l pl.UTF-8
134 Postfix jest próbą dostarczenia alternatywnego MTA w stosunku do
135 szeroko używanego sendmaila. Postfix w zamierzeniu ma być szybki,
136 łatwy w administrowaniu, bezpieczny oraz ma być na tyle kompatybilny z
137 sendmailem by nie denerwować użytkowników. Ta wersja obsługuje IPv6.
139 %description -l pt_BR.UTF-8
140 O Postfix é uma alternativa para o mundialmente utilizado sendmail. Se
141 você deseja um servidor SMTP *rápido*, instale este pacote.
143 %description -l sk.UTF-8
144 Postfix (pozri http://www.postfix.org/) má za cieľ byť alternatívou k
145 široko rozšírenému programu sendmail, zodpovednému za 70% všetkej
146 elektronickej pošty doručenej na Internete.
148 Aj keď IBM podporovala vývoj Postfixu, zdržiava sa vplyvu na jeho
149 vývoj. Cieľom je inštalácia Postfixu na čo najväčšom počte systémov.
150 Do tohoto momentu je softvér poskytovaný bez ovplyvňovania, takže sa
151 môže vyvíjať podľa jeho používateľov.
153 Určite si prečítajte http://www.moongroup.com/how-to.phtml, kde sú
154 popísané kroky potrebné pred a po inštalácii Postfixu.
157 Summary: Postfix loadable modules development package
158 Summary(pl.UTF-8): Pakiet dla programistów ładowanych modułów do postfiksa
159 Group: Development/Libraries
160 Requires: %{name} = %{epoch}:%{version}-%{release}
163 Header files to build additional map types for Postfix.
165 %description devel -l pl.UTF-8
166 Pliki nagłówkowe do tworzenia dodatkowych typów map dla Postfiksa.
169 Summary: LDAP map support for Postfix
170 Summary(pl.UTF-8): Obsługa map LDAP dla Postfiksa
171 Group: Networking/Daemons
172 Requires: %{name} = %{epoch}:%{version}-%{release}
173 Requires: openldap >= 2.3.0
175 %description dict-ldap
176 This package provides support for LDAP maps in Postfix.
178 %description dict-ldap -l pl.UTF-8
179 Ten pakiet dodaje obsługę map LDAP do Postfiksa.
182 Summary: MySQL map support for Postfix
183 Summary(pl.UTF-8): Obsługa map MySQL dla Postfiksa
184 Group: Networking/Daemons
185 Requires: %{name} = %{epoch}:%{version}-%{release}
187 %description dict-mysql
188 This package provides support for MySQL maps in Postfix.
190 %description dict-mysql -l pl.UTF-8
191 Ten pakiet dodaje obsługę map MySQL do Postfiksa.
194 Summary: PCRE map support for Postfix
195 Summary(pl.UTF-8): Obsługa map PCRE dla Postfiksa
196 Group: Networking/Daemons
197 Requires: %{name} = %{epoch}:%{version}-%{release}
199 %description dict-pcre
200 This package provides support for PCRE maps in Postfix.
202 %description dict-pcre -l pl.UTF-8
203 Ten pakiet dodaje obsługę map PCRE do Postfiksa.
206 Summary: PostgreSQL map support for Postfix
207 Summary(pl.UTF-8): Obsługa map PostgreSQL dla Postfiksa
208 Group: Networking/Daemons
209 Requires: %{name} = %{epoch}:%{version}-%{release}
211 %description dict-pgsql
212 This package provides support for PostgreSQL maps in Postfix.
214 %description dict-pgsql -l pl.UTF-8
215 Ten pakiet dodaje obsługę map PostgreSQL do Postfiksa.
219 %{?with_vda:zcat %{SOURCE7} | patch -p1 -s}
224 %{?with_hir:%patch4 -p0}
225 #%{?with_polish:%patch5 -p1}
227 #%patch7 -p1 --obsolete ?
229 sed -i '/scache_clnt_create/s/server/var_scache_service/' src/global/scache_clnt.c
230 %if "%{_lib}" == "lib64"
237 sed -i 's/ifdef SNAPSHOT/if 1/' src/util/dict_open.c
241 %{__make} -f Makefile.init makefiles
245 OPT="%{rpmcflags} -D_FILE_OFFSET_BITS=64" \
246 %{!?with_ldap:LDAPSO=""} \
247 %{!?with_mysql:MYSQLSO=""} \
248 %{!?with_pgsql:PGSQLSO=""} \
249 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 -I/usr/include/postgresql} %{?with_ssl:-DUSE_TLS -I/usr/include/openssl} -DMAX_DYNAMIC_MAPS %{?with_cdb:-DHAS_CDB} -DHAVE_GETIFADDRS" \
250 AUXLIBS="-ldb -lresolv %{?with_sasl:-lsasl} %{?with_ssl:-lssl -lcrypto} %{?with_cdb:-lcdb} -lpcre %{?with_ldap:-lldap -llber} %{?with_pgsql:-lpq} %{?with_mysql:-lmysqlclient -lz}"
253 rm -rf $RPM_BUILD_ROOT
254 install -d $RPM_BUILD_ROOT/etc/{cron.daily,rc.d/init.d,sysconfig,pam.d,security} \
255 $RPM_BUILD_ROOT%{_sysconfdir}/{mail,sasl} \
256 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/postfix,%{_prefix}/lib}\
257 $RPM_BUILD_ROOT{%{_includedir}/postfix,%{_mandir}/man{1,5,8}} \
258 $RPM_BUILD_ROOT%{_var}/spool/postfix/{active,corrupt,deferred,maildrop,private,saved,bounce,defer,incoming,pid,public}
260 rm -f {html,man}/Makefile.in conf/{LICENSE,main.cf.default}
262 install bin/* $RPM_BUILD_ROOT%{_sbindir}
263 install libexec/* $RPM_BUILD_ROOT%{_libdir}/postfix
264 install conf/* $RPM_BUILD_ROOT%{_sysconfdir}/mail
265 sed -e's,^daemon_directory = .*,daemon_directory = %{_libdir}/postfix,' \
266 conf/main.cf > $RPM_BUILD_ROOT%{_sysconfdir}/mail/main.cf
268 for f in dns global master util ; do
269 install lib/lib${f}.a $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so.1
270 ln -sf lib${f}.so.1 $RPM_BUILD_ROOT%{_libdir}/libpostfix-${f}.so
272 install lib/dict*.so $RPM_BUILD_ROOT%{_libdir}/postfix
273 install include/*.h $RPM_BUILD_ROOT%{_includedir}/postfix
275 (cd man; tar cf - .) | (cd $RPM_BUILD_ROOT%{_mandir}; tar xf -)
277 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mail/aliases
278 install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/postfix
279 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/postfix
280 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/postfix
281 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sasl/smtpd.conf
282 install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/smtp
283 install auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail
284 install auxiliary/qshape/qshape.pl $RPM_BUILD_ROOT%{_bindir}/qshape
286 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/mailq
287 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT%{_bindir}/newaliases
288 ln -sf %{_sbindir}/sendmail $RPM_BUILD_ROOT/usr/lib/sendmail
290 touch $RPM_BUILD_ROOT%{_sysconfdir}/mail/\
291 {aliases,access,canonical,relocated,transport,virtual}{,.db}
293 touch $RPM_BUILD_ROOT/etc/security/blacklist.smtp
295 > $RPM_BUILD_ROOT/var/spool/postfix/.nofinger
297 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/mail/makedefs.out $RPM_BUILD_ROOT%{_mandir}/cat*
300 rm -rf $RPM_BUILD_ROOT
303 %groupadd -g 62 postfix
304 %groupadd -g 63 maildrop
305 %useradd -u 62 -d /var/spool/postfix -s /bin/false -c "Postfix User" -g postfix postfix
309 if ! grep -q "^postmaster:" %{_sysconfdir}/mail/aliases; then
310 echo "Adding Entry for postmaster in %{_sysconfdir}/mail/aliases" >&2
311 echo "postmaster: root" >>%{_sysconfdir}/mail/aliases
313 if [ "$1" = "1" ]; then
314 # only on installation, not upgrade
315 if ! grep -q "^myhostname" %{_sysconfdir}/mail/main.cf; then
316 postconf -e myhostname=`/bin/hostname -f`
319 postfix upgrade-configuration
323 /sbin/chkconfig --add postfix
324 %service postfix restart "postfix daemon"
327 if [ "$1" = "0" ]; then
328 %service postfix stop
329 /sbin/chkconfig --del postfix
334 if [ "$1" = "0" ]; then
335 %groupremove maildrop
341 %defattr(644,root,root,755)
342 %doc html *README COMPATIBILITY HISTORY LICENSE RELEASE_NOTES TLS_*
343 %doc README_FILES/*README
344 %doc examples/smtpd-policy
345 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/access
346 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/aliases
347 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/canonical
348 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/generic
349 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/pcre_table
350 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/regexp_table
351 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/relocated
352 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/transport
353 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/virtual
354 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/header_checks
355 #%ghost %{_sysconfdir}/mail/*.db
356 %dir %{_sysconfdir}/mail
357 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/dynamicmaps.cf
358 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/main.cf
359 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/master.cf
360 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/postfix-script
361 %attr(755,root,root) %{_sysconfdir}/mail/post-install
362 %{_sysconfdir}/mail/postfix-files
363 %attr(740,root,root) /etc/cron.daily/postfix
364 %attr(754,root,root) /etc/rc.d/init.d/postfix
365 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postfix
366 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp
367 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp
368 %{?with_sasl:%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl/smtpd.conf}
369 %attr(755,root,root) %{_libdir}/libpostfix-*.so.*
370 %attr(755,root,root) %{_bindir}/*
371 %attr(755,root,root) %{_sbindir}/s*
372 %attr(755,root,root) %{_sbindir}/postfix
373 %attr(755,root,root) %{_sbindir}/postalias
374 %attr(755,root,root) %{_sbindir}/postkick
375 %attr(755,root,root) %{_sbindir}/postl*
376 %attr(755,root,root) %{_sbindir}/postc*
377 %attr(755,root,root) %{_sbindir}/postmap
378 %attr(2755,root,maildrop) %{_sbindir}/postqueue
379 %attr(755,root,root) %{_sbindir}/postsuper
380 %attr(2755,root,maildrop) %{_sbindir}/postdrop
381 %attr(755,root,root) %{_sbindir}/qmqp-sink
382 %attr(755,root,root) %{_sbindir}/qmqp-source
383 %attr(755,root,root) /usr/lib/sendmail
384 %dir %{_libdir}/postfix
385 %attr(755,root,root) %{_libdir}/postfix/[!d]*
386 %attr(755,root,root) %{_libdir}/postfix/discard
387 %attr(755,root,root) %dir %{_var}/spool/postfix
388 %attr(700,postfix,root) %dir %{_var}/spool/postfix/active
389 %attr(700,postfix,root) %dir %{_var}/spool/postfix/bounce
390 %attr(700,postfix,root) %dir %{_var}/spool/postfix/corrupt
391 %attr(700,postfix,root) %dir %{_var}/spool/postfix/defer
392 %attr(700,postfix,root) %dir %{_var}/spool/postfix/deferred
393 %attr(700,postfix,root) %dir %{_var}/spool/postfix/incoming
394 %attr(1730,postfix,maildrop) %dir %{_var}/spool/postfix/maildrop
395 %attr(755,postfix,root) %dir %{_var}/spool/postfix/pid
396 %attr(700,postfix,root) %dir %{_var}/spool/postfix/private
397 %attr(710,postfix,maildrop) %dir %{_var}/spool/postfix/public
398 %attr(700,postfix,root) %dir %{_var}/spool/postfix/saved
399 %attr(644,postfix,root) %{_var}/spool/postfix/.nofinger
403 %defattr(644,root,root,755)
404 %attr(755,root,root) %{_libdir}/libpostfix-*.so
405 %{_includedir}/postfix
409 %defattr(644,root,root,755)
410 %attr(755,root,root) %{_libdir}/postfix/dict_ldap.so
415 %defattr(644,root,root,755)
416 %attr(755,root,root) %{_libdir}/postfix/dict_mysql.so
420 %defattr(644,root,root,755)
421 %attr(755,root,root) %{_libdir}/postfix/dict_pcre.so
425 %defattr(644,root,root,755)
426 %attr(755,root,root) %{_libdir}/postfix/dict_pgsql.so