summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gentoo.org>2011-12-31 04:53:23 +0000
committerAlexandre Rostovtsev <tetromino@gentoo.org>2011-12-31 04:53:23 +0000
commit99f95145ac8132d16023a808c1a6fd87c0244706 (patch)
tree26877b65edd7e798cabf0a5eceaaf61e21e00913 /gnome-extra
parentVersion bump, see http://www.winehq.org/announce/1.3.36 for the announcement.... (diff)
downloadgentoo-2-99f95145ac8132d16023a808c1a6fd87c0244706.tar.gz
gentoo-2-99f95145ac8132d16023a808c1a6fd87c0244706.tar.bz2
gentoo-2-99f95145ac8132d16023a808c1a6fd87c0244706.zip
Add upstream patches to fix several bugs, including a crash. Also, fix linking with glib-2.31 (bug #395777, thanks to Oschtan for reporting).
(Portage version: 2.2.0_alpha84/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.2-r1.ebuild151
-rw-r--r--gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-gmodule-explicit.patch51
-rw-r--r--gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-libical-timezones.patch67
-rw-r--r--gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-new-folder-imap.patch26
-rw-r--r--gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-retrieval_done-crash.patch111
6 files changed, 418 insertions, 1 deletions
diff --git a/gnome-extra/evolution-data-server/ChangeLog b/gnome-extra/evolution-data-server/ChangeLog
index d0adfb31311d..1aec21703450 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-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.320 2011/12/07 07:33:02 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.321 2011/12/31 04:53:23 tetromino Exp $
+
+*evolution-data-server-3.2.2-r1 (31 Dec 2011)
+
+ 31 Dec 2011; Alexandre Rostovtsev <tetromino@gentoo.org>
+ +evolution-data-server-3.2.2-r1.ebuild,
+ +files/evolution-data-server-3.2.2-gmodule-explicit.patch,
+ +files/evolution-data-server-3.2.2-libical-timezones.patch,
+ +files/evolution-data-server-3.2.2-new-folder-imap.patch,
+ +files/evolution-data-server-3.2.2-retrieval_done-crash.patch:
+ Add upstream patches to fix several bugs, including a crash. Also, fix
+ linking with glib-2.31 (bug #395777, thanks to Oschtan for reporting).
07 Dec 2011; Alexandre Rostovtsev <tetromino@gentoo.org>
evolution-data-server-2.32.2.ebuild, evolution-data-server-2.32.2-r1.ebuild,
diff --git a/gnome-extra/evolution-data-server/evolution-data-server-3.2.2-r1.ebuild b/gnome-extra/evolution-data-server/evolution-data-server-3.2.2-r1.ebuild
new file mode 100644
index 000000000000..ca887fa1d7a1
--- /dev/null
+++ b/gnome-extra/evolution-data-server/evolution-data-server-3.2.2-r1.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2011 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.2-r1.ebuild,v 1.1 2011/12/31 04:53:23 tetromino Exp $
+
+EAPI="4"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit autotools 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"
+
+# GNOME3: How do we slot libedataserverui-3.0.so?
+# Also, libedata-cal-1.2.so and libecal-1.2.so use gtk-3, but aren't slotted
+RDEPEND=">=dev-libs/glib-2.28:2
+ >=x11-libs/gtk+-3.0:3
+ >=gnome-base/gconf-2
+ >=dev-db/sqlite-3.5
+ >=dev-libs/libgdata-0.9.1
+ >=gnome-base/gnome-keyring-2.20.1
+ >=dev-libs/libical-0.43
+ >=net-libs/libsoup-2.31.2:2.4
+ >=dev-libs/libxml2-2
+ >=dev-libs/nspr-4.4
+ >=dev-libs/nss-3.9
+ >=sys-libs/db-4
+ 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/pkgconfig-0.9
+ >=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
+ doc? ( >=dev-util/gtk-doc-1.9 )
+ 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 ?
+ # Fails to build with --disable-ssl; bug #392679, https://bugzilla.gnome.org/show_bug.cgi?id=642984
+ G2CONF="${G2CONF}
+ 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-calendar
+ --enable-largefile
+ --enable-nntp
+ --enable-ssl
+ --enable-smime
+ --with-libdb=${EPREFIX}/usr"
+}
+
+src_prepare() {
+ # Useful upstream patches, will be in next release
+ epatch "${FILESDIR}/${P}-libical-timezones.patch"
+ epatch "${FILESDIR}/${P}-new-folder-imap.patch"
+ epatch "${FILESDIR}/${P}-retrieval_done-crash.patch"
+
+ # fix linking with glib-2.31, bug #395777
+ epatch "${FILESDIR}/${PN}-3.2.2-gmodule-explicit.patch"
+
+ eautoreconf
+
+ 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.2-gmodule-explicit.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-gmodule-explicit.patch
new file mode 100644
index 000000000000..b9fc9c0294f0
--- /dev/null
+++ b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-gmodule-explicit.patch
@@ -0,0 +1,51 @@
+From 46169b9f411850a6605c34bb1a35dadf27e15dca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20L=C3=B3pez=20Le=C3=B3n?= <dieguitoll@gmail.com>
+Date: Tue, 29 Nov 2011 19:34:12 -0600
+Subject: [PATCH] Bug 664819 - gmodule-2.0 dependency must be explicit
+
+---
+ configure.ac | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b325283..b538251 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -334,6 +334,7 @@ dnl Check for base dependencies early.
+ dnl ***********************************
+ PKG_CHECK_MODULES(GNOME_PLATFORM,
+ [gio-2.0 >= glib_minimum_version
++ gmodule-2.0 >= glib_minimum_version
+ gtk+-3.0 >= gtk_minimum_version
+ gconf-2.0 >= gconf_minimum_version
+ libxml-2.0 >= libxml_minimum_version
+@@ -1272,7 +1273,7 @@ PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
+ dnl ******************************
+ dnl libedataserver flags
+ dnl ******************************
+-E_DATA_SERVER_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 gconf-2.0 $mozilla_nspr"
++E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 libxml-2.0 libsoup-2.4 gconf-2.0 $mozilla_nspr"
+
+ EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
+ AC_SUBST(E_DATA_SERVER_CFLAGS)
+@@ -1294,7 +1295,7 @@ if test "x$enable_maintainer_mode" = "xyes" ; then
+ AC_SUBST(FACTORY_GTK_LIBS)
+ fi
+
+-E_BACKEND_DEPS="gio-2.0 libxml-2.0 gconf-2.0"
++E_BACKEND_DEPS="gio-2.0 gmodule-2.0 libxml-2.0 gconf-2.0"
+
+ dnl ******************************
+ dnl libebackend flags
+@@ -1437,7 +1438,7 @@ fi
+
+ AM_CONDITIONAL(ENABLE_LARGEFILE, [test "x$enable_largefile" = "xyes"])
+
+-EVO_SET_COMPILE_FLAGS(CAMEL, gio-2.0 $mozilla_nss sqlite3 >= sqlite_minimum_version, $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $LARGEFILE_CFLAGS, -lz $KRB5_LIBS $MANUAL_NSS_LIBS)
++EVO_SET_COMPILE_FLAGS(CAMEL, gio-2.0 gmodule-2.0 $mozilla_nss sqlite3 >= sqlite_minimum_version, $KRB5_CFLAGS $MANUAL_NSS_CFLAGS $LARGEFILE_CFLAGS, -lz $KRB5_LIBS $MANUAL_NSS_LIBS)
+ AC_SUBST(CAMEL_CFLAGS)
+ AC_SUBST(CAMEL_LIBS)
+
+--
+1.7.8.1
+
diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-libical-timezones.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-libical-timezones.patch
new file mode 100644
index 000000000000..b7cf9d614c60
--- /dev/null
+++ b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-libical-timezones.patch
@@ -0,0 +1,67 @@
+From af5d404e57f43e58cac037ad3370e31004347c6e Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Wed, 23 Nov 2011 09:31:01 +0100
+Subject: [PATCH] Pre-load all built-in timezones in libical on calendar
+ factory start
+
+This is the same fix as was done in evolution within bug #628139
+---
+ calendar/libedata-cal/e-data-cal-factory.c | 27 +++++++++++++++++++++++++--
+ 1 files changed, 25 insertions(+), 2 deletions(-)
+
+diff --git a/calendar/libedata-cal/e-data-cal-factory.c b/calendar/libedata-cal/e-data-cal-factory.c
+index 4413341..df3e136 100644
+--- a/calendar/libedata-cal/e-data-cal-factory.c
++++ b/calendar/libedata-cal/e-data-cal-factory.c
+@@ -52,9 +52,7 @@
+
+ #include "e-gdbus-cal-factory.h"
+
+-#ifdef HAVE_ICAL_UNKNOWN_TOKEN_HANDLING
+ #include <libical/ical.h>
+-#endif
+
+ #ifdef G_OS_WIN32
+ #include <windows.h>
+@@ -1007,6 +1005,8 @@ main (gint argc,
+ EDataCalFactory *factory;
+ guint owner_id;
+ GError *error = NULL;
++ icalarray *builtin_timezones;
++ gint ii;
+
+ #ifdef G_OS_WIN32
+ /* Reduce risks */
+@@ -1057,6 +1057,29 @@ main (gint argc,
+ ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN);
+ #endif
+
++ /* XXX Pre-load all built-in timezones in libical.
++ *
++ * Built-in time zones in libical 0.43 are loaded on demand,
++ * but not in a thread-safe manner, resulting in a race when
++ * multiple threads call icaltimezone_load_builtin_timezone()
++ * on the same time zone. Until built-in time zone loading
++ * in libical is made thread-safe, work around the issue by
++ * loading all built-in time zones now, so libical's internal
++ * time zone array will be fully populated before any threads
++ * are spawned.
++ */
++ builtin_timezones = icaltimezone_get_builtin_timezones ();
++ for (ii = 0; ii < builtin_timezones->num_elements; ii++) {
++ icaltimezone *zone;
++
++ zone = icalarray_element_at (builtin_timezones, ii);
++
++ /* We don't care about the component right now,
++ * we just need some function that will trigger
++ * icaltimezone_load_builtin_timezone(). */
++ icaltimezone_get_component (zone);
++ }
++
+ factory = g_object_new (E_TYPE_DATA_CAL_FACTORY, NULL);
+
+ loop = g_main_loop_new (NULL, FALSE);
+--
+1.7.8.1
+
diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-new-folder-imap.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-new-folder-imap.patch
new file mode 100644
index 000000000000..d6cbc9376673
--- /dev/null
+++ b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-new-folder-imap.patch
@@ -0,0 +1,26 @@
+From 0e421dfb0d9fd1e36a28d8bb47c0ae46ca4925f5 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Fri, 16 Dec 2011 09:15:03 +0100
+Subject: [PATCH] Bug #665253 - "New folder" dialog does not show IMAP
+ accounts
+
+---
+ camel/providers/imap/camel-imap-store.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
+index c46e575..b5ddf93 100644
+--- a/camel/providers/imap/camel-imap-store.c
++++ b/camel/providers/imap/camel-imap-store.c
+@@ -1226,7 +1226,7 @@ imap_store_initable_init (GInitable *initable,
+ CAMEL_STORE (service)->flags &= ~CAMEL_STORE_VJUNK;
+ CAMEL_STORE (service)->flags |= CAMEL_STORE_REAL_JUNK_FOLDER;
+ } else {
+- CAMEL_STORE (service)->flags &= CAMEL_STORE_REAL_JUNK_FOLDER;
++ CAMEL_STORE (service)->flags &= ~CAMEL_STORE_REAL_JUNK_FOLDER;
+ CAMEL_STORE (service)->flags |= CAMEL_STORE_VJUNK;
+ }
+
+--
+1.7.8.1
+
diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-retrieval_done-crash.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-retrieval_done-crash.patch
new file mode 100644
index 000000000000..31cfa772f3e8
--- /dev/null
+++ b/gnome-extra/evolution-data-server/files/evolution-data-server-3.2.2-retrieval_done-crash.patch
@@ -0,0 +1,111 @@
+From c1b00584c34b3d6b5784c54256398c4197b23078 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Wed, 14 Dec 2011 17:37:23 +0100
+Subject: [PATCH] Bug #662068 - Crash in e-cal-backend-http.c:retrieval_done
+
+---
+ calendar/backends/http/e-cal-backend-http.c | 19 +++++++++++++++++--
+ 1 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/calendar/backends/http/e-cal-backend-http.c b/calendar/backends/http/e-cal-backend-http.c
+index d40bdd3..c053e3b 100644
+--- a/calendar/backends/http/e-cal-backend-http.c
++++ b/calendar/backends/http/e-cal-backend-http.c
+@@ -368,6 +368,12 @@ retrieval_done (SoupSession *session,
+ GHashTable *old_cache;
+ GSList *comps_in_cache;
+
++ if (!msg || msg->status_code == SOUP_STATUS_CANCELLED) {
++ /* the backend probably gone in this case, thus just return */
++ g_object_unref (cbhttp);
++ return;
++ }
++
+ priv = cbhttp->priv;
+
+ priv->is_loading = FALSE;
+@@ -376,12 +382,14 @@ retrieval_done (SoupSession *session,
+ if (!priv->uri) {
+ /* uri changed meanwhile, retrieve again */
+ begin_retrieval_cb (cbhttp);
++ g_object_unref (cbhttp);
+ return;
+ }
+
+ if (msg->status_code == SOUP_STATUS_NOT_MODIFIED) {
+ /* attempts with ETag can result in 304 status code */
+ priv->opened = TRUE;
++ g_object_unref (cbhttp);
+ return;
+ }
+
+@@ -399,7 +407,7 @@ retrieval_done (SoupSession *session,
+ uri_parsed = soup_uri_new (priv->uri);
+ soup_uri_set_path (uri_parsed, newuri);
+ soup_uri_set_query (uri_parsed, NULL);
+- // g_free (newuri);
++ /* g_free (newuri); */
+
+ newuri = soup_uri_to_string (uri_parsed, FALSE);
+ g_message ("Translated URI: %s\n", newuri);
+@@ -417,6 +425,7 @@ retrieval_done (SoupSession *session,
+ }
+ }
+
++ g_object_unref (cbhttp);
+ return;
+ }
+
+@@ -426,6 +435,7 @@ retrieval_done (SoupSession *session,
+ if (msg->status_code == 401 || msg->status_code == 403) {
+ priv->requires_auth = TRUE;
+ e_cal_backend_notify_auth_required (E_CAL_BACKEND (cbhttp), TRUE, priv->credentials);
++ g_object_unref (cbhttp);
+ return;
+ } else
+ e_cal_backend_notify_error (E_CAL_BACKEND (cbhttp),
+@@ -434,6 +444,7 @@ retrieval_done (SoupSession *session,
+ }
+
+ empty_cache (cbhttp);
++ g_object_unref (cbhttp);
+ return;
+ }
+
+@@ -453,6 +464,7 @@ retrieval_done (SoupSession *session,
+ if (!priv->opened)
+ e_cal_backend_notify_error (E_CAL_BACKEND (cbhttp), _("Bad file format."));
+ empty_cache (cbhttp);
++ g_object_unref (cbhttp);
+ return;
+ }
+
+@@ -461,6 +473,7 @@ retrieval_done (SoupSession *session,
+ e_cal_backend_notify_error (E_CAL_BACKEND (cbhttp), _("Not a calendar."));
+ icalcomponent_free (icalcomp);
+ empty_cache (cbhttp);
++ g_object_unref (cbhttp);
+ return;
+ }
+
+@@ -543,6 +556,8 @@ retrieval_done (SoupSession *session,
+
+ priv->opened = TRUE;
+
++ g_object_unref (cbhttp);
++
+ d(g_message ("Retrieval really done.\n"));
+ }
+
+@@ -648,7 +663,7 @@ begin_retrieval_cb (ECalBackendHttp *cbhttp)
+ }
+
+ soup_session_queue_message (priv->soup_session, soup_message,
+- (SoupSessionCallback) retrieval_done, cbhttp);
++ (SoupSessionCallback) retrieval_done, g_object_ref (cbhttp));
+
+ d(g_message ("Retrieval started.\n"));
+ return FALSE;
+--
+1.7.8.1
+