summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2008-03-09 07:57:37 +0000
committerMart Raudsepp <leio@gentoo.org>2008-03-09 07:57:37 +0000
commitf9d158b82509235082e7079c2c17fbda109363e9 (patch)
treee2a14ecffb4495eed21d3e4a37c6219756b9e46c /gnome-extra/evolution-exchange
parentInitial import of gflags (diff)
downloadhistorical-f9d158b82509235082e7079c2c17fbda109363e9.tar.gz
historical-f9d158b82509235082e7079c2c17fbda109363e9.tar.bz2
historical-f9d158b82509235082e7079c2c17fbda109363e9.zip
Fix backend crashes in some situations caused by thread locking problems, bug 201824. Remove old versions
Package-Manager: portage-2.1.4.4
Diffstat (limited to 'gnome-extra/evolution-exchange')
-rw-r--r--gnome-extra/evolution-exchange/ChangeLog12
-rw-r--r--gnome-extra/evolution-exchange/Manifest19
-rw-r--r--gnome-extra/evolution-exchange/evolution-exchange-2.12.3-r1.ebuild (renamed from gnome-extra/evolution-exchange/evolution-exchange-2.10.3.ebuild)23
-rw-r--r--gnome-extra/evolution-exchange/evolution-exchange-2.6.2-r1.ebuild54
-rw-r--r--gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch152
-rw-r--r--gnome-extra/evolution-exchange/files/evolution-exchange-2.6.2-fix-loop.patch32
6 files changed, 191 insertions, 101 deletions
diff --git a/gnome-extra/evolution-exchange/ChangeLog b/gnome-extra/evolution-exchange/ChangeLog
index 4cded41eb2db..573b6c4c9623 100644
--- a/gnome-extra/evolution-exchange/ChangeLog
+++ b/gnome-extra/evolution-exchange/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for gnome-extra/evolution-exchange
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-exchange/ChangeLog,v 1.57 2008/02/29 16:07:33 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-exchange/ChangeLog,v 1.58 2008/03/09 07:57:37 leio Exp $
+
+*evolution-exchange-2.12.3-r1 (09 Mar 2008)
+
+ 09 Mar 2008; Mart Raudsepp <leio@gentoo.org>
+ -files/evolution-exchange-2.6.2-fix-loop.patch,
+ +files/evolution-exchange-2.12.3-fix-locks.patch,
+ -evolution-exchange-2.6.2-r1.ebuild, -evolution-exchange-2.10.3.ebuild,
+ +evolution-exchange-2.12.3-r1.ebuild:
+ Fix backend crashes in some situations caused by thread locking problems,
+ bug 201824. Remove old versions
29 Feb 2008; Jeroen Roovers <jer@gentoo.org>
evolution-exchange-2.10.3.ebuild, evolution-exchange-2.12.0.ebuild,
diff --git a/gnome-extra/evolution-exchange/Manifest b/gnome-extra/evolution-exchange/Manifest
index 3a09f2835805..fc34477a081a 100644
--- a/gnome-extra/evolution-exchange/Manifest
+++ b/gnome-extra/evolution-exchange/Manifest
@@ -1,11 +1,18 @@
-AUX evolution-exchange-2.6.2-fix-loop.patch 1030 RMD160 9f822ac3e0dcf16ac7352b5e0b48b02e00eb2e18 SHA1 d0a2c08bf3f0415463ebf96d9d6ceb76bc395bbc SHA256 8569558d23737de244b2153f6330c1270a652060c89cbd3a94cb4f2e5e92d605
-DIST evolution-exchange-2.10.3.tar.bz2 1046362 RMD160 f689037d33ffe9055f766e5787dab0a26ef7a5e7 SHA1 844e1aa1d67f45039f98f09679fb77b745cf0474 SHA256 281950cce0bc3e21dd7df30bad2bcc9f52413936ba3aaa324ccab069ee494016
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+AUX evolution-exchange-2.12.3-fix-locks.patch 4460 RMD160 935a763c56441b8c500aa1347aa74f44bb6b8b8b SHA1 e0226c670f6b008111c18ef7ab5137f0b7d85df1 SHA256 434cda88f36a7e145b3730e523c2ff2dcb77c80f3139060bf62a1308f8e8e547
DIST evolution-exchange-2.12.0.tar.bz2 1060028 RMD160 05f0983febc5a01b013cfde80916fa2314b1f2e5 SHA1 56762dadeea1d04122c150baa71aeda7e67d2e0b SHA256 635b96a5624c9af09ec18ffafe5446c004143e150a92edeb96322fcea2935584
DIST evolution-exchange-2.12.3.tar.bz2 1064907 RMD160 751c386011846d630228ba976e203b39e373f782 SHA1 099f61a31528b7cb6f14f382eb39e7e2e110dcd5 SHA256 96f86d5a36f9f5583e5d4c14e6e48d0a42ccd4f7e4e04bf8b5616232cd82b50b
-DIST evolution-exchange-2.6.2.tar.bz2 977972 RMD160 c833a220a5eebf4c9adf00b69333aea15b6b4e2d SHA1 e93d2e0ad7aa4790d65fffd7fee0a0c89b9e8024 SHA256 78130edc5b7390c29883e405c1ae0a19bae656c46f1c20224220dee167c49d56
-EBUILD evolution-exchange-2.10.3.ebuild 1329 RMD160 047e63366833b77a6518b396afdd9120ac029d6d SHA1 5fa54322ab4b939240beefe1d556ba6a9913c06e SHA256 e7b440cf27ef8c86393fc3de288370e2da298eb28248586ccf64a5e782506a5a
EBUILD evolution-exchange-2.12.0.ebuild 1319 RMD160 d140dc79aebc2058a41118ebeb172fb5c95399cb SHA1 dcfea923c61b5216e831c2eb18399ef02e7118b5 SHA256 59aac6dcf3b7ac508de2b87b6e4bf25818f01e32547c98f966133ca474a60486
+EBUILD evolution-exchange-2.12.3-r1.ebuild 1426 RMD160 e612eae29ac905181c8046d5a7459aa4f1f75eef SHA1 47daec077fa4976c4c72117e28df31249d649fdb SHA256 6cd4a83da0da19ddcb11aa61a2d436a5a6f1ed0166d861831d82b4e0f3b0cfef
EBUILD evolution-exchange-2.12.3.ebuild 1320 RMD160 f8ed6d68ade637b0adce77d7479bae0bd52ea424 SHA1 14fa99bb32f4b7681594413262681a19c1f35095 SHA256 3727694d8c1a94feec0492c0c018d579fb204a8fc4006b01e044a7c4887ac24f
-EBUILD evolution-exchange-2.6.2-r1.ebuild 1427 RMD160 68cf3a046fc93f18a0da1482c093d5c284e7709c SHA1 1dc83151f1780f4d1516a838c353eddda3461ac7 SHA256 5e7e5cb1a86ad9256e1de8cd028e6784596699c80dbd2afca26a8effa09a2987
-MISC ChangeLog 8414 RMD160 d9c50710184730cbaa60ffca1942a15ec28aa235 SHA1 5d3ce253ee51b33bf1fcece6982d1e13709bfcf8 SHA256 a61286c3200627634d897a8167cf08add7e9babb0f6ec9b926ae8537a921ff7f
+MISC ChangeLog 8834 RMD160 1ff86617118a4b8d9cdb47adcf03be7f2fe5b8c4 SHA1 c0a09eeaeda3d0d5d04a384b68f40de2c7ebd127 SHA256 f949a65741223ee60af45865cfecf83819cc755cb21b4771966d55464298e413
MISC metadata.xml 158 RMD160 c0e2bae8e91bb6be8922bac5e4f597302e06587e SHA1 38f78e9790bcd4382b4a49aa226aa6dda1d3a3d7 SHA256 3a7dbca0fdc557de69783e0663e2d76ddab129ea8a19b2d0ef6d3e5d1b947ce1
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.8 (GNU/Linux)
+
+iEYEARECAAYFAkfTmGUACgkQkeYb6olFHJc6XQCfWGprgLzvw4O9Wuqi8P4L/YC0
+dRIAoId2zHnGMdghLdedQbKjrpHRQXAq
+=chXi
+-----END PGP SIGNATURE-----
diff --git a/gnome-extra/evolution-exchange/evolution-exchange-2.10.3.ebuild b/gnome-extra/evolution-exchange/evolution-exchange-2.12.3-r1.ebuild
index cd818fce8878..3ee11314921b 100644
--- a/gnome-extra/evolution-exchange/evolution-exchange-2.10.3.ebuild
+++ b/gnome-extra/evolution-exchange/evolution-exchange-2.12.3-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-exchange/evolution-exchange-2.10.3.ebuild,v 1.7 2008/02/29 16:07:33 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-exchange/evolution-exchange-2.12.3-r1.ebuild,v 1.1 2008/03/09 07:57:37 leio Exp $
EAPI="1"
inherit gnome2 eutils
@@ -10,18 +10,18 @@ HOMEPAGE="http://www.novell.com/products/desktop/features/evolution.html"
LICENSE="GPL-2"
SLOT="2.0"
-KEYWORDS="amd64 ~hppa ppc sparc x86"
+KEYWORDS="~amd64 ~hppa ~ppc ~sparc ~x86"
IUSE="debug doc static"
-RDEPEND=">=mail-client/evolution-2.10
- >=gnome-extra/evolution-data-server-1.10
- >=net-libs/libsoup-2.2.96:2.2
+RDEPEND=">=x11-libs/gtk+-2.10
+ >=gnome-base/gconf-2.0
+ >=gnome-base/libbonobo-2.0
>=gnome-base/libglade-2.0
>=gnome-base/libgnomeui-2.0
- >=gnome-base/libgnomeprint-2.2
- >=gnome-base/libbonobo-2.0
dev-libs/libxml2
- >=gnome-base/gconf-2.0
+ >=mail-client/evolution-2.11
+ >=gnome-extra/evolution-data-server-1.11
+ >=net-libs/libsoup-2.2.96:2.2
>=net-nds/openldap-2.1.30-r2"
DEPEND="${RDEPEND}
@@ -42,3 +42,10 @@ pkg_setup() {
G2CONF="${G2CONF} $(use_with static static-ldap) --with-openldap"
}
+
+src_unpack() {
+ gnome2_src_unpack
+
+ # Fix bug 201824
+ epatch "${FILESDIR}/${P}-fix-locks.patch"
+}
diff --git a/gnome-extra/evolution-exchange/evolution-exchange-2.6.2-r1.ebuild b/gnome-extra/evolution-exchange/evolution-exchange-2.6.2-r1.ebuild
deleted file mode 100644
index 8509a1bf39f5..000000000000
--- a/gnome-extra/evolution-exchange/evolution-exchange-2.6.2-r1.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-exchange/evolution-exchange-2.6.2-r1.ebuild,v 1.6 2008/01/29 17:36:14 dang Exp $
-EAPI="1"
-
-inherit gnome2 eutils autotools
-
-DESCRIPTION="Evolution module for connecting to Microsoft Exchange"
-HOMEPAGE="http://www.novell.com/products/desktop/features/evolution.html"
-LICENSE="GPL-2"
-
-SLOT="2.0"
-KEYWORDS="amd64 ~hppa ppc ~sparc x86"
-IUSE="debug doc static"
-
-RDEPEND=">=mail-client/evolution-2.5.90
- >=gnome-extra/evolution-data-server-1.5.90
- net-libs/libsoup:2.2
- >=gnome-base/libglade-2.0
- >=gnome-base/libgnomeui-2.0
- >=gnome-base/libbonobo-2.0
- dev-libs/libxml2
- >=gnome-base/gconf-2.0
- >=net-nds/openldap-2.1.30-r2"
-
-DEPEND="${RDEPEND}
- >=dev-util/intltool-0.29
- dev-util/pkgconfig
- doc? ( >=dev-util/gtk-doc-1 )"
-
-MAKEOPTS="${MAKEOPTS} -j1"
-
-pkg_setup() {
- G2CONF="${G2CONF} $(use_with debug e2k-debug)"
-
- if ! built_with_use gnome-extra/evolution-data-server ldap || ! built_with_use gnome-extra/evolution-data-server kerberos; then
- eerror "Please re-emerge gnome-extra/evolution-data-server with"
- eerror "the use flags ldap and kerberos."
- die
- fi
-
- G2CONF="${G2CONF} $(use_with static static-ldap) --with-openldap"
-}
-
-src_unpack() {
- gnome2_src_unpack
-
- # fix proc spike
- cd camel
- epatch "${FILESDIR}"/${P}-fix-loop.patch
- cd "${S}"
-
- eautoreconf
-}
diff --git a/gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch b/gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch
new file mode 100644
index 000000000000..0b74e4fa0926
--- /dev/null
+++ b/gnome-extra/evolution-exchange/files/evolution-exchange-2.12.3-fix-locks.patch
@@ -0,0 +1,152 @@
+** Fix for GNOME bug #501295, Gentoo bug #201824
+
+Create locks around the cache so that the file is protected well not to crash.
+
+--- a/addressbook/e-book-backend-exchange.c.orig 2007-10-12 09:05:18.000000000 +0200
++++ b/addressbook/e-book-backend-exchange.c 2008-01-21 11:02:48.000000000 +0100
+@@ -84,12 +84,15 @@
+ gboolean is_cache_ready;
+ gboolean marked_for_offline;
+
+- GMutex *create_mutex;
++ GMutex *cache_lock;
+
+ EBookBackendSummary *summary;
+ EBookBackendCache *cache;
+ };
+
++#define LOCK(x) g_mutex_lock (x->cache_lock)
++#define UNLOCK(x) g_mutex_unlock (x->cache_lock)
++
+ typedef struct PropMapping PropMapping;
+
+ static void subscription_notify (E2kContext *ctx, const char *uri, E2kContextChangeType type, gpointer user_data);
+@@ -477,6 +480,7 @@
+ field_names, n_field_names,
+ bepriv->base_rn, NULL, TRUE);
+
++ LOCK (bepriv);
+ e_file_cache_freeze_changes (E_FILE_CACHE (bepriv->cache));
+ while ((result = e2k_result_iter_next (iter))) {
+ contact = e_contact_from_props (be, result);
+@@ -488,6 +492,7 @@
+ e_book_backend_cache_set_populated (bepriv->cache);
+ bepriv->is_cache_ready=TRUE;
+ e_file_cache_thaw_changes (E_FILE_CACHE (bepriv->cache));
++ UNLOCK (bepriv);
+ return NULL;
+ }
+
+@@ -520,6 +525,7 @@
+ field_names, n_field_names,
+ bepriv->base_rn, NULL, TRUE);
+
++ LOCK (bepriv);
+ e_file_cache_freeze_changes (E_FILE_CACHE (bepriv->cache));
+ while ((result = e2k_result_iter_next (iter))) {
+ contact = e_contact_from_props (be, result);
+@@ -531,7 +537,7 @@
+ e_book_backend_cache_set_populated (bepriv->cache);
+ bepriv->is_cache_ready=TRUE;
+ e_file_cache_thaw_changes (E_FILE_CACHE (bepriv->cache));
+-
++ UNLOCK (bepriv);
+ return TRUE;
+ }
+
+@@ -1319,13 +1325,13 @@
+
+ d(printf("ebbe_create_contact(%p, %p, %s)\n", backend, book, vcard));
+
+- g_mutex_lock (bepriv->create_mutex);
++ LOCK (bepriv);
+
+ switch (bepriv->mode) {
+
+ case GNOME_Evolution_Addressbook_MODE_LOCAL:
+ *contact = NULL;
+- g_mutex_unlock (bepriv->create_mutex);
++ UNLOCK (bepriv);
+ return GNOME_Evolution_Addressbook_RepositoryOffline;
+
+ case GNOME_Evolution_Addressbook_MODE_REMOTE:
+@@ -1346,6 +1353,7 @@
+ state = e_book_backend_exchange_connect (be);
+ if ( state != GNOME_Evolution_Addressbook_Success) {
+ d(printf("Returning status %d while creating contact\n", state));
++ UNLOCK (bepriv);
+ return state;
+ }
+ }
+@@ -1375,18 +1383,18 @@
+ e_book_backend_summary_add_contact (bepriv->summary,
+ *contact);
+ e_book_backend_cache_add_contact (bepriv->cache, *contact);
+- g_mutex_unlock (bepriv->create_mutex);
++ UNLOCK (bepriv);
+ return GNOME_Evolution_Addressbook_Success;
+ } else {
+ g_object_unref (*contact);
+ *contact = NULL;
+- g_mutex_unlock (bepriv->create_mutex);
++ UNLOCK (bepriv);
+ return http_status_to_pas (status);
+ }
+ default:
+ break;
+ }
+- g_mutex_unlock (bepriv->create_mutex);
++ UNLOCK (bepriv);
+ return GNOME_Evolution_Addressbook_Success;
+ }
+
+@@ -1501,13 +1509,14 @@
+ e2k_results_free (results, nresults);
+
+ if (E2K_HTTP_STATUS_IS_SUCCESSFUL (status)) {
++ LOCK (bepriv);
+ e_book_backend_summary_remove_contact (bepriv->summary,
+ uri);
+ e_book_backend_summary_add_contact (bepriv->summary,
+ *contact);
+ e_book_backend_cache_remove_contact (bepriv->cache, uri);
+ e_book_backend_cache_add_contact (bepriv->cache, *contact);
+-
++ UNLOCK (bepriv);
+ return GNOME_Evolution_Addressbook_Success;
+ } else {
+ g_object_unref (*contact);
+@@ -1550,11 +1559,13 @@
+ uri = l->data;
+ status = e2k_context_delete (bepriv->ctx, NULL, uri);
+ if (E2K_HTTP_STATUS_IS_SUCCESSFUL (status)) {
++ LOCK (bepriv);
+ e_book_backend_summary_remove_contact (
+ bepriv->summary, uri);
+ e_book_backend_cache_remove_contact (bepriv->cache, uri);
+ *removed_ids = g_list_append (
+ *removed_ids, g_strdup (uri));
++ UNLOCK (bepriv);
+ } else
+ ret_status = http_status_to_pas (status);
+ }
+@@ -2537,8 +2548,8 @@
+ if (be->priv->cache)
+ g_object_unref (be->priv->cache);
+
+- if (be->priv->create_mutex)
+- g_mutex_free (be->priv->create_mutex);
++ if (be->priv->cache_lock)
++ g_mutex_free (be->priv->cache_lock);
+
+
+ g_free (be->priv);
+@@ -2608,7 +2619,7 @@
+ priv->original_uri = NULL;
+ priv->is_writable = TRUE;
+
+- priv->create_mutex = g_mutex_new ();
++ priv->cache_lock = g_mutex_new ();
+
+ backend->priv = priv;
+ }
diff --git a/gnome-extra/evolution-exchange/files/evolution-exchange-2.6.2-fix-loop.patch b/gnome-extra/evolution-exchange/files/evolution-exchange-2.6.2-fix-loop.patch
deleted file mode 100644
index 146737cfa44d..000000000000
--- a/gnome-extra/evolution-exchange/files/evolution-exchange-2.6.2-fix-loop.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-===================================================================
-RCS file: /cvs/gnome/evolution-exchange/camel/camel-stub-marshal.c,v
-retrieving revision 1.3
-retrieving revision 1.5
-diff -u -r1.3 -r1.5
---- camel-stub-marshal.c 2006/05/08 20:15:55 1.3
-+++ camel-stub-marshal.c 2006/06/15 20:36:50 1.5
-@@ -1,6 +1,6 @@
- /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-
--/* Copyright (C) 2001-2004 Novell, Inc.
-+/* Copyright (C) 2001-2006 Novell, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
-@@ -86,7 +86,15 @@
- static gboolean
- do_read (CamelStubMarshal *marshal, char *buf, size_t len)
- {
-- if (camel_read (marshal->fd, buf, len) == -1) {
-+ size_t nread = 0;
-+ ssize_t n;
-+
-+ do {
-+ if ((n = camel_read (marshal->fd, buf + nread, len - nread)) > 0)
-+ nread += n;
-+ } while (n && nread < len && errno != EINTR);
-+
-+ if (nread < len) {
- close (marshal->fd);
- marshal->fd = -1;
- return FALSE;