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 2022-07-05 12:27:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old)
 and      /work/SRC/openSUSE:Factory/.evolution-data-server.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "evolution-data-server"

Tue Jul  5 12:27:09 2022 rev:237 rq:986577 version:3.44.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes  
    2022-06-01 17:33:59.822693657 +0200
+++ 
/work/SRC/openSUSE:Factory/.evolution-data-server.new.1548/evolution-data-server.changes
    2022-07-05 12:27:14.905850601 +0200
@@ -1,0 +2,14 @@
+Fri Jul  1 20:30:07 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com>
+
+- Update to version 3.44.3:
+  + Disable hardware acceleration for WebKitGTK.
+  + ESource: Reconnect signal handlers when the D-Bus 'source'
+    interface changes.
+  + Bugs fixed:
+    - LDAP: Conditionally use 'description' as Note.
+    - Tests fail with libphonenumber 8.12.49.
+    - Sanitize IPv6 proxy address before passing it to WebKitGTK.
+    - Calendar: Correct UNTIL recurrence with midnight start.
+    - Camel: Read message ID-s with multiple `@`.
+
+-------------------------------------------------------------------

Old:
----
  evolution-data-server-3.44.2.tar.xz

New:
----
  evolution-data-server-3.44.3.tar.xz

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

Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.3SCRqd/_old  2022-07-05 12:27:15.469851427 +0200
+++ /var/tmp/diff_new_pack.3SCRqd/_new  2022-07-05 12:27:15.473851433 +0200
@@ -31,7 +31,7 @@
 %bcond_without introspection
 
 Name:           evolution-data-server
-Version:        3.44.2
+Version:        3.44.3
 Release:        0
 Summary:        Evolution Data Server
 License:        LGPL-2.0-only

++++++ evolution-data-server-3.44.2.tar.xz -> 
evolution-data-server-3.44.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.44.2/CMakeLists.txt 
new/evolution-data-server-3.44.3/CMakeLists.txt
--- old/evolution-data-server-3.44.2/CMakeLists.txt     2022-05-27 
07:43:00.000000000 +0200
+++ new/evolution-data-server-3.44.3/CMakeLists.txt     2022-07-01 
11:18:42.000000000 +0200
@@ -4,7 +4,7 @@
 cmake_policy(VERSION 3.1)
 
 project(evolution-data-server
-       VERSION 3.44.2
+       VERSION 3.44.3
        LANGUAGES C CXX)
 set(CMAKE_CXX_STANDARD 14)
 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.44.2/NEWS 
new/evolution-data-server-3.44.3/NEWS
--- old/evolution-data-server-3.44.2/NEWS       2022-05-27 07:43:00.000000000 
+0200
+++ new/evolution-data-server-3.44.3/NEWS       2022-07-01 11:18:42.000000000 
+0200
@@ -1,3 +1,17 @@
+Evolution-Data-Server 3.44.3 2022-07-01
+---------------------------------------
+
+Bug Fixes:
+       I#350 - LDAP: Conditionally use 'description' as Note
+       I#391 - Tests fail with libphonenumber 8.12.49
+       I#392 - Sanitize IPv6 proxy address before passing it to WebKitGTK
+       I#393 - Calendar: Correct UNTIL recurrence with midnight start
+       I#396 - Camel: Read message ID-s with multiple `@`
+
+Miscellaneous:
+       Disable hardware acceleration for WebKitGTK
+       ESource: Reconnect signal handlers when the D-Bus 'source' interface 
changes
+
 Evolution-Data-Server 3.44.2 2022-05-27
 ---------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/src/addressbook/backends/ldap/e-book-backend-ldap.c
 
new/evolution-data-server-3.44.3/src/addressbook/backends/ldap/e-book-backend-ldap.c
--- 
old/evolution-data-server-3.44.2/src/addressbook/backends/ldap/e-book-backend-ldap.c
        2022-05-27 07:43:00.000000000 +0200
+++ 
new/evolution-data-server-3.44.3/src/addressbook/backends/ldap/e-book-backend-ldap.c
        2022-07-01 11:18:42.000000000 +0200
@@ -262,6 +262,8 @@
 #define PROP_TYPE_GROUP                (1 << 6)
 #define PROP_TYPE_CONTACT      (1 << 7) /* is ignored for contact lists */
 #define PROP_TYPE_FORCE_BINARY (1 << 8) /* to force ";binary" in attribute 
name */
+#define PROP_WITH_EVOSCHEME    (1 << 9)
+#define PROP_WITHOUT_EVOSCHEME (1 << 10)
        gint prop_type;
 
        /* the remaining items are only used for the TYPE_COMPLEX props */
@@ -287,6 +289,8 @@
 #define GROUP_PROP(fid,a,ctor,ber,cmp) {fid, a, PROP_TYPE_GROUP, ctor, ber, 
cmp}
 #define ADDRESS_STRING_PROP(fid,a, ctor) {fid, a, PROP_TYPE_COMPLEX, ctor}
 #define CONTACT_STRING_PROP(fid,a) {fid, a, PROP_TYPE_STRING | 
PROP_TYPE_CONTACT}
+#define CONTACT_STRING_PROP_WITH_EVOSCHEME(fid,a) {fid, a, PROP_TYPE_STRING | 
PROP_TYPE_CONTACT | PROP_WITH_EVOSCHEME}
+#define CONTACT_STRING_PROP_WITHOUT_EVOSCHEME(fid,a) {fid, a, PROP_TYPE_STRING 
| PROP_TYPE_CONTACT | PROP_WITHOUT_EVOSCHEME}
 #define CALENTRY_CONTACT_STRING_PROP(fid,a) {fid, a, PROP_TYPE_STRING | 
PROP_TYPE_CONTACT | PROP_CALENTRY}
 
        /* name fields */
@@ -361,7 +365,8 @@
        /* map nickname to displayName */
        CONTACT_STRING_PROP    (E_CONTACT_NICKNAME,    "displayName"),
        E_STRING_PROP  (E_CONTACT_SPOUSE,      "spouseName"),
-       E_STRING_PROP  (E_CONTACT_NOTE,        "note"),
+       CONTACT_STRING_PROP_WITH_EVOSCHEME (E_CONTACT_NOTE, "note"),
+       CONTACT_STRING_PROP_WITHOUT_EVOSCHEME (E_CONTACT_NOTE, "description"),
        E_COMPLEX_PROP (E_CONTACT_ANNIVERSARY, "anniversary", 
anniversary_populate, anniversary_ber, anniversary_compare),
        E_COMPLEX_PROP (E_CONTACT_BIRTH_DATE,  "birthDate", birthday_populate, 
birthday_ber, birthday_compare),
        E_STRING_PROP  (E_CONTACT_MAILER,      "mailer"),
@@ -1300,6 +1305,13 @@
                        if (is_list)
                                continue;
                }
+
+               if (((prop_info[i].prop_type & PROP_WITHOUT_EVOSCHEME) != 0 &&
+                   bl->priv->evolutionPersonSupported) ||
+                   ((prop_info[i].prop_type & PROP_WITH_EVOSCHEME) != 0 &&
+                   !bl->priv->evolutionPersonSupported))
+                       continue;
+
                if ((prop_info[i].prop_type & PROP_CALENTRY) != 0) {
                        if (!bl->priv->calEntrySupported)
                                continue;
@@ -3874,6 +3886,11 @@
                                    !(prop_info[i].prop_type & PROP_WRITE_ONLY) 
&&
                                    
(ldap_data->bl->priv->evolutionPersonSupported ||
                                     !(prop_info[i].prop_type & PROP_EVOLVE)) &&
+                                   (!(prop_info[i].prop_type & 
(PROP_WITH_EVOSCHEME | PROP_WITHOUT_EVOSCHEME)) ||
+                                    ((prop_info[i].prop_type & 
PROP_WITHOUT_EVOSCHEME) != 0 &&
+                                    
!ldap_data->bl->priv->evolutionPersonSupported) ||
+                                   ((prop_info[i].prop_type & 
PROP_WITH_EVOSCHEME) != 0 &&
+                                    
ldap_data->bl->priv->evolutionPersonSupported)) &&
                                    (ldap_data->bl->priv->calEntrySupported ||
                                     !(prop_info[i].prop_type & 
PROP_CALENTRY))) {
                                        g_string_append_c (big_query, '(');
@@ -4073,6 +4090,11 @@
                                if (!(prop_info[i].prop_type & PROP_WRITE_ONLY) 
&&
                                    
(ldap_data->bl->priv->evolutionPersonSupported ||
                                     !(prop_info[i].prop_type & PROP_EVOLVE)) &&
+                                   (!(prop_info[i].prop_type & 
(PROP_WITH_EVOSCHEME | PROP_WITHOUT_EVOSCHEME)) ||
+                                    ((prop_info[i].prop_type & 
PROP_WITHOUT_EVOSCHEME) != 0 &&
+                                    
!ldap_data->bl->priv->evolutionPersonSupported) ||
+                                   ((prop_info[i].prop_type & 
PROP_WITH_EVOSCHEME) != 0 &&
+                                    
ldap_data->bl->priv->evolutionPersonSupported)) &&
                                    (ldap_data->bl->priv->calEntrySupported ||
                                     !(prop_info[i].prop_type & 
PROP_CALENTRY))) {
                                        g_string_append_c (big_query, '(');
@@ -4192,6 +4214,11 @@
                if (!strcmp (query_prop, e_contact_field_name 
(prop_info[i].field_id))) {
                        if ((evolution_person_supported ||
                            !(prop_info[i].prop_type & PROP_EVOLVE)) &&
+                           (!(prop_info[i].prop_type & (PROP_WITH_EVOSCHEME | 
PROP_WITHOUT_EVOSCHEME)) ||
+                            ((prop_info[i].prop_type & PROP_WITHOUT_EVOSCHEME) 
!= 0 &&
+                            !evolution_person_supported) ||
+                           ((prop_info[i].prop_type & PROP_WITH_EVOSCHEME) != 
0 &&
+                            evolution_person_supported)) &&
                            (calentry_supported ||
                            !(prop_info[i].prop_type & PROP_CALENTRY))) {
                                return prop_info[i].ldap_attr;
@@ -4268,7 +4295,12 @@
                }
                else {
                        for (i = 0; i < G_N_ELEMENTS (prop_info); i++) {
-                               if (!g_ascii_strcasecmp (attr, 
prop_info[i].ldap_attr)) {
+                               if (!g_ascii_strcasecmp (attr, 
prop_info[i].ldap_attr) &&
+                                   (!(prop_info[i].prop_type & 
(PROP_WITH_EVOSCHEME | PROP_WITHOUT_EVOSCHEME)) ||
+                                    ((prop_info[i].prop_type & 
PROP_WITHOUT_EVOSCHEME) != 0 &&
+                                     !bl->priv->evolutionPersonSupported) ||
+                                    ((prop_info[i].prop_type & 
PROP_WITH_EVOSCHEME) != 0 &&
+                                     bl->priv->evolutionPersonSupported))) {
                                        info = &prop_info[i];
                                        break;
                                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/src/calendar/libecal/e-cal-recur.c 
new/evolution-data-server-3.44.3/src/calendar/libecal/e-cal-recur.c
--- old/evolution-data-server-3.44.2/src/calendar/libecal/e-cal-recur.c 
2022-05-27 07:43:00.000000000 +0200
+++ new/evolution-data-server-3.44.3/src/calendar/libecal/e-cal-recur.c 
2022-07-01 11:18:42.000000000 +0200
@@ -529,11 +529,6 @@
                        if (rrule_until && !i_cal_time_is_null_time 
(rrule_until) &&
                            i_cal_time_is_date (rrule_until) && 
!i_cal_time_is_date (dtstart)) {
                                i_cal_time_adjust (rrule_until, 1, 0, 0, 0);
-                               i_cal_time_set_is_date (rrule_until, FALSE);
-                               i_cal_time_set_time (rrule_until, 0, 0, 0);
-
-                               if (!i_cal_time_get_timezone (rrule_until) && 
!i_cal_time_is_utc (rrule_until))
-                                       i_cal_time_set_timezone (rrule_until, 
dtstart_zone);
                        }
 
                        if (rrule_until && !i_cal_time_is_null_time 
(rrule_until))
@@ -676,11 +671,6 @@
                        if (exrule_until && !i_cal_time_is_null_time 
(exrule_until) &&
                            i_cal_time_is_date (exrule_until) && 
!i_cal_time_is_date (dtstart)) {
                                i_cal_time_adjust (exrule_until, 1, 0, 0, 0);
-                               i_cal_time_set_is_date (exrule_until, FALSE);
-                               i_cal_time_set_time (exrule_until, 0, 0, 0);
-
-                               if (!i_cal_time_get_timezone (exrule_until) && 
!i_cal_time_is_utc (exrule_until))
-                                       i_cal_time_set_timezone (exrule_until, 
dtstart_zone);
                        }
 
                        if (exrule_until && !i_cal_time_is_null_time 
(exrule_until))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/src/camel/camel-mime-utils.c 
new/evolution-data-server-3.44.3/src/camel/camel-mime-utils.c
--- old/evolution-data-server-3.44.2/src/camel/camel-mime-utils.c       
2022-05-27 07:43:00.000000000 +0200
+++ new/evolution-data-server-3.44.3/src/camel/camel-mime-utils.c       
2022-07-01 11:18:42.000000000 +0200
@@ -2706,7 +2706,7 @@
                                w (g_warning ("Invalid address spec: %s", *in));
                        }
                }
-               if (*inptr == '@') {
+               while (*inptr == '@') {
                        inptr++;
                        g_string_append_c (addr, '@');
                        word = header_decode_domain (&inptr);
@@ -2716,8 +2716,6 @@
                        } else {
                                w (g_warning ("Invalid address, missing domain: 
%s", *in));
                        }
-               } else {
-                       w (g_warning ("Invalid addr-spec, missing @: %s", *in));
                }
        } else {
                w (g_warning ("invalid addr-spec, no local part"));
@@ -3216,7 +3214,9 @@
 }
 
 static void
-header_references_decode_single (const gchar **in, GSList **list)
+header_references_decode_single (const gchar **in,
+                                gboolean *had_valid_value,
+                                GSList **list)
 {
        const gchar *inptr = *in;
        GString *accum_word = NULL;
@@ -3227,30 +3227,33 @@
                if (*inptr == '<') {
                        id = header_msgid_decode_internal (&inptr);
                        if (id) {
+                               *had_valid_value = TRUE;
                                *list = g_slist_prepend (*list, id);
                                break;
                        }
                } else {
                        word = header_decode_word (&inptr);
                        if (word) {
-                               /* To support broken clients, which do not 
enclose message IDs into angle brackets, as
-                                  required in the RFC 2822: 
https://tools.ietf.org/html/rfc2822#section-3.6.4 */
-                               if (!*inptr || camel_mime_is_lwsp (*inptr)) {
-                                       if (accum_word) {
-                                               g_string_append (accum_word, 
word);
-                                               *list = g_slist_prepend (*list, 
g_string_free (accum_word, FALSE));
-                                               accum_word = NULL;
+                               if (!*had_valid_value) {
+                                       /* To support broken clients, which do 
not enclose message IDs into angle brackets, as
+                                          required in the RFC 2822: 
https://tools.ietf.org/html/rfc2822#section-3.6.4 */
+                                       if (!*inptr || camel_mime_is_lwsp 
(*inptr)) {
+                                               if (accum_word) {
+                                                       g_string_append 
(accum_word, word);
+                                                       *list = g_slist_prepend 
(*list, g_string_free (accum_word, FALSE));
+                                                       accum_word = NULL;
+                                               } else {
+                                                       *list = g_slist_prepend 
(*list, word);
+                                                       word = NULL;
+                                               }
                                        } else {
-                                               *list = g_slist_prepend (*list, 
word);
-                                               word = NULL;
-                                       }
-                               } else {
-                                       if (accum_word)
-                                               g_string_append (accum_word, 
word);
-                                       else
-                                               accum_word = g_string_new 
(word);
+                                               if (accum_word)
+                                                       g_string_append 
(accum_word, word);
+                                               else
+                                                       accum_word = 
g_string_new (word);
 
-                                       g_string_append_c (accum_word, *inptr);
+                                               g_string_append_c (accum_word, 
*inptr);
+                                       }
                                }
                                g_free (word);
                        } else if (*inptr != '\0')
@@ -3276,12 +3279,13 @@
 camel_header_references_decode (const gchar *in)
 {
        GSList *refs = NULL;
+       gboolean had_valid_value = FALSE;
 
        if (in == NULL || in[0] == '\0')
                return NULL;
 
        while (*in)
-               header_references_decode_single (&in, &refs);
+               header_references_decode_single (&in, &had_valid_value, &refs);
 
        return refs;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/src/camel/tests/misc/test1.c 
new/evolution-data-server-3.44.3/src/camel/tests/misc/test1.c
--- old/evolution-data-server-3.44.2/src/camel/tests/misc/test1.c       
2022-05-27 07:43:00.000000000 +0200
+++ new/evolution-data-server-3.44.3/src/camel/tests/misc/test1.c       
2022-07-01 11:18:42.000000000 +0200
@@ -36,6 +36,11 @@
          { "t...@camel.host", "test.groupwise@bug.novell", "t...@camel.host" } 
},
        { " << test.groupwise@bug.novell>@novell> <t...@camel.host> 
<<test.groupwise@bug.novell>@novell>",
          { "test.groupwise@bug.novell", "t...@camel.host", 
"test.groupwise@bug.novell" } },
+       { "<test@camel@host>", { "test@camel@host" } }, /* broken clients with 
multiple '@' */
+       { "t...@camel.host", { "t...@camel.host" } }, /* broken clients without 
<> */
+       { "test@camel@host", { "test@camel@host" } }, /* broken clients without 
<> */
+       { "<test@camel> <test.1.2.3@camel.1.2.3@host.3.2.1> 
<t.e.s.t@c.a.m.e.l>", /* mix of good and broken values */
+         { "t.e.s.t@c.a.m.e.l", "test.1.2.3@camel.1.2.3@host.3.2.1", 
"test@camel" } },
 };
 
 gint
@@ -55,7 +60,9 @@
                list = camel_header_references_decode (test1[i].header);
                for (j = 0; test1[i].values[j]; j++) {
                        check_msg (list != NULL, "didn't find all references");
-                       check (strcmp (test1[i].values[j], list->data) == 0);
+                       check_msg (string_equal (test1[i].values[j], 
list->data),
+                               "returned ID '%s' doesn't match expected '%s'",
+                               (const gchar *) list->data, test1[i].values[j]);
                        list = g_slist_next (list);
                }
                check_msg (list == NULL, "found more references than should 
have");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/src/libedataserver/e-source.c 
new/evolution-data-server-3.44.3/src/libedataserver/e-source.c
--- old/evolution-data-server-3.44.2/src/libedataserver/e-source.c      
2022-05-27 07:43:00.000000000 +0200
+++ new/evolution-data-server-3.44.3/src/libedataserver/e-source.c      
2022-07-01 11:18:42.000000000 +0200
@@ -1042,6 +1042,20 @@
        return FALSE;
 }
 
+static void source_connect_dbus_source (ESource *source);
+
+static void
+e_source_dbus_object_notify_source_cb (GObject *dbus_object,
+                                      GParamSpec *param,
+                                      gpointer user_data)
+{
+       ESource *source = user_data;
+
+       g_return_if_fail (E_IS_SOURCE (source));
+
+       source_connect_dbus_source (source);
+}
+
 static void
 source_set_dbus_object (ESource *source,
                         EDBusObject *dbus_object)
@@ -1053,7 +1067,10 @@
        g_return_if_fail (E_DBUS_IS_OBJECT (dbus_object));
        g_return_if_fail (source->priv->dbus_object == NULL);
 
-       source->priv->dbus_object = g_object_ref (dbus_object);
+       source->priv->dbus_object = G_DBUS_OBJECT (g_object_ref (dbus_object));
+
+       g_signal_connect_object (source->priv->dbus_object, "notify::source",
+               G_CALLBACK (e_source_dbus_object_notify_source_cb), source, 0);
 }
 
 static void
@@ -1231,14 +1248,13 @@
 
                dbus_source = e_dbus_object_get_source (dbus_object);
                if (dbus_source != NULL) {
-                       g_signal_handlers_disconnect_matched (
-                               dbus_source, G_SIGNAL_MATCH_DATA,
-                               0, 0, NULL, NULL, object);
+                       g_signal_handlers_disconnect_by_data (dbus_source, 
object);
                        g_object_unref (dbus_source);
                }
 
-               g_object_unref (priv->dbus_object);
-               priv->dbus_object = NULL;
+               g_signal_handlers_disconnect_by_data (priv->dbus_object, 
object);
+
+               g_clear_object (&priv->dbus_object);
        }
 
        g_mutex_unlock (&priv->property_lock);
@@ -2014,6 +2030,11 @@
        dbus_source = e_dbus_object_get_source (dbus_object);
        g_return_if_fail (E_DBUS_IS_SOURCE (dbus_source));
 
+       g_signal_handlers_disconnect_by_func (dbus_source, 
source_notify_dbus_data_cb, source);
+       g_signal_handlers_disconnect_by_func (dbus_source, 
source_notify_dbus_connection_status_cb, source);
+       g_signal_handlers_disconnect_by_func (dbus_source, 
source_dbus_credentials_required_cb, source);
+       g_signal_handlers_disconnect_by_func (dbus_source, 
source_dbus_authenticate_cb, source);
+
        g_signal_connect_object (
                dbus_source, "notify::data",
                G_CALLBACK (source_notify_dbus_data_cb), source, 0);
@@ -2504,14 +2525,21 @@
                dbus_source = e_dbus_object_get_source (E_DBUS_OBJECT 
(source->priv->dbus_object));
 
                if (dbus_source) {
-                       g_signal_handlers_disconnect_by_data (dbus_source, 
source),
+                       g_signal_handlers_disconnect_by_data (dbus_source, 
source);
                        g_object_unref (dbus_source);
                }
+
+               g_signal_handlers_disconnect_by_func 
(source->priv->dbus_object, e_source_dbus_object_notify_source_cb, source);
        }
 
        g_clear_object (&source->priv->dbus_object);
        source->priv->dbus_object = dbus_object;
 
+       if (source->priv->dbus_object) {
+               g_signal_connect_object (source->priv->dbus_object, 
"notify::source",
+                       G_CALLBACK (e_source_dbus_object_notify_source_cb), 
source, 0);
+       }
+
        g_mutex_unlock (&source->priv->property_lock);
 
        source_connect_dbus_source (source);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
 
new/evolution-data-server-3.44.3/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
--- 
old/evolution-data-server-3.44.2/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
  2022-05-27 07:43:00.000000000 +0200
+++ 
new/evolution-data-server-3.44.3/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
  2022-07-01 11:18:42.000000000 +0200
@@ -561,6 +561,24 @@
        g_free (display_name);
 }
 
+static gchar *
+credentials_prompter_impl_oauth2_sanitize_host (gchar *host)
+{
+       if (!host || !*host)
+               return host;
+
+       if (*host == '[' && strchr (host, ':')) {
+               gint len = strlen (host);
+
+               if (len > 2 && host[len - 1] == ']') {
+                       memmove (host, host + 1, len - 2);
+                       host[len - 2] = '\0';
+               }
+       }
+
+       return host;
+}
+
 static void
 credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context,
                                            ESourceRegistry *registry,
@@ -604,7 +622,7 @@
                case E_PROXY_METHOD_MANUAL:
                        ignore_hosts = e_source_proxy_dup_ignore_hosts (proxy);
 
-                       tmp = e_source_proxy_dup_socks_host (proxy);
+                       tmp = credentials_prompter_impl_oauth2_sanitize_host 
(e_source_proxy_dup_socks_host (proxy));
                        if (tmp && *tmp) {
                                suri = soup_uri_new (NULL);
                                soup_uri_set_scheme (suri, "socks");
@@ -623,7 +641,7 @@
                        }
                        g_free (tmp);
 
-                       tmp = e_source_proxy_dup_http_host (proxy);
+                       tmp = credentials_prompter_impl_oauth2_sanitize_host 
(e_source_proxy_dup_http_host (proxy));
                        if (tmp && *tmp) {
                                suri = soup_uri_new (NULL);
                                soup_uri_set_scheme (suri, 
SOUP_URI_SCHEME_HTTP);
@@ -650,7 +668,7 @@
                        }
                        g_free (tmp);
 
-                       tmp = e_source_proxy_dup_https_host (proxy);
+                       tmp = credentials_prompter_impl_oauth2_sanitize_host 
(e_source_proxy_dup_https_host (proxy));
                        if (tmp && *tmp) {
                                suri = soup_uri_new (NULL);
                                soup_uri_set_scheme (suri, 
SOUP_URI_SCHEME_HTTP);
@@ -856,6 +874,7 @@
                "enable-page-cache", FALSE,
                "enable-plugins", FALSE,
                "media-playback-allows-inline", FALSE,
+               "hardware-acceleration-policy", 
WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER,
                NULL);
 
        web_context = webkit_web_context_new ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/tests/libecal/test-cal-recur.c 
new/evolution-data-server-3.44.3/tests/libecal/test-cal-recur.c
--- old/evolution-data-server-3.44.2/tests/libecal/test-cal-recur.c     
2022-05-27 07:43:00.000000000 +0200
+++ new/evolution-data-server-3.44.3/tests/libecal/test-cal-recur.c     
2022-07-01 11:18:42.000000000 +0200
@@ -363,6 +363,151 @@
        }
 }
 
+static ICalComponent *
+create_component_midnight (const gchar *tz_location)
+{
+       const gchar *comp_str =
+               "BEGIN:VEVENT\r\n"
+               "SUMMARY:recurs\r\n"
+               "UID:recurs-id\r\n"
+               "DTSTART%s:20190107T000000%s\r\n"
+               "DTEND%s:20190107T003000%s\r\n"
+               "DTSTAMP:20190101T050000Z\r\n"
+               "CREATED:20190101T050000Z\r\n"
+               "LAST-MODIFIED:20190101T050000Z\r\n"
+               "RRULE:FREQ=DAILY;UNTIL=20190109\r\n"
+               "END:VEVENT\r\n";
+       gchar *tzref = NULL, tzsuffix[2] = { 0, 0 };
+       gchar *str;
+       ICalComponent *icomp;
+       ICalTimezone *zone = NULL;
+       ICalTime *itt;
+
+       if (tz_location) {
+               if (g_ascii_strcasecmp (tz_location, "UTC") == 0) {
+                       tzsuffix[0] = 'Z';
+                       zone = i_cal_timezone_get_utc_timezone ();
+               } else {
+                       const gchar *tzid;
+
+                       zone = i_cal_timezone_get_builtin_timezone 
(tz_location);
+                       g_assert_nonnull (zone);
+
+                       tzid = i_cal_timezone_get_tzid (zone);
+                       g_assert_nonnull (tzid);
+
+                       tzref = g_strconcat (";TZID=", tzid, NULL);
+               }
+       }
+
+       str = g_strdup_printf (comp_str, tzref ? tzref : "", tzsuffix, tzref ? 
tzref : "", tzsuffix);
+       icomp = i_cal_component_new_from_string (str);
+       g_assert_nonnull (icomp);
+
+       g_free (tzref);
+       g_free (str);
+
+       itt = i_cal_component_get_dtstart (icomp);
+       g_assert_nonnull (itt);
+       g_assert_true (i_cal_time_get_timezone (itt) == zone);
+       g_object_unref (itt);
+
+       itt = i_cal_component_get_dtend (icomp);
+       g_assert_nonnull (itt);
+       g_assert_true (i_cal_time_get_timezone (itt) == zone);
+       g_object_unref (itt);
+
+       return icomp;
+}
+
+static void
+setup_cal_midnight (ECalClient *cal_client,
+                   const gchar *tz_location)
+{
+       ICalComponent *icomp;
+       gboolean success;
+       gchar *uid = NULL;
+       GError *error = NULL;
+
+       icomp = create_component_midnight (tz_location);
+
+       if (!e_cal_client_remove_object_sync (cal_client, 
i_cal_component_get_uid (icomp), NULL, E_CAL_OBJ_MOD_ALL, 
E_CAL_OPERATION_FLAG_NONE, NULL, &error)) {
+               g_assert_error (error, E_CAL_CLIENT_ERROR, 
E_CAL_CLIENT_ERROR_OBJECT_NOT_FOUND);
+               g_clear_error (&error);
+       } else {
+               g_assert_no_error (error);
+       }
+
+       success = e_cal_client_create_object_sync (cal_client, icomp, 
E_CAL_OPERATION_FLAG_NONE, &uid, NULL, &error);
+       g_assert_no_error (error);
+       g_assert_true (success);
+       g_assert_nonnull (uid);
+
+       g_object_unref (icomp);
+       g_free (uid);
+}
+
+static gboolean
+recur_instance_midnight_cb (ICalComponent *icomp,
+                           ICalTime *instance_start,
+                           ICalTime *instance_end,
+                           gpointer user_data,
+                           GCancellable *cancellable,
+                           GError **error)
+{
+       GSList **listp = user_data;
+
+       *listp = g_slist_append (*listp, i_cal_time_as_ical_string 
(instance_start));
+
+       return TRUE;
+}
+
+static void
+test_recur_midnight_for_zone (ECalClient *client,
+                             const gchar *tz_location)
+{
+       ICalTime *start, *end;
+       GSList *list = NULL, *last;
+
+       setup_cal_midnight (client, tz_location);
+
+       start = i_cal_time_new_from_string ("20190101T000000Z");
+       end = i_cal_time_new_from_string ("20190131T000000Z");
+
+       e_cal_client_generate_instances_sync (client,
+               i_cal_time_as_timet (start),
+               i_cal_time_as_timet (end),
+               NULL, /* GCancellable * */
+               recur_instance_midnight_cb, &list);
+
+       last = g_slist_last (list);
+       g_assert_nonnull (last);
+       if (g_ascii_strcasecmp (tz_location, "UTC") == 0)
+               g_assert_cmpstr (last->data, ==, "20190109T000000Z");
+       else
+               g_assert_cmpstr (last->data, ==, "20190109T000000");
+       g_assert_cmpint (g_slist_length (list), ==, 3);
+
+       g_slist_free_full (list, g_free);
+       g_clear_object (&start);
+       g_clear_object (&end);
+}
+
+static void
+test_recur_midnight (ETestServerFixture *fixture,
+                    gconstpointer user_data)
+{
+       ECalClient *client;
+
+       client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient);
+
+       e_cal_client_set_default_timezone (client, 
i_cal_timezone_get_builtin_timezone ("UTC"));
+
+       test_recur_midnight_for_zone (client, "UTC");
+       test_recur_midnight_for_zone (client, "America/New_York");
+       test_recur_midnight_for_zone (client, "Europe/Berlin");
+}
+
 static void
 test_recur_client (ETestServerFixture *fixture,
                   gconstpointer user_data)
@@ -623,6 +768,13 @@
                e_test_server_utils_setup,
                test_recur_duration,
                e_test_server_utils_teardown);
+       g_test_add (
+               "/ECalRecur/Midnight",
+               ETestServerFixture,
+               &test_closure,
+               e_test_server_utils_setup,
+               test_recur_midnight,
+               e_test_server_utils_teardown);
 
        return e_test_server_utils_run (argc, argv);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/tests/libedata-book/test-book-cache-cursor-change-locale.c
 
new/evolution-data-server-3.44.3/tests/libedata-book/test-book-cache-cursor-change-locale.c
--- 
old/evolution-data-server-3.44.2/tests/libedata-book/test-book-cache-cursor-change-locale.c
 2022-05-27 07:43:00.000000000 +0200
+++ 
new/evolution-data-server-3.44.3/tests/libedata-book/test-book-cache-cursor-change-locale.c
 2022-07-01 11:18:42.000000000 +0200
@@ -69,7 +69,7 @@
                tcu_step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
                tcu_step_test_add_assertion (data, 5, 12, 13, 9,  19, 20);
 
-               tcu_step_test_change_locale (data, "fr_CA.UTF-8", 0);
+               tcu_step_test_change_locale (data, "fr_CA.UTF-8", -1);
                tcu_step_test_add_assertion (data, 5, 11, 1,  2,  5,  6);
                tcu_step_test_add_assertion (data, 5, 4,  3,  7,  8,  15);
                tcu_step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.44.2/tests/libedata-book/test-sqlite-cursor-change-locale.c
 
new/evolution-data-server-3.44.3/tests/libedata-book/test-sqlite-cursor-change-locale.c
--- 
old/evolution-data-server-3.44.2/tests/libedata-book/test-sqlite-cursor-change-locale.c
     2022-05-27 07:43:00.000000000 +0200
+++ 
new/evolution-data-server-3.44.3/tests/libedata-book/test-sqlite-cursor-change-locale.c
     2022-07-01 11:18:42.000000000 +0200
@@ -72,7 +72,7 @@
                step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
                step_test_add_assertion (data, 5, 12, 13, 9,  19, 20);
 
-               step_test_change_locale (data, "fr_CA.UTF-8", 0);
+               step_test_change_locale (data, "fr_CA.UTF-8", -1);
                step_test_add_assertion (data, 5, 11, 1,  2,  5,  6);
                step_test_add_assertion (data, 5, 4,  3,  7,  8,  15);
                step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);

Reply via email to