Hello community, here is the log from the commit of package evolution-ews for openSUSE:Factory checked in at 2014-11-18 22:46:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/evolution-ews (Old) and /work/SRC/openSUSE:Factory/.evolution-ews.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-ews" Changes: -------- --- /work/SRC/openSUSE:Factory/evolution-ews/evolution-ews.changes 2014-10-14 07:13:29.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.evolution-ews.new/evolution-ews.changes 2014-11-18 22:47:15.000000000 +0100 @@ -1,0 +2,8 @@ +Tue Nov 11 21:25:40 UTC 2014 - zai...@opensuse.org + +- Update to version 3.12.8: + + Use G_IO_ERROR_CANCELLED instead of + EWS_CONNECTION_ERROR_CANCELLED. + + Bugs fixed: bgo#738987, bgo#691293. + +------------------------------------------------------------------- Old: ---- evolution-ews-3.12.7.tar.xz New: ---- evolution-ews-3.12.8.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ evolution-ews.spec ++++++ --- /var/tmp/diff_new_pack.LErlhk/_old 2014-11-18 22:47:16.000000000 +0100 +++ /var/tmp/diff_new_pack.LErlhk/_new 2014-11-18 22:47:16.000000000 +0100 @@ -19,7 +19,7 @@ Name: evolution-ews # This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in. %define evolution_base_version 3.12 -Version: 3.12.7 +Version: 3.12.8 Release: 0 Summary: Exchange Connector for Evolution, compatible with Exchange 2007 and later License: LGPL-2.1 ++++++ evolution-ews-3.12.7.tar.xz -> evolution-ews-3.12.8.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/NEWS new/evolution-ews-3.12.8/NEWS --- old/evolution-ews-3.12.7/NEWS 2014-10-13 09:18:22.000000000 +0200 +++ new/evolution-ews-3.12.8/NEWS 2014-11-10 08:19:24.000000000 +0100 @@ -1,3 +1,13 @@ +Evolution-EWS 3.12.8 2014-11-10 +------------------------------- + +Bug Fixes: + Bug 738987 - Crash under e_ews_notification_unsubscribe_folder_sync() (Milan Crha) + Bug 691293 - Claim old resources in offline mode (Milan Crha) + +Miscellaneous: + Use G_IO_ERROR_CANCELLED instead of EWS_CONNECTION_ERROR_CANCELLED (Milan Crha) + Evolution-EWS 3.12.7 2014-10-13 ------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/configure new/evolution-ews-3.12.8/configure --- old/evolution-ews-3.12.7/configure 2014-10-13 09:19:11.000000000 +0200 +++ new/evolution-ews-3.12.8/configure 2014-11-10 08:20:20.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for evolution-ews 3.12.7. +# Generated by GNU Autoconf 2.69 for evolution-ews 3.12.8. # # Report bugs to <http://bugzilla.gnome.org/browse.cgi?product=evolution-ews>. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='evolution-ews' PACKAGE_TARNAME='evolution-ews' -PACKAGE_VERSION='3.12.7' -PACKAGE_STRING='evolution-ews 3.12.7' +PACKAGE_VERSION='3.12.8' +PACKAGE_STRING='evolution-ews 3.12.8' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/browse.cgi?product=evolution-ews' PACKAGE_URL='' @@ -1499,7 +1499,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures evolution-ews 3.12.7 to adapt to many kinds of systems. +\`configure' configures evolution-ews 3.12.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1569,7 +1569,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of evolution-ews 3.12.7:";; + short | recursive ) echo "Configuration of evolution-ews 3.12.8:";; esac cat <<\_ACEOF @@ -1768,7 +1768,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -evolution-ews configure 3.12.7 +evolution-ews configure 3.12.8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2137,7 +2137,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by evolution-ews $as_me 3.12.7, which was +It was created by evolution-ews $as_me 3.12.8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3000,7 +3000,7 @@ # Define the identity of the package. PACKAGE='evolution-ews' - VERSION='3.12.7' + VERSION='3.12.8' cat >>confdefs.h <<_ACEOF @@ -3197,11 +3197,11 @@ # precisely one minor behind [ews_version], then allow building against *that* # version of EDS and Evo. read x NEWSVER y < NEWS -PREVVER=3.12.$(expr 7 - 1) +PREVVER=3.12.$(expr 8 - 1) if test "$PREVVER" = "$NEWSVER"; then EVOREQVER=$PREVVER else - EVOREQVER=3.12.7 + EVOREQVER=3.12.8 fi @@ -16705,7 +16705,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by evolution-ews $as_me 3.12.7, which was +This file was extended by evolution-ews $as_me 3.12.8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16771,7 +16771,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -evolution-ews config.status 3.12.7 +evolution-ews config.status 3.12.8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/configure.ac new/evolution-ews-3.12.8/configure.ac --- old/evolution-ews-3.12.7/configure.ac 2014-09-17 20:19:02.000000000 +0200 +++ new/evolution-ews-3.12.8/configure.ac 2014-10-14 15:47:12.000000000 +0200 @@ -1,7 +1,7 @@ dnl Evolution-EWS version m4_define([ews_major_version], [3]) m4_define([ews_minor_version], [12]) -m4_define([ews_micro_version], [7]) +m4_define([ews_micro_version], [8]) m4_define([ews_version], [ews_major_version.ews_minor_version.ews_micro_version]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/src/addressbook/e-book-backend-ews.c new/evolution-ews-3.12.8/src/addressbook/e-book-backend-ews.c --- old/evolution-ews-3.12.7/src/addressbook/e-book-backend-ews.c 2014-09-17 22:25:28.000000000 +0200 +++ new/evolution-ews-3.12.8/src/addressbook/e-book-backend-ews.c 2014-11-06 14:30:58.000000000 +0100 @@ -184,8 +184,6 @@ case EWS_CONNECTION_ERROR_AUTHENTICATION_FAILED: error = EDB_ERROR_EX (AUTHENTICATION_FAILED, (*perror)->message); break; - case EWS_CONNECTION_ERROR_CANCELLED: - break; case EWS_CONNECTION_ERROR_FOLDERNOTFOUND: case EWS_CONNECTION_ERROR_MANAGEDFOLDERNOTFOUND: case EWS_CONNECTION_ERROR_PARENTFOLDERNOTFOUND: @@ -3280,6 +3278,17 @@ E_BACKEND (backend), E_SOURCE_AUTHENTICATOR (backend), cancellable, &error); + if (g_error_matches (error, EWS_CONNECTION_ERROR, EWS_CONNECTION_ERROR_NORESPONSE)) { + /* possibly server unreachable, try offline */ + if (priv->summary) + e_book_sqlite_get_key_value_int (priv->summary, E_BOOK_SQL_IS_POPULATED_KEY, &is_populated, NULL); + if (is_populated) { + g_clear_error (&error); + fetch_from_offline (ebews, book_view, query, cancellable, &error); + goto out; + } + } + if (error != NULL) goto out; } @@ -3861,7 +3870,7 @@ ews_settings = book_backend_ews_get_collection_settings (ebews); PRIV_LOCK (priv); - need_to_authenticate = priv->cnc == NULL && e_backend_get_online (E_BACKEND (backend)); + need_to_authenticate = priv->cnc == NULL && e_backend_is_destination_reachable (E_BACKEND (backend), cancellable, NULL); PRIV_UNLOCK (priv); if (need_to_authenticate && @@ -3889,11 +3898,6 @@ if (priv->listen_notifications) ebews_listen_notifications_cb (ebews, NULL, ews_settings); - g_signal_connect_swapped ( - priv->cnc, - "server-notification", - G_CALLBACK (ebews_server_notification_cb), - ebews); PRIV_UNLOCK (priv); g_signal_connect_swapped ( @@ -4111,6 +4115,12 @@ backend->priv->cnc = g_object_ref (connection); backend->priv->is_writable = !backend->priv->is_gal; + g_signal_connect_swapped ( + backend->priv->cnc, + "server-notification", + G_CALLBACK (ebews_server_notification_cb), + backend); + PRIV_UNLOCK (backend->priv); e_backend_set_online (E_BACKEND (backend), TRUE); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/src/calendar/e-cal-backend-ews.c new/evolution-ews-3.12.8/src/calendar/e-cal-backend-ews.c --- old/evolution-ews-3.12.7/src/calendar/e-cal-backend-ews.c 2014-09-01 16:50:38.000000000 +0200 +++ new/evolution-ews-3.12.8/src/calendar/e-cal-backend-ews.c 2014-11-06 14:28:31.000000000 +0100 @@ -190,8 +190,6 @@ case EWS_CONNECTION_ERROR_AUTHENTICATION_FAILED: error = EDC_ERROR_EX (AuthenticationFailed, (*perror)->message); break; - case EWS_CONNECTION_ERROR_CANCELLED: - break; case EWS_CONNECTION_ERROR_FOLDERNOTFOUND: case EWS_CONNECTION_ERROR_MANAGEDFOLDERNOTFOUND: case EWS_CONNECTION_ERROR_PARENTFOLDERNOTFOUND: @@ -782,7 +780,7 @@ need_to_authenticate = (priv->cnc == NULL) && - (e_backend_get_online (E_BACKEND (backend))); + (e_backend_is_destination_reachable (E_BACKEND (backend), cancellable, NULL)); PRIV_UNLOCK (priv); @@ -801,12 +799,6 @@ if (priv->listen_notifications) cbews_listen_notifications_cb (cbews, NULL, ews_settings); - - g_signal_connect_swapped ( - priv->cnc, - "server-notification", - G_CALLBACK (cbews_server_notification_cb), - cbews); } PRIV_UNLOCK (priv); } @@ -4249,6 +4241,12 @@ g_object_unref (backend->priv->cnc); backend->priv->cnc = g_object_ref (connection); + g_signal_connect_swapped ( + backend->priv->cnc, + "server-notification", + G_CALLBACK (cbews_server_notification_cb), + backend); + PRIV_UNLOCK (backend->priv); ews_start_sync (backend); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/src/collection/e-ews-backend.c new/evolution-ews-3.12.8/src/collection/e-ews-backend.c --- old/evolution-ews-3.12.7/src/collection/e-ews-backend.c 2014-10-10 14:14:55.000000000 +0200 +++ new/evolution-ews-3.12.8/src/collection/e-ews-backend.c 2014-11-06 14:28:31.000000000 +0100 @@ -394,6 +394,7 @@ g_object_unref (server); if (source != NULL) { + e_source_set_enabled (source, TRUE); g_object_unref (source); return; } @@ -430,6 +431,7 @@ source = e_collection_backend_new_child ( collection_backend, oal_id); + e_source_set_enabled (source, TRUE); e_source_set_display_name (source, display_name); @@ -463,48 +465,21 @@ g_object_unref (source); } +static void ews_backend_populate (ECollectionBackend *backend); + static void ews_backend_source_changed_cb (ESource *source, EEwsBackend *backend) { - CamelEwsSettings *settings; - const gchar *oal_selected; - const gchar *gal_uid; - if (!e_source_get_enabled (source)) { backend->priv->need_update_folders = TRUE; return; } - if (!e_backend_get_online (E_BACKEND (backend)) || - !backend->priv->need_update_folders) - return; - - settings = ews_backend_get_settings (backend); - gal_uid = camel_ews_settings_get_gal_uid (settings); - oal_selected = camel_ews_settings_get_oal_selected (settings); - - if (g_strcmp0 (oal_selected, backend->priv->oal_selected) == 0) + if (!backend->priv->need_update_folders) return; - /* Remove the old Global Address List source if present. */ - if (gal_uid != NULL) { - ECollectionBackend *collection_backend; - ESourceRegistryServer *server; - - collection_backend = E_COLLECTION_BACKEND (backend); - server = e_collection_backend_ref_server (collection_backend); - source = e_source_registry_server_ref_source (server, gal_uid); - - if (source != NULL) { - e_source_registry_server_remove_source (server, source); - g_object_unref (source); - } - - camel_ews_settings_set_gal_uid (settings, NULL); - } - - ews_backend_add_gal_source (backend); + ews_backend_populate (E_COLLECTION_BACKEND (backend)); } static void @@ -652,6 +627,43 @@ } static void +ews_backend_claim_old_resources (ECollectionBackend *backend) +{ + ESourceRegistryServer *registry; + GList *old_resources, *iter; + + g_return_if_fail (E_IS_COLLECTION_BACKEND (backend)); + + registry = e_collection_backend_ref_server (backend); + old_resources = e_collection_backend_claim_all_resources (backend); + + for (iter = old_resources; iter; iter = g_list_next (iter)) { + ESource *source = iter->data; + + e_source_set_enabled (source, TRUE); + e_source_registry_server_add_source (registry, source); + } + + g_list_free_full (old_resources, g_object_unref); + g_clear_object (®istry); +} + +static void +ews_backend_folders_synced_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + EEwsBackend *ews_backend; + + g_return_if_fail (E_IS_EWS_BACKEND (source)); + + ews_backend = E_EWS_BACKEND (source); + + if (!e_ews_backend_sync_folders_finish (ews_backend, result, NULL)) + ews_backend_claim_old_resources (E_COLLECTION_BACKEND (ews_backend)); +} + +static void ews_backend_populate (ECollectionBackend *backend) { ESource *source; @@ -661,20 +673,21 @@ ews_backend->priv->need_update_folders = TRUE; - /* do not do anything, if account is disabled */ - if (!e_source_get_enabled (source)) - return; - if (!ews_backend->priv->notify_online_id) ews_backend->priv->notify_online_id = g_signal_connect ( backend, "notify::online", G_CALLBACK (ews_backend_populate), NULL); - /* For now at least, we don't need to know the - * results, so no callback function is needed. */ - e_ews_backend_sync_folders (ews_backend, NULL, NULL, NULL); + /* do not do anything, if account is disabled */ + if (!e_source_get_enabled (source)) + return; ews_backend_add_gal_source (ews_backend); + + if (e_backend_get_online (E_BACKEND (backend))) + e_ews_backend_sync_folders (ews_backend, NULL, ews_backend_folders_synced_cb, NULL); + else + ews_backend_claim_old_resources (backend); } static gchar * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/src/server/e-ews-connection.c new/evolution-ews-3.12.8/src/server/e-ews-connection.c --- old/evolution-ews-3.12.7/src/server/e-ews-connection.c 2014-08-11 09:12:45.000000000 +0200 +++ new/evolution-ews-3.12.8/src/server/e-ews-connection.c 2014-10-30 19:32:37.000000000 +0100 @@ -736,8 +736,8 @@ g_simple_async_result_set_error ( simple, - EWS_CONNECTION_ERROR, - EWS_CONNECTION_ERROR_CANCELLED, + G_IO_ERROR, + G_IO_ERROR_CANCELLED, _("Operation Cancelled")); if (found) { ews_connection_schedule_cancel_message (cnc, SOUP_MESSAGE (msg)); @@ -9403,14 +9403,15 @@ e_ews_notification_stop_listening_sync (cnc->priv->notification); - g_clear_object (&cnc->priv->notification); - g_slist_free_full (cnc->priv->subscribed_folders, g_free); cnc->priv->subscribed_folders = NULL; g_hash_table_foreach (cnc->priv->subscriptions, ews_connection_build_subscribed_folders_list, cnc); - if (cnc->priv->subscribed_folders != NULL) + if (cnc->priv->subscribed_folders != NULL) { e_ews_notification_start_listening_sync (cnc->priv->notification, cnc->priv->subscribed_folders); + } else { + g_clear_object (&cnc->priv->notification); + } exit: NOTIFICATION_UNLOCK (cnc); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/src/server/e-ews-notification.c new/evolution-ews-3.12.8/src/server/e-ews-notification.c --- old/evolution-ews-3.12.7/src/server/e-ews-notification.c 2014-08-11 09:12:45.000000000 +0200 +++ new/evolution-ews-3.12.8/src/server/e-ews-notification.c 2014-10-30 19:32:37.000000000 +0100 @@ -202,6 +202,7 @@ g_signal_handlers_disconnect_by_func ( priv->soup_session, ews_notification_authenticate, object); + g_clear_object (&priv->soup_session); } if (priv->cancellable != NULL) @@ -318,6 +319,10 @@ g_return_val_if_fail (notification != NULL, FALSE); g_return_val_if_fail (notification->priv != NULL, FALSE); + /* Can happen during process shutdown */ + if (!notification->priv->connection) + return FALSE; + msg = e_ews_message_new_with_header ( e_ews_connection_get_uri (notification->priv->connection), e_ews_connection_get_impersonate_user (notification->priv->connection), @@ -435,6 +440,10 @@ g_return_val_if_fail (notification != NULL, FALSE); g_return_val_if_fail (notification->priv != NULL, FALSE); + /* Can happen during process shutdown */ + if (!notification->priv->connection) + return FALSE; + msg = e_ews_message_new_with_header ( e_ews_connection_get_uri (notification->priv->connection), e_ews_connection_get_impersonate_user (notification->priv->connection), @@ -616,7 +625,8 @@ } if (events != NULL) { - g_signal_emit_by_name (notification->priv->connection, "server-notification", events); + if (notification->priv->connection) + g_signal_emit_by_name (notification->priv->connection, "server-notification", events); g_slist_free_full (events, (GDestroyNotify) e_ews_notification_event_free); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.7/src/server/ews-errors.h new/evolution-ews-3.12.8/src/server/ews-errors.h --- old/evolution-ews-3.12.7/src/server/ews-errors.h 2014-03-24 10:28:36.000000000 +0100 +++ new/evolution-ews-3.12.8/src/server/ews-errors.h 2014-10-30 12:32:39.000000000 +0100 @@ -299,7 +299,6 @@ EWS_CONNECTION_ERROR_WIN32INTEROPERROR, /* Below this point are no longer direct translations of EWS errors */ EWS_CONNECTION_ERROR_NORESPONSE, - EWS_CONNECTION_ERROR_CANCELLED, EWS_CONNECTION_ERROR_AUTHENTICATION_FAILED, EWS_CONNECTION_ERROR_UNKNOWN }; -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org