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