X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=exim.spec;h=5aee80c8097795d98b461b71a758fb3c1318c925;hb=13b4945;hp=1d6c87f1751631c0ac7ff8b13d50dda0db1fdc93;hpb=d3697a6b4b0d231df7b96bb1c77144dc2ba07125;p=packages%2Fexim.git diff --git a/exim.spec b/exim.spec index 1d6c87f..5aee80c 100644 --- a/exim.spec +++ b/exim.spec @@ -8,20 +8,30 @@ %bcond_without ldap # without LDAP support %bcond_without spf # without spf support %bcond_without srs # without srs support -# +%bcond_without dynamic # dynamic modules +%bcond_without hiredis # without redis +# opendmarc.spec not ready, so off by default +%bcond_with dmarc # DMARC support +%bcond_without lmdb # LMDB support + +%if "%{pld_release}" == "ac" +# hiredis build segfaults on ac-alpha +%undefine with_hiredis +%endif + Summary: University of Cambridge Mail Transfer Agent Summary(pl.UTF-8): Agent Transferu Poczty Uniwersytetu w Cambridge Summary(pt_BR.UTF-8): Servidor de correio eletrônico exim Name: exim -Version: 4.70 -Release: 1 +Version: 4.89 +Release: 10 Epoch: 2 License: GPL Group: Networking/Daemons/SMTP Source0: ftp://ftp.exim.org/pub/exim/exim4/%{name}-%{version}.tar.bz2 -# Source0-md5: 30e77669ee25e3606da74b0ff88daf83 -Source1: ftp://ftp.exim.org/pub/exim/exim4/%{name}-texinfo-%{version}.tar.bz2 -# Source1-md5: 7956b0931e4b4035a693544782402abf +# Source0-md5: ef78f2f669e429988c61d2dfb5a340b9 +Source1: ftp://ftp.exim.org/pub/exim/exim4/%{name}-html-%{version}.tar.bz2 +# Source1-md5: 47382a69ca8beb441b8d017dffa00942 Source2: %{name}.init Source3: %{name}.cron.db Source4: %{name}4.conf @@ -34,42 +44,55 @@ Source9: %{name}.aliases Source10: newaliases Source11: %{name}.logrotate Source12: %{name}.sysconfig -Source13: ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/exim4/FAQ.txt.bz2 -# Source13-md5: ff781bd31fb1d574c8b9d33f4bfd34a7 -Source14: ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/exim4/config.samples.tar.bz2 +Source14: ftp://ftp.exim.org/pub/exim/exim4/old/config.samples.tar.bz2 # Source14-md5: 4b93321938a800caa6127c48ad60a42b Source15: %{name}4-smtp.pamd Source16: %{name}on.png +# git log -p exim-4_87..exim-4_87+fixes --reverse -- . ":(exclude)doc/doc-*" ":(exclude)test" ":(exclude).*" > exim-git.patch +Patch100: %{name}-git.patch +# Patch100-md5: f0aefce462e8414f453834599d741b50 Patch0: %{name}4-EDITME.patch Patch1: %{name}4-monitor-EDITME.patch Patch2: %{name}4-cflags.patch +Patch3: exim-defs.patch Patch4: %{name}4-Makefile-Default.patch # http://marc.merlins.org/linux/exim/files/sa-exim-cvs/localscan_dlopen_exim_4.20_or_better.patch Patch5: localscan_dlopen_%{name}_4.20_or_better.patch -Patch6: %{name}-noloadbalance.patch -# http://sourceforge.net/projects/eximdsn/ -Patch7: %{name}_463_dsn_1_3.patch +Patch6: exim-commandline_checks_require_admin.patch + Patch8: %{name}-spam-timeout.patch + Patch10: %{name}-force-sigalrm.patch + +Patch20: %{name}4-disableSSLv3.patch URL: http://www.exim.org/ %{?with_sasl:BuildRequires: cyrus-sasl-devel >= 2.1.0} BuildRequires: db-devel +%{?with_dmarc:BuildRequires: opendmarc-devel} +%{?with_hiredis:BuildRequires: hiredis-devel} +BuildRequires: libidn-devel +BuildRequires: libidn2-devel %{?with_spf:BuildRequires: libspf2-devel >= 1.2.5-2} %{?with_srs:BuildRequires: libsrs_alt-devel >= 1.0} +%{?with_lmdb:BuildRequires: lmdb-devel} %{?with_mysql:BuildRequires: mysql-devel} -%{?with_ldap:BuildRequires: openldap-devel >= 2.4.6} +%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0} BuildRequires: openssl-devel >= 0.9.7d BuildRequires: pam-devel BuildRequires: pcre-devel BuildRequires: perl-devel >= 1:5.6.0 %{?with_pgsql:BuildRequires: postgresql-devel} BuildRequires: readline-devel +BuildRequires: rpm >= 4.4.9-56 BuildRequires: rpmbuild(macros) >= 1.268 %{?with_sqlite:BuildRequires: sqlite3-devel} -BuildRequires: texinfo >= 4.7 %{?with_whoson:BuildRequires: whoson-devel} +%if "%{pld_release}" != "ac" BuildRequires: xorg-lib-libX11-devel BuildRequires: xorg-lib-libXaw-devel +%else +BuildRequires: XFree86-devel +%endif Requires(post): /bin/hostname Requires(post): fileutils Requires(post,preun): /sbin/chkconfig @@ -82,11 +105,13 @@ Requires(pre): /usr/sbin/useradd Requires: findutils Requires: pam >= 0.79.0 Requires: rc-scripts +Requires: which Provides: group(exim) Provides: smtpdaemon Provides: user(exim) +Obsoletes: exipick Obsoletes: smtpdaemon -Conflicts: logrotate < 3.7-4 +Conflicts: logrotate < 3.8.3 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -147,75 +172,150 @@ Header files for Exim. %description devel -l pl.UTF-8 Pliki nagłówkowe dla Exima. +%global dynamic_type yes +%{?with_dynamic:%global dynamic_type 2} + %prep %setup -q -a1 -a7 +%patch100 -p2 + %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %patch4 -p1 %patch5 -p1 -%patch6 -p1 -%patch7 -p1 +%patch6 -p2 + %patch8 -p1 + %patch10 -p1 -install %{SOURCE13} doc/FAQ.txt.bz2 +install %{SOURCE4} exim4.conf install %{SOURCE14} doc/config.samples.tar.bz2 - +%patch20 -p1 install -d Local +cat << 'EOF' >> Local/Makefile-Linux +CC=%{__cc} +CUSTOM_CFLAGS=%{rpmcppflags} %{rpmcflags} +CFLAGS_DYNAMIC=-shared -rdynamic -fPIC %{rpmldflags} +LOOKUP_CDB=yes +XLFLAGS=-L%{_prefix}/X11R6/%{_lib} +X11_LD_LIB=%{_prefix}/X11R6/%{_lib} +%{?with_dynamic:LOOKUP_MODULE_DIR=%{_libdir}/%{name}/modules} +EXPERIMENTAL_DANE=yes +EXPERIMENTAL_DCC=yes +EXPERIMENTAL_PRDR=yes +EXPERIMENTAL_DSN_INFO=yes +EXPERIMENTAL_QUEUEFILE=yes +SUPPORT_I18N=yes +SUPPORT_I18N_2008=yes +LDFLAGS+= -lidn -lidn2 +SUPPORT_PROXY=yes +%if %{with dmarc} +EXPERIMENTAL_DMARC=yes +LOOKUP_LIBS+=-lopendmarc +%endif +%if %{with spf} +EXPERIMENTAL_SPF=yes +LOOKUP_LIBS+=-lspf2 +%endif +%if %{with srs} +EXPERIMENTAL_SRS=yes +LOOKUP_LIBS+=-lsrs_alt +%endif +%if %{with hiredis} +LOOKUP_REDIS=yes +LOOKUP_LIBS+=-lhiredis +%endif +%if %{with mysql} +LOOKUP_MYSQL=%{dynamic_type} +# for dynamic +LOOKUP_MYSQL_INCLUDE=-I%{_includedir}/mysql +LOOKUP_MYSQL_LIBS=-lmysqlclient +# for static +LOOKUP_INCLUDE+=-I%{_includedir}/mysql +LOOKUP_LIBS+=-lmysqlclient +%endif +%if %{with pgsql} +LOOKUP_PGSQL=%{dynamic_type} +# for dynamic +LOOKUP_PGSQL_INCLUDE=-I%{_includedir}/pgsql +LOOKUP_PGSQL_LIBS=-lpq +# for static +LOOKUP_INCLUDE+=-I%{_includedir}/pgsql +LOOKUP_LIBS+=-lpq +%endif +%if %{with sqlite} +LOOKUP_SQLITE=%{dynamic_type} +# for dynamic +LOOKUP_SQLITE_LIBS=-lsqlite3 +# for static +LOOKUP_LIBS+=-lsqlite3 +%endif +%if %{with whoson} +LOOKUP_WHOSON=%{dynamic_type} +# for dynamic +LOOKUP_WHOSON_LIBS=-lwhoson +# for static +LOOKUP_LIBS+=-lwhoson +%endif +%if %{with sasl} +AUTH_CYRUS_SASL=yes +LOOKUP_LIBS+=-lsasl2 +%endif +%if %{with ldap} +LOOKUP_LDAP=%{dynamic_type} +LDAP_LIB_TYPE=OPENLDAP2 +# for dynamic +LOOKUP_LDAP_LIBS=-lldap -llber +# for static +LOOKUP_LIBS+=-lldap -llber +%endif +%if %{with lmdb} +EXPERIMENTAL_LMDB=yes +LOOKUP_LIBS+=-llmdb +%endif +EOF + +# have to be after Local/Makefile-Linux creation cp -f src/EDITME Local/Makefile cp -f exim_monitor/EDITME Local/eximon.conf %build -%{__make} -j1 \ - FULLECHO='' \ - CC="%{__cc}" \ - CUSTOM_CFLAGS="%{rpmcppflags} %{rpmcflags} -DSUPPORT_DSN=yes %{?with_spf:-DEXPERIMENTAL_SPF=yes} %{?with_srs:-DEXPERIMENTAL_SRS=yes}" \ - LOOKUP_CDB=yes \ - XLFLAGS=-L%{_prefix}/X11R6/%{_lib} \ - X11_LD_LIB=%{_prefix}/X11R6/%{_lib} \ - %{?with_mysql:LOOKUP_MYSQL=yes} \ - %{?with_pgsql:LOOKUP_PGSQL=yes} \ - %{?with_sqlite:LOOKUP_SQLITE=yes} \ - %{?with_whoson:LOOKUP_WHOSON=yes} \ - %{?with_sasl:AUTH_CYRUS_SASL=yes} \ - %{?with_ldap:LOOKUP_LDAP=yes LDAP_LIB_TYPE=OPENLDAP2} \ - LOOKUP_LIBS="%{?with_ldap:-lldap -llber} %{?with_mysql:-lmysqlclient} %{?with_pgsql:-lpq} %{?with_sqlite:-lsqlite3} %{?with_whoson:-lwhoson} %{?with_spf:-lspf2} %{?with_srs:-lsrs_alt} %{?with_sasl:-lsasl2}" \ - LOOKUP_INCLUDE="%{?with_mysql:-I%{_includedir}/mysql} %{?with_pgsql:-I%{_includedir}/pgsql}" - -makeinfo --force -o exim_filtering.info exim-texinfo-*/doc/filter.texinfo -makeinfo --force -o exim.info exim-texinfo-*/doc/spec.texinfo +%{__make} -e -j1 \ + FULLECHO='' %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT%{_sysconfdir}/mail -install -d $RPM_BUILD_ROOT/etc/{cron.{daily,weekly},logrotate.d,rc.d/init.d,sysconfig,pam.d,security} -install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man8,%{_prefix}/lib} +install -d $RPM_BUILD_ROOT/etc/{cron.daily,logrotate.d,rc.d/init.d,sysconfig,pam.d,security} +install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man8,/usr/lib} install -d $RPM_BUILD_ROOT%{_var}/{spool/exim/{db,input,msglog},log/{archive,}/exim,mail} -install -d $RPM_BUILD_ROOT{%{_infodir},%{_desktopdir},%{_pixmapsdir}} -install -d $RPM_BUILD_ROOT%{_libdir}/%{name} +install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}} +install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/modules install build-Linux-*/exim{,_fixdb,_tidydb,_dbmbuild,on.bin,_dumpdb,_lock} \ build-Linux-*/exi{cyclog,next,what} %{SOURCE10} \ - build-Linux-*/{exigrep,eximstats,exiqsumm,convert4r4} \ + build-Linux-*/{exigrep,exiqgrep,exipick,eximstats,exiqsumm,convert4r4} \ util/unknownuser.sh \ $RPM_BUILD_ROOT%{_bindir} install build-Linux-*/eximon.bin $RPM_BUILD_ROOT%{_bindir} install build-Linux-*/eximon $RPM_BUILD_ROOT%{_bindir} +%{?with_dynamic:install build-Linux-*/*/*.so $RPM_BUILD_ROOT%{_libdir}/%{name}/modules} install %{SOURCE5} . -install %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.weekly +install %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.daily install %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/%{name} install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} -install %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} -install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/mail/exim.conf +install %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} +install exim4.conf $RPM_BUILD_ROOT%{_sysconfdir}/mail/exim.conf install {doc,man}/*.8 $RPM_BUILD_ROOT%{_mandir}/man8 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/mail/aliases -install *.info* $RPM_BUILD_ROOT%{_infodir} install %{SOURCE15} $RPM_BUILD_ROOT/etc/pam.d/smtp ln -sf %{_bindir}/exim $RPM_BUILD_ROOT%{_sbindir}/sendmail -ln -sf %{_bindir}/exim $RPM_BUILD_ROOT%{_prefix}/lib/sendmail +ln -sf %{_bindir}/exim $RPM_BUILD_ROOT/usr/lib/sendmail ln -sf %{_bindir}/exim $RPM_BUILD_ROOT%{_sbindir}/mailq ln -sf %{_bindir}/exim $RPM_BUILD_ROOT%{_sbindir}/rsmtp ln -sf %{_bindir}/exim $RPM_BUILD_ROOT%{_sbindir}/rmail @@ -225,7 +325,8 @@ install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir} install %{SOURCE16} $RPM_BUILD_ROOT%{_pixmapsdir} install -d $RPM_BUILD_ROOT%{_includedir}/%{name} -install src/{local_scan.h,store.h,mytypes.h} $RPM_BUILD_ROOT%{_includedir}/%{name} +install src/{local_scan,store,mytypes}.h $RPM_BUILD_ROOT%{_includedir}/%{name} +install build-Linux-*/config.h $RPM_BUILD_ROOT%{_includedir}/%{name} touch $RPM_BUILD_ROOT%{_var}/log/exim/{main,reject,panic,process}.log @@ -247,7 +348,6 @@ if [ ! -f /etc/mail/mailname ]; then rm -f /etc/mail/mailname && hostname -f > /etc/mail/mailname fi newaliases -[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 %preun if [ "$1" = "0" ]; then @@ -256,7 +356,6 @@ if [ "$1" = "0" ]; then fi %postun -[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 if [ "$1" = "0" ]; then %userremove exim %groupremove exim @@ -265,6 +364,7 @@ fi %files %defattr(644,root,root,755) %doc README* NOTICE LICENCE analyse-log-errors doc/{ChangeLog,NewStuff,dbm.discuss.txt,filter.txt,spec.txt,Exim*.upgrade,OptionLists.txt,experimental-spec.txt} build-Linux-*/transport-filter.pl +%doc exim-html-*/doc/html %dir %{_sysconfdir}/mail %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/exim.conf %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/aliases @@ -281,6 +381,8 @@ fi %attr(755,root,root) %{_bindir}/exiwhat %attr(755,root,root) %{_bindir}/exicyclog %attr(755,root,root) %{_bindir}/exigrep +%attr(755,root,root) %{_bindir}/exipick +%attr(755,root,root) %{_bindir}/exiqgrep %attr(755,root,root) %{_bindir}/eximstats %attr(755,root,root) %{_bindir}/exiqsumm %attr(755,root,root) %{_bindir}/unknownuser.sh @@ -291,15 +393,21 @@ fi %attr(755,root,root) %{_sbindir}/rsmtp %attr(755,root,root) %{_sbindir}/runq %attr(755,root,root) %{_sbindir}/sendmail -%attr(755,root,root) %{_prefix}/lib/sendmail -%attr(754,root,root) /etc/cron.weekly/exim.cron.db +%attr(755,root,root) /usr/lib/sendmail +%attr(754,root,root) /etc/cron.daily/exim.cron.db %attr(750,exim,root) %dir %{_var}/log/exim %attr(750,exim,root) %dir %{_var}/log/archive/exim %attr(640,exim,root) %ghost %{_var}/log/exim/* %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/smtp %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.smtp -%{_libdir}/%{name} -%{_infodir}/*.info* +%if %{with dynamic} +%dir %{_libdir}/%{name} +%dir %{_libdir}/%{name}/modules +%{?with_mysql:%attr(755,root,root) %{_libdir}/%{name}/modules/mysql.so} +%{?with_pgsql:%attr(755,root,root) %{_libdir}/%{name}/modules/pgsql.so} +%{?with_sqlite:%attr(755,root,root) %{_libdir}/%{name}/modules/sqlite.so} +%{?with_whoson:%attr(755,root,root) %{_libdir}/%{name}/modules/whoson.so} +%endif %{_mandir}/man8/* %files X11