--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 python3_{4,5} pypy )
+VALA_USE_DEPEND="vapigen"
+
+inherit db-use flag-o-matic gnome2 python-any-r1 systemd vala virtualx
+
+DESCRIPTION="Evolution groupware backend"
+HOMEPAGE="https://wiki.gnome.org/Apps/Evolution"
+
+# Note: explicitly "|| ( LGPL-2 LGPL-3 )", not "LGPL-2+".
+LICENSE="|| ( LGPL-2 LGPL-3 ) BSD Sleepycat"
+SLOT="0/59" # subslot = libcamel-1.2 soname version
+
+IUSE="api-doc-extras berkdb +gnome-online-accounts +gtk google +introspection ipv6 ldap kerberos vala +weather"
+REQUIRED_USE="vala? ( introspection )"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
+
+# sys-libs/db is only required for migrating from <3.13 versions
+# gdata-0.15.1 is required for google tasks
+# berkdb needed only for migrating old calendar data, bug #519512
+RDEPEND="
+ >=app-crypt/gcr-3.4
+ >=app-crypt/libsecret-0.5[crypt]
+ >=dev-db/sqlite-3.7.17:=
+ >=dev-libs/glib-2.46:2
+ >=dev-libs/libgdata-0.10:=
+ >=dev-libs/libical-0.43:=
+ >=dev-libs/libxml2-2
+ >=dev-libs/nspr-4.4:=
+ >=dev-libs/nss-3.9:=
+ >=net-libs/libsoup-2.42:2.4
+
+ dev-libs/icu:=
+ sys-libs/zlib:=
+ virtual/libiconv
+
+ berkdb? ( >=sys-libs/db-4:= )
+ gtk? (
+ >=app-crypt/gcr-3.4[gtk]
+ >=x11-libs/gtk+-3.10:3
+ )
+ google? (
+ >=dev-libs/json-glib-1.0.4
+ >=dev-libs/libgdata-0.15.1:=
+ >=net-libs/webkit-gtk-2.11.91:4
+ )
+ gnome-online-accounts? ( >=net-libs/gnome-online-accounts-3.8:= )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.12:= )
+ kerberos? ( virtual/krb5:= )
+ ldap? ( >=net-nds/openldap-2:= )
+ weather? ( >=dev-libs/libgweather-3.10:2= )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-util/gdbus-codegen
+ dev-util/gperf
+ >=dev-util/gtk-doc-am-1.14
+ >=dev-util/intltool-0.35.5
+ >=gnome-base/gnome-common-2
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+"
+
+# Some tests fail due to missings locales.
+# Also, dbus tests are flacky, bugs #397975 #501834
+# It looks like a nightmare to disable those for now.
+RESTRICT="test"
+
+# From gnome-3-22 branch, will be included in 3.22.5 release
+PATCHES=(
+ "${FILESDIR}"/${PV}-gperf-3.1.patch
+ "${FILESDIR}"/${PV}-imap-notify.patch
+)
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ use vala && vala_src_prepare
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # /usr/include/db.h is always db-1 on FreeBSD
+ # so include the right dir in CPPFLAGS
+ use berkdb && append-cppflags "-I$(db_includedir)"
+
+ # phonenumber does not exist in tree
+ gnome2_src_configure \
+ $(use_enable api-doc-extras gtk-doc) \
+ $(use_with api-doc-extras private-docs) \
+ $(usex berkdb --with-libdb="${EPREFIX}"/usr --with-libdb=no) \
+ $(use_enable gnome-online-accounts goa) \
+ $(use_enable gtk) \
+ $(use_enable google google-auth) \
+ $(use_enable google) \
+ $(use_enable introspection) \
+ $(use_enable ipv6) \
+ $(use_with kerberos krb5 "${EPREFIX}"/usr) \
+ $(use_with kerberos krb5-libs "${EPREFIX}"/usr/$(get_libdir)) \
+ $(use_with ldap openldap) \
+ $(use_enable vala vala-bindings) \
+ $(use_enable weather) \
+ --enable-largefile \
+ --enable-smime \
+ --with-systemduserunitdir="$(systemd_get_userunitdir)" \
+ --without-phonenumber \
+ --disable-examples \
+ --disable-uoa
+}
+
+src_test() {
+ unset ORBIT_SOCKETDIR
+ unset SESSION_MANAGER
+ virtx emake check
+}
+
+src_install() {
+ gnome2_src_install
+
+ if use ldap; then
+ insinto /etc/openldap/schema
+ doins "${FILESDIR}"/calentry.schema
+ dosym /usr/share/${PN}/evolutionperson.schema /etc/openldap/schema/evolutionperson.schema
+ fi
+}
--- /dev/null
+From 60d1cbbdc49ea254e30303d936e8f2b6b136afe4 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Mon, 6 Feb 2017 18:30:49 +0100
+Subject: Bug 778222 - Fix a build break with gperf 3.1
+
+---
+ camel/providers/imapx/camel-imapx-tokens.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/camel/providers/imapx/camel-imapx-tokens.txt b/camel/providers/imapx/camel-imapx-tokens.txt
+index ed278bd..61c7115 100644
+--- a/camel/providers/imapx/camel-imapx-tokens.txt
++++ b/camel/providers/imapx/camel-imapx-tokens.txt
+@@ -1,7 +1,6 @@
+ /* This contains all of the keywords we care about. These
+ can be converted to an id very efficiently */
+ struct _imapx_keyword {const gchar *name; camel_imapx_id_t id; };
+-struct _imapx_keyword *imapx_tokenise_struct (register const char *str, register unsigned int len);
+ %%
+ ALERT, IMAPX_ALERT
+ ALREADYEXISTS, IMAPX_ALREADYEXISTS
+--
+cgit v0.12
+
--- /dev/null
+From 5d830ed06a4bc4313a1f08b6fe47291d02639e04 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Mon, 6 Feb 2017 19:58:54 +0100
+Subject: Bug 778069 - UI not updated after IMAP NOTIFY notifications
+
+---
+ camel/providers/imapx/camel-imapx-server.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
+index 6b23a9a..09735fa 100644
+--- a/camel/providers/imapx/camel-imapx-server.c
++++ b/camel/providers/imapx/camel-imapx-server.c
+@@ -1685,6 +1685,10 @@ imapx_untagged_status (CamelIMAPXServer *is,
+ if (mailbox != NULL) {
+ camel_imapx_mailbox_handle_status_response (mailbox, response);
+ camel_imapx_store_emit_mailbox_updated (imapx_store, mailbox);
++
++ if (camel_imapx_server_is_in_idle (is))
++ g_signal_emit (is, signals[REFRESH_MAILBOX], 0, mailbox);
++
+ g_object_unref (mailbox);
+ }
+
+--
+cgit v0.12
+