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
 

Reply via email to