diff options
author | Alexandre Rostovtsev <tetromino@gentoo.org> | 2011-12-31 04:53:23 +0000 |
---|---|---|
committer | Alexandre Rostovtsev <tetromino@gentoo.org> | 2011-12-31 04:53:23 +0000 |
commit | 99f95145ac8132d16023a808c1a6fd87c0244706 (patch) | |
tree | 26877b65edd7e798cabf0a5eceaaf61e21e00913 /gnome-extra | |
parent | Version bump, see http://www.winehq.org/announce/1.3.36 for the announcement.... (diff) | |
download | gentoo-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')
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 + |