[SM-Commit] GIT changes to master grimoire by Eric Sandall (0f682a5059dac6c262a43bdd32760afd8f591c49)

Eric Sandall scm at sourcemage.org
Mon Jul 20 21:12:13 EDT 2009


GIT changes to master grimoire by Eric Sandall <sandalle at sourcemage.org>:

 gnome2-libs/evolution-exchange/HISTORY               |    6 
 gnome2-libs/evolution-exchange/PRE_BUILD             |    3 
 gnome2-libs/evolution-exchange/eex-gnome522277.patch |  120 +++++++++++++++++++
 3 files changed, 129 insertions(+)

New commits:
commit 0f682a5059dac6c262a43bdd32760afd8f591c49
Author: Eric Sandall <sandalle at sourcemage.org>
Commit: Eric Sandall <sandalle at sourcemage.org>

    evolution-exchange: Upstream applied patch which fixes:
    http://bugzilla.gnome.org/show_bug.cgi?id=522277
    https://bugs.launchpad.net/ubuntu/+source/evolution-exchange/+bug/34199

diff --git a/gnome2-libs/evolution-exchange/HISTORY b/gnome2-libs/evolution-exchange/HISTORY
index 53c1291..a3aa1fb 100644
--- a/gnome2-libs/evolution-exchange/HISTORY
+++ b/gnome2-libs/evolution-exchange/HISTORY
@@ -1,3 +1,9 @@
+2009-07-20 Eric Sandall <sandalle at sourcemage.org>
+	* PRE_BUILD: Apply eex-gnome522277.patch
+	* eex-gnome522277.patch: Upstream applied patch which fixes:
+	  http://bugzilla.gnome.org/show_bug.cgi?id=522277
+	  https://bugs.launchpad.net/ubuntu/+source/evolution-exchange/+bug/34199
+
 2009-05-22 Eric Sandall <sandalle at sourcemage.org>
 	* DETAILS: Updated to 2.26.2
 
diff --git a/gnome2-libs/evolution-exchange/PRE_BUILD b/gnome2-libs/evolution-exchange/PRE_BUILD
new file mode 100755
index 0000000..82d8c37
--- /dev/null
+++ b/gnome2-libs/evolution-exchange/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build                                   &&
+patch  $SOURCE_DIRECTORY/mail/mail-stub-exchange.c  \
+       $SCRIPT_DIRECTORY/eex-gnome522277.patch
diff --git a/gnome2-libs/evolution-exchange/eex-gnome522277.patch b/gnome2-libs/evolution-exchange/eex-gnome522277.patch
new file mode 100644
index 0000000..5fdb999
--- /dev/null
+++ b/gnome2-libs/evolution-exchange/eex-gnome522277.patch
@@ -0,0 +1,120 @@
+#
+# Copied from http://bugzilla.gnome.org/show_bug.cgi?id=522277 and modified
+# to remove the ChangeLog entry as it does not apply cleanly against
+# evolution-exchange 2.26.2
+#
+Index: mail/mail-stub-exchange.c
+===================================================================
+--- mail/mail-stub-exchange.c	(revision 1843)
++++ mail/mail-stub-exchange.c	(working copy)
+@@ -402,13 +402,17 @@ message_removed (MailStub *stub, MailStu
+ 	MailStubExchangeMessage *mmsg;
+ 	guint index;
+ 
++	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
+ 	mmsg = g_hash_table_lookup (mfld->messages_by_href, href);
+-	if (!mmsg)
++	if (!mmsg) {
++		g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+ 		return;
++	}
+ 	index = find_message_index (mfld, mmsg->seq);
+ 	g_return_if_fail (index != -1);
+ 
+ 	message_remove_at_index (stub, mfld, index);
++	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+ }
+ 
+ static void
+@@ -1134,12 +1138,16 @@ sync_deletions (MailStubExchange *mse, M
+ 
+ 	e2k_results_free (results, nresults);
+ 
++	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
+ 	if (visible_count >= mfld->messages->len) {
+-		if (mfld->deleted_count == deleted_count)
++		if (mfld->deleted_count == deleted_count) {
++			g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+ 			return;
++		}
+ 
+ 		if (mfld->deleted_count == 0) {
+ 			mfld->deleted_count = deleted_count;
++			g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+ 			return;
+ 		}
+ 	}
+@@ -1165,7 +1173,7 @@ sync_deletions (MailStubExchange *mse, M
+ 	my_i = mfld->messages->len - 1;
+ 	while ((result = e2k_result_iter_next (iter))) {
+ 		mmsg = find_message_by_href (mfld, result->href);
+-		if (!mmsg || mmsg->seq >= highest_verified_seq) {
++		if (!mmsg || (mmsg->seq >= highest_verified_seq && highest_verified_seq != -1)) {
+ 			/* This is a new message or a message we already
+ 			 * verified. Skip it.
+ 			 */
+@@ -1193,6 +1201,7 @@ sync_deletions (MailStubExchange *mse, M
+ 			message_removed (stub, mfld, my_mmsg->href);
+ 			changes = TRUE;
+ 			my_i--;
++			highest_unverified_index--;
+ 			my_mmsg = mfld->messages->pdata[my_i];
+ 		}
+ 		highest_verified_seq = mmsg->seq;
+@@ -1206,6 +1215,7 @@ sync_deletions (MailStubExchange *mse, M
+ 		}
+ 
+ 		my_i--;
++		highest_unverified_index--;
+ 	}
+ 	status = e2k_result_iter_free (iter);
+ 
+@@ -1220,6 +1230,8 @@ sync_deletions (MailStubExchange *mse, M
+ 		changes = TRUE;
+ 	}
+ 
++	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
++
+ 	if (changes)
+ 		mail_stub_push_changes (stub);
+ }
+@@ -1446,6 +1458,7 @@ refresh_folder_internal (MailStub *stub,
+ 			       CAMEL_STUB_ARG_FOLDER, mfld->name,
+ 			       CAMEL_STUB_ARG_END);
+ 
++	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
+ 	qsort (messages->data, messages->len,
+ 	       sizeof (rm), refresh_message_compar);
+ 	for (i = 0; i < messages->len; i++) {
+@@ -1500,6 +1513,7 @@ refresh_folder_internal (MailStub *stub,
+ 			       CAMEL_STUB_ARG_END);
+ 
+ 	mfld->scanned = TRUE;
++	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+ 	folder_changed (mfld);
+ 
+ 	if (background)
+@@ -1591,6 +1605,7 @@ expunge_uids (MailStub *stub, const char
+ 	if (!mfld)
+ 		return;
+ 
++	g_static_rec_mutex_lock (&g_changed_msgs_mutex);
+ 	hrefs = g_ptr_array_new ();
+ 	for (i = 0; i < uids->len; i++) {
+ 		mmsg = find_message (mfld, uids->pdata[i]);
+@@ -1604,6 +1619,7 @@ expunge_uids (MailStub *stub, const char
+ 		 */
+ 		g_ptr_array_free (hrefs, TRUE);
+ 		mail_stub_return_ok (stub);
++		g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+ 		return;
+ 	}
+ 
+@@ -1627,6 +1643,7 @@ expunge_uids (MailStub *stub, const char
+ 		mail_stub_return_progress (stub, ndeleted * 100 / hrefs->len);
+ 	}
+ 	status = e2k_result_iter_free (iter);
++	g_static_rec_mutex_unlock (&g_changed_msgs_mutex);
+ 
+ 	mail_stub_return_data (stub, CAMEL_STUB_RETVAL_THAW_FOLDER,
+ 			       CAMEL_STUB_ARG_FOLDER, mfld->name,



More information about the SM-Commit mailing list