commit:     d7aaf5f20bb2540f1dc8d041a1645f152babfd76
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 15 17:41:53 2017 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Wed Mar 15 23:15:47 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d7aaf5f2

gnome-extra/evolution-data-server: fix Google Contacts/Tasks support with 
USE="gnome-online-accounts -google"

--enable-google controls whether evolution knows how to talk to Google outside 
IMAP/SMTP/CalDAV; this should
have been named --enable-gdata by upstream (and might get renamed to that soon, 
actually).
--enable-goa controls whether gnome-online-accounts is supported as a 
credentials backend for Google OAuth2.
--enable-uoa controls whether ubuntu-online-accounts is supported as a 
credentials backend for Google OAuth2;
we do not support this (at least currently).
--enable-google-auth controls whether an internal Google support for OAuth2 
credentials is built and supported.

Rework the logic based on this to just always enable Contacts/Tasks support 
when either way to
support Google OAuth2 is enabled and thus available. Both can be enabled as 
well and is suggested
by upstream to do so. Also clarify metadata.xml with this, and remove the 
security warnings as
3.22 is not affected by this (having ported to SLOT=4) and the impact to 3.20 
is minimal as only
Google OAuth2 login/auth view is shown by it.

Package-Manager: Portage-2.3.4, Repoman-2.3.1

 .../evolution-data-server-3.22.6-r1.ebuild         | 135 +++++++++++++++++++++
 gnome-extra/evolution-data-server/metadata.xml     |   7 +-
 2 files changed, 138 insertions(+), 4 deletions(-)

diff --git 
a/gnome-extra/evolution-data-server/evolution-data-server-3.22.6-r1.ebuild 
b/gnome-extra/evolution-data-server/evolution-data-server-3.22.6-r1.ebuild
new file mode 100644
index 00000000000..bd14ba82162
--- /dev/null
+++ b/gnome-extra/evolution-data-server/evolution-data-server-3.22.6-r1.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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.17.7 soft required for new gdata_feed_get_next_page_token API to 
handle more than 100 google tasks
+# berkdb needed only for migrating old calendar data, bug #519512
+gdata_depend=">=dev-libs/libgdata-0.17.7:="
+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/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
+               >=net-libs/webkit-gtk-2.11.91:4
+               ${gdata_depend}
+       )
+       gnome-online-accounts? (
+               >=net-libs/gnome-online-accounts-3.8:=
+               ${gdata_depend} )
+       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"
+
+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)"
+       local gdata_flag
+       if use google || use gnome-online-accounts; then
+               gdata_flag="--enable-google"
+       else
+               gdata_flag="--disable-google"
+       fi
+
+       # 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) \
+               ${gdata_flag} \
+               $(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
+}

diff --git a/gnome-extra/evolution-data-server/metadata.xml 
b/gnome-extra/evolution-data-server/metadata.xml
index 06a94bb621b..5c891ea46d4 100644
--- a/gnome-extra/evolution-data-server/metadata.xml
+++ b/gnome-extra/evolution-data-server/metadata.xml
@@ -8,10 +8,9 @@
        <use>
                <flag name="api-doc-extras">Build documentation for private 
APIs</flag>
                <flag name="berkdb"><pkg>sys-libs/db</pkg> support needed to 
migrate old (pre-3.12 evolution versions) addressbook data</flag>
-               <flag name="gnome-online-accounts">Enable using 
<pkg>net-libs/gnome-online-accounts</pkg> for authorization</flag>
-               <flag name="google">Enable Google Contacts support. This will 
also enable the internal Google authentication support.
-                       Please note this last one relies on a deprecated (and 
vulnerable) <pkg>net-libs/webkit-gtk</pkg> slot.
-                       If you want to avoid this dependency, you can disable 
this support and rely on gnome-online-accounts instead</flag>
+               <flag name="gnome-online-accounts">Enable 
<pkg>net-libs/gnome-online-accounts</pkg> based Google authentication 
support</flag>
+               <flag name="google">Enable internal Google authentication 
support. If gnome-online-accounts is enabled and used, this is not necessary,
+                       but both can be supported at the same time with 
different setup at runtime</flag>
                <flag name="weather">Enable optional weather calendar 
support</flag>
        </use>
 </pkgmetadata>

Reply via email to