Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package evolution-data-server for openSUSE:Factory checked in at 2025-05-27 18:51:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old) and /work/SRC/openSUSE:Factory/.evolution-data-server.new.2732 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-data-server" Tue May 27 18:51:39 2025 rev:266 rq:1280042 version:3.56.2 Changes: -------- --- /work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes 2025-05-20 09:36:49.510039282 +0200 +++ /work/SRC/openSUSE:Factory/.evolution-data-server.new.2732/evolution-data-server.changes 2025-05-27 18:52:01.537395968 +0200 @@ -1,0 +2,11 @@ +Fri May 23 19:20:20 UTC 2025 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 3.56.2: + + Bug Fixes: + - Handle changed server pool in WebDAV collection sources ][ + - CamelDataWrapper: Correct return value of size calculate + functions + - GOA EWS: Fallback to likely EWS host URL when autodicovery + fails + +------------------------------------------------------------------- Old: ---- evolution-data-server-3.56.1.obscpio New: ---- evolution-data-server-3.56.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ evolution-data-server.spec ++++++ --- /var/tmp/diff_new_pack.6gOfmT/_old 2025-05-27 18:52:02.065418184 +0200 +++ /var/tmp/diff_new_pack.6gOfmT/_new 2025-05-27 18:52:02.069418352 +0200 @@ -32,7 +32,7 @@ %bcond_without introspection Name: evolution-data-server -Version: 3.56.1 +Version: 3.56.2 Release: 0 Summary: Evolution Data Server License: LGPL-2.0-only ++++++ _service ++++++ --- /var/tmp/diff_new_pack.6gOfmT/_old 2025-05-27 18:52:02.097419530 +0200 +++ /var/tmp/diff_new_pack.6gOfmT/_new 2025-05-27 18:52:02.101419699 +0200 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="manual"> <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/GNOME/evolution-data-server.git</param> - <param name="revision">3.56.1</param> + <param name="revision">3.56.2</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ evolution-data-server-3.56.1.obscpio -> evolution-data-server-3.56.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-data-server-3.56.1/CMakeLists.txt new/evolution-data-server-3.56.2/CMakeLists.txt --- old/evolution-data-server-3.56.1/CMakeLists.txt 2025-04-11 08:11:13.000000000 +0200 +++ new/evolution-data-server-3.56.2/CMakeLists.txt 2025-05-23 20:23:03.000000000 +0200 @@ -4,7 +4,7 @@ cmake_policy(VERSION 3.15) project(evolution-data-server - VERSION 3.56.1 + VERSION 3.56.2 LANGUAGES C CXX) set(PROJECT_BUGREPORT "https://gitlab.gnome.org/GNOME/evolution-data-server/issues/") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-data-server-3.56.1/NEWS new/evolution-data-server-3.56.2/NEWS --- old/evolution-data-server-3.56.1/NEWS 2025-04-11 08:11:13.000000000 +0200 +++ new/evolution-data-server-3.56.2/NEWS 2025-05-23 20:23:03.000000000 +0200 @@ -1,3 +1,11 @@ +Evolution-Data-Server 3.56.2 2025-05-23 +--------------------------------------- + +Bug Fixes: + I#592 - Handle changed server pool in WebDAV collection sources ][ + I#593 - CamelDataWrapper: Correct return value of size calculate functions (dagosuhn) + I#597 - GOA EWS: Fallback to likely EWS host URL when autodicovery fails + Evolution-Data-Server 3.56.1 2025-04-11 --------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-data-server-3.56.1/src/camel/camel-data-wrapper.c new/evolution-data-server-3.56.2/src/camel/camel-data-wrapper.c --- old/evolution-data-server-3.56.1/src/camel/camel-data-wrapper.c 2025-04-11 08:11:13.000000000 +0200 +++ new/evolution-data-server-3.56.2/src/camel/camel-data-wrapper.c 2025-05-23 20:23:03.000000000 +0200 @@ -1609,7 +1609,7 @@ stream = camel_stream_null_new (); - if (camel_data_wrapper_write_to_stream_sync (data_wrapper, stream, cancellable, error)) + if (camel_data_wrapper_write_to_stream_sync (data_wrapper, stream, cancellable, error) >= 0) bytes_written = camel_stream_null_get_bytes_written (CAMEL_STREAM_NULL (stream)); g_object_unref (stream); @@ -1644,7 +1644,7 @@ stream = camel_stream_null_new (); - if (camel_data_wrapper_decode_to_stream_sync (data_wrapper, stream, cancellable, error)) + if (camel_data_wrapper_decode_to_stream_sync (data_wrapper, stream, cancellable, error) >= 0) bytes_written = camel_stream_null_get_bytes_written (CAMEL_STREAM_NULL (stream)); g_object_unref (stream); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-data-server-3.56.1/src/libedataserver/e-webdav-discover.c new/evolution-data-server-3.56.2/src/libedataserver/e-webdav-discover.c --- old/evolution-data-server-3.56.1/src/libedataserver/e-webdav-discover.c 2025-04-11 08:11:13.000000000 +0200 +++ new/evolution-data-server-3.56.2/src/libedataserver/e-webdav-discover.c 2025-05-23 20:23:03.000000000 +0200 @@ -43,6 +43,58 @@ G_DEFINE_BOXED_TYPE (EWebDAVDiscoveredSource, e_webdav_discovered_source, e_webdav_discovered_source_copy, e_webdav_discovered_source_free) +/* some server, like iCloud, can return different server pools for different entry points, + which look like "https://p66-caldav.icloud.com/...." which are technically different + URL-s, but pointing to the same collection, thus skip the pool part and compare only + the ".icloud.com/...." in the processed URL-s. */ +static const gchar * +webdav_discover_skip_first_host_part (const gchar *href) +{ + const gchar *ptr, *dash, *dot; + + ptr = strstr (href, "://"); + if (!ptr) + return href; + + ptr += 3; + dash = strchr (ptr, '/'); + ptr = strchr (ptr, '.'); + + /* the first dot is before the next forward slash */ + if (!ptr || ptr > dash) + return href; + + dot = strchr (ptr + 1, '.'); + /* the second dot is before the next forward slash */ + if (!dot || dot > dash) + return href; + + /* leaving the 'ptr' as ".icloud.com/....." */ + return ptr; +} + +static guint +webdav_discover_href_hash (gconstpointer ptr) +{ + const gchar *href = ptr; + + href = webdav_discover_skip_first_host_part (href); + + return g_str_hash (href); +} + +static gboolean +webdav_discover_href_equal (gconstpointer ptr1, + gconstpointer ptr2) +{ + const gchar *href1 = ptr1, *href2 = ptr2; + + href1 = webdav_discover_skip_first_host_part (href1); + href2 = webdav_discover_skip_first_host_part (href2); + + return g_str_equal (href1, href2); +} + static gboolean e_webdav_discovery_already_discovered (const gchar *href, const GSList *discovered_sources, @@ -929,7 +981,11 @@ gboolean fatal_error; GError *local_error = NULL; - wdd.covered_hrefs = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + /* play with the server pools only for icloud.com servers */ + if (g_uri_get_host (guri) && e_util_host_is_in_domain (g_uri_get_host (guri), "icloud.com")) + wdd.covered_hrefs = g_hash_table_new_full (webdav_discover_href_hash, webdav_discover_href_equal, g_free, NULL); + else + wdd.covered_hrefs = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); wdd.addressbooks = NULL; wdd.calendars = NULL; wdd.only_supports = only_supports; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-data-server-3.56.1/src/modules/gnome-online-accounts/module-gnome-online-accounts.c new/evolution-data-server-3.56.2/src/modules/gnome-online-accounts/module-gnome-online-accounts.c --- old/evolution-data-server-3.56.1/src/modules/gnome-online-accounts/module-gnome-online-accounts.c 2025-04-11 08:11:13.000000000 +0200 +++ new/evolution-data-server-3.56.2/src/modules/gnome-online-accounts/module-gnome-online-accounts.c 2025-05-23 20:23:03.000000000 +0200 @@ -262,6 +262,7 @@ const gchar *extension_name; gchar *as_url = NULL; gchar *oab_url = NULL; + gchar *fallback_host_url = NULL; GError *error = NULL; g_return_if_fail (GOA_IS_OBJECT (source_object)); @@ -272,8 +273,21 @@ if (!goa_ews_autodiscover_finish (goa_object, result, &as_url, &oab_url, &error) || !as_url) { g_message ("Failed to autodiscover EWS data: %s", error ? error->message : "Unknown error"); g_clear_error (&error); - g_object_unref (source); - return; + as_url = NULL; + oab_url = NULL; + } + + if (!as_url) { + GoaExchange *goa_exchange; + gchar *host; + + goa_exchange = goa_object_get_exchange (goa_object); + host = goa_exchange_dup_host (goa_exchange); + g_clear_object (&goa_exchange); + + fallback_host_url = g_strconcat ("https://", host, "/EWS/Exchange.asmx", NULL); + + g_free (host); } /* XXX We don't have direct access to CamelEwsSettings from here @@ -288,17 +302,25 @@ GoaAccount *goa_account; CamelSettings *settings; GUri *suri; + const gchar *host_url; gchar *user, *email; + if (!as_url) { + g_object_get (source_extension, "hosturl", &as_url, NULL); + if (as_url && !*as_url) + g_clear_pointer (&as_url, g_free); + } + + host_url = as_url ? as_url : fallback_host_url; goa_account = goa_object_peek_account (goa_object); user = goa_account_dup_identity (goa_account); email = goa_account_dup_presentation_identity (goa_account); - suri = g_uri_parse (as_url, SOUP_HTTP_URI_FLAGS | G_URI_FLAGS_PARSE_RELAXED, NULL); + suri = g_uri_parse (host_url, SOUP_HTTP_URI_FLAGS | G_URI_FLAGS_PARSE_RELAXED, NULL); g_object_set ( source_extension, - "hosturl", as_url, + "hosturl", host_url, "oaburl", oab_url, "email", email, NULL); @@ -323,6 +345,7 @@ } g_object_unref (source); + g_free (fallback_host_url); g_free (as_url); g_free (oab_url); } ++++++ evolution-data-server.obsinfo ++++++ --- /var/tmp/diff_new_pack.6gOfmT/_old 2025-05-27 18:52:03.441476080 +0200 +++ /var/tmp/diff_new_pack.6gOfmT/_new 2025-05-27 18:52:03.445476248 +0200 @@ -1,5 +1,5 @@ name: evolution-data-server -version: 3.56.1 -mtime: 1744351873 -commit: 256c2613ed60f4355b3a02a6854abe2da895c25d +version: 3.56.2 +mtime: 1748024583 +commit: 9330886fe4c5685bd18d1979bd5c60cb9c3fcc6d