Hello community,

here is the log from the commit of package evolution-data-server for 
openSUSE:Factory checked in at 2019-01-15 13:15:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old)
 and      /work/SRC/openSUSE:Factory/.evolution-data-server.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "evolution-data-server"

Tue Jan 15 13:15:23 2019 rev:199 rq:663719 version:3.30.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes  
    2018-12-19 13:46:10.631555572 +0100
+++ 
/work/SRC/openSUSE:Factory/.evolution-data-server.new.28833/evolution-data-server.changes
   2019-01-15 13:15:24.932403032 +0100
@@ -1,0 +2,11 @@
+Mon Jan  7 21:37:52 UTC 2019 - [email protected]
+
+- Update to version 3.30.4:
+  + Correct developer documentation of some EBook asynchronous API.
+  + Crash on meeting cancellation receive in local calendar.
+  + Fix few memory leaks in calendar backends.
+  + Bugs fixed: glgo#GNOME/evolution-data-server#68,
+    glgo#GNOME/evolution-data-server#7,
+    glgo#GNOME/evolution-data-server#8.
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.qCQ3qv/_old  2019-01-15 13:15:25.908402266 +0100
+++ /var/tmp/diff_new_pack.qCQ3qv/_new  2019-01-15 13:15:25.908402266 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package evolution-data-server
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -29,7 +29,7 @@
 %define so_edata_cal 29
 %bcond_without introspection
 Name:           evolution-data-server
-Version:        3.30.3
+Version:        3.30.4
 Release:        0
 Summary:        Evolution Data Server
 License:        LGPL-2.0-only

++++++ evolution-data-server-3.30.3.tar.xz -> 
evolution-data-server-3.30.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.30.3/CMakeLists.txt 
new/evolution-data-server-3.30.4/CMakeLists.txt
--- old/evolution-data-server-3.30.3/CMakeLists.txt     2018-12-10 
09:38:40.000000000 +0100
+++ new/evolution-data-server-3.30.4/CMakeLists.txt     2019-01-07 
11:51:55.000000000 +0100
@@ -4,7 +4,7 @@
 cmake_policy(VERSION 3.1)
 
 project(evolution-data-server
-       VERSION 3.30.3
+       VERSION 3.30.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.30.3/NEWS 
new/evolution-data-server-3.30.4/NEWS
--- old/evolution-data-server-3.30.3/NEWS       2018-12-10 09:38:40.000000000 
+0100
+++ new/evolution-data-server-3.30.4/NEWS       2019-01-07 11:51:55.000000000 
+0100
@@ -1,3 +1,16 @@
+Evolution-Data-Server 3.30.4 2019-01-07
+---------------------------------------
+
+Bug Fixes:
+       I#68 - WebDAV registry backend Refresh can remove existing sources 
(Milan Crha)
+       M!7 - [CalDAV] Perform free-busy-query on the correct principal (Jamie 
McClymont)
+       M!8 - [CalDAV] Invert success value of schedule outbox free_busy (Jamie 
McClymont)
+
+Miscellaneous:
+       Correct developer documentation of some EBook asynchronous API (Milan 
Crha)
+       Crash on meeting cancellation receive in local calendar (Milan Crha)
+       Fix few memory leaks in calendar backends (Milan Crha)
+
 Evolution-Data-Server 3.30.3 2018-12-10
 ---------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/addressbook/libebook/e-book.c 
new/evolution-data-server-3.30.4/src/addressbook/libebook/e-book.c
--- old/evolution-data-server-3.30.3/src/addressbook/libebook/e-book.c  
2018-12-10 09:38:40.000000000 +0100
+++ new/evolution-data-server-3.30.4/src/addressbook/libebook/e-book.c  
2019-01-07 11:51:55.000000000 +0100
@@ -1105,7 +1105,7 @@
  *
  * Retrieves a contact specified by @id from @book.
  *
- * Returns: %FALSE if successful, %TRUE otherwise
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Deprecated: 3.0: Use e_book_get_contact_async() instead.
  **/
@@ -1141,7 +1141,7 @@
  *
  * Retrieves a contact specified by @id from @book.
  *
- * Returns: %FALSE if successful, %TRUE otherwise
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Since: 2.32
  *
@@ -1674,7 +1674,7 @@
  * Query @book with @query, creating a #EBookView with the fields
  * specified by @requested_fields and limited at @max_results records.
  *
- * Returns: %FALSE if successful, %TRUE otherwise
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Deprecated: 3.0: Use e_book_get_book_view_async() instead.
  **/
@@ -1722,7 +1722,7 @@
  * Query @book with @query, creating a #EBookView with the fields
  * specified by @requested_fields and limited at @max_results records.
  *
- * Returns: %FALSE if successful, %TRUE otherwise
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Since: 2.32
  *
@@ -2180,7 +2180,7 @@
  * Opens the addressbook, making it ready for queries and other operations.
  * This function does not block.
  *
- * Returns: %FALSE if successful, %TRUE otherwise.
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Deprecated: 3.0: Use e_book_open_async() instead.
  **/
@@ -2217,7 +2217,7 @@
  * Opens the addressbook, making it ready for queries and other operations.
  * This function does not block.
  *
- * Returns: %FALSE if successful, %TRUE otherwise.
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Since: 2.32
  *
@@ -2307,7 +2307,7 @@
  * Remove the backing data for this #EBook. For example, with the file backend 
this
  * deletes the database file. You cannot get it back!
  *
- * Returns: %FALSE if successful, %TRUE otherwise.
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Deprecated: 3.0: Use e_book_remove_async() instead.
  **/
@@ -2342,7 +2342,7 @@
  * Remove the backing data for this #EBook. For example, with the file
  * backend this deletes the database file. You cannot get it back!
  *
- * Returns: %FALSE if successful, %TRUE otherwise.
+ * Returns: %TRUE if successful, %FALSE otherwise
  *
  * Since: 2.32
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/calendar/backends/caldav/e-cal-backend-caldav.c
 
new/evolution-data-server-3.30.4/src/calendar/backends/caldav/e-cal-backend-caldav.c
--- 
old/evolution-data-server-3.30.3/src/calendar/backends/caldav/e-cal-backend-caldav.c
        2018-12-10 09:38:40.000000000 +0100
+++ 
new/evolution-data-server-3.30.4/src/calendar/backends/caldav/e-cal-backend-caldav.c
        2019-01-07 11:51:55.000000000 +0100
@@ -1856,7 +1856,7 @@
        if (local_error)
                g_propagate_error (error, local_error);
 
-       return local_error != NULL;
+       return !local_error;
 }
 
 static gboolean
@@ -1913,7 +1913,7 @@
        e_xml_document_add_attribute_time (xml, NULL, "end", end);
        e_xml_document_end_element (xml); /* time-range */
 
-       success = e_webdav_session_report_sync (webdav, NULL, 
E_WEBDAV_DEPTH_INFINITY, xml, NULL, NULL, &content_type, &content, cancellable, 
error);
+       success = e_webdav_session_report_sync (webdav, href, 
E_WEBDAV_DEPTH_INFINITY, xml, NULL, NULL, &content_type, &content, cancellable, 
error);
 
        g_clear_object (&webdav);
        g_object_unref (xml);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/calendar/backends/file/e-cal-backend-file.c
 
new/evolution-data-server-3.30.4/src/calendar/backends/file/e-cal-backend-file.c
--- 
old/evolution-data-server-3.30.3/src/calendar/backends/file/e-cal-backend-file.c
    2018-12-10 09:38:40.000000000 +0100
+++ 
new/evolution-data-server-3.30.4/src/calendar/backends/file/e-cal-backend-file.c
    2019-01-07 11:51:55.000000000 +0100
@@ -3293,6 +3293,7 @@
                zone = icaltimezone_new ();
                if (icaltimezone_set_component (zone, subcomp))
                        g_hash_table_insert (tzdata.zones, g_strdup 
(icaltimezone_get_tzid (zone)), NULL);
+               icaltimezone_free (zone, 1);
 
                subcomp = icalcomponent_get_next_component (toplevel_comp, 
ICAL_VTIMEZONE_COMPONENT);
        }
@@ -3369,8 +3370,9 @@
        }
 
        /* Merge the iCalendar components with our existing VCALENDAR,
-        * resolving any conflicting TZIDs. */
+        * resolving any conflicting TZIDs. It also frees the toplevel_comp. */
        icalcomponent_merge_component (priv->icalcomp, toplevel_comp);
+       toplevel_comp = NULL;
 
        /* Now we manipulate the components we care about */
        comps = g_list_sort (comps, masters_first_cmp);
@@ -3488,8 +3490,7 @@
                                                                        id, 
old_component, new_component);
 
                                /* remove the component from the toplevel 
VCALENDAR */
-                               icalcomponent_remove_component (toplevel_comp, 
subcomp);
-                               icalcomponent_free (subcomp);
+                               icalcomponent_remove_component (priv->icalcomp, 
subcomp);
                                e_cal_component_free_id (id);
 
                                if (new_component)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/calendar/backends/weather/e-cal-backend-weather.c
 
new/evolution-data-server-3.30.4/src/calendar/backends/weather/e-cal-backend-weather.c
--- 
old/evolution-data-server-3.30.3/src/calendar/backends/weather/e-cal-backend-weather.c
      2018-12-10 09:38:40.000000000 +0100
+++ 
new/evolution-data-server-3.30.4/src/calendar/backends/weather/e-cal-backend-weather.c
      2019-01-07 11:51:55.000000000 +0100
@@ -636,6 +636,9 @@
        description->altrep = "";
        text_list = g_slist_append (text_list, description);
        e_cal_component_set_description_list (cal_comp, text_list);
+       g_slist_free (text_list);
+       g_free ((gchar *) (description->value));
+       g_free (description);
        g_free ((gchar *) comp_summary.value);
 
        /* Set category and visibility */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/libebackend/e-backend.c 
new/evolution-data-server-3.30.4/src/libebackend/e-backend.c
--- old/evolution-data-server-3.30.3/src/libebackend/e-backend.c        
2018-12-10 09:38:40.000000000 +0100
+++ new/evolution-data-server-3.30.4/src/libebackend/e-backend.c        
2019-01-07 11:51:55.000000000 +0100
@@ -69,6 +69,7 @@
        GMutex network_monitor_cancellable_lock;
        GCancellable *network_monitor_cancellable;
 
+       GMutex authenticate_lock; /* To not run multiple authenticate requests 
simultaneously */
        GMutex authenticate_cancellable_lock;
        GCancellable *authenticate_cancellable;
 };
@@ -285,6 +286,7 @@
                             GError **error)
 {
        EBackendClass *class;
+       ESourceAuthenticationResult res;
 
        g_return_val_if_fail (E_IS_BACKEND (backend), 
E_SOURCE_AUTHENTICATION_ERROR);
        g_return_val_if_fail (credentials != NULL, 
E_SOURCE_AUTHENTICATION_ERROR);
@@ -293,7 +295,16 @@
        g_return_val_if_fail (class != NULL, E_SOURCE_AUTHENTICATION_ERROR);
        g_return_val_if_fail (class->authenticate_sync != NULL, 
E_SOURCE_AUTHENTICATION_ERROR);
 
-       return class->authenticate_sync (backend, credentials, 
out_certificate_pem, out_certificate_errors, cancellable, error);
+       g_mutex_lock (&backend->priv->authenticate_lock);
+
+       if (g_cancellable_set_error_if_cancelled (cancellable, error))
+               res = E_SOURCE_AUTHENTICATION_ERROR;
+       else
+               res = class->authenticate_sync (backend, credentials, 
out_certificate_pem, out_certificate_errors, cancellable, error);
+
+       g_mutex_unlock (&backend->priv->authenticate_lock);
+
+       return res;
 }
 
 typedef struct _AuthenticateThreadData {
@@ -625,6 +636,7 @@
        g_mutex_clear (&priv->property_lock);
        g_mutex_clear (&priv->update_online_state_lock);
        g_mutex_clear (&priv->network_monitor_cancellable_lock);
+       g_mutex_clear (&priv->authenticate_lock);
        g_mutex_clear (&priv->authenticate_cancellable_lock);
 
        /* Chain up to parent's finalize() method. */
@@ -800,6 +812,7 @@
        g_mutex_init (&backend->priv->property_lock);
        g_mutex_init (&backend->priv->update_online_state_lock);
        g_mutex_init (&backend->priv->network_monitor_cancellable_lock);
+       g_mutex_init (&backend->priv->authenticate_lock);
        g_mutex_init (&backend->priv->authenticate_cancellable_lock);
 
        backend->priv->authenticate_cancellable = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/libebackend/e-collection-backend.c 
new/evolution-data-server-3.30.4/src/libebackend/e-collection-backend.c
--- old/evolution-data-server-3.30.3/src/libebackend/e-collection-backend.c     
2018-12-10 09:38:40.000000000 +0100
+++ new/evolution-data-server-3.30.4/src/libebackend/e-collection-backend.c     
2019-01-07 11:51:55.000000000 +0100
@@ -144,6 +144,38 @@
        return list;
 }
 
+static ESource *
+collection_backend_ref_child_source (ECollectionBackend *backend,
+                                    const gchar *resource_id)
+{
+       ESource *source = NULL;
+       GHashTableIter iter;
+       gpointer key;
+
+       g_mutex_lock (&backend->priv->children_lock);
+
+       g_hash_table_iter_init (&iter, backend->priv->children);
+
+       while (!source && g_hash_table_iter_next (&iter, &key, NULL)) {
+               ESource *candidate = key;
+               gchar *candidate_resource_id;
+
+               if (!candidate)
+                       continue;
+
+               candidate_resource_id = e_collection_backend_dup_resource_id 
(backend, candidate);
+               if (g_strcmp0 (candidate_resource_id, resource_id) == 0) {
+                       source = g_object_ref (candidate);
+               }
+
+               g_free (candidate_resource_id);
+       }
+
+       g_mutex_unlock (&backend->priv->children_lock);
+
+       return source;
+}
+
 static GFile *
 collection_backend_new_user_file (ECollectionBackend *backend)
 {
@@ -340,15 +372,19 @@
                g_object_ref (source);
                g_hash_table_remove (unclaimed_resources, resource_id);
        } else {
-               GFile *file = collection_backend_new_user_file (backend);
-               source = collection_backend_new_source (backend, file, error);
-               g_object_unref (file);
-
-               if (source) {
-                       if (!backend->priv->new_sources)
-                               backend->priv->new_sources = 
g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+               source = collection_backend_ref_child_source (backend, 
resource_id);
 
-                       g_hash_table_insert (backend->priv->new_sources, 
e_source_dup_uid (source), NULL);
+               if (!source) {
+                       GFile *file = collection_backend_new_user_file 
(backend);
+                       source = collection_backend_new_source (backend, file, 
error);
+                       g_object_unref (file);
+
+                       if (source) {
+                               if (!backend->priv->new_sources)
+                                       backend->priv->new_sources = 
g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+
+                               g_hash_table_insert 
(backend->priv->new_sources, e_source_dup_uid (source), NULL);
+                       }
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/libebackend/e-webdav-collection-backend.c 
new/evolution-data-server-3.30.4/src/libebackend/e-webdav-collection-backend.c
--- 
old/evolution-data-server-3.30.3/src/libebackend/e-webdav-collection-backend.c  
    2018-12-10 09:38:40.000000000 +0100
+++ 
new/evolution-data-server-3.30.4/src/libebackend/e-webdav-collection-backend.c  
    2019-01-07 11:51:55.000000000 +0100
@@ -147,7 +147,6 @@
                g_warn_if_fail (source != NULL);
        } else {
                source = e_source_registry_server_ref_source (server, 
source_uid);
-               g_warn_if_fail (source != NULL);
 
                g_hash_table_remove (known_sources, identity);
        }
@@ -501,6 +500,7 @@
        server = e_collection_backend_ref_server (collection);
 
        if (e_source_collection_get_calendar_enabled (collection_extension) && 
calendar_url &&
+           !g_cancellable_is_cancelled (cancellable) &&
            e_webdav_discover_sources_full_sync (source, calendar_url,
                E_WEBDAV_DISCOVER_SUPPORTS_EVENTS | 
E_WEBDAV_DISCOVER_SUPPORTS_MEMOS | E_WEBDAV_DISCOVER_SUPPORTS_TASKS,
                credentials, (EWebDAVDiscoverRefSourceFunc) 
e_source_registry_server_ref_source, server,
@@ -519,6 +519,7 @@
        }
 
        if (!local_error && e_source_collection_get_contacts_enabled 
(collection_extension) && contacts_url &&
+           !g_cancellable_is_cancelled (cancellable) &&
            e_webdav_discover_sources_full_sync (source, contacts_url, 
E_WEBDAV_DISCOVER_SUPPORTS_CONTACTS,
                credentials, (EWebDAVDiscoverRefSourceFunc) 
e_source_registry_server_ref_source, server,
                out_certificate_pem, out_certificate_errors, 
&discovered_sources, NULL, cancellable, &local_error)) {
@@ -533,7 +534,7 @@
                any_success = TRUE;
        }
 
-       if (any_success && server) {
+       if (any_success && server && !g_cancellable_is_cancelled (cancellable)) 
{
                RemoveSourcesData rsd;
 
                rsd.server = server;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.30.3/src/libedataserver/e-webdav-discover.c 
new/evolution-data-server-3.30.4/src/libedataserver/e-webdav-discover.c
--- old/evolution-data-server-3.30.3/src/libedataserver/e-webdav-discover.c     
2018-12-10 09:38:40.000000000 +0100
+++ new/evolution-data-server-3.30.4/src/libedataserver/e-webdav-discover.c     
2019-01-07 11:51:55.000000000 +0100
@@ -110,7 +110,7 @@
 
                        length = xmlXPathNodeSetGetLength 
(xpath_obj->nodesetval);
 
-                       for (ii = 0; ii < length; ii++) {
+                       for (ii = 0; ii < length && !g_cancellable_is_cancelled 
(wdd->cancellable); ii++) {
                                gchar *home_set_href;
 
                                full_href = NULL;
@@ -145,7 +145,7 @@
 
                        length = xmlXPathNodeSetGetLength 
(xpath_obj->nodesetval);
 
-                       for (ii = 0; ii < length; ii++) {
+                       for (ii = 0; ii < length && !g_cancellable_is_cancelled 
(wdd->cancellable); ii++) {
                                gchar *home_set_href, *full_href = NULL;
 
                                home_set_href = e_xml_xpath_eval_as_string 
(xpath_ctx, "%s/C:calendar-home-set/D:href[%d]", xpath_prop_prefix, ii + 1);
@@ -204,7 +204,7 @@
                }
 
                principal_href = e_xml_xpath_eval_as_string (xpath_ctx, 
"%s/D:current-user-principal/D:href", xpath_prop_prefix);
-               if (principal_href && *principal_href) {
+               if (principal_href && *principal_href && 
!g_cancellable_is_cancelled (wdd->cancellable)) {
                        full_href = e_webdav_session_ensure_full_uri (webdav, 
request_uri, principal_href);
 
                        if (full_href && *full_href)
@@ -219,7 +219,7 @@
                g_free (principal_href);
 
                principal_href = e_xml_xpath_eval_as_string (xpath_ctx, 
"%s/D:principal-URL/D:href", xpath_prop_prefix);
-               if (principal_href && *principal_href) {
+               if (principal_href && *principal_href && 
!g_cancellable_is_cancelled (wdd->cancellable)) {
                        full_href = e_webdav_session_ensure_full_uri (webdav, 
request_uri, principal_href);
 
                        if (full_href && *full_href)
@@ -238,6 +238,7 @@
                        GSList *resources = NULL;
 
                        if (!g_hash_table_contains (wdd->covered_hrefs, href) &&
+                           !g_cancellable_is_cancelled (wdd->cancellable) &&
                            e_webdav_session_list_sync (webdav, href, 
E_WEBDAV_DEPTH_THIS,
                                E_WEBDAV_LIST_SUPPORTS | 
E_WEBDAV_LIST_DISPLAY_NAME | E_WEBDAV_LIST_DESCRIPTION | E_WEBDAV_LIST_COLOR,
                                &resources, wdd->cancellable, wdd->error)) {


Reply via email to