r2084 - in /unstable/evolution-ews/debian: changelog patches/10_none_server.patch patches/11_deleted_inbox.patch patches/12_prefill_host.patch patches/13_autodiscover.patch patches/14_exchange_bizarre.patch patches/15_contact_crash.patch patches/series

joss at users.alioth.debian.org joss at users.alioth.debian.org
Fri Dec 16 19:51:59 UTC 2011


Author: joss
Date: Fri Dec 16 19:51:59 2011
New Revision: 2084

URL: http://svn.debian.org/wsvn/pkg-evolution/?sc=1&rev=2084
Log:
* New upstream release.
* 10_none_server.patch, 11_deleted_inbox.patch, 12_prefill_host.patch, 
  13_autodiscover.patch, 14_exchange_bizarre.patch, 
  15_contact_crash.patch: bug fixes from 3.2 upstream git.

Added:
    unstable/evolution-ews/debian/patches/10_none_server.patch
    unstable/evolution-ews/debian/patches/11_deleted_inbox.patch
    unstable/evolution-ews/debian/patches/12_prefill_host.patch
    unstable/evolution-ews/debian/patches/13_autodiscover.patch
    unstable/evolution-ews/debian/patches/14_exchange_bizarre.patch
    unstable/evolution-ews/debian/patches/15_contact_crash.patch
Modified:
    unstable/evolution-ews/debian/changelog
    unstable/evolution-ews/debian/patches/series

Modified: unstable/evolution-ews/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/changelog?rev=2084&op=diff
==============================================================================
--- unstable/evolution-ews/debian/changelog (original)
+++ unstable/evolution-ews/debian/changelog Fri Dec 16 19:51:59 2011
@@ -1,3 +1,12 @@
+evolution-ews (3.2.2-1) unstable; urgency=low
+
+  * New upstream release.
+  * 10_none_server.patch, 11_deleted_inbox.patch, 12_prefill_host.patch, 
+    13_autodiscover.patch, 14_exchange_bizarre.patch, 
+    15_contact_crash.patch: bug fixes from 3.2 upstream git.
+
+ -- Josselin Mouette <joss at debian.org>  Fri, 16 Dec 2011 20:51:53 +0100
+
 evolution-ews (3.2.1-1) experimental; urgency=low
 
   * Initial release. Closes: #648435.

Added: unstable/evolution-ews/debian/patches/10_none_server.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/patches/10_none_server.patch?rev=2084&op=file
==============================================================================
--- unstable/evolution-ews/debian/patches/10_none_server.patch (added)
+++ unstable/evolution-ews/debian/patches/10_none_server.patch Fri Dec 16 19:51:59 2011
@@ -1,0 +1,21 @@
+From e3da26f7280ed057f0a0d3f9296a3c488e842f87 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha at redhat.com>
+Date: Thu, 01 Dec 2011 09:52:17 +0000
+Subject: Bug #665229 - Blocks creation of a None receiving account
+
+---
+diff --git a/src/account-setup-eplugin/exchange-ews-account-setup.c b/src/account-setup-eplugin/exchange-ews-account-setup.c
+index 8f48014..e542e39 100644
+--- a/src/account-setup-eplugin/exchange-ews-account-setup.c
++++ b/src/account-setup-eplugin/exchange-ews-account-setup.c
+@@ -309,7 +309,7 @@ org_gnome_exchange_ews_check_options(EPlugin *epl, EConfigHookPageCheckData *dat
+ 
+ 	url = camel_url_new (e_account_get_string(get_modified_account (target), E_ACCOUNT_SOURCE_URL), NULL);
+ 
+-	if (url && url->protocol && g_ascii_strcasecmp (url->protocol, "ews") != 0)
++	if (!url || !url->protocol || g_ascii_strcasecmp (url->protocol, "ews") != 0)
+ 		goto exit;
+ 
+ 	/* FIXME pageid is not set while editing an account */
+--
+cgit v0.9.0.2

Added: unstable/evolution-ews/debian/patches/11_deleted_inbox.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/patches/11_deleted_inbox.patch?rev=2084&op=file
==============================================================================
--- unstable/evolution-ews/debian/patches/11_deleted_inbox.patch (added)
+++ unstable/evolution-ews/debian/patches/11_deleted_inbox.patch Fri Dec 16 19:51:59 2011
@@ -1,0 +1,23 @@
+From 2c13d08fb88a68261c7b2a8b38d5c1004d70c09b Mon Sep 17 00:00:00 2001
+From: David Woodhouse <David.Woodhouse at intel.com>
+Date: Fri, 02 Dec 2011 13:00:56 +0000
+Subject: Bug 664637 - Deleted messages appear in Inbox
+
+This is a *partial* fix. We still have a potential bug if we crash at the
+wrong time, but at least this stops us from hitting it systematically.
+(cherry picked from commit 326e7b4760017dc9dce8a9ace7b0c23db46a479e)
+---
+diff --git a/src/camel/camel-ews-folder.c b/src/camel/camel-ews-folder.c
+index 8da7801..c889556 100644
+--- a/src/camel/camel-ews-folder.c
++++ b/src/camel/camel-ews-folder.c
+@@ -1124,6 +1124,7 @@ ews_refresh_info_sync (CamelFolder *folder, GCancellable *cancellable, GError **
+ 		g_free (((CamelEwsSummary *) folder->summary)->sync_state);
+ 		((CamelEwsSummary *) folder->summary)->sync_state = sync_state;
+ 
++		camel_folder_summary_touch (folder->summary);
+ 		camel_folder_summary_save_to_db (folder->summary, NULL);
+ 
+ 	} while (!rerror && !includes_last_item);
+--
+cgit v0.9.0.2

Added: unstable/evolution-ews/debian/patches/12_prefill_host.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/patches/12_prefill_host.patch?rev=2084&op=file
==============================================================================
--- unstable/evolution-ews/debian/patches/12_prefill_host.patch (added)
+++ unstable/evolution-ews/debian/patches/12_prefill_host.patch Fri Dec 16 19:51:59 2011
@@ -1,0 +1,57 @@
+From 9283b0877938bed6a5d88f23405a2ab3a838cba0 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha at redhat.com>
+Date: Thu, 20 Oct 2011 12:46:28 +0000
+Subject: Prefill Host URL when creating new account
+
+(cherry picked from commit 5fb55ca5378d25fd39bdcc078b70d1a1bbbee069)
+---
+diff --git a/src/account-setup-eplugin/exchange-ews-account-setup.c b/src/account-setup-eplugin/exchange-ews-account-setup.c
+index e542e39..7a981e6 100644
+--- a/src/account-setup-eplugin/exchange-ews-account-setup.c
++++ b/src/account-setup-eplugin/exchange-ews-account-setup.c
+@@ -233,6 +233,7 @@ org_gnome_exchange_ews_account_setup (EPlugin *epl, EConfigHookItemFactoryData *
+ 		const gchar *host_url_val = camel_url_get_param (url, "hosturl");
+ 		const gchar *oab_url_val = camel_url_get_param (url, "oaburl");
+ 		const gchar *temp, *email_id;
++		gchar *temp_host_url_val = NULL;
+ 		gchar *url_string;
+ 		struct _AutoDiscCallBackData *cbdata = g_new0 (struct _AutoDiscCallBackData, 1);
+ 		EAccount *account;
+@@ -246,8 +247,15 @@ org_gnome_exchange_ews_account_setup (EPlugin *epl, EConfigHookItemFactoryData *
+ 		camel_url_set_param (url, "email", email_id);
+ 		temp = g_strstr_len (email_id, -1, "@");
+ 		/* Don't overwrite the URL if it's already been set */
+-		if (!url->host || !url->host[0])
+-			camel_url_set_host (url, g_strdup (temp + 1));
++		if (temp && (!url->host || !url->host[0])) {
++			camel_url_set_host (url, temp + 1);
++		}
++
++		if (temp && (!host_url_val || !*host_url_val)) {
++			temp_host_url_val = g_strdup_printf ("https://exchange.%s/EWS/Exchange.asmx", temp + 1);
++			host_url_val = temp_host_url_val;
++			camel_url_set_param (url, "hosturl", host_url_val);
++		}
+ 
+ 		url_string = camel_url_to_string (url, 0);
+ 		e_account_set_string (account, E_ACCOUNT_SOURCE_URL, url_string);
+@@ -274,6 +282,8 @@ org_gnome_exchange_ews_account_setup (EPlugin *epl, EConfigHookItemFactoryData *
+ 		gtk_label_set_mnemonic_widget (GTK_LABEL (label), host_url);
+ 		if (host_url_val && *host_url_val)
+ 			gtk_entry_set_text (GTK_ENTRY (host_url), host_url_val);
++		else
++			gtk_entry_set_text (GTK_ENTRY (host_url), "https://exchange.server.com/EWS/Exchange.asmx");
+ 		gtk_box_pack_start (GTK_BOX (hbox), host_url, TRUE, TRUE, 0);
+ 		g_signal_connect (host_url, "changed", G_CALLBACK(host_url_changed), data->config);
+ 
+@@ -294,6 +304,8 @@ org_gnome_exchange_ews_account_setup (EPlugin *epl, EConfigHookItemFactoryData *
+ 		gtk_table_attach (GTK_TABLE (data->parent), oab_label, 0, 1, row, row+1, 0, 0, 0, 0);
+ 		gtk_table_attach (GTK_TABLE (data->parent), oab_url, 1, 2, row, row+1, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0);
+ 		row++;
++
++		g_free (temp_host_url_val);
+ 	}
+ 
+ 	camel_url_free (url);
+--
+cgit v0.9.0.2

Added: unstable/evolution-ews/debian/patches/13_autodiscover.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/patches/13_autodiscover.patch?rev=2084&op=file
==============================================================================
--- unstable/evolution-ews/debian/patches/13_autodiscover.patch (added)
+++ unstable/evolution-ews/debian/patches/13_autodiscover.patch Fri Dec 16 19:51:59 2011
@@ -1,0 +1,244 @@
+From 67f9efdd709423b543b9d62c6013ca8b27af2922 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha at redhat.com>
+Date: Thu, 01 Dec 2011 09:54:38 +0000
+Subject: Bug #664116 - "Fetch URL" doesn't always work
+
+(cherry picked from commit 68a53eb80710ae3941f331362438cfa6af082ff5)
+
+Conflicts:
+
+	src/account-setup-eplugin/exchange-ews-account-setup.c
+---
+diff --git a/src/account-setup-eplugin/exchange-ews-account-setup.c b/src/account-setup-eplugin/exchange-ews-account-setup.c
+index 7a981e6..3163979 100644
+--- a/src/account-setup-eplugin/exchange-ews-account-setup.c
++++ b/src/account-setup-eplugin/exchange-ews-account-setup.c
+@@ -165,14 +165,23 @@ validate_credentials (GtkWidget *widget, struct _AutoDiscCallBackData *cbdata)
+ {
+ 	EConfig *config = cbdata->config;
+ 	EMConfigTargetAccount *target_account = (EMConfigTargetAccount *)(config->target);
+-	gchar *password = NULL;
+-
+-	password = get_password (target_account);
++	EAccount *account = get_modified_account (target_account);
++	gchar *password = get_password (target_account);
+ 	/*Can there be a account without password ?*/
+ 	if (password && *password) {
++		const gchar *hosturl = NULL;
++		const gchar *user = NULL;
++		CamelURL *url = camel_url_new (e_account_get_string (account, E_ACCOUNT_SOURCE_URL), NULL);
++
++		if (url) {
++			hosturl = camel_url_get_param (url, "hosturl");
++			user = url->user;
++		}
++
+ 		e_ews_autodiscover_ws_url (autodiscover_callback, cbdata,
+-					   (get_modified_account (target_account))->id->address,
+-					   password);
++					   account->id->address,
++					   password, hosturl, user);
++		camel_url_free (url);
+ 	}
+ 	g_free (password);
+ }
+diff --git a/src/server/e-ews-connection.c b/src/server/e-ews-connection.c
+index 8e02db3..06932ae 100644
+--- a/src/server/e-ews-connection.c
++++ b/src/server/e-ews-connection.c
+@@ -1000,7 +1000,7 @@ struct _autodiscover_data {
+ 	EEwsConnection *cnc;
+ 	xmlOutputBuffer *buf;
+ 	GSimpleAsyncResult *simple;
+-	SoupMessage *msgs[2];
++	SoupMessage *msgs[4];
+ 	EEwsAutoDiscoverCallback cb;
+ 	gpointer cbdata;
+ };
+@@ -1054,11 +1054,11 @@ autodiscover_response_cb (SoupSession *session, SoupMessage *msg, gpointer data)
+ 	int idx;
+ 	gboolean success = FALSE;
+ 
+-	for (idx = 0; idx < 2; idx++) {
++	for (idx = 0; idx < 4; idx++) {
+ 		if (ad->msgs[idx] == msg)
+ 			break;
+ 	}
+-	if (idx == 2) {
++	if (idx == 4) {
+ 		/* We already got removed (cancelled). Do nothing */
+ 		return;
+ 	}
+@@ -1137,7 +1137,7 @@ autodiscover_response_cb (SoupSession *session, SoupMessage *msg, gpointer data)
+ 	}
+ 
+ 	/* We have a good response; cancel all the others */
+-	for (idx = 0; idx < 2; idx++) {
++	for (idx = 0; idx < 4; idx++) {
+ 		if (ad->msgs[idx]) {
+ 			SoupMessage *m = ad->msgs[idx];
+ 			ad->msgs[idx] = NULL;
+@@ -1152,7 +1152,7 @@ autodiscover_response_cb (SoupSession *session, SoupMessage *msg, gpointer data)
+ 	return;
+ 
+ failed:
+-	for (idx = 0; idx < 2; idx++) {
++	for (idx = 0; idx < 4; idx++) {
+ 		if (ad->msgs[idx]) {
+ 			/* There's another request outstanding.
+ 			   Hope that it has better luck. */
+@@ -1216,15 +1216,17 @@ e_ews_get_msg_for_url (const gchar *url, xmlOutputBuffer *buf)
+ 
+ void
+ e_ews_autodiscover_ws_url (EEwsAutoDiscoverCallback cb, gpointer cbdata,
+-			   const gchar *email, const gchar *password)
++			   const gchar *email, const gchar *password,
++			   const gchar *ews_url, const gchar *username)
+ {
+ 	struct _autodiscover_data *ad;
+ 	xmlOutputBuffer *buf;
+ 	GError *error = NULL;
+-	gchar *url;
++	gchar *url1, *url2, *url3, *url4;
+ 	gchar *domain;
+ 	xmlDoc *doc;
+ 	EEwsConnection *cnc;
++	gboolean use_secure = TRUE;
+ 
+ 	if (!password || !email) {
+ 		g_set_error (&error, EWS_CONNECTION_ERROR,
+@@ -1245,11 +1247,33 @@ e_ews_autodiscover_ws_url (EEwsAutoDiscoverCallback cb, gpointer cbdata,
+ 	xmlNodeDumpOutput(buf, doc, xmlDocGetRootElement(doc), 0, 1, NULL);
+ 	xmlOutputBufferFlush(buf);
+ 
+-	url = g_strdup_printf("https://%s/autodiscover/autodiscover.xml", domain);
++	url1 = NULL;
++	url2 = NULL;
++	url3 = NULL;
++	url4 = NULL;
++	if (ews_url) {
++		SoupURI *uri = soup_uri_new (ews_url);
+ 
+-	/* FIXME: Get username from config; don't assume same as email */
+-	cnc = e_ews_connection_new (url, email, password, NULL, NULL, &error);
++		if (uri) {
++			use_secure = g_strcmp0 (soup_uri_get_scheme (uri), "https") == 0;
++
++			url1 = g_strdup_printf ("http%s://%s/autodiscover/autodiscover.xml", use_secure ? "s" : "", soup_uri_get_host (uri));
++			url2 = g_strdup_printf ("http%s://autodiscover.%s/autodiscover/autodiscover.xml", use_secure ? "s" : "", soup_uri_get_host (uri));
++			soup_uri_free (uri);
++		}
++	} 
++
++	url3 = g_strdup_printf ("http%s://%s/autodiscover/autodiscover.xml", use_secure ? "s" : "", domain);
++	url4 = g_strdup_printf ("http%s://autodiscover.%s/autodiscover/autodiscover.xml", use_secure ? "s" : "", domain);
++
++	cnc = e_ews_connection_new (url3, (username && *username) ? username : email, password, NULL, NULL, &error);
+ 	if (!cnc) {
++		g_free (url1);
++		g_free (url2);
++		g_free (url3);
++		g_free (url4);
++		xmlOutputBufferClose (buf);
++		xmlFreeDoc (doc);
+ 	err:
+ 		cb (NULL, cbdata, error);
+ 		return;
+@@ -1270,12 +1294,10 @@ e_ews_autodiscover_ws_url (EEwsAutoDiscoverCallback cb, gpointer cbdata,
+ 	ad->buf = buf;
+ 	ad->simple = g_simple_async_result_new (G_OBJECT (cnc), autodiscover_done_cb,
+ 					    ad, e_ews_autodiscover_ws_url);
+-	ad->msgs[0] = e_ews_get_msg_for_url (url, buf);
+-	g_free (url);
+-
+-	url = g_strdup_printf("https://autodiscover.%s/autodiscover/autodiscover.xml", domain);
+-	ad->msgs[1] = e_ews_get_msg_for_url (url, buf);
+-	g_free (url);
++	ad->msgs[0] = url1 ? e_ews_get_msg_for_url (url1, buf) : NULL;
++	ad->msgs[1] = url2 ? e_ews_get_msg_for_url (url2, buf) : NULL;
++	ad->msgs[2] = url3 ? e_ews_get_msg_for_url (url3, buf) : NULL;
++	ad->msgs[3] = url4 ? e_ews_get_msg_for_url (url4, buf) : NULL;
+ 
+ 	/* These have to be submitted only after they're both set in ad->msgs[]
+ 	   or there will be races with fast completion */
+@@ -1283,13 +1305,20 @@ e_ews_autodiscover_ws_url (EEwsAutoDiscoverCallback cb, gpointer cbdata,
+ 				    autodiscover_response_cb, ad);
+ 	soup_session_queue_message (cnc->priv->soup_session, ad->msgs[1],
+ 				    autodiscover_response_cb, ad);
++	soup_session_queue_message (cnc->priv->soup_session, ad->msgs[2],
++				    autodiscover_response_cb, ad);
++	soup_session_queue_message (cnc->priv->soup_session, ad->msgs[3],
++				    autodiscover_response_cb, ad);
+ 
+ 	g_object_unref (cnc); /* the GSimpleAsyncResult holds it now */
+ 
+ 	xmlFreeDoc (doc);
++	g_free (url1);
++	g_free (url2);
++	g_free (url3);
++	g_free (url4);
+ }
+ 
+-
+ struct _oal_req_data {
+ 	EEwsConnection *cnc;
+ 	GSimpleAsyncResult *simple;
+diff --git a/src/server/e-ews-connection.h b/src/server/e-ews-connection.h
+index 03d4860..3c2a26f 100644
+--- a/src/server/e-ews-connection.h
++++ b/src/server/e-ews-connection.h
+@@ -134,7 +134,9 @@ typedef void (*EEwsAutoDiscoverCallback) (EwsUrls *urls, gpointer user_data, GEr
+ void		e_ews_autodiscover_ws_url	(EEwsAutoDiscoverCallback cb,
+ 						 gpointer cbdata,
+ 						 const gchar *email,
+-						 const gchar *password);
++						 const gchar *password,
++						 const gchar *ews_url,
++						 const gchar *username);
+ void		e_ews_connection_set_mailbox	(EEwsConnection *cnc,
+ 						 const gchar *email);
+ /* Sync folder items */
+diff --git a/src/server/tests/test-connection.c b/src/server/tests/test-connection.c
+index db543fa..811d9c7 100644
+--- a/src/server/tests/test-connection.c
++++ b/src/server/tests/test-connection.c
+@@ -120,24 +120,24 @@ con_test_autodiscover()
+ 	user_data->test_case = g_strdup ("postive case... \n");
+ 	g_print ("Testing %s \n", user_data->test_case);
+ 	user_data->positive_case = TRUE;
+-	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, email, password);
++	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, email, password, NULL, NULL);
+ 
+ 	user_data = g_new0 (struct _cb_data, 1);
+ 	user_data->test_case =	g_strdup ("wrong password... \n");
+ 	/* It does respond properly with the url, Check it out */
+ 	user_data->positive_case = TRUE;
+ 	g_print ("Testing %s \n", user_data->test_case);
+-	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, email, "wrongpassword");
++	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, email, "wrongpassword", NULL, NULL);
+ 
+ 	user_data = g_new0 (struct _cb_data, 1);
+ 	user_data->test_case = g_strdup ("email without domain ... \n");
+ 	g_print ("Testing %s \n", user_data->test_case);
+-	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, "wronguseremail", password);
++	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, "wronguseremail", password, NULL, NULL);
+ 
+ 	user_data = g_new0 (struct _cb_data, 1);
+ 	user_data->test_case = g_strdup ("wrong email address and password... \n");
+ 	g_print ("Testing %s \n", user_data->test_case);
+-	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, "godknows at donknow.com", "wrongpassword");
++	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, "godknows at donknow.com", "wrongpassword", NULL, NULL);
+ 
+ 	user_data->test_case = g_strdup ("wrong user name ... \n");
+ 	g_print ("Testing %s \n", user_data->test_case);
+@@ -147,7 +147,7 @@ con_test_autodiscover()
+ 	user_data->test_case = g_strdup ("wrong user name ... \n");
+ 	g_print ("Testing %s \n", user_data->test_case);
+ 	user_data->quit = TRUE;
+-	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, wrong_username, password);
++	e_ews_autodiscover_ws_url (autodiscover_cb, user_data, wrong_username, password, NULL, NULL);
+ 	g_free (wrong_username);
+ }
+ 
+--
+cgit v0.9.0.2

Added: unstable/evolution-ews/debian/patches/14_exchange_bizarre.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/patches/14_exchange_bizarre.patch?rev=2084&op=file
==============================================================================
--- unstable/evolution-ews/debian/patches/14_exchange_bizarre.patch (added)
+++ unstable/evolution-ews/debian/patches/14_exchange_bizarre.patch Fri Dec 16 19:51:59 2011
@@ -1,0 +1,52 @@
+From c0fb8bfcd4f2a4fad87d17c7acc6ddb0f4988dd4 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha at redhat.com>
+Date: Wed, 07 Dec 2011 09:30:32 +0000
+Subject: Bug #665065 - Updates changed items forever
+
+(cherry picked from commit cfe922992fcc4b30b0cc138a8a4a6c84f198c743)
+---
+diff --git a/src/camel/camel-ews-folder.c b/src/camel/camel-ews-folder.c
+index c889556..23f10ef 100644
+--- a/src/camel/camel-ews-folder.c
++++ b/src/camel/camel-ews-folder.c
+@@ -734,6 +734,11 @@ msg_update_flags (ESoapMessage *msg, gpointer user_data)
+ 
+ 		e_ews_message_end_item_change (msg);
+ 
++		mi->info.flags = mi->info.flags & (~CAMEL_MESSAGE_FOLDER_FLAGGED);
++		mi->info.dirty = TRUE;
++
++		camel_folder_summary_touch (mi->info.summary);
++
+ 		camel_message_info_free (mi);
+ 	}
+ 	/* Don't think we need to free the list; we already freed every element */
+@@ -795,7 +800,7 @@ ews_synchronize_sync (CamelFolder *folder, gboolean expunge, GCancellable *cance
+ 			/* OK, the change must have been the labels */
+ 			mi_list = g_slist_append (mi_list, mi);
+ 			mi_list_len++;
+-		}			
++		}
+ 
+ 		if (mi_list_len == EWS_MAX_FETCH_COUNT) {
+ 			success = ews_sync_mi_flags (folder, mi_list, cancellable, error);
+@@ -803,14 +808,16 @@ ews_synchronize_sync (CamelFolder *folder, gboolean expunge, GCancellable *cance
+ 			mi_list_len = 0;
+ 		}
+ 	}
+-	
++
+ 	if (mi_list_len)
+ 		success = ews_sync_mi_flags (folder, mi_list, cancellable, error);
+ 
+ 	if (deleted_uids)
+ 		success = ews_delete_messages (folder, deleted_uids, FALSE, cancellable, error);
+ 
++	camel_folder_summary_save_to_db (folder->summary, NULL);
+ 	camel_folder_free_uids (folder, uids);
++
+ 	return success;
+ }
+ 
+--
+cgit v0.9.0.2

Added: unstable/evolution-ews/debian/patches/15_contact_crash.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/patches/15_contact_crash.patch?rev=2084&op=file
==============================================================================
--- unstable/evolution-ews/debian/patches/15_contact_crash.patch (added)
+++ unstable/evolution-ews/debian/patches/15_contact_crash.patch Fri Dec 16 19:51:59 2011
@@ -1,0 +1,45 @@
+From f719409b369c97690e30c249f93e7c685f46489e Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha at redhat.com>
+Date: Thu, 08 Dec 2011 08:32:52 +0000
+Subject: Avoid crash on contact parsing (part of bug #648877)
+
+---
+diff --git a/src/addressbook/e-book-backend-ews.c b/src/addressbook/e-book-backend-ews.c
+index 1c63155..405492b 100644
+--- a/src/addressbook/e-book-backend-ews.c
++++ b/src/addressbook/e-book-backend-ews.c
+@@ -183,8 +183,10 @@ ebews_populate_uid	(EContact *contact, EEwsItem *item)
+ 	const EwsId *id;
+ 
+ 	id = e_ews_item_get_id (item);
+-	e_contact_set (contact, E_CONTACT_UID, id->id);
+-	e_contact_set (contact, E_CONTACT_REV, id->change_key);
++	if (id) {
++		e_contact_set (contact, E_CONTACT_UID, id->id);
++		e_contact_set (contact, E_CONTACT_REV, id->change_key);
++	}
+ }
+ 
+ static void
+@@ -193,7 +195,8 @@ ebews_populate_full_name	(EContact *contact, EEwsItem *item)
+ 	const EwsCompleteName *cn;
+ 
+ 	cn = e_ews_item_get_complete_name (item);
+-	e_contact_set (contact, E_CONTACT_FULL_NAME, cn->full_name);
++	if (cn)
++		e_contact_set (contact, E_CONTACT_FULL_NAME, cn->full_name);
+ }
+ 
+ static void
+@@ -202,7 +205,8 @@ ebews_populate_nick_name	(EContact *contact, EEwsItem *item)
+ 	const EwsCompleteName *cn;
+ 
+ 	cn = e_ews_item_get_complete_name (item);
+-	e_contact_set (contact, E_CONTACT_NICKNAME, cn->nick_name);
++	if (cn)
++		e_contact_set (contact, E_CONTACT_NICKNAME, cn->nick_name);
+ }
+ 
+ static void
+--
+cgit v0.9.0.2

Modified: unstable/evolution-ews/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-ews/debian/patches/series?rev=2084&op=diff
==============================================================================
--- unstable/evolution-ews/debian/patches/series (original)
+++ unstable/evolution-ews/debian/patches/series Fri Dec 16 19:51:59 2011
@@ -1,2 +1,9 @@
 01_deprecated.patch
 02_liblzx_noinst.patch
+10_none_server.patch
+11_deleted_inbox.patch
+12_prefill_host.patch
+13_autodiscover.patch
+14_exchange_bizarre.patch
+15_contact_crash.patch
+




More information about the pkg-evolution-commits mailing list