diff -Nru evolution-data-server-3.36.1/debian/changelog evolution-data-server-3.36.1/debian/changelog --- evolution-data-server-3.36.1/debian/changelog 2020-03-29 16:59:11.000000000 +0000 +++ evolution-data-server-3.36.1/debian/changelog 2020-04-15 07:38:29.000000000 +0000 @@ -1,3 +1,11 @@ +evolution-data-server (3.36.1-2) unstable; urgency=medium + + * debian/patches/git_stable_bugfixes.patch: + - backport upstream fixes for webdav and goa calendar issues + (lp: #1871019) + + -- Sebastien Bacher Wed, 15 Apr 2020 09:38:29 +0200 + evolution-data-server (3.36.1-1) unstable; urgency=medium * New upstream release diff -Nru evolution-data-server-3.36.1/debian/patches/git_stable_bugfixes.patch evolution-data-server-3.36.1/debian/patches/git_stable_bugfixes.patch --- evolution-data-server-3.36.1/debian/patches/git_stable_bugfixes.patch 1970-01-01 00:00:00.000000000 +0000 +++ evolution-data-server-3.36.1/debian/patches/git_stable_bugfixes.patch 2020-04-15 07:38:29.000000000 +0000 @@ -0,0 +1,154 @@ +# Description: backport some upstream stable serie fixes for webdav +# calendar not working +# +diff -Nur evolution-data-server-3.36.0/src/addressbook/backends/carddav/e-book-backend-carddav.c evolution-data-server-3.36.0.new/src/addressbook/backends/carddav/e-book-backend-carddav.c +--- evolution-data-server-3.36.0/src/addressbook/backends/carddav/e-book-backend-carddav.c 2020-03-06 07:50:34.000000000 +0100 ++++ evolution-data-server-3.36.0.new/src/addressbook/backends/carddav/e-book-backend-carddav.c 2020-04-15 09:36:41.869098938 +0200 +@@ -251,7 +251,8 @@ + gboolean credentials_empty; + gboolean is_ssl_error; + +- credentials_empty = (!credentials || !e_named_parameters_count (credentials)) && ++ credentials_empty = (!credentials || !e_named_parameters_count (credentials) || ++ (e_named_parameters_count (credentials) == 1 && e_named_parameters_exists (credentials, E_SOURCE_CREDENTIAL_SSL_TRUST))) && + e_soup_session_get_authentication_requires_credentials (E_SOUP_SESSION (webdav)); + is_ssl_error = g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED); + +diff -Nur evolution-data-server-3.36.0/src/addressbook/backends/google/e-book-backend-google.c evolution-data-server-3.36.0.new/src/addressbook/backends/google/e-book-backend-google.c +--- evolution-data-server-3.36.0/src/addressbook/backends/google/e-book-backend-google.c 2020-03-06 07:50:34.000000000 +0100 ++++ evolution-data-server-3.36.0.new/src/addressbook/backends/google/e-book-backend-google.c 2020-04-15 09:37:28.109779509 +0200 +@@ -238,18 +238,13 @@ + } + + static void +-ebb_google_process_group (GDataEntry *entry, +- guint entry_key, +- guint entry_count, +- gpointer user_data) ++ebb_google_process_group (EBookBackendGoogle *bbgoogle, ++ GDataEntry *entry) + { +- EBookBackendGoogle *bbgoogle = user_data; + const gchar *uid, *system_group_id; + gchar *name; + gboolean is_deleted; + +- g_return_if_fail (E_IS_BOOK_BACKEND_GOOGLE (bbgoogle)); +- + uid = gdata_entry_get_id (entry); + name = e_contact_sanitise_google_group_name (entry); + +@@ -328,7 +323,7 @@ + /* Run the query synchronously */ + feed = gdata_contacts_service_query_groups ( + GDATA_CONTACTS_SERVICE (bbgoogle->priv->service), +- query, cancellable, ebb_google_process_group, bbgoogle, &local_error); ++ query, cancellable, NULL, NULL, &local_error); + + if (with_time_constraint && bbgoogle->priv->groups_last_update.tv_sec != 0 && ( + g_error_matches (local_error, GDATA_SERVICE_ERROR, GDATA_SERVICE_ERROR_BAD_QUERY_PARAMETER) || +@@ -339,15 +334,22 @@ + + feed = gdata_contacts_service_query_groups ( + GDATA_CONTACTS_SERVICE (bbgoogle->priv->service), +- query, cancellable, ebb_google_process_group, bbgoogle, error); ++ query, cancellable, NULL, NULL, error); + } else if (local_error) { + g_propagate_error (error, local_error); + } + + success = feed != NULL; + +- if (success) ++ if (success) { ++ GList *link; ++ ++ for (link = gdata_feed_get_entries (feed); link; link = g_list_next (link)) { ++ ebb_google_process_group (bbgoogle, link->data); ++ } ++ + g_get_current_time (&bbgoogle->priv->groups_last_update); ++ } + + g_rec_mutex_unlock (&bbgoogle->priv->groups_lock); + +diff -Nur evolution-data-server-3.36.0/src/calendar/backends/caldav/e-cal-backend-caldav.c evolution-data-server-3.36.0.new/src/calendar/backends/caldav/e-cal-backend-caldav.c +--- evolution-data-server-3.36.0/src/calendar/backends/caldav/e-cal-backend-caldav.c 2020-03-06 07:50:34.000000000 +0100 ++++ evolution-data-server-3.36.0.new/src/calendar/backends/caldav/e-cal-backend-caldav.c 2020-04-15 09:36:41.873098997 +0200 +@@ -235,7 +235,8 @@ + gboolean credentials_empty; + gboolean is_ssl_error; + +- credentials_empty = (!credentials || !e_named_parameters_count (credentials)) && ++ credentials_empty = (!credentials || !e_named_parameters_count (credentials) || ++ (e_named_parameters_count (credentials) == 1 && e_named_parameters_exists (credentials, E_SOURCE_CREDENTIAL_SSL_TRUST))) && + e_soup_session_get_authentication_requires_credentials (E_SOUP_SESSION (webdav)); + is_ssl_error = g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED); + +diff -Nur evolution-data-server-3.36.0/src/libebackend/e-backend.c evolution-data-server-3.36.0.new/src/libebackend/e-backend.c +--- evolution-data-server-3.36.0/src/libebackend/e-backend.c 2020-03-06 07:50:34.000000000 +0100 ++++ evolution-data-server-3.36.0.new/src/libebackend/e-backend.c 2020-04-15 09:36:41.873098997 +0200 +@@ -158,7 +158,7 @@ + + if (G_IS_IO_ERROR (error, G_IO_ERROR_CANCELLED) || + host_is_reachable == e_backend_get_online (crd->backend)) { +- if (!G_IS_IO_ERROR (error, G_IO_ERROR_CANCELLED)) { ++ if (!G_IS_IO_ERROR (error, G_IO_ERROR_CANCELLED) && !host_is_reachable) { + if (e_source_get_connection_status (source) == E_SOURCE_CONNECTION_STATUS_SSL_FAILED) + e_source_set_connection_status (source, E_SOURCE_CONNECTION_STATUS_DISCONNECTED); + +@@ -245,8 +245,10 @@ + backend->priv->network_monitor_cancellable = cancellable; + g_mutex_unlock (&backend->priv->network_monitor_cancellable_lock); + +- e_source_unset_last_credentials_required_arguments (e_backend_get_source (backend), NULL, +- backend_source_unset_last_credentials_required_arguments_cb, NULL); ++ if (!e_backend_get_online (backend)) { ++ e_source_unset_last_credentials_required_arguments (e_backend_get_source (backend), NULL, ++ backend_source_unset_last_credentials_required_arguments_cb, NULL); ++ } + + e_backend_set_online (backend, TRUE); + } else { +@@ -932,7 +934,7 @@ + g_object_notify (G_OBJECT (backend), "online"); + + if (!backend->priv->online && backend->priv->source) +- e_source_set_connection_status (backend->priv->source, E_SOURCE_CONNECTION_STATUS_DISCONNECTED); ++ backend_set_source_disconnected (backend->priv->source); + } + + /** +diff -Nur evolution-data-server-3.36.0/src/libebackend/e-webdav-collection-backend.c evolution-data-server-3.36.0.new/src/libebackend/e-webdav-collection-backend.c +--- evolution-data-server-3.36.0/src/libebackend/e-webdav-collection-backend.c 2020-03-06 07:50:34.000000000 +0100 ++++ evolution-data-server-3.36.0.new/src/libebackend/e-webdav-collection-backend.c 2020-04-15 09:36:41.877099055 +0200 +@@ -513,6 +513,7 @@ + GList *sources; + GSList *discovered_sources = NULL; + ENamedParameters *credentials_copy = NULL; ++ gboolean credentials_empty; + gboolean any_success = FALSE; + GError *local_error = NULL; + +@@ -526,6 +527,9 @@ + (!e_source_collection_get_contacts_enabled (collection_extension) || !contacts_url)) + return E_SOURCE_AUTHENTICATION_ACCEPTED; + ++ credentials_empty = !credentials || !e_named_parameters_count (credentials) || ++ (e_named_parameters_count (credentials) == 1 && e_named_parameters_exists (credentials, E_SOURCE_CREDENTIAL_SSL_TRUST)); ++ + if (credentials && !e_named_parameters_get (credentials, E_SOURCE_CREDENTIAL_USERNAME)) { + credentials_copy = e_named_parameters_new_clone (credentials); + e_named_parameters_set (credentials_copy, E_SOURCE_CREDENTIAL_USERNAME, e_source_collection_get_identity (collection_extension)); +@@ -611,7 +615,10 @@ + e_collection_backend_authenticate_children (collection, credentials); + } else if (g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_UNAUTHORIZED) || + g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_FORBIDDEN)) { +- result = E_SOURCE_AUTHENTICATION_REJECTED; ++ if (credentials_empty) ++ result = E_SOURCE_AUTHENTICATION_REQUIRED; ++ else ++ result = E_SOURCE_AUTHENTICATION_REJECTED; + g_clear_error (&local_error); + } else if (g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED)) { + result = E_SOURCE_AUTHENTICATION_ERROR_SSL_FAILED; diff -Nru evolution-data-server-3.36.1/debian/patches/series evolution-data-server-3.36.1/debian/patches/series --- evolution-data-server-3.36.1/debian/patches/series 2020-03-29 16:59:11.000000000 +0000 +++ evolution-data-server-3.36.1/debian/patches/series 2020-04-15 07:38:29.000000000 +0000 @@ -1,2 +1,3 @@ 01-noinst-libedbus-private.patch ubuntu_gettext_domain.patch +git_stable_bugfixes.patch