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-02-11 23:06:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old)
 and      /work/SRC/openSUSE:Factory/.evolution-data-server.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "evolution-data-server"

Fri Feb 11 23:06:45 2022 rev:233 rq:953721 version:3.42.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes  
    2022-01-09 22:50:17.767290576 +0100
+++ 
/work/SRC/openSUSE:Factory/.evolution-data-server.new.1956/evolution-data-server.changes
    2022-02-11 23:07:13.770575849 +0100
@@ -1,0 +2,11 @@
+Fri Feb 11 10:46:20 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com>
+
+- Update to version 3.42.4:
+  + IMAPx: Avoid creating NOSELECT CamelFolder-s
+  + CamelMimeFilterCRLF: Correct encoding part of the filter
+  + CamelMimeParser: Correct body content parse when CRLF is used
+  + camel-net-utils: Allow NULL string arguments in IDNA/ASCII
+    functions
+  + Bugs fixed: glgo#GNOME/evolution-data-server#374
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.paySYr/_old  2022-02-11 23:07:14.622578215 +0100
+++ /var/tmp/diff_new_pack.paySYr/_new  2022-02-11 23:07:14.626578226 +0100
@@ -31,7 +31,7 @@
 %bcond_without introspection
 
 Name:           evolution-data-server
-Version:        3.42.3
+Version:        3.42.4
 Release:        0
 Summary:        Evolution Data Server
 License:        LGPL-2.0-only

++++++ evolution-data-server-3.42.3.tar.xz -> 
evolution-data-server-3.42.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.42.3/CMakeLists.txt 
new/evolution-data-server-3.42.4/CMakeLists.txt
--- old/evolution-data-server-3.42.3/CMakeLists.txt     2022-01-07 
11:25:06.000000000 +0100
+++ new/evolution-data-server-3.42.4/CMakeLists.txt     2022-02-11 
10:58:14.000000000 +0100
@@ -4,7 +4,7 @@
 cmake_policy(VERSION 3.1)
 
 project(evolution-data-server
-       VERSION 3.42.3
+       VERSION 3.42.4
        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.42.3/NEWS 
new/evolution-data-server-3.42.4/NEWS
--- old/evolution-data-server-3.42.3/NEWS       2022-01-07 11:25:06.000000000 
+0100
+++ new/evolution-data-server-3.42.4/NEWS       2022-02-11 10:58:14.000000000 
+0100
@@ -1,3 +1,15 @@
+Evolution-Data-Server 3.42.4 2022-02-11
+---------------------------------------
+
+Bug Fixes:
+       I#374 - LDAP: Let open when server is offline and marked for offline 
work
+
+Miscellaneous:
+       IMAPx: Avoid creating NOSELECT CamelFolder-s
+       CamelMimeFilterCRLF: Correct encoding part of the filter
+       CamelMimeParser: Correct body content parse when CRLF is used
+       camel-net-utils: Allow NULL string arguments in IDNA/ASCII functions
+
 Evolution-Data-Server 3.42.3 2022-01-07
 ---------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.42.3/src/addressbook/backends/ldap/e-book-backend-ldap.c
 
new/evolution-data-server-3.42.4/src/addressbook/backends/ldap/e-book-backend-ldap.c
--- 
old/evolution-data-server-3.42.3/src/addressbook/backends/ldap/e-book-backend-ldap.c
        2022-01-07 11:25:06.000000000 +0100
+++ 
new/evolution-data-server-3.42.4/src/addressbook/backends/ldap/e-book-backend-ldap.c
        2022-02-11 10:58:14.000000000 +0100
@@ -839,11 +839,16 @@
                        ldap_error = ldap_start_tls_s (blpriv->ldap, NULL, 
NULL);
 #endif
                        if (ldap_error != LDAP_SUCCESS) {
-                               g_message ("TLS not available (fatal version), 
(ldap_error 0x%02x)", ldap_error);
+                               if (ldap_error == LDAP_SERVER_DOWN) {
+                                       g_message ("TLS failed due to server 
being down");
+                                       g_propagate_error (error, EC_ERROR 
(E_CLIENT_ERROR_REPOSITORY_OFFLINE));
+                               } else {
+                                       g_message ("TLS not available (fatal 
version), (ldap_error 0x%02x)", ldap_error);
+                                       g_propagate_error (error, EC_ERROR 
(E_CLIENT_ERROR_TLS_NOT_AVAILABLE));
+                               }
                                ldap_unbind (blpriv->ldap);
                                blpriv->ldap = NULL;
                                g_rec_mutex_unlock (&eds_ldap_handler_lock);
-                               g_propagate_error (error, EC_ERROR 
(E_CLIENT_ERROR_TLS_NOT_AVAILABLE));
                                return FALSE;
                        } else if (enable_debug)
                                g_message ("TLS active");
@@ -5142,9 +5147,12 @@
        }
 
        if (error != NULL && enable_debug)
-               printf ("%s ... failed to connect to server \n", G_STRFUNC);
+               printf ("%s ... failed to connect to server: %s\n", G_STRFUNC, 
error->message);
 
-       if (error == NULL && bl->priv->marked_for_offline)
+       /* Ignore 'Repository Offline' error when being marked for offline work 
*/
+       if (bl->priv->marked_for_offline && g_error_matches (error, 
E_CLIENT_ERROR, E_CLIENT_ERROR_REPOSITORY_OFFLINE))
+               g_clear_error (&error);
+       else if (!error && bl->priv->marked_for_offline)
                generate_cache (bl);
 
        g_signal_connect_object (source, "changed",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.42.3/src/camel/camel-mime-filter-crlf.c 
new/evolution-data-server-3.42.4/src/camel/camel-mime-filter-crlf.c
--- old/evolution-data-server-3.42.3/src/camel/camel-mime-filter-crlf.c 
2022-01-07 11:25:06.000000000 +0100
+++ new/evolution-data-server-3.42.4/src/camel/camel-mime-filter-crlf.c 
2022-02-11 10:58:14.000000000 +0100
@@ -60,13 +60,21 @@
                outptr = mime_filter->outbuf;
                while (inptr < inend) {
                        if (*inptr == '\r') {
+                               if (priv->saw_cr && !priv->saw_lf)
+                                       *outptr++ = '\n';
                                priv->saw_cr = TRUE;
+                               priv->saw_lf = FALSE;
                        } else if (*inptr == '\n') {
                                priv->saw_lf = TRUE;
                                if (!priv->saw_cr)
                                        *outptr++ = '\r';
                                priv->saw_cr = FALSE;
                        } else {
+                               if (priv->saw_cr && !priv->saw_lf) {
+                                       priv->saw_lf = TRUE;
+                                       *outptr++ = '\n';
+                               }
+
                                if (do_dots && *inptr == '.' && priv->saw_lf)
                                        *outptr++ = '.';
 
@@ -147,6 +155,23 @@
        crlf_filter = CAMEL_MIME_FILTER_CRLF (mime_filter);
 
        if (crlf_filter->priv->direction == CAMEL_MIME_FILTER_CRLF_ENCODE &&
+           crlf_filter->priv->saw_cr && !crlf_filter->priv->saw_lf) {
+               gchar *outptr;
+
+               camel_mime_filter_set_size (mime_filter, *outlen + 1, FALSE);
+
+               outptr = mime_filter->outbuf + *outlen;
+               *outptr++ = '\n';
+
+               *out = mime_filter->outbuf;
+               *outlen = outptr - mime_filter->outbuf;
+               *outprespace = mime_filter->outpre;
+
+               crlf_filter->priv->saw_cr = FALSE;
+               crlf_filter->priv->ends_with_lf = TRUE;
+       }
+
+       if (crlf_filter->priv->direction == CAMEL_MIME_FILTER_CRLF_ENCODE &&
            crlf_filter->priv->ensure_crlf_end &&
            !crlf_filter->priv->ends_with_lf) {
                gchar *outptr;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.42.3/src/camel/camel-mime-parser.c 
new/evolution-data-server-3.42.4/src/camel/camel-mime-parser.c
--- old/evolution-data-server-3.42.3/src/camel/camel-mime-parser.c      
2022-01-07 11:25:06.000000000 +0100
+++ new/evolution-data-server-3.42.4/src/camel/camel-mime-parser.c      
2022-02-11 10:58:14.000000000 +0100
@@ -1547,9 +1547,12 @@
 
        *data = start;
        /* if we hit a boundary, we should not include the closing \n */
-       if (onboundary && (inptr - start) > 0)
+       if (onboundary && (inptr - start) > 0) {
                *length = inptr-start-1;
-       else
+               /* in case it was "\r\n", remove also the "\r" */
+               if (*length > 0 && start[*length - 1] == '\r')
+                       *length = (*length) - 1;
+       } else
                *length = inptr-start;
 
        /*printf("got %scontent: '%.*s'\n", s->midline?"partial ":"", 
inptr-start, start);*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.42.3/src/camel/camel-net-utils.c 
new/evolution-data-server-3.42.4/src/camel/camel-net-utils.c
--- old/evolution-data-server-3.42.3/src/camel/camel-net-utils.c        
2022-01-07 11:25:06.000000000 +0100
+++ new/evolution-data-server-3.42.4/src/camel/camel-net-utils.c        
2022-02-11 10:58:14.000000000 +0100
@@ -793,14 +793,15 @@
 
 /**
  * camel_host_idna_to_ascii:
- * @host: Host name, with or without non-ascii letters in utf8
+ * @host: (nullable): Host name, with or without non-ascii letters in utf8
  *
  * Converts IDN (Internationalized Domain Name) into ASCII representation.
  * If there's a failure or the @host has only ASCII letters, then a copy
  * of @host is returned.
  *
- * Returns: Newly allocated string with only ASCII letters describing the 
@host.
- *   Free it with g_free() when done with it.
+ * Returns: (nullable): Newly allocated string with only ASCII letters
+ *   describing the @host or %NULL, when the @host is %NULL. Free the returned
+ *   string with g_free() when no longer needed.
  *
  * Since: 3.16
  **/
@@ -812,7 +813,8 @@
        const gchar *ptr;
        gchar *ascii = NULL;
 
-       g_return_val_if_fail (host != NULL, NULL);
+       if (!host)
+               return NULL;
 
        ptr = host;
        while (*ptr > 0)
@@ -866,7 +868,7 @@
 
 /**
  * camel_utils_sanitize_ascii_domain_in_address:
- * @email_address: an email address as string
+ * @email_address: (nullable): an email address as string
  * @do_format: what format will be returned
  *
  * Checks whether the domain in the @email_address requires
@@ -891,9 +893,7 @@
        CamelInternetAddress *addr;
        gchar *res = NULL;
 
-       g_return_val_if_fail (email_address != NULL, NULL);
-
-       if (camel_string_is_all_ascii (email_address))
+       if (!email_address || camel_string_is_all_ascii (email_address))
                return NULL;
 
        addr = camel_internet_address_new ();
@@ -915,7 +915,7 @@
 
 /**
  * camel_utils_sanitize_ascii_domain_in_url_str:
- * @url_str: a URL as string
+ * @url_str: (nullable): a URL as string
  *
  * Checks whether the host name of the @url_str requires conversion
  * to ASCII and converts it if needed. Returns %NULL, when no conversion
@@ -934,9 +934,7 @@
        CamelURL *url;
        gchar *res = NULL;
 
-       g_return_val_if_fail (url_str != NULL, NULL);
-
-       if (camel_string_is_all_ascii (url_str))
+       if (!url_str || camel_string_is_all_ascii (url_str))
                return NULL;
 
        url = camel_url_new (url_str, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.42.3/src/camel/providers/imapx/camel-imapx-store.c 
new/evolution-data-server-3.42.4/src/camel/providers/imapx/camel-imapx-store.c
--- 
old/evolution-data-server-3.42.3/src/camel/providers/imapx/camel-imapx-store.c  
    2022-01-07 11:25:06.000000000 +0100
+++ 
new/evolution-data-server-3.42.4/src/camel/providers/imapx/camel-imapx-store.c  
    2022-02-11 10:58:14.000000000 +0100
@@ -1137,7 +1137,7 @@
 
        si = camel_store_summary_path (imapx_store->summary, folder_name);
 
-       if (si != NULL) {
+       if (si != NULL && !(si->flags & CAMEL_STORE_INFO_FOLDER_NOSELECT)) {
                gchar *base_dir;
                gchar *folder_dir;
 
@@ -1147,8 +1147,6 @@
                        store, folder_dir, folder_name, error);
                g_free (folder_dir);
                g_free (base_dir);
-
-               camel_store_summary_info_unref (imapx_store->summary, si);
        } else {
                g_set_error (
                        error, CAMEL_STORE_ERROR,
@@ -1156,6 +1154,9 @@
                        _("No such folder %s"), folder_name);
        }
 
+       if (si)
+               camel_store_summary_info_unref (imapx_store->summary, si);
+
        return new_folder;
 }
 
@@ -1962,10 +1963,11 @@
 
        subscribed = ((info->flags & CAMEL_FOLDER_SUBSCRIBED) != 0);
 
-       res = store_class->can_refresh_folder (store, info, &local_error) ||
-               check_all || (check_subscribed && subscribed);
+       res = !(info->flags & CAMEL_FOLDER_NOSELECT) && (
+               store_class->can_refresh_folder (store, info, &local_error) ||
+               check_all || (check_subscribed && subscribed));
 
-       if (!res && !local_error) {
+       if (!res && !local_error && !(info->flags & CAMEL_FOLDER_NOSELECT)) {
                CamelFolder *folder;
 
                folder = camel_store_get_folder_sync (store, info->full_name, 
0, NULL, &local_error);
@@ -2276,6 +2278,7 @@
        CamelFolder *folder;
        CamelIMAPXMailbox *parent_mailbox = NULL;
        CamelFolderInfo *fi = NULL;
+       CamelStoreInfo *si;
        GList *list;
        const gchar *namespace_prefix;
        const gchar *parent_mailbox_name;
@@ -2291,6 +2294,16 @@
 
        /* Obtain the separator from the parent CamelIMAPXMailbox. */
 
+       si = camel_store_summary_path (imapx_store->summary, parent_name);
+
+       if (!si || (si->flags & CAMEL_STORE_INFO_FOLDER_NOSELECT) != 0) {
+               if (si)
+                       camel_store_summary_info_unref (imapx_store->summary, 
si);
+               goto check_namespace;
+       }
+
+       camel_store_summary_info_unref (imapx_store->summary, si);
+
        folder = camel_store_get_folder_sync (
                store, parent_name, 0, cancellable, error);
 
@@ -2842,20 +2855,22 @@
                                          GPtrArray **inout_folders)
 {
        while (info) {
-               CamelFolder *folder;
-
                if (info->child)
                        imapx_store_dup_downsync_folders_recurse (store, 
info->child, inout_folders);
 
-               folder = camel_store_get_folder_sync (store, info->full_name, 
0, NULL, NULL);
-               if (folder && CAMEL_IS_IMAPX_FOLDER (folder) &&
-                   camel_offline_folder_can_downsync (CAMEL_OFFLINE_FOLDER 
(folder))) {
-                       if (!*inout_folders)
-                               *inout_folders = g_ptr_array_sized_new (32);
-                       g_ptr_array_add (*inout_folders, g_object_ref (folder));
-               }
+               if (!(info->flags & CAMEL_FOLDER_NOSELECT)) {
+                       CamelFolder *folder;
 
-               g_clear_object (&folder);
+                       folder = camel_store_get_folder_sync (store, 
info->full_name, 0, NULL, NULL);
+                       if (folder && CAMEL_IS_IMAPX_FOLDER (folder) &&
+                           camel_offline_folder_can_downsync 
(CAMEL_OFFLINE_FOLDER (folder))) {
+                               if (!*inout_folders)
+                                       *inout_folders = g_ptr_array_sized_new 
(32);
+                               g_ptr_array_add (*inout_folders, g_object_ref 
(folder));
+                       }
+
+                       g_clear_object (&folder);
+               }
 
                info = info->next;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.42.3/src/camel/tests/mime-filter/test-crlf.c 
new/evolution-data-server-3.42.4/src/camel/tests/mime-filter/test-crlf.c
--- old/evolution-data-server-3.42.3/src/camel/tests/mime-filter/test-crlf.c    
2022-01-07 11:25:06.000000000 +0100
+++ new/evolution-data-server-3.42.4/src/camel/tests/mime-filter/test-crlf.c    
2022-02-11 10:58:14.000000000 +0100
@@ -176,6 +176,22 @@
        camel_test_pull ();
 }
 
+static void
+dump_data (const gchar *what,
+          const gchar *data,
+          guint len)
+{
+       guint ii;
+
+       printf ("%s %u bytes:\n", what, len);
+       for (ii = 0; ii < len; ii++) {
+               printf (" %02x", data[ii]);
+               if (!((ii + 1) % 16) && ii + 1 < len)
+                       printf ("\n");
+       }
+       printf ("\n");
+}
+
 static gboolean
 test_case_ensure_crlf_end_run (const gchar *in,
                               const gchar *expected,
@@ -209,6 +225,9 @@
                        if (!success)
                                camel_test_fail ("Returned text '%s' and 
expected text '%s' do not match", bytes, expected);
                } else {
+                       dump_data ("   Wrote", in, strlen (in));
+                       dump_data ("   Read", bytes, bytes_read);
+                       dump_data ("   Expected", expected, strlen (expected));
                        camel_test_fail ("Read %u bytes, but expected %u 
bytes", bytes_read, strlen (expected));
                }
        } else {
@@ -236,7 +255,26 @@
                { "a\r\nb", "a\r\nb", "a\r\nb\r\n" },
                { "a\nb", "a\r\nb", "a\r\nb\r\n" },
                { "a\r\nb\n", "a\r\nb\r\n", "a\r\nb\r\n" },
-               { "a\n\nb", "a\r\n\r\nb", "a\r\n\r\nb\r\n" }
+               { "a\n\nb", "a\r\n\r\nb", "a\r\n\r\nb\r\n" },
+               { "\n", "\r\n", "\r\n" },
+               { "\r", "\r\n", "\r\n" },
+               { ".", "..", "..\r\n" },
+               { "\n.", "\r\n..", "\r\n..\r\n" },
+               { "\r.", "\r\n..", "\r\n..\r\n" },
+               { "\r\n.", "\r\n..", "\r\n..\r\n" },
+               { "a.b", "a.b", "a.b\r\n" },
+               { "\r.b", "\r\n..b", "\r\n..b\r\n" },
+               { "\n.b", "\r\n..b", "\r\n..b\r\n" },
+               { "\n.\rb", "\r\n..\r\nb", "\r\n..\r\nb\r\n" },
+               { "\n.\nb", "\r\n..\r\nb", "\r\n..\r\nb\r\n" },
+               { "\r.\nb", "\r\n..\r\nb", "\r\n..\r\nb\r\n" },
+               { "\r.\rb", "\r\n..\r\nb", "\r\n..\r\nb\r\n" },
+               { "a\r\nb\rc\nd\n\re\r\nf\ng\n\r\n\r\r\n\n\r",
+                 "a\r\nb\r\nc\r\nd\r\n\r\ne\r\nf\r\ng\r\n\r\n\r\n\r\n\r\n\r\n",
+                 "a\r\nb\r\nc\r\nd\r\n\r\ne\r\nf\r\ng\r\n\r\n\r\n\r\n\r\n\r\n" 
},
+               { "a\n\rb\nc\rd\r\ne\n\rf\rg\r\n\r\n\n\r\r\n",
+                 "a\r\n\r\nb\r\nc\r\nd\r\ne\r\n\r\nf\r\ng\r\n\r\n\r\n\r\n\r\n",
+                 "a\r\n\r\nb\r\nc\r\nd\r\ne\r\n\r\nf\r\ng\r\n\r\n\r\n\r\n\r\n" 
}
        };
        guint ii;
 

Reply via email to