Accepting request 265329 from home:badshah400:branches:GNOME:Factory
Update to 3.12.9 [copypac from home:Zaitor:boo906687 and then remove boo reference in .changes] OBS-URL: https://build.opensuse.org/request/show/265329 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/evolution?expand=0&rev=253
This commit is contained in:
parent
7f30551773
commit
b7e00055f7
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:6a6996ed350e2bc09ecb63befdbc9cfbd9d1097e0ff77033e9bafd1f7b5a6414
|
|
||||||
size 11370556
|
|
3
evolution-3.12.9.tar.xz
Normal file
3
evolution-3.12.9.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:923e6a1e1732ddbb3bd9fe60d5fcfc3b9c1d6ee38b20885f1d243096e6275bf6
|
||||||
|
size 11355484
|
250
evolution-crash-sending-simultaneous-emails.patch
Normal file
250
evolution-crash-sending-simultaneous-emails.patch
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
From f2a6072d31c1782540e26429a22523437cdb288b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Milan Crha <mcrha@redhat.com>
|
||||||
|
Date: Wed, 10 Dec 2014 10:26:38 +0100
|
||||||
|
Subject: Bug 740297 - [SMTP] Crash when sending two messages at once
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/libemail-engine/e-mail-session-utils.c b/libemail-engine/e-mail-session-utils.c
|
||||||
|
index a248eac..295fe24 100644
|
||||||
|
--- a/libemail-engine/e-mail-session-utils.c
|
||||||
|
+++ b/libemail-engine/e-mail-session-utils.c
|
||||||
|
@@ -540,14 +540,20 @@ mail_session_send_to_thread (GSimpleAsyncResult *simple,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!e_mail_session_mark_service_used_sync (session, context->transport, cancellable)) {
|
||||||
|
+ g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, &error));
|
||||||
|
+ g_simple_async_result_take_error (simple, error);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
status = camel_service_get_connection_status (context->transport);
|
||||||
|
if (status != CAMEL_SERVICE_CONNECTED) {
|
||||||
|
did_connect = TRUE;
|
||||||
|
|
||||||
|
- camel_service_connect_sync (
|
||||||
|
- context->transport, cancellable, &error);
|
||||||
|
+ camel_service_connect_sync (context->transport, cancellable, &error);
|
||||||
|
|
||||||
|
if (error != NULL) {
|
||||||
|
+ e_mail_session_unmark_service_used (session, context->transport);
|
||||||
|
g_simple_async_result_take_error (simple, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -579,6 +585,8 @@ mail_session_send_to_thread (GSimpleAsyncResult *simple,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ e_mail_session_unmark_service_used (session, context->transport);
|
||||||
|
+
|
||||||
|
if (error != NULL) {
|
||||||
|
g_simple_async_result_take_error (simple, error);
|
||||||
|
return;
|
||||||
|
diff --git a/libemail-engine/e-mail-session.c b/libemail-engine/e-mail-session.c
|
||||||
|
index 5578a78..f54025e 100644
|
||||||
|
--- a/libemail-engine/e-mail-session.c
|
||||||
|
+++ b/libemail-engine/e-mail-session.c
|
||||||
|
@@ -91,6 +91,10 @@ struct _EMailSessionPrivate {
|
||||||
|
|
||||||
|
guint preparing_flush;
|
||||||
|
GMutex preparing_flush_lock;
|
||||||
|
+
|
||||||
|
+ GMutex used_services_lock;
|
||||||
|
+ GCond used_services_cond;
|
||||||
|
+ GHashTable *used_services;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _AsyncContext {
|
||||||
|
@@ -956,11 +960,14 @@ mail_session_finalize (GObject *object)
|
||||||
|
|
||||||
|
g_hash_table_destroy (priv->auto_refresh_table);
|
||||||
|
g_hash_table_destroy (priv->junk_filters);
|
||||||
|
+ g_hash_table_destroy (priv->used_services);
|
||||||
|
|
||||||
|
g_ptr_array_free (priv->local_folders, TRUE);
|
||||||
|
g_ptr_array_free (priv->local_folder_uris, TRUE);
|
||||||
|
|
||||||
|
g_mutex_clear (&priv->preparing_flush_lock);
|
||||||
|
+ g_mutex_clear (&priv->used_services_lock);
|
||||||
|
+ g_cond_clear (&priv->used_services_cond);
|
||||||
|
|
||||||
|
g_free (mail_data_dir);
|
||||||
|
g_free (mail_config_dir);
|
||||||
|
@@ -1799,6 +1806,10 @@ e_mail_session_init (EMailSession *session)
|
||||||
|
(GDestroyNotify) g_free);
|
||||||
|
|
||||||
|
g_mutex_init (&session->priv->preparing_flush_lock);
|
||||||
|
+ g_mutex_init (&session->priv->used_services_lock);
|
||||||
|
+ g_cond_init (&session->priv->used_services_cond);
|
||||||
|
+
|
||||||
|
+ session->priv->used_services = g_hash_table_new (g_direct_hash, g_direct_equal);
|
||||||
|
}
|
||||||
|
|
||||||
|
EMailSession *
|
||||||
|
@@ -2367,3 +2378,86 @@ e_mail_session_create_vfolder_context (EMailSession *session)
|
||||||
|
return class->create_vfolder_context (session);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+mail_session_wakeup_used_services_cond (GCancellable *cancenllable,
|
||||||
|
+ EMailSession *session)
|
||||||
|
+{
|
||||||
|
+ g_return_if_fail (E_IS_MAIL_SESSION (session));
|
||||||
|
+
|
||||||
|
+ /* Use broadcast here, because it's not known which operation had been
|
||||||
|
+ cancelled, thus rather wake up all of them to retest. */
|
||||||
|
+ g_cond_broadcast (&session->priv->used_services_cond);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * e_mail_session_mark_service_used_sync:
|
||||||
|
+ * @session: an #EMailSession
|
||||||
|
+ * @service: a #CamelService
|
||||||
|
+ * @cancellable: (allow none): a #GCancellable, or NULL
|
||||||
|
+ *
|
||||||
|
+ * Marks the @service as being used. If it is already in use, then waits
|
||||||
|
+ * for its release. The only reasons for a failure are either invalid
|
||||||
|
+ * parameters being passed in the function or the wait being cancelled.
|
||||||
|
+ * Use e_mail_session_unmark_service_used() to notice the @session that
|
||||||
|
+ * that the @service is no longer being used by the caller.
|
||||||
|
+ *
|
||||||
|
+ * Returns: Whether successfully waited for the @service.
|
||||||
|
+ *
|
||||||
|
+ * Since: 3.12.10
|
||||||
|
+ **/
|
||||||
|
+gboolean
|
||||||
|
+e_mail_session_mark_service_used_sync (EMailSession *session,
|
||||||
|
+ CamelService *service,
|
||||||
|
+ GCancellable *cancellable)
|
||||||
|
+{
|
||||||
|
+ gulong cancelled_id = 0;
|
||||||
|
+
|
||||||
|
+ g_return_val_if_fail (E_IS_MAIL_SESSION (session), FALSE);
|
||||||
|
+ g_return_val_if_fail (CAMEL_IS_SERVICE (service), FALSE);
|
||||||
|
+
|
||||||
|
+ g_mutex_lock (&session->priv->used_services_lock);
|
||||||
|
+
|
||||||
|
+ if (cancellable)
|
||||||
|
+ cancelled_id = g_cancellable_connect (cancellable, G_CALLBACK (mail_session_wakeup_used_services_cond), session, NULL);
|
||||||
|
+
|
||||||
|
+ while (!g_cancellable_is_cancelled (cancellable) &&
|
||||||
|
+ g_hash_table_contains (session->priv->used_services, service)) {
|
||||||
|
+ g_cond_wait (&session->priv->used_services_cond, &session->priv->used_services_lock);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (cancelled_id)
|
||||||
|
+ g_cancellable_disconnect (cancellable, cancelled_id);
|
||||||
|
+
|
||||||
|
+ if (!g_cancellable_is_cancelled (cancellable))
|
||||||
|
+ g_hash_table_insert (session->priv->used_services, service, GINT_TO_POINTER (1));
|
||||||
|
+
|
||||||
|
+ g_mutex_unlock (&session->priv->used_services_lock);
|
||||||
|
+
|
||||||
|
+ return !g_cancellable_is_cancelled (cancellable);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * e_mail_session_unmark_service_used:
|
||||||
|
+ * @session: an #EMailSession
|
||||||
|
+ * @service: a #CamelService
|
||||||
|
+ *
|
||||||
|
+ * Frees a "use lock" on the @service, thus it can be used by others. If anything
|
||||||
|
+ * is waiting for it in e_mail_session_mark_service_used_sync(), then it is woken up.
|
||||||
|
+ *
|
||||||
|
+ * Since: 3.12.10
|
||||||
|
+ **/
|
||||||
|
+void
|
||||||
|
+e_mail_session_unmark_service_used (EMailSession *session,
|
||||||
|
+ CamelService *service)
|
||||||
|
+{
|
||||||
|
+ g_return_if_fail (E_IS_MAIL_SESSION (session));
|
||||||
|
+ g_return_if_fail (CAMEL_IS_SERVICE (service));
|
||||||
|
+
|
||||||
|
+ g_mutex_lock (&session->priv->used_services_lock);
|
||||||
|
+
|
||||||
|
+ if (g_hash_table_remove (session->priv->used_services, service)) {
|
||||||
|
+ g_cond_signal (&session->priv->used_services_cond);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g_mutex_unlock (&session->priv->used_services_lock);
|
||||||
|
+}
|
||||||
|
diff --git a/libemail-engine/e-mail-session.h b/libemail-engine/e-mail-session.h
|
||||||
|
index 7959d0c..674858d 100644
|
||||||
|
--- a/libemail-engine/e-mail-session.h
|
||||||
|
+++ b/libemail-engine/e-mail-session.h
|
||||||
|
@@ -150,6 +150,13 @@ CamelFolder * e_mail_session_uri_to_folder_finish
|
||||||
|
EMVFolderContext *
|
||||||
|
e_mail_session_create_vfolder_context
|
||||||
|
(EMailSession *session);
|
||||||
|
+gboolean e_mail_session_mark_service_used_sync
|
||||||
|
+ (EMailSession *session,
|
||||||
|
+ CamelService *service,
|
||||||
|
+ GCancellable *cancellable);
|
||||||
|
+void e_mail_session_unmark_service_used
|
||||||
|
+ (EMailSession *session,
|
||||||
|
+ CamelService *service);
|
||||||
|
|
||||||
|
/* Useful GBinding transform functions */
|
||||||
|
gboolean e_binding_transform_service_to_source
|
||||||
|
diff --git a/libemail-engine/mail-ops.c b/libemail-engine/mail-ops.c
|
||||||
|
index 969fbcb..e84a412 100644
|
||||||
|
--- a/libemail-engine/mail-ops.c
|
||||||
|
+++ b/libemail-engine/mail-ops.c
|
||||||
|
@@ -590,7 +590,6 @@ static void
|
||||||
|
mail_send_message (struct _send_queue_msg *m,
|
||||||
|
CamelFolder *queue,
|
||||||
|
const gchar *uid,
|
||||||
|
- CamelTransport *transport,
|
||||||
|
CamelFilterDriver *driver,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error)
|
||||||
|
@@ -622,17 +621,24 @@ mail_send_message (struct _send_queue_msg *m,
|
||||||
|
if (service != NULL)
|
||||||
|
provider = camel_service_get_provider (service);
|
||||||
|
|
||||||
|
- err = g_string_new ("");
|
||||||
|
- xev = mail_tool_remove_xevolution_headers (message);
|
||||||
|
-
|
||||||
|
if (CAMEL_IS_TRANSPORT (service)) {
|
||||||
|
const gchar *tuid;
|
||||||
|
|
||||||
|
/* Let the dialog know the right account it is using. */
|
||||||
|
- tuid = camel_service_get_uid (CAMEL_SERVICE (transport));
|
||||||
|
+ tuid = camel_service_get_uid (service);
|
||||||
|
report_status (m, CAMEL_FILTER_STATUS_ACTION, 0, tuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (service && !e_mail_session_mark_service_used_sync (m->session, service, cancellable)) {
|
||||||
|
+ g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, error));
|
||||||
|
+ g_clear_object (&service);
|
||||||
|
+ g_clear_object (&message);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ err = g_string_new ("");
|
||||||
|
+ xev = mail_tool_remove_xevolution_headers (message);
|
||||||
|
+
|
||||||
|
/* Check for email sending */
|
||||||
|
from = (CamelAddress *) camel_internet_address_new ();
|
||||||
|
resent_from = camel_medium_get_header (
|
||||||
|
@@ -857,6 +863,9 @@ exit:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (service)
|
||||||
|
+ e_mail_session_unmark_service_used (m->session, service);
|
||||||
|
+
|
||||||
|
if (local_error != NULL)
|
||||||
|
g_propagate_error (error, local_error);
|
||||||
|
|
||||||
|
@@ -957,7 +966,7 @@ send_queue_exec (struct _send_queue_msg *m,
|
||||||
|
cancellable, (i + 1) * 100 / send_uids->len);
|
||||||
|
|
||||||
|
mail_send_message (
|
||||||
|
- m, m->queue, send_uids->pdata[i], m->transport,
|
||||||
|
+ m, m->queue, send_uids->pdata[i],
|
||||||
|
m->driver, cancellable, &local_error);
|
||||||
|
if (local_error != NULL) {
|
||||||
|
if (!g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
|
||||||
|
--
|
||||||
|
cgit v0.10.1
|
82
evolution-no-DTEND-set.patch
Normal file
82
evolution-no-DTEND-set.patch
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
From 96fd44260970317472ea5d672c3edefaa9faec19 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= <erick.red@gmail.com>
|
||||||
|
Date: Tue, 9 Dec 2014 15:59:30 +0100
|
||||||
|
Subject: ECalModel: Workaround issue with no DTEND set
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
|
||||||
|
index 05ffef5..afdec4c 100644
|
||||||
|
--- a/calendar/gui/e-cal-model.c
|
||||||
|
+++ b/calendar/gui/e-cal-model.c
|
||||||
|
@@ -4281,6 +4281,10 @@ e_cal_model_set_instance_times (ECalModelComponent *comp_data,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Some events can have missing DTEND, then use the start_time for them */
|
||||||
|
+ if (icaltime_is_null_time (end_time))
|
||||||
|
+ end_time = start_time;
|
||||||
|
+
|
||||||
|
if (start_time.zone)
|
||||||
|
zone = start_time.zone;
|
||||||
|
else {
|
||||||
|
--
|
||||||
|
cgit v0.10.1
|
||||||
|
|
||||||
|
From 012fa7ddfdf43b77d40449a28c26cb45b981a421 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Milan Crha <mcrha@redhat.com>
|
||||||
|
Date: Tue, 9 Dec 2014 15:51:59 +0100
|
||||||
|
Subject: e_calendar_view_get_tooltips: Do not crash when there's no DTEND set
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
|
||||||
|
index 686327a..365b63c 100644
|
||||||
|
--- a/calendar/gui/e-calendar-view.c
|
||||||
|
+++ b/calendar/gui/e-calendar-view.c
|
||||||
|
@@ -2157,24 +2157,30 @@ e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
|
||||||
|
} else {
|
||||||
|
zone = NULL;
|
||||||
|
}
|
||||||
|
- t_start = icaltime_as_timet_with_zone (*dtstart.value, zone);
|
||||||
|
- t_end = icaltime_as_timet_with_zone (*dtend.value, zone);
|
||||||
|
|
||||||
|
- tmp1 = get_label (dtstart.value, zone, default_zone);
|
||||||
|
- tmp = calculate_time (t_start, t_end);
|
||||||
|
+ if (dtstart.value) {
|
||||||
|
+ t_start = icaltime_as_timet_with_zone (*dtstart.value, zone);
|
||||||
|
+ if (dtend.value)
|
||||||
|
+ t_end = icaltime_as_timet_with_zone (*dtend.value, zone);
|
||||||
|
+ else
|
||||||
|
+ t_end = t_start;
|
||||||
|
|
||||||
|
- /* To Translators: It will display "Time: ActualStartDateAndTime (DurationOfTheMeeting)"*/
|
||||||
|
- tmp2 = g_strdup_printf (_("Time: %s %s"), tmp1, tmp);
|
||||||
|
- if (zone && !cal_comp_util_compare_event_timezones (newcomp, client, default_zone)) {
|
||||||
|
- g_free (tmp);
|
||||||
|
- g_free (tmp1);
|
||||||
|
+ tmp1 = get_label (dtstart.value, zone, default_zone);
|
||||||
|
+ tmp = calculate_time (t_start, t_end);
|
||||||
|
|
||||||
|
- tmp1 = get_label (dtstart.value, zone, zone);
|
||||||
|
- tmp = g_strconcat (tmp2, "\n\t[ ", tmp1, " ", icaltimezone_get_display_name (zone), " ]", NULL);
|
||||||
|
- } else {
|
||||||
|
- g_free (tmp);
|
||||||
|
- tmp = tmp2;
|
||||||
|
- tmp2 = NULL;
|
||||||
|
+ /* To Translators: It will display "Time: ActualStartDateAndTime (DurationOfTheMeeting)"*/
|
||||||
|
+ tmp2 = g_strdup_printf (_("Time: %s %s"), tmp1, tmp);
|
||||||
|
+ if (zone && !cal_comp_util_compare_event_timezones (newcomp, client, default_zone)) {
|
||||||
|
+ g_free (tmp);
|
||||||
|
+ g_free (tmp1);
|
||||||
|
+
|
||||||
|
+ tmp1 = get_label (dtstart.value, zone, zone);
|
||||||
|
+ tmp = g_strconcat (tmp2, "\n\t[ ", tmp1, " ", icaltimezone_get_display_name (zone), " ]", NULL);
|
||||||
|
+ } else {
|
||||||
|
+ g_free (tmp);
|
||||||
|
+ tmp = tmp2;
|
||||||
|
+ tmp2 = NULL;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
e_cal_component_free_datetime (&dtstart);
|
||||||
|
--
|
||||||
|
cgit v0.10.1
|
30
evolution-protected-login-PIN.patch
Normal file
30
evolution-protected-login-PIN.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 99184975e80f6db542dc363a4c51d74758016088 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Woodhouse <David.Woodhouse@intel.com>
|
||||||
|
Date: Mon, 8 Dec 2014 14:08:20 +0000
|
||||||
|
Subject: Bug 741059 - Prompts for login PIN with
|
||||||
|
CKF_PROTECTED_AUTHENTICATION_PATH
|
||||||
|
|
||||||
|
This turns out to be relatively simple to fix. Based on the patch in
|
||||||
|
http://bugzilla.mozilla.org/show_bug.cgi?id=229023
|
||||||
|
|
||||||
|
(cherry picked from commit 080e9fa33f57eb909555b439c0015d54bfb701dc)
|
||||||
|
|
||||||
|
diff --git a/smime/lib/e-cert-db.c b/smime/lib/e-cert-db.c
|
||||||
|
index abb07be..21b167c 100644
|
||||||
|
--- a/smime/lib/e-cert-db.c
|
||||||
|
+++ b/smime/lib/e-cert-db.c
|
||||||
|
@@ -387,6 +387,11 @@ pk11_password (PK11SlotInfo *slot,
|
||||||
|
|
||||||
|
gboolean rv = FALSE;
|
||||||
|
|
||||||
|
+ /* For tokens with CKF_PROTECTED_AUTHENTICATION_PATH we
|
||||||
|
+ * need to return a non-empty but unused password */
|
||||||
|
+ if (PK11_ProtectedAuthenticationPath(slot))
|
||||||
|
+ return PORT_Strdup("");
|
||||||
|
+
|
||||||
|
g_signal_emit (
|
||||||
|
e_cert_db_peek (),
|
||||||
|
e_cert_db_signals[PK11_PASSWD], 0,
|
||||||
|
--
|
||||||
|
cgit v0.10.1
|
||||||
|
|
140
evolution-wrong-message-preview.patch
Normal file
140
evolution-wrong-message-preview.patch
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
From afab9d238a8b7e1b3bbcea9047431ae6395ecf65 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Milan Crha <mcrha@redhat.com>
|
||||||
|
Date: Fri, 12 Dec 2014 13:34:20 +0100
|
||||||
|
Subject: Bug 724039 - Message preview shows a wrong message
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
|
||||||
|
index 07ac192..acf5124 100644
|
||||||
|
--- a/mail/e-mail-reader-utils.c
|
||||||
|
+++ b/mail/e-mail-reader-utils.c
|
||||||
|
@@ -957,6 +957,7 @@ mail_reader_print_parse_message_cb (GObject *source_object,
|
||||||
|
EMailPrinter *printer;
|
||||||
|
EMailPartList *part_list;
|
||||||
|
AsyncContext *async_context;
|
||||||
|
+ GError *local_error = NULL;
|
||||||
|
|
||||||
|
reader = E_MAIL_READER (source_object);
|
||||||
|
async_context = (AsyncContext *) user_data;
|
||||||
|
@@ -964,7 +965,17 @@ mail_reader_print_parse_message_cb (GObject *source_object,
|
||||||
|
activity = async_context->activity;
|
||||||
|
cancellable = e_activity_get_cancellable (activity);
|
||||||
|
|
||||||
|
- part_list = e_mail_reader_parse_message_finish (reader, result);
|
||||||
|
+ part_list = e_mail_reader_parse_message_finish (reader, result, &local_error);
|
||||||
|
+
|
||||||
|
+ if (local_error) {
|
||||||
|
+ g_warn_if_fail (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED));
|
||||||
|
+
|
||||||
|
+ e_activity_handle_cancellation (activity, local_error);
|
||||||
|
+ g_clear_error (&local_error);
|
||||||
|
+ async_context_free (async_context);
|
||||||
|
+
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
printer = e_mail_printer_new (part_list);
|
||||||
|
|
||||||
|
@@ -1650,10 +1661,21 @@ mail_reader_reply_message_parsed (GObject *object,
|
||||||
|
EMsgComposer *composer;
|
||||||
|
CamelMimeMessage *message;
|
||||||
|
AsyncContext *async_context;
|
||||||
|
+ GError *local_error = NULL;
|
||||||
|
|
||||||
|
async_context = (AsyncContext *) user_data;
|
||||||
|
|
||||||
|
- part_list = e_mail_reader_parse_message_finish (reader, result);
|
||||||
|
+ part_list = e_mail_reader_parse_message_finish (reader, result, &local_error);
|
||||||
|
+
|
||||||
|
+ if (local_error) {
|
||||||
|
+ g_warn_if_fail (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED));
|
||||||
|
+
|
||||||
|
+ g_clear_error (&local_error);
|
||||||
|
+ async_context_free (async_context);
|
||||||
|
+
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
message = e_mail_part_list_get_message (part_list);
|
||||||
|
|
||||||
|
backend = e_mail_reader_get_backend (async_context->reader);
|
||||||
|
@@ -2351,6 +2373,7 @@ mail_reader_parse_message_run (GSimpleAsyncResult *simple,
|
||||||
|
EMailPartList *part_list;
|
||||||
|
AsyncContext *async_context;
|
||||||
|
gchar *mail_uri;
|
||||||
|
+ GError *local_error = NULL;
|
||||||
|
|
||||||
|
async_context = g_simple_async_result_get_op_res_gpointer (simple);
|
||||||
|
|
||||||
|
@@ -2389,6 +2412,9 @@ mail_reader_parse_message_run (GSimpleAsyncResult *simple,
|
||||||
|
g_free (mail_uri);
|
||||||
|
|
||||||
|
async_context->part_list = part_list;
|
||||||
|
+
|
||||||
|
+ if (g_cancellable_set_error_if_cancelled (cancellable, &local_error))
|
||||||
|
+ g_simple_async_result_take_error (simple, local_error);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -2438,7 +2464,8 @@ e_mail_reader_parse_message (EMailReader *reader,
|
||||||
|
|
||||||
|
EMailPartList *
|
||||||
|
e_mail_reader_parse_message_finish (EMailReader *reader,
|
||||||
|
- GAsyncResult *result)
|
||||||
|
+ GAsyncResult *result,
|
||||||
|
+ GError **error)
|
||||||
|
{
|
||||||
|
GSimpleAsyncResult *simple;
|
||||||
|
AsyncContext *async_context;
|
||||||
|
@@ -2449,6 +2476,10 @@ e_mail_reader_parse_message_finish (EMailReader *reader,
|
||||||
|
e_mail_reader_parse_message), NULL);
|
||||||
|
|
||||||
|
simple = G_SIMPLE_ASYNC_RESULT (result);
|
||||||
|
+
|
||||||
|
+ if (g_simple_async_result_propagate_error (simple, error))
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
async_context = g_simple_async_result_get_op_res_gpointer (simple);
|
||||||
|
|
||||||
|
if (async_context->part_list != NULL)
|
||||||
|
diff --git a/mail/e-mail-reader-utils.h b/mail/e-mail-reader-utils.h
|
||||||
|
index 32c6ae0..18f937b 100644
|
||||||
|
--- a/mail/e-mail-reader-utils.h
|
||||||
|
+++ b/mail/e-mail-reader-utils.h
|
||||||
|
@@ -91,7 +91,8 @@ void e_mail_reader_parse_message (EMailReader *reader,
|
||||||
|
gpointer user_data);
|
||||||
|
EMailPartList * e_mail_reader_parse_message_finish
|
||||||
|
(EMailReader *reader,
|
||||||
|
- GAsyncResult *result);
|
||||||
|
+ GAsyncResult *result,
|
||||||
|
+ GError **error);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
|
||||||
|
index 01ad296..cdf549d 100644
|
||||||
|
--- a/mail/e-mail-reader.c
|
||||||
|
+++ b/mail/e-mail-reader.c
|
||||||
|
@@ -3091,11 +3091,19 @@ set_mail_display_part_list (GObject *object,
|
||||||
|
EMailPartList *part_list;
|
||||||
|
EMailReader *reader;
|
||||||
|
EMailDisplay *display;
|
||||||
|
+ GError *local_error = NULL;
|
||||||
|
|
||||||
|
reader = E_MAIL_READER (object);
|
||||||
|
display = e_mail_reader_get_mail_display (reader);
|
||||||
|
|
||||||
|
- part_list = e_mail_reader_parse_message_finish (reader, result);
|
||||||
|
+ part_list = e_mail_reader_parse_message_finish (reader, result, &local_error);
|
||||||
|
+
|
||||||
|
+ if (local_error) {
|
||||||
|
+ g_warn_if_fail (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED));
|
||||||
|
+
|
||||||
|
+ g_clear_error (&local_error);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
e_mail_display_set_part_list (display, part_list);
|
||||||
|
e_mail_display_load (display, NULL);
|
||||||
|
--
|
||||||
|
cgit v0.10.1
|
@ -1,3 +1,32 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Dec 14 05:19:59 UTC 2014 - badshah400@gmail.com
|
||||||
|
|
||||||
|
- Update to version 3.12.9:
|
||||||
|
+ Offer only enabled accounts as meeting organizers.
|
||||||
|
+ Odd cross line when drawing an ECalendar with multiple
|
||||||
|
columns
|
||||||
|
+ mail_regen_list: Fix a memory leak.
|
||||||
|
+ Use EClientCache to open calendars in plugins.
|
||||||
|
+ [Alarm-notify] Do not show "Not supported" error on an alarm
|
||||||
|
dismiss.
|
||||||
|
+ Automatic Contacts can duplicate recipients in the set book.
|
||||||
|
+ EWebView - Increase minimum zoom level for zoom out.
|
||||||
|
+ Calendar events/tasks/memos not removed from UI on the source
|
||||||
|
removal.
|
||||||
|
+ Bugs fixed: bgo#739708, bgo#700778, bgo#736947, bgo#736950
|
||||||
|
bgo#740197, bgo#740577, bgo#734646, bgo#740244, bgo#734530
|
||||||
|
bgo#524365, bgo#706993.
|
||||||
|
+ Updated translations.
|
||||||
|
- Add post-release patches from upstream:
|
||||||
|
+ evolution-no-DTEND-set.patch: Fix calendar issues when DTEND
|
||||||
|
is not set
|
||||||
|
+ evolution-protected-login-PIN.patch: Prompts for login PIN
|
||||||
|
with CKF_PROTECTED_AUTHENTICATION_PATH (bgo#741059)
|
||||||
|
+ evolution-crash-sending-simultaneous-emails.patch: [SMTP] Fix
|
||||||
|
crash when sending two messages at once (bgo#740297)
|
||||||
|
+ evolution-wrong-message-preview.patch: Message preview shows
|
||||||
|
a wrong message (bgo#724039).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Nov 11 21:21:27 UTC 2014 - zaitor@opensuse.org
|
Tue Nov 11 21:21:27 UTC 2014 - zaitor@opensuse.org
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
Name: evolution
|
Name: evolution
|
||||||
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
||||||
%define evolution_base_version 3.12
|
%define evolution_base_version 3.12
|
||||||
Version: 3.12.8
|
Version: 3.12.9
|
||||||
Release: 0
|
Release: 0
|
||||||
# _version needs to be %{version} stripped to major.minor.micro only...
|
# _version needs to be %{version} stripped to major.minor.micro only...
|
||||||
%define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
|
%define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
|
||||||
@ -38,6 +38,14 @@ Url: http://wiki.gnome.org/Apps/Evolution/
|
|||||||
Source0: http://download.gnome.org/sources/evolution/3.12/%{name}-%{version}.tar.xz
|
Source0: http://download.gnome.org/sources/evolution/3.12/%{name}-%{version}.tar.xz
|
||||||
# PATCH-NEEDS-REBASE evolution-migrate-kmail-kcontact.patch fate#316619 dliang@suse.com -- Migrate Kmail/Kcontact into evolution (WAS:PATCH-FEATURE-OPENSUSE)
|
# PATCH-NEEDS-REBASE evolution-migrate-kmail-kcontact.patch fate#316619 dliang@suse.com -- Migrate Kmail/Kcontact into evolution (WAS:PATCH-FEATURE-OPENSUSE)
|
||||||
Patch0: evolution-migrate-kmail-kcontact.patch
|
Patch0: evolution-migrate-kmail-kcontact.patch
|
||||||
|
# PATCH-FIX-UPSTREAM evolution-no-DTEND-set.patch badshah400@gmail.com -- Fix calendar issues when DTEND is not set; patch taken from upstream git
|
||||||
|
Patch1: evolution-no-DTEND-set.patch
|
||||||
|
# PATCH-FIX-UPSTREAM evolution-protected-login-PIN.patch bgo#741059 badshah400@gmail.com -- Prompts for login PIN with CKF_PROTECTED_AUTHENTICATION_PATH; patch taken from upstream git
|
||||||
|
Patch2: evolution-protected-login-PIN.patch
|
||||||
|
# PATCH-FIX-UPSTREAM evolution-crash-sending-simultaneous-emails.patch bgo#740297 badshah400@gmail.com -- [SMTP] Fix crash when sending two messages at once; patch taken from upstream git
|
||||||
|
Patch3: evolution-crash-sending-simultaneous-emails.patch
|
||||||
|
# PATCH-FIX-UPSTREAM evolution-wrong-message-preview.patch bgo#724039 badshah400@gmail.com -- Message preview shows a wrong message; patch taken from upstream git
|
||||||
|
Patch4: evolution-wrong-message-preview.patch
|
||||||
# The icon we rely on is from adwaita-icon-theme
|
# The icon we rely on is from adwaita-icon-theme
|
||||||
BuildRequires: adwaita-icon-theme
|
BuildRequires: adwaita-icon-theme
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
@ -135,6 +143,10 @@ to develop applications that require these.
|
|||||||
translation-update-upstream
|
translation-update-upstream
|
||||||
# NEEDS REBASE
|
# NEEDS REBASE
|
||||||
#patch0 -p1
|
#patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{need_autogen}
|
%if %{need_autogen}
|
||||||
|
Loading…
Reference in New Issue
Block a user