summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gentoo.org>2012-05-07 05:58:06 +0000
committerAlexandre Rostovtsev <tetromino@gentoo.org>2012-05-07 05:58:06 +0000
commit4e2e66a7ffb7d29b8385d73fc0ace889d1c2b2a5 (patch)
tree26a2b4557d727c2b4a4475407ddd74589785369a /gnome-extra
parentx86 stable, see bug 403199 (diff)
downloadgentoo-2-4e2e66a7ffb7d29b8385d73fc0ace889d1c2b2a5.tar.gz
gentoo-2-4e2e66a7ffb7d29b8385d73fc0ace889d1c2b2a5.tar.bz2
gentoo-2-4e2e66a7ffb7d29b8385d73fc0ace889d1c2b2a5.zip
Version bump for gnome-3.4 with numerous bugfixes. Backport patch fixing adding events to Google calendar to 3.2.3-r2 (bug #412829, thanks to Bernd Feige). Drop old.
(Portage version: 2.2.0_alpha101/cvs/Linux x86_64)
Diffstat (limited to 'gnome-extra')
-rw-r--r--gnome-extra/evolution-data-server/ChangeLog13
-rw-r--r--gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild (renamed from gnome-extra/evolution-data-server/evolution-data-server-3.2.3.ebuild)6
-rw-r--r--gnome-extra/evolution-data-server/evolution-data-server-3.4.1.ebuild140
-rw-r--r--gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch138
4 files changed, 295 insertions, 2 deletions
diff --git a/gnome-extra/evolution-data-server/ChangeLog b/gnome-extra/evolution-data-server/ChangeLog
index 114de2b1c6a6..6e360d9fa3c8 100644
--- a/gnome-extra/evolution-data-server/ChangeLog
+++ b/gnome-extra/evolution-data-server/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for gnome-extra/evolution-data-server
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.333 2012/05/05 06:25:24 jdhore Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.334 2012/05/07 05:58:06 tetromino Exp $
+
+*evolution-data-server-3.4.1 (07 May 2012)
+*evolution-data-server-3.2.3-r2 (07 May 2012)
+
+ 07 May 2012; Alexandre Rostovtsev <tetromino@gentoo.org>
+ -evolution-data-server-3.2.3.ebuild, +evolution-data-server-3.2.3-r2.ebuild,
+ +files/evolution-data-server-3.2.3-google-calendar.patch,
+ +evolution-data-server-3.4.1.ebuild:
+ Version bump for gnome-3.4 with numerous bugfixes. Backport patch fixing
+ adding events to Google calendar to 3.2.3-r2 (bug #412829, thanks to Bernd
+ Feige). Drop old.
05 May 2012; Jeff Horelick <jdhore@gentoo.org>
evolution-data-server-2.32.3-r1.ebuild,
diff --git a/gnome-extra/evolution-data-server/evolution-data-server-3.2.3.ebuild b/gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild
index 4cd2150f6593..8a8906da2eab 100644
--- a/gnome-extra/evolution-data-server/evolution-data-server-3.2.3.ebuild
+++ b/gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/evolution-data-server-3.2.3.ebuild,v 1.2 2012/05/05 06:25:24 jdhore Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/evolution-data-server-3.2.3-r2.ebuild,v 1.1 2012/05/07 05:58:06 tetromino Exp $
EAPI="4"
GCONF_DEBUG="no"
@@ -86,6 +86,10 @@ src_prepare() {
# fix linking with glib-2.31, bug #395777
epatch "${FILESDIR}/${PN}-3.2.2-gmodule-explicit.patch"
epatch "${FILESDIR}/${PN}-3.2.2-g_thread_init.patch"
+ # fix caldav quoting problems with libical-0.48, bug #405647
+ epatch "${FILESDIR}/${P}-caldav-cannot-modify.patch"
+ # fix Google calendar event adding, bug #412829
+ epatch "${FILESDIR}/${P}-google-calendar.patch"
eautoreconf
diff --git a/gnome-extra/evolution-data-server/evolution-data-server-3.4.1.ebuild b/gnome-extra/evolution-data-server/evolution-data-server-3.4.1.ebuild
new file mode 100644
index 000000000000..768ff3b140d1
--- /dev/null
+++ b/gnome-extra/evolution-data-server/evolution-data-server-3.4.1.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/evolution-data-server-3.4.1.ebuild,v 1.1 2012/05/07 05:58:06 tetromino Exp $
+
+EAPI="4"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit db-use eutils flag-o-matic gnome2 versionator virtualx
+
+DESCRIPTION="Evolution groupware backend"
+HOMEPAGE="http://www.gnome.org/projects/evolution/"
+
+LICENSE="LGPL-2 BSD DB"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~x86-solaris"
+IUSE="doc +gnome-online-accounts +introspection ipv6 ldap kerberos vala +weather"
+
+RDEPEND=">=dev-libs/glib-2.30:2
+ >=x11-libs/gtk+-3.2:3
+ >=gnome-base/gconf-2
+ >=dev-db/sqlite-3.5
+ >=dev-libs/libgdata-0.10
+ >=gnome-base/gnome-keyring-2.20.1
+ >=dev-libs/dbus-glib-0.6
+ >=dev-libs/libical-0.43
+ >=net-libs/libsoup-2.31.2:2.4
+ >=dev-libs/libxml2-2
+ >=sys-libs/db-4
+ >=dev-libs/nspr-4.4
+ >=dev-libs/nss-3.9
+
+ sys-libs/zlib
+ virtual/libiconv
+
+ gnome-online-accounts? (
+ >=net-libs/gnome-online-accounts-3.1.1
+ >=net-libs/liboauth-0.9.4 )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
+ kerberos? ( virtual/krb5 )
+ ldap? ( >=net-nds/openldap-2 )
+ weather? ( >=dev-libs/libgweather-2.90.0:2 )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ dev-util/gperf
+ >=dev-util/intltool-0.35.5
+ sys-devel/bison
+ >=gnome-base/gnome-common-2
+ >=dev-util/gtk-doc-am-1.9
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ doc? ( >=dev-util/gtk-doc-1.14 )
+ vala? ( >=dev-lang/vala-0.13.0:0.14[vapigen] )"
+# eautoreconf needs:
+# >=gnome-base/gnome-common-2
+# >=dev-util/gtk-doc-am-1.9
+
+REQUIRED_USE="vala? ( introspection )"
+
+# FIXME
+RESTRICT="test"
+
+pkg_setup() {
+ DOCS="ChangeLog MAINTAINERS NEWS TODO"
+ # Uh, what to do about dbus-call-timeout ?
+ G2CONF="${G2CONF}
+ --disable-schemas-compile
+ VALAC=$(type -P valac-0.14)
+ VAPIGEN=$(type -P vapigen-0.14)
+ $(use_enable gnome-online-accounts goa)
+ $(use_enable introspection)
+ $(use_enable ipv6)
+ $(use_with kerberos krb5 ${EPREFIX}/usr)
+ $(use_with ldap openldap)
+ $(use_enable vala vala-bindings)
+ $(use_enable weather)
+ --enable-nntp
+ --enable-largefile
+ --enable-smime
+ --with-libdb=${EPREFIX}/usr"
+}
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # GNOME bug 611353 (skips failing test atm)
+ # XXX: uncomment when there's a proper fix
+ #epatch "${FILESDIR}/e-d-s-camel-skip-failing-test.patch"
+
+ # GNOME bug 621763 (skip failing test-ebook-stress-factory--fifo)
+ #sed -e 's/\(SUBDIRS =.*\)ebook/\1/' \
+ # -i addressbook/tests/Makefile.{am,in} \
+ # || die "failing test sed 1 failed"
+
+ # /usr/include/db.h is always db-1 on FreeBSD
+ # so include the right dir in CPPFLAGS
+ append-cppflags "-I$(db_includedir)"
+
+ # FIXME: Fix compilation flags crazyness
+ # Touch configure.ac if doing eautoreconf
+ sed 's/^\(AM_CPPFLAGS="\)$WARNING_FLAGS/\1/' \
+ -i configure || die "sed failed"
+}
+
+src_install() {
+ # Prevent this evolution-data-server from linking to libs in the installed
+ # evolution-data-server libraries by adding -L arguments for build dirs to
+ # every .la file's relink_command field, forcing libtool to look there
+ # first during relinking. This will mangle the .la files installed by
+ # make install, but we don't care because we will be punting them anyway.
+ perl "${FILESDIR}/fix_relink_command.pl" . ||
+ die "fix_relink_command.pl failed"
+ gnome2_src_install
+
+ if use ldap; then
+ MY_MAJORV=$(get_version_component_range 1-2)
+ insinto /etc/openldap/schema
+ doins "${FILESDIR}"/calentry.schema || die "doins failed"
+ dosym /usr/share/${PN}-${MY_MAJORV}/evolutionperson.schema /etc/openldap/schema/evolutionperson.schema
+ fi
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ unset ORBIT_SOCKETDIR
+ unset SESSION_MANAGER
+ export XDG_DATA_HOME="${T}"
+ unset DISPLAY
+ Xemake check || die "Tests failed."
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ if use ldap; then
+ elog ""
+ elog "LDAP schemas needed by evolution are installed in /etc/openldap/schema"
+ fi
+}
diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch
new file mode 100644
index 000000000000..f59e31f2fdc7
--- /dev/null
+++ b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.3-google-calendar.patch
@@ -0,0 +1,138 @@
+From a5af0816154ac498cc231b0a61c905d3646e64f9 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Thu, 12 Apr 2012 14:52:21 +0200
+Subject: [PATCH] Bug #673894 - Adding events to Google Calendar is broken
+
+[Alexandre Rostovtsev <tetromino@gentoo.org>: backport to 3.2]
+---
+ calendar/backends/caldav/e-cal-backend-caldav.c | 83 +++++++++++++++++++++-
+ 1 files changed, 79 insertions(+), 4 deletions(-)
+
+diff --git a/calendar/backends/caldav/e-cal-backend-caldav.c b/calendar/backends/caldav/e-cal-backend-caldav.c
+index 12f8f22..7212e4f 100644
+--- a/calendar/backends/caldav/e-cal-backend-caldav.c
++++ b/calendar/backends/caldav/e-cal-backend-caldav.c
+@@ -314,6 +314,18 @@ static gboolean put_comp_to_cache (ECalBackendCalDAV *cbdav, icalcomponent *ical
+ #define X_E_CALDAV_ATTACHMENT_NAME X_E_CALDAV "ATTACHMENT-NAME"
+
+ static void
++update_slave_cmd (ECalBackendCalDAVPrivate *priv,
++ SlaveCommand slave_cmd)
++{
++ g_return_if_fail (priv != NULL);
++
++ if (priv->slave_cmd == SLAVE_SHOULD_DIE)
++ return;
++
++ priv->slave_cmd = slave_cmd;
++}
++
++static void
+ icomp_x_prop_set (icalcomponent *comp,
+ const gchar *key,
+ const gchar *value)
+@@ -1517,6 +1529,41 @@ caldav_post_freebusy (ECalBackendCalDAV *cbdav,
+ g_object_unref (message);
+ }
+
++static gchar *
++caldav_gen_file_from_uid_cal (ECalBackendCalDAV *cbdav,
++ icalcomponent *icalcomp)
++{
++ icalcomponent_kind my_kind;
++ const gchar *uid = NULL;
++ gchar *filename, *res;
++
++ g_return_val_if_fail (cbdav != NULL, NULL);
++ g_return_val_if_fail (icalcomp != NULL, NULL);
++
++ my_kind = e_cal_backend_get_kind (E_CAL_BACKEND (cbdav));
++ if (icalcomponent_isa (icalcomp) == ICAL_VCALENDAR_COMPONENT) {
++ icalcomponent *subcomp;
++
++ for (subcomp = icalcomponent_get_first_component (icalcomp, my_kind);
++ subcomp;
++ subcomp = icalcomponent_get_next_component (icalcomp, my_kind)) {
++ uid = icalcomponent_get_uid (subcomp);
++ break;
++ }
++ } else if (icalcomponent_isa (icalcomp) == my_kind) {
++ uid = icalcomponent_get_uid (icalcomp);
++ }
++
++ if (!uid)
++ return NULL;
++
++ filename = g_strconcat (uid, ".ics", NULL);
++ res = soup_uri_encode (filename, NULL);
++ g_free (filename);
++
++ return res;
++}
++
+ static gboolean
+ caldav_server_put_object (ECalBackendCalDAV *cbdav,
+ CalDAVObject *object,
+@@ -1583,7 +1630,7 @@ caldav_server_put_object (ECalBackendCalDAV *cbdav,
+ }
+
+ if (status_code_to_result (message, priv, perror)) {
+- gboolean was_get = FALSE;
++ GError *local_error = NULL;
+
+ hdr = soup_message_headers_get (message->response_headers, "ETag");
+ if (hdr != NULL) {
+@@ -1609,12 +1656,38 @@ caldav_server_put_object (ECalBackendCalDAV *cbdav,
+ }
+ }
+
+- was_get = TRUE;
++ if (!caldav_server_get_object (cbdav, object, &local_error)) {
++ if (g_error_matches (local_error, E_DATA_CAL_ERROR, NoSuchCal)) {
++ gchar *file;
++
++ /* OK, the event was properly created, but cannot be found on the place
++ where it was PUT - why didn't server tell us where it saved it? */
++ g_clear_error (&local_error);
++
++ /* try whether it's saved as its UID.ics file */
++ file = caldav_gen_file_from_uid_cal (cbdav, icalcomp);
++ if (file) {
++ g_free (object->href);
++ object->href = file;
++
++ if (!caldav_server_get_object (cbdav, object, &local_error)) {
++ if (g_error_matches (local_error, E_DATA_CAL_ERROR, NoSuchCal)) {
++ g_clear_error (&local_error);
++
++ /* not sure what can happen, but do not need to guess for ever,
++ thus report success and update the calendar to get fresh info */
++ update_slave_cmd (cbdav->priv, SLAVE_SHOULD_WORK);
++ g_cond_signal (cbdav->priv->cond);
++ }
++ }
++ }
++ }
++ }
+
+- if (caldav_server_get_object (cbdav, object, perror)) {
++ if (!local_error) {
+ icalcomponent *use_comp = NULL;
+
+- if (object->cdata && was_get) {
++ if (object->cdata) {
+ /* maybe server also modified component, thus rather store the server's */
+ use_comp = icalparser_parse_string (object->cdata);
+ }
+@@ -1626,6 +1699,8 @@ caldav_server_put_object (ECalBackendCalDAV *cbdav,
+
+ if (use_comp != icalcomp)
+ icalcomponent_free (use_comp);
++ } else {
++ g_propagate_error (perror, local_error);
+ }
+ } else if (message->status_code == 401) {
+ caldav_notify_auth_required (cbdav);
+--
+1.7.8.6
+