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)) {