[packages/cyrus-imapd] - updated to 3.0.9 - updated clamav-0.101 patch (adjusted for 0.101.2 not installing clamav-config.h

qboosh qboosh at pld-linux.org
Tue Apr 16 21:38:39 CEST 2019


commit e68f6eb7b6bb65c0e12a9cb032d7cc8b2f0878e1
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Apr 16 21:38:48 2019 +0200

    - updated to 3.0.9
    - updated clamav-0.101 patch (adjusted for 0.101.2 not installing clamav-config.h with version macros)
    - added icu patch (ICU headers in C++ mode don't allow including in C linkage)

 cyrus-imapd-clamav-0.101.patch | 46 ++++++--------------
 cyrus-imapd-icu.patch          | 39 +++++++++++++++++
 cyrus-imapd.spec               | 96 ++++++++++++++++++++++++------------------
 3 files changed, 106 insertions(+), 75 deletions(-)
---
diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec
index 2bab616..aeb5f2f 100644
--- a/cyrus-imapd.spec
+++ b/cyrus-imapd.spec
@@ -1,3 +1,5 @@
+# TODO: zephyr notification?
+
 #
 # Conditional build:
 %bcond_without	docs		# don't regenerate docs
@@ -16,12 +18,12 @@ Summary:	High-performance mail store with IMAP and POP3
 Summary(pl.UTF-8):	Wysoko wydajny serwer IMAP i POP3
 Summary(pt_BR.UTF-8):	Um servidor de mail de alto desempenho que suporta IMAP e POP3
 Name:		cyrus-imapd
-Version:	3.0.8
-Release:	2
+Version:	3.0.9
+Release:	1
 License:	BSD-like
 Group:		Networking/Daemons/POP3
-Source0:	ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz
-# Source0-md5:	7dc5cf7987d146c6df608146087e0c75
+Source0:	https://www.cyrusimap.org/releases/%{name}-%{version}.tar.gz
+# Source0-md5:	8452f81e3c30fa9af6f456e143e98576
 Source1:	cyrus-README
 Source2:	cyrus-procmailrc
 Source3:	cyrus-deliver-wrapper.c
@@ -37,17 +39,21 @@ Source13:	cyrus-sync.init
 Patch0:		%{name}-et.patch
 Patch1:		link.patch
 Patch2:		%{name}-clamav-0.101.patch
+Patch3:		%{name}-icu.patch
 URL:		http://www.cyrusimap.org/
-BuildRequires:	autoconf >= 2.54
+BuildRequires:	autoconf >= 2.63
 BuildRequires:	automake
-BuildRequires:	cyrus-sasl-devel >= 1.5.27
+BuildRequires:	cyrus-sasl-devel >= 2.1.7
 BuildRequires:	db-devel >= 4.1.25
 BuildRequires:	flex
+BuildRequires:	jansson-devel >= 2.3
 %{?with_http:BuildRequires:	libbrotli-devel}
+BuildRequires:	libcap-devel
 BuildRequires:	libcom_err-devel >= 1.21
-%{?with_http:BuildRequires:	libical-devel}
-BuildRequires:	libtool
-%{?with_http:BuildRequires:	libxml2-devel >= 2.7.3}
+%{?with_http:BuildRequires:	libical-devel >= 2.0}
+BuildRequires:	libicu-devel
+BuildRequires:	libtool >= 2:2.2.6
+%{?with_http:BuildRequires:	libxml2-devel >= 1:2.7.3}
 %{?with_lmdb:BuildRequires:	lmdb-devel}
 %{?with_mysql:BuildRequires:	mysql-devel}
 BuildRequires:	net-snmp-devel
@@ -59,11 +65,12 @@ BuildRequires:	patchutils
 %{?with_perl:BuildRequires:	perl-devel >= 1:5.8.0}
 %{?with_pgsql:BuildRequires:	postgresql-devel}
 %{?with_perl:BuildRequires:	rpm-perlprov}
+BuildRequires:	rpmbuild(macros) >= 1.527
 %{?with_http:BuildRequires:	shapelib-devel >= 1.4.1}
-%{?with_http:BuildRequires:	sqlite3-devel}
+%{?with_http:BuildRequires:	sqlite3-devel >= 3}
 %{?with_docs:BuildRequires:	sphinx-pdg-3}
 %{?with_xapian:BuildRequires:	xapian-core-devel}
-BuildRequires:	rpmbuild(macros) >= 1.527
+BuildRequires:	zlib-devel
 Requires(post,preun):	/sbin/chkconfig
 Requires(postun):	/usr/sbin/userdel
 Requires(pre):	/bin/id
@@ -93,7 +100,7 @@ Conflicts:	solid-pop3d
 Conflicts:	tpop3d
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define		_libexecdir	%{_libdir}/cyrus
+%define		pkglibexecdir	%{_libexecdir}/cyrus
 
 %define		skip_post_check_so	libcyrus(|_min|_imap|_sieve).so.*
 
@@ -143,6 +150,8 @@ IMAP, POP3 ou KPOP.
 Summary:	Shared cyrus-imapd libraries
 Summary(pl.UTF-8):	Współdzielone biblioteki cyrus-imapd
 Group:		Libraries
+Requires:	cyrus-sasl-libs >= 2.1.7
+Requires:	jansson >= 2.3
 
 %description libs
 Shared cyrus-imapd libraries.
@@ -155,6 +164,8 @@ Summary:	Header files for developing with cyrus-imapd libraries
 Summary(pl.UTF-8):	Pliki nagłówkowe do programowania z użyciem bibliotek cyrus-imapd
 Group:		Development/Libraries
 Requires:	%{name}-libs = %{version}-%{release}
+Requires:	cyrus-sasl-devel >= 2.1.7
+Requires:	jansson-devel >= 2.3
 
 %description devel
 This package provides the necessary header files files to allow you to
@@ -193,18 +204,18 @@ Perlowy interfejs do biblioteki cyrus-imapd.
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
-
-rm -rf autom4te.cache
+%patch3 -p1
 
 cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
 
 %build
 %{__libtoolize}
-%{__aclocal}
-%{__autoheader}
+%{__aclocal} -I cmulocal
 %{__autoconf}
+%{__autoheader}
 %{__automake}
 %configure \
+	--libexecdir=%{pkglibexecdir} \
 	--enable-autocreate \
 	--enable-backup \
 	--enable-calalarmd \
@@ -218,6 +229,7 @@ cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
 	%{__enable_disable xapian} \
 	--with-com_err=/usr \
 	%{__with_without ldap} \
+	--with-libcap \
 	--without-libwrap \
 	%{__with_without lmdb} \
 	%{__with_without mysql} \
@@ -230,12 +242,12 @@ cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
 	VERSION=%{version}
 
 %{__cc} %{rpmcflags} \
-	-DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
+	-DLIBEXECDIR="\"%{pkglibexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d \
-	$RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir},%{_mandir}} \
+	$RPM_BUILD_ROOT{%{_sbindir},%{pkglibexecdir},%{_mandir}} \
 	$RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,sysconfig/rc-inetd} \
 	$RPM_BUILD_ROOT/var/spool/imap/stage. \
 	$RPM_BUILD_ROOT/var/lib/imap/{user,quota,proc,log,msg,deliverdb/db,sieve,db,socket} \
@@ -255,14 +267,14 @@ touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
 # ensure +x bit for rpm autodeps
 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
 
-install -p deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
+install -p deliver-wrapper $RPM_BUILD_ROOT%{pkglibexecdir}/deliver-wrapper
 
 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
 cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
-sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
-sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
+sed -e 's,/''usr/lib/cyrus,%{pkglibexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
+sed -e 's,/''usr/lib/cyrus,%{pkglibexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
 
 # We rename some utils, so we need to sort out the manpages
@@ -345,27 +357,27 @@ fi
 %attr(755,root,root) %{_bindir}/smtptest
 %attr(755,root,root) %{_bindir}/synctest
 
-%dir %{_libexecdir}
-%attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
-%attr(755,root,root) %{_libexecdir}/backupd
-%attr(755,root,root) %{_libexecdir}/calalarmd
-%attr(755,root,root) %{_libexecdir}/fud
-%{?with_http:%attr(755,root,root) %{_libexecdir}/httpd}
-%attr(755,root,root) %{_libexecdir}/idled
-%attr(755,root,root) %{_libexecdir}/imapd
-%attr(755,root,root) %{_libexecdir}/lmtpd
-%attr(755,root,root) %{_libexecdir}/lmtpproxyd
-%attr(755,root,root) %{_libexecdir}/master
-%attr(755,root,root) %{_libexecdir}/mupdate
-%attr(755,root,root) %{_libexecdir}/nntpd
-%attr(755,root,root) %{_libexecdir}/notifyd
-%attr(755,root,root) %{_libexecdir}/ptloader
-%attr(755,root,root) %{_libexecdir}/pop3d
-%attr(755,root,root) %{_libexecdir}/pop3proxyd
-%attr(755,root,root) %{_libexecdir}/proxyd
-%attr(755,root,root) %{_libexecdir}/smmapd
-%attr(755,root,root) %{_libexecdir}/sync_server
-%attr(755,root,root) %{_libexecdir}/timsieved
+%dir %{pkglibexecdir}
+%attr(2755,cyrus,mail) %{pkglibexecdir}/deliver-wrapper
+%attr(755,root,root) %{pkglibexecdir}/backupd
+%attr(755,root,root) %{pkglibexecdir}/calalarmd
+%attr(755,root,root) %{pkglibexecdir}/fud
+%{?with_http:%attr(755,root,root) %{pkglibexecdir}/httpd}
+%attr(755,root,root) %{pkglibexecdir}/idled
+%attr(755,root,root) %{pkglibexecdir}/imapd
+%attr(755,root,root) %{pkglibexecdir}/lmtpd
+%attr(755,root,root) %{pkglibexecdir}/lmtpproxyd
+%attr(755,root,root) %{pkglibexecdir}/master
+%attr(755,root,root) %{pkglibexecdir}/mupdate
+%attr(755,root,root) %{pkglibexecdir}/nntpd
+%attr(755,root,root) %{pkglibexecdir}/notifyd
+%attr(755,root,root) %{pkglibexecdir}/ptloader
+%attr(755,root,root) %{pkglibexecdir}/pop3d
+%attr(755,root,root) %{pkglibexecdir}/pop3proxyd
+%attr(755,root,root) %{pkglibexecdir}/proxyd
+%attr(755,root,root) %{pkglibexecdir}/smmapd
+%attr(755,root,root) %{pkglibexecdir}/sync_server
+%attr(755,root,root) %{pkglibexecdir}/timsieved
 %attr(755,root,root) %{_sbindir}/arbitron
 %attr(755,root,root) %{_sbindir}/chk_cyrus
 %attr(755,root,root) %{_sbindir}/ctl_backups
diff --git a/cyrus-imapd-clamav-0.101.patch b/cyrus-imapd-clamav-0.101.patch
index 5a9f23f..178652a 100644
--- a/cyrus-imapd-clamav-0.101.patch
+++ b/cyrus-imapd-clamav-0.101.patch
@@ -1,34 +1,14 @@
-Support clamav >= 0.101.0, based on changes introduced in:
-
-https://github.com/Cisco-Talos/clamav-devel/commit/048a88e61558726bd9ba66ec3195b63d61d8a430
-
---- cyrus-imapd-3.0.8/imap/cyr_virusscan.c.orig	2018-08-10 04:59:00.000000000 +0200
-+++ cyrus-imapd-3.0.8/imap/cyr_virusscan.c	2018-12-10 10:51:08.776406893 +0100
-@@ -193,8 +193,17 @@
-     int r;
- 
-     /* scan file */
-+#if LIBCLAMAV_MAJORVER < 9
-     r = cl_scanfile(fname, virname, NULL, st->av_engine,
-                     CL_SCAN_STDOPT);
-+#else 
-+    static struct cl_scan_options options;
-+    
-+    memset(&options, 0, sizeof(struct cl_scan_options));
-+    options.parse |= ~0; /* enable all parsers */
-+
-+    r = cl_scanfile(fname, virname, NULL, st->av_engine, &options);
+--- cyrus-imapd-3.0.9/imap/cyr_virusscan.c.orig	2019-03-15 01:31:20.000000000 +0100
++++ cyrus-imapd-3.0.9/imap/cyr_virusscan.c	2019-04-16 18:46:50.316701915 +0200
+@@ -126,6 +126,11 @@
+ /* ClamAV implementation */
+ #include <clamav.h>
+ 
++#ifndef __CLAMAV_CONFIG_H
++/* clamav 0.101.2 dropped installing clamav-config.h, assume it's major 9 for now */
++#define LIBCLAMAV_MAJORVER 9
 +#endif
- 
-     switch (r) {
-     case CL_CLEAN:
---- cyrus-imapd-3.0.8/Makefile.am.orig	2018-12-10 12:15:51.580494168 +0100
-+++ cyrus-imapd-3.0.8/Makefile.am	2018-12-10 12:14:59.394460523 +0100
-@@ -879,6 +879,7 @@
- imap_cyr_sphinxmgr_LDADD = $(LD_UTILITY_ADD)
- 
- imap_cyr_virusscan_SOURCES = imap/cli_fatal.c imap/cyr_virusscan.c imap/mutex_fake.c
-+imap_cyr_virusscan_CFLAGS = $(AM_CFLAGS) $(CLAMAV_CFLAGS) $(CFLAG_VISIBILITY)
- imap_cyr_virusscan_LDADD = $(LD_UTILITY_ADD) $(CLAMAV_LIBS)
- 
- imap_ctl_zoneinfo_SOURCES = imap/cli_fatal.c imap/ctl_zoneinfo.c imap/mutex_fake.c imap/zoneinfo_db.c
++
+ struct clamav_state {
+     struct cl_engine *av_engine;
+ };
diff --git a/cyrus-imapd-icu.patch b/cyrus-imapd-icu.patch
new file mode 100644
index 0000000..2458aa0
--- /dev/null
+++ b/cyrus-imapd-icu.patch
@@ -0,0 +1,39 @@
+--- cyrus-imapd-3.0.9/lib/charset.h.orig	2019-03-15 01:31:20.000000000 +0100
++++ cyrus-imapd-3.0.9/lib/charset.h	2019-04-16 18:25:58.340151121 +0200
+@@ -60,6 +60,10 @@
+ 
+ #include "unicode/ucnv.h"
+ 
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ #include "util.h"
+ 
+ typedef int comp_pat;
+@@ -127,4 +131,8 @@
+                            charset_t charset, int encoding,
+                            const char *subtype, int flags);
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif /* INCLUDED_CHARSET_H */
+--- cyrus-imapd-3.0.9/imap/xapian_wrap.cpp.orig	2019-03-15 01:31:20.000000000 +0100
++++ cyrus-imapd-3.0.9/imap/xapian_wrap.cpp	2019-04-16 18:30:21.718724277 +0200
+@@ -14,13 +14,13 @@
+ #include "search_part.h"
+ #include "xmalloc.h"
+ #include "xapian_wrap.h"
+-#include "charset.h"
+ #include "ptrarray.h"
+ 
+ 
+ /* generated headers are not necessarily in current directory */
+ #include "imap/imap_err.h"
+ };
++#include "charset.h"
+ 
+ #include <xapian.h>
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/cyrus-imapd.git/commitdiff/e68f6eb7b6bb65c0e12a9cb032d7cc8b2f0878e1



More information about the pld-cvs-commit mailing list