Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package evolution-ews for openSUSE:Factory 
checked in at 2025-05-27 18:51:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-ews (Old)
 and      /work/SRC/openSUSE:Factory/.evolution-ews.new.2732 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "evolution-ews"

Tue May 27 18:51:50 2025 rev:151 rq:1280045 version:3.56.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/evolution-ews/evolution-ews.changes      
2025-04-20 19:52:02.013036185 +0200
+++ /work/SRC/openSUSE:Factory/.evolution-ews.new.2732/evolution-ews.changes    
2025-05-27 18:52:07.769658184 +0200
@@ -1,0 +2,8 @@
+Fri May 23 19:28:25 UTC 2025 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 3.56.2:
+  + Bug Fixes:
+    - Cannot accept meeting invitations (duplicated attendee)
+    - m365: GOA account rejects creating meetings
+
+-------------------------------------------------------------------

Old:
----
  evolution-ews-3.56.1.obscpio

New:
----
  evolution-ews-3.56.2.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ evolution-ews.spec ++++++
--- /var/tmp/diff_new_pack.EZyakR/_old  2025-05-27 18:52:08.453686964 +0200
+++ /var/tmp/diff_new_pack.EZyakR/_new  2025-05-27 18:52:08.453686964 +0200
@@ -20,7 +20,7 @@
 %define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
 
 Name:           evolution-ews
-Version:        3.56.1
+Version:        3.56.2
 Release:        0
 Summary:        Exchange Connector for Evolution, compatible with Exchange 
2007 and later
 License:        LGPL-2.1-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.EZyakR/_old  2025-05-27 18:52:08.481688142 +0200
+++ /var/tmp/diff_new_pack.EZyakR/_new  2025-05-27 18:52:08.485688310 +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-ews.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-ews-3.56.1.obscpio -> evolution-ews-3.56.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-ews-3.56.1/CMakeLists.txt 
new/evolution-ews-3.56.2/CMakeLists.txt
--- old/evolution-ews-3.56.1/CMakeLists.txt     2025-04-11 08:28:37.000000000 
+0200
+++ new/evolution-ews-3.56.2/CMakeLists.txt     2025-05-23 20:34:35.000000000 
+0200
@@ -4,7 +4,7 @@
 cmake_policy(VERSION 3.15)
 
 project(evolution-ews
-       VERSION 3.56.1
+       VERSION 3.56.2
        LANGUAGES C)
 set(PROJECT_BUGREPORT "https://gitlab.gnome.org/GNOME/evolution-ews/issues/";)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-ews-3.56.1/NEWS 
new/evolution-ews-3.56.2/NEWS
--- old/evolution-ews-3.56.1/NEWS       2025-04-11 08:28:37.000000000 +0200
+++ new/evolution-ews-3.56.2/NEWS       2025-05-23 20:34:35.000000000 +0200
@@ -1,3 +1,10 @@
+Evolution-EWS 3.56.2 2025-05-23
+-------------------------------
+
+Bug Fixes:
+       I#306 - Cannot accept meeting invitations (duplicated attendee)
+       I#307 - m365: GOA account rejects creating meetings
+
 Evolution-EWS 3.56.1 2025-04-11
 -------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-ews-3.56.1/src/EWS/calendar/e-cal-backend-ews.c 
new/evolution-ews-3.56.2/src/EWS/calendar/e-cal-backend-ews.c
--- old/evolution-ews-3.56.1/src/EWS/calendar/e-cal-backend-ews.c       
2025-04-11 08:28:37.000000000 +0200
+++ new/evolution-ews-3.56.2/src/EWS/calendar/e-cal-backend-ews.c       
2025-05-23 20:34:35.000000000 +0200
@@ -191,41 +191,6 @@
        g_clear_object (&cal_cache);
 }
 
-static GHashTable *
-ecb_ews_get_mail_aliases (ECalBackendEws *cbews)
-{
-       ESource *source;
-       ESourceRegistry *registry;
-       GHashTable *aliases = NULL;
-       GList *identities, *link;
-       const gchar *parent_uid;
-
-       source = e_backend_get_source (E_BACKEND (cbews));
-       parent_uid = e_source_get_parent (source);
-
-       if (!parent_uid || !*parent_uid)
-               return NULL;
-
-       registry = e_cal_backend_get_registry (E_CAL_BACKEND (cbews));
-       identities = e_source_registry_list_enabled (registry, 
E_SOURCE_EXTENSION_MAIL_IDENTITY);
-
-       for (link = identities; link; link = g_list_next (link)) {
-               ESource *mail_identity = link->data;
-
-               if (g_strcmp0 (parent_uid, e_source_get_parent (mail_identity)) 
== 0) {
-                       ESourceMailIdentity *extension;
-
-                       extension = e_source_get_extension (mail_identity, 
E_SOURCE_EXTENSION_MAIL_IDENTITY);
-                       aliases = 
e_source_mail_identity_get_aliases_as_hash_table (extension);
-                       break;
-               }
-       }
-
-       g_list_free_full (identities, g_object_unref);
-
-       return aliases;
-}
-
 static void
 ecb_ews_convert_error_to_edc_error (GError **perror)
 {
@@ -1756,7 +1721,8 @@
                if (!is_organizer) {
                        GHashTable *aliases;
 
-                       aliases = ecb_ews_get_mail_aliases (cbews);
+                       aliases = e_ews_common_utils_dup_mail_addresses 
(e_cal_backend_get_registry (E_CAL_BACKEND (cbews)),
+                               e_backend_get_source (E_BACKEND (cbews)), NULL);
 
                        if (aliases) {
                                is_organizer = g_hash_table_contains (aliases, 
email);
@@ -3789,7 +3755,16 @@
                                g_free (response);
                                response = 
i_cal_property_get_parameter_as_string (attendee, "PARTSTAT");
                                ecb_ews_get_rsvp (attendee, out_rsvp_requested);
-                               found = TRUE;
+                               found = response && g_ascii_strcasecmp 
(response, "NEEDS-ACTION") != 0;
+                               if (found) {
+                                       /* stop early when have a response, in 
case
+                                          the user is in the attendees 
multiple times */
+                                       g_clear_object (&attendee);
+                                       break;
+                               } else {
+                                       g_clear_pointer (&response, g_free);
+                                       found = FALSE;
+                               }
                        }
                }
        }
@@ -4135,7 +4110,8 @@
 
        ews_settings = ecb_ews_get_collection_settings (cbews);
        user_email = camel_ews_settings_dup_email (ews_settings);
-       aliases = ecb_ews_get_mail_aliases (cbews);
+       aliases = e_ews_common_utils_dup_mail_addresses 
(e_cal_backend_get_registry (E_CAL_BACKEND (cbews)),
+               e_backend_get_source (E_BACKEND (cbews)), &user_email);
 
        switch (i_cal_component_get_method (icomp)) {
        case I_CAL_METHOD_REQUEST:
@@ -4609,6 +4585,8 @@
 {
        ECalBackendEws *cbews = E_CAL_BACKEND_EWS (object);
        ECalCache *cal_cache;
+       CamelEwsSettings *ews_settings;
+       gchar *user_email;
        gchar *cache_dirname;
 
        /* Chain up to parent's method. */
@@ -4630,6 +4608,25 @@
        g_mkdir_with_parents (cbews->priv->attachments_dir, 0777);
 
        g_free (cache_dirname);
+
+       /* ensure the user email is set */
+       ews_settings = ecb_ews_get_collection_settings (cbews);
+       user_email = camel_ews_settings_dup_email (ews_settings);
+
+       if (!user_email || !*user_email) {
+               GHashTable *addresses;
+
+               g_clear_pointer (&user_email, g_free);
+
+               addresses = e_ews_common_utils_dup_mail_addresses 
(e_cal_backend_get_registry (E_CAL_BACKEND (cbews)),
+                       e_backend_get_source (E_BACKEND (cbews)), &user_email);
+               g_clear_pointer (&addresses, g_hash_table_unref);
+
+               if (user_email && *user_email)
+                       camel_ews_settings_set_email (ews_settings, user_email);
+       }
+
+       g_free (user_email);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-ews-3.56.1/src/Microsoft365/calendar/e-cal-backend-m365.c 
new/evolution-ews-3.56.2/src/Microsoft365/calendar/e-cal-backend-m365.c
--- old/evolution-ews-3.56.1/src/Microsoft365/calendar/e-cal-backend-m365.c     
2025-04-11 08:28:37.000000000 +0200
+++ new/evolution-ews-3.56.2/src/Microsoft365/calendar/e-cal-backend-m365.c     
2025-05-23 20:34:35.000000000 +0200
@@ -989,41 +989,6 @@
        return success;
 }
 
-static GHashTable *
-ecb_m365_get_mail_aliases (ECalBackendM365 *cbm365)
-{
-       ESource *source;
-       ESourceRegistry *registry;
-       GHashTable *aliases = NULL;
-       GList *identities, *link;
-       const gchar *parent_uid;
-
-       source = e_backend_get_source (E_BACKEND (cbm365));
-       parent_uid = e_source_get_parent (source);
-
-       if (!parent_uid || !*parent_uid)
-               return NULL;
-
-       registry = e_cal_backend_get_registry (E_CAL_BACKEND (cbm365));
-       identities = e_source_registry_list_enabled (registry, 
E_SOURCE_EXTENSION_MAIL_IDENTITY);
-
-       for (link = identities; link; link = g_list_next (link)) {
-               ESource *mail_identity = link->data;
-
-               if (g_strcmp0 (parent_uid, e_source_get_parent (mail_identity)) 
== 0) {
-                       ESourceMailIdentity *extension;
-
-                       extension = e_source_get_extension (mail_identity, 
E_SOURCE_EXTENSION_MAIL_IDENTITY);
-                       aliases = 
e_source_mail_identity_get_aliases_as_hash_table (extension);
-                       break;
-               }
-       }
-
-       g_list_free_full (identities, g_object_unref);
-
-       return aliases;
-}
-
 static gboolean
 ecb_m365_organizer_is_user (ECalBackendM365 *cbm365,
                            ICalComponent *icomp)
@@ -1057,7 +1022,8 @@
                if (!is_organizer) {
                        GHashTable *aliases;
 
-                       aliases = ecb_m365_get_mail_aliases (cbm365);
+                       aliases = e_ews_common_utils_dup_mail_addresses 
(e_cal_backend_get_registry (E_CAL_BACKEND (cbm365)),
+                               e_backend_get_source (E_BACKEND (cbm365)), 
NULL);
 
                        if (aliases) {
                                is_organizer = g_hash_table_contains (aliases, 
email);
@@ -1435,6 +1401,16 @@
                        if (attendee_mail && ((current_user_mail && 
g_ascii_strcasecmp (attendee_mail, current_user_mail) == 0) ||
                            (aliases && g_hash_table_contains (aliases, 
attendee_mail)))) {
                                found = ecb_m365_get_rsvp (attendee, &response, 
out_rsvp_requested);
+                               if (found) {
+                                       if (response == 
E_M365_RESPONSE_NOT_RESPONDED) {
+                                               found = FALSE;
+                                       } else {
+                                               /* stop early when have a 
response, in case
+                                                  the user is in the attendees 
multiple times */
+                                               g_clear_object (&attendee);
+                                               break;
+                                       }
+                               }
                        }
                }
        }
@@ -1561,7 +1537,8 @@
 
        m365_settings = camel_m365_settings_get_from_backend (E_BACKEND 
(cal_backend), e_cal_backend_get_registry (cal_backend));
        user_email = camel_m365_settings_dup_email (m365_settings);
-       aliases = ecb_m365_get_mail_aliases (cbm365);
+       aliases = e_ews_common_utils_dup_mail_addresses 
(e_cal_backend_get_registry (E_CAL_BACKEND (cbm365)),
+               e_backend_get_source (E_BACKEND (cbm365)), &user_email);
 
        switch (i_cal_component_get_method (icomp)) {
        case I_CAL_METHOD_REQUEST:
@@ -2073,6 +2050,9 @@
 {
        ECalBackendM365 *cbm365 = E_CAL_BACKEND_M365 (object);
        ECalCache *cal_cache;
+       ESourceRegistry *registry;
+       CamelM365Settings *m365_settings;
+       gchar *user_email;
        gchar *cache_dirname;
 
        /* Chain up to parent's method. */
@@ -2096,6 +2076,26 @@
        g_free (cache_dirname);
 
        e_m365_tz_utils_ref_windows_zones ();
+
+       /* ensure the user email is set */
+       registry = e_cal_backend_get_registry (E_CAL_BACKEND (cbm365));
+       m365_settings = camel_m365_settings_get_from_backend (E_BACKEND 
(cbm365), registry);
+       user_email = camel_m365_settings_dup_email (m365_settings);
+
+       if (!user_email || !*user_email) {
+               GHashTable *addresses;
+
+               g_clear_pointer (&user_email, g_free);
+
+               addresses = e_ews_common_utils_dup_mail_addresses (registry,
+                       e_backend_get_source (E_BACKEND (cbm365)), &user_email);
+               g_clear_pointer (&addresses, g_hash_table_unref);
+
+               if (user_email && *user_email)
+                       camel_m365_settings_set_email (m365_settings, 
user_email);
+       }
+
+       g_free (user_email);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-ews-3.56.1/src/common/e-ews-common-utils.c 
new/evolution-ews-3.56.2/src/common/e-ews-common-utils.c
--- old/evolution-ews-3.56.1/src/common/e-ews-common-utils.c    2025-04-11 
08:28:37.000000000 +0200
+++ new/evolution-ews-3.56.2/src/common/e-ews-common-utils.c    2025-05-23 
20:34:35.000000000 +0200
@@ -524,3 +524,54 @@
 
        return TRUE;
 }
+
+GHashTable *
+e_ews_common_utils_dup_mail_addresses (ESourceRegistry *registry,
+                                      ESource *child_source,
+                                      gchar **inout_user_email)
+{
+       GHashTable *aliases = NULL;
+       GList *identities, *link;
+       const gchar *parent_uid;
+
+       g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), NULL);
+       g_return_val_if_fail (E_IS_SOURCE (child_source), NULL);
+
+       parent_uid = e_source_get_parent (child_source);
+
+       if (!parent_uid || !*parent_uid)
+               return NULL;
+
+       identities = e_source_registry_list_enabled (registry, 
E_SOURCE_EXTENSION_MAIL_IDENTITY);
+
+       for (link = identities; link; link = g_list_next (link)) {
+               ESource *mail_identity = link->data;
+
+               if (g_strcmp0 (parent_uid, e_source_get_parent (mail_identity)) 
== 0) {
+                       ESourceMailIdentity *extension;
+                       gchar *address;
+
+                       extension = e_source_get_extension (mail_identity, 
E_SOURCE_EXTENSION_MAIL_IDENTITY);
+                       aliases = 
e_source_mail_identity_get_aliases_as_hash_table (extension);
+
+                       address = e_source_mail_identity_dup_address 
(extension);
+                       if (address && *address) {
+                               if (inout_user_email && (!*inout_user_email || 
!**inout_user_email)) {
+                                       g_free (*inout_user_email);
+                                       *inout_user_email = g_strdup (address);
+                               }
+
+                               if (!aliases)
+                                       aliases = g_hash_table_new_full 
(camel_strcase_hash, camel_strcase_equal, g_free, g_free);
+                               g_hash_table_insert (aliases, address, 
e_source_mail_identity_dup_name (extension));
+                       } else {
+                               g_free (address);
+                       }
+                       break;
+               }
+       }
+
+       g_list_free_full (identities, g_object_unref);
+
+       return aliases;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-ews-3.56.1/src/common/e-ews-common-utils.h 
new/evolution-ews-3.56.2/src/common/e-ews-common-utils.h
--- old/evolution-ews-3.56.1/src/common/e-ews-common-utils.h    2025-04-11 
08:28:37.000000000 +0200
+++ new/evolution-ews-3.56.2/src/common/e-ews-common-utils.h    2025-05-23 
20:34:35.000000000 +0200
@@ -25,6 +25,9 @@
                                                                 ICalComponent 
*icomp,
                                                                 GHashTable 
*aliases);
 gboolean       e_ews_common_utils_gsettings_schema_exists      (const gchar 
*schema_id);
+GHashTable *   e_ews_common_utils_dup_mail_addresses           
(ESourceRegistry *registry,
+                                                                ESource 
*child_source,
+                                                                gchar 
**inout_user_email);
 
 G_END_DECLS
 

++++++ evolution-ews.obsinfo ++++++
--- /var/tmp/diff_new_pack.EZyakR/_old  2025-05-27 18:52:08.981709180 +0200
+++ /var/tmp/diff_new_pack.EZyakR/_new  2025-05-27 18:52:08.989709517 +0200
@@ -1,5 +1,5 @@
 name: evolution-ews
-version: 3.56.1
-mtime: 1744352917
-commit: 0d293b867386d15a03040d54c7409c6f89e13c15
+version: 3.56.2
+mtime: 1748025275
+commit: ebcc57e43f991b96c1ae0c0b0478bc2a3d466adb
 

Reply via email to