Compare commits

...

No commits in common. 'i8' and 'c9' have entirely different histories.
i8 ... c9

@ -1 +1 @@
85025da5aeda52b9bb9506cb89c7985d1cb9083c SOURCES/evolution-data-server-3.28.5.tar.xz
0c5875d6617a7e3a4614494fe2359a8ebb321c4b SOURCES/evolution-data-server-3.40.4.tar.xz

2
.gitignore vendored

@ -1 +1 @@
SOURCES/evolution-data-server-3.28.5.tar.xz
SOURCES/evolution-data-server-3.40.4.tar.xz

@ -1,300 +0,0 @@
From 9ec477a53e383f73c906e294c56b2f3ce93920f5 Mon Sep 17 00:00:00 2001
From: Sergey Cherevko <s.cherevko@msvsphere-os.ru>
Date: Tue, 14 Nov 2023 14:08:08 +0300
Subject: [PATCH] Updated Russian translation
---
po/ru.po | 80 +++++++++++++++++++++++++++++++++-----------------------
1 file changed, 47 insertions(+), 33 deletions(-)
diff --git a/po/ru.po b/po/ru.po
index 4535c70..dcf0088 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -27,6 +27,10 @@ msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.6.9\n"
+#: ../src/services/evolution-source-registry/builtin/system-proxy.source.in:3
+msgid "Default Proxy Settings"
+msgstr "Настройки прокси-сервера по умолчанию"
+
#: ../addressbook/backends/file/e-book-backend-file.c:120
#, c-format
msgid "Failed to remove file '%s': %s"
@@ -1744,7 +1748,7 @@ msgstr "Неопределённый"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1506
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1555
#, c-format
-msgid "\"%s\" expects one argument"
+msgid "“%s” expects one argument"
msgstr "«%s» предполагает один аргумент"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:92
@@ -1752,12 +1756,12 @@ msgstr "«%s» предполагает один аргумент"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1386
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1394
#, c-format
-msgid "\"%s\" expects the first argument to be a string"
+msgid "“%s” expects the first argument to be a string"
msgstr "«%s» предполагает строку в качестве аргумента 1"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:167
#, c-format
-msgid "\"%s\" expects two or three arguments"
+msgid "“%s” expects two or three arguments"
msgstr "«%s» предполагает два или три аргумента"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:174
@@ -1769,7 +1773,7 @@ msgstr "«%s» предполагает два или три аргумента"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1513
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1562
#, c-format
-msgid "\"%s\" expects the first argument to be a time_t"
+msgid "“%s” expects the first argument to be a time_t"
msgstr "«%s» предполагает тип time_t в качестве аргумента 1"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:183
@@ -1777,17 +1781,17 @@ msgstr "«%s» предполагает тип time_t в качестве арг
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:335
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:833
#, c-format
-msgid "\"%s\" expects the second argument to be a time_t"
+msgid "“%s” expects the second argument to be a time_t"
msgstr "«%s» предполагает тип time_t в качестве аргумента 1"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:193
#, c-format
-msgid "\"%s\" expects the third argument to be a string"
+msgid "“%s” expects the third argument to be a string"
msgstr "«%s» предполагает строку в качестве третьего аргумента"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:255
#, c-format
-msgid "\"%s\" expects none or two arguments"
+msgid "“%s” expects none or two arguments"
msgstr "«%s» предполагает два аргумента или ни одного"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:318
@@ -1795,7 +1799,7 @@ msgstr "«%s» предполагает два аргумента или ни о
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:817
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1448
#, c-format
-msgid "\"%s\" expects two arguments"
+msgid "“%s” expects two arguments"
msgstr "«%s» предполагает два аргумента"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:603
@@ -1806,18 +1810,18 @@ msgstr "«%s» предполагает два аргумента"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1021
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1340
#, c-format
-msgid "\"%s\" expects no arguments"
+msgid "“%s” expects no arguments"
msgstr "«%s» не предполагает аргументов"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:683
#, c-format
-msgid "\"%s\" expects the second argument to be a string"
+msgid "“%s” expects the second argument to be a string"
msgstr "«%s» предполагает строку в качестве аргумента 2"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:714
#, c-format
msgid ""
-"\"%s\" expects the first argument to be either \"any\", \"summary\", or "
+"“%s” expects the first argument to be either \"any\", \"summary\", or "
"\"description\", or \"location\", or \"attendee\", or \"organizer\", or "
"\"classification\""
msgstr ""
@@ -1826,13 +1830,13 @@ msgstr ""
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:885
#, c-format
-msgid "\"%s\" expects at least one argument"
+msgid "“%s” expects at least one argument"
msgstr "«%s» предполагает по крайней мере 1 аргумент"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:900
#, c-format
msgid ""
-"\"%s\" expects all arguments to be strings or one and only one argument to "
+"“%s” expects all arguments to be strings or one and only one argument to "
"be a boolean false (#f)"
msgstr ""
"«%s» предполагает, что все аргументы - строки или единственный аргумент - "
@@ -1840,14 +1844,14 @@ msgstr ""
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1403
#, c-format
-msgid "\"%s\" expects the first argument to be an ISO 8601 date/time string"
+msgid "“%s” expects the first argument to be an ISO 8601 date/time string"
msgstr ""
"«%s» предусматривает, что аргумент 1 должен быть строкой даты в формате ISO "
"8601"
#: ../calendar/libedata-cal/e-cal-backend-sexp.c:1464
#, c-format
-msgid "\"%s\" expects the second argument to be an integer"
+msgid "“%s” expects the second argument to be an integer"
msgstr "«%s» предполагает целое число в качестве аргумента 2"
#: ../calendar/libedata-cal/e-data-cal.c:420
@@ -2234,14 +2238,14 @@ msgstr "Ошибка при обработке запроса парольной
#, c-format
msgid ""
"You need a PIN to unlock the key for your\n"
-"SmartCard: \"%s\""
+"SmartCard: “%s”"
msgstr "Для разблокирования смарткарты необходимо ввести PIN: «%s»"
#: ../camel/camel-gpg-context.c:941
#, c-format
msgid ""
"You need a passphrase to unlock the key for\n"
-"user: \"%s\""
+"user: “%s”"
msgstr ""
"Введите ключевую фразу, чтобы разблокировать\n"
"ключ пользователя: «%s»"
@@ -3041,7 +3045,7 @@ msgstr "Соединение отменено"
#: ../camel/camel-stream-process.c:283
#, c-format
-msgid "Could not connect with command \"%s\": %s"
+msgid "Could not connect with command “%s”: %s"
msgstr "Не удалось подключиться командой «%s»: %s"
#: ../camel/camel-subscribable.c:273
@@ -3530,7 +3534,7 @@ msgstr "Получение списка папок для «%s»"
#: ../camel/providers/imapx/camel-imapx-store.c:2093
#, c-format
msgid ""
-"The folder name \"%s\" is invalid because it contains the character \"%c\""
+"The folder name “%s” is invalid because it contains the character \"%c\""
msgstr "Недопустимое имя папки «%s»: имя содержит символ «%c»"
#: ../camel/providers/imapx/camel-imapx-store.c:2444
@@ -5413,7 +5417,7 @@ msgstr "Запрос аутентификации учётной записи Go
#, c-format
msgid ""
"Login to your Google account and accept conditions in order to access your "
-"address book \"%s\"."
+"address book “%s”."
msgstr ""
"Войдите в свою учётную запись Google и примите условия, чтобы получить "
"доступ к своей адресной книге «%s»."
@@ -5422,7 +5426,7 @@ msgstr ""
#, c-format
msgid ""
"Login to your Google account and accept conditions in order to access your "
-"calendar \"%s\"."
+"calendar “%s”."
msgstr ""
"Войдите в свою учётную запись Google и примите условия, чтобы получить "
"доступ к своему календарю «%s»."
@@ -5431,7 +5435,7 @@ msgstr ""
#, c-format
msgid ""
"Login to your Google account and accept conditions in order to access your "
-"mail account \"%s\"."
+"mail account “%s”."
msgstr ""
"Войдите в свою учётную запись Google и примите условия, чтобы получить "
"доступ к своей учётной записи «%s» для электронной почты."
@@ -5440,7 +5444,7 @@ msgstr ""
#, c-format
msgid ""
"Login to your Google account and accept conditions in order to access your "
-"mail transport \"%s\"."
+"mail transport “%s”."
msgstr ""
"Войдите в свою учётную запись Google и примите условия, чтобы получить "
"доступ к своему почтовому транспорту «%s»."
@@ -5449,7 +5453,7 @@ msgstr ""
#, c-format
msgid ""
"Login to your Google account and accept conditions in order to access your "
-"memo list \"%s\"."
+"memo list “%s”."
msgstr ""
"Войдите в свою учётную запись Google и примите условия, чтобы получить "
"доступ к своему списку заметок «%s»."
@@ -5458,7 +5462,7 @@ msgstr ""
#, c-format
msgid ""
"Login to your Google account and accept conditions in order to access your "
-"task list \"%s\"."
+"task list “%s”."
msgstr ""
"Войдите в свою учётную запись Google и примите условия, чтобы получить "
"доступ к своему списку задач «%s»."
@@ -5467,7 +5471,7 @@ msgstr ""
#, c-format
msgid ""
"Login to your Google account and accept conditions in order to access your "
-"account \"%s\"."
+"account “%s”."
msgstr ""
"Войдите в свою учётную запись Google и примите условия, чтобы получить "
"доступ к своей учётной записи «%s»."
@@ -5498,39 +5502,49 @@ msgstr "Запрос аутентификации"
#: ../libedataserverui/e-credentials-prompter-impl-password.c:157
#, c-format
-msgid "Please enter the password for address book \"%s\"."
+msgid "Please enter the password for address book “%s”."
msgstr "Введите пароль для адресной книги «%s»."
#: ../libedataserverui/e-credentials-prompter-impl-password.c:161
#, c-format
-msgid "Please enter the password for calendar \"%s\"."
+msgid "Please enter the password for calendar “%s”."
msgstr "Введите пароль для календаря «%s»."
#: ../libedataserverui/e-credentials-prompter-impl-password.c:165
#, c-format
-msgid "Please enter the password for mail account \"%s\"."
+msgid "Please enter the password for mail account “%s”."
msgstr "Введите пароль для учётной записи почты «%s»."
#: ../libedataserverui/e-credentials-prompter-impl-password.c:169
#, c-format
-msgid "Please enter the password for mail transport \"%s\"."
+msgid "Please enter the password for mail transport “%s”."
msgstr "Введите пароль для транспорта почты «%s»."
#: ../libedataserverui/e-credentials-prompter-impl-password.c:173
#, c-format
-msgid "Please enter the password for memo list \"%s\"."
+msgid "Please enter the password for memo list “%s”."
msgstr "Введите пароль для списка заметок «%s»."
#: ../libedataserverui/e-credentials-prompter-impl-password.c:177
#, c-format
-msgid "Please enter the password for task list \"%s\"."
+msgid "Please enter the password for task list “%s”."
msgstr "Введите пароль для списка задач «%s»."
#: ../libedataserverui/e-credentials-prompter-impl-password.c:181
#, c-format
-msgid "Please enter the password for account \"%s\"."
+msgid "Please enter the password for account “%s”."
msgstr "Введите пароль для учётной записи «%s»."
+#. Translators: This is part of a credential prompt, constructing for example: "Please enter the password for account “%s”.\n(host: hostname)"
+#: ../src/libedataserverui/e-credentials-prompter-impl-password.c:183
+#, c-format
+msgid ""
+"\n"
+"(host: %s)"
+msgstr ""
+"\n"
+"(узел: %s)"
+
#: ../libedataserverui/e-credentials-prompter-impl-password.c:233
#: ../libedataserverui/e-webdav-discover-widget.c:1064
msgid "_OK"
--
2.39.3

@ -1,91 +0,0 @@
diff -up evolution-data-server-3.28.5/src/camel/camel-stream-buffer.c.CVE-2020-14928 evolution-data-server-3.28.5/src/camel/camel-stream-buffer.c
--- evolution-data-server-3.28.5/src/camel/camel-stream-buffer.c.CVE-2020-14928 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/camel-stream-buffer.c 2020-07-23 10:26:57.962555350 +0200
@@ -524,3 +524,22 @@ camel_stream_buffer_read_line (CamelStre
return g_strdup ((gchar *) sbf->priv->linebuf);
}
+
+/*
+ * camel_stream_buffer_discard_cache:
+ * @sbf: a #CamelStreamBuffer
+ *
+ * Discards any cached data in the @sbf. The next read reads
+ * from the stream.
+ *
+ * Since: 3.28.5-14
+ */
+void
+camel_stream_buffer_discard_cache (CamelStreamBuffer *sbf)
+{
+ g_return_if_fail (CAMEL_IS_STREAM_BUFFER (sbf));
+
+ sbf->priv->ptr = sbf->priv->buf;
+ sbf->priv->end = sbf->priv->buf;
+ sbf->priv->ptr[0] = '\0';
+}
diff -up evolution-data-server-3.28.5/src/camel/camel-stream-buffer.h.CVE-2020-14928 evolution-data-server-3.28.5/src/camel/camel-stream-buffer.h
--- evolution-data-server-3.28.5/src/camel/camel-stream-buffer.h.CVE-2020-14928 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/camel-stream-buffer.h 2020-07-23 10:26:57.963555348 +0200
@@ -93,6 +93,8 @@ gint camel_stream_buffer_gets (CamelStr
gchar * camel_stream_buffer_read_line (CamelStreamBuffer *sbf,
GCancellable *cancellable,
GError **error);
+void camel_stream_buffer_discard_cache
+ (CamelStreamBuffer *sbf);
G_END_DECLS
diff -up evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-store.c.CVE-2020-14928 evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-store.c
--- evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-store.c.CVE-2020-14928 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-store.c 2020-07-23 10:26:57.963555348 +0200
@@ -208,6 +208,8 @@ connect_to_server (CamelService *service
if (tls_stream != NULL) {
camel_stream_set_base_stream (stream, tls_stream);
+ /* Truncate any left cached input from the insecure part of the session */
+ camel_pop3_stream_discard_cache (pop3_engine->stream);
g_object_unref (tls_stream);
} else {
g_prefix_error (
diff -up evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.c.CVE-2020-14928 evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.c
--- evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.c.CVE-2020-14928 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.c 2020-07-23 10:26:57.963555348 +0200
@@ -457,3 +457,14 @@ camel_pop3_stream_getd (CamelPOP3Stream
return 1;
}
+
+void
+camel_pop3_stream_discard_cache (CamelPOP3Stream *is)
+{
+ if (is) {
+ is->ptr = is->end = is->buf;
+ is->lineptr = is->linebuf;
+ is->lineend = is->linebuf + CAMEL_POP3_STREAM_LINE_SIZE;
+ is->ptr[0] = '\n';
+ }
+}
diff -up evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.h.CVE-2020-14928 evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.h
--- evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.h.CVE-2020-14928 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/providers/pop3/camel-pop3-stream.h 2020-07-23 10:26:57.963555348 +0200
@@ -87,6 +87,7 @@ gint camel_pop3_stream_getd (CamelPOP3
guint *len,
GCancellable *cancellable,
GError **error);
+void camel_pop3_stream_discard_cache (CamelPOP3Stream *is);
G_END_DECLS
diff -up evolution-data-server-3.28.5/src/camel/providers/smtp/camel-smtp-transport.c.CVE-2020-14928 evolution-data-server-3.28.5/src/camel/providers/smtp/camel-smtp-transport.c
--- evolution-data-server-3.28.5/src/camel/providers/smtp/camel-smtp-transport.c.CVE-2020-14928 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/providers/smtp/camel-smtp-transport.c 2020-07-23 10:26:57.963555348 +0200
@@ -319,6 +319,8 @@ connect_to_server (CamelService *service
if (tls_stream != NULL) {
camel_stream_set_base_stream (stream, tls_stream);
+ /* Truncate any left cached input from the insecure part of the session */
+ camel_stream_buffer_discard_cache (transport->istream);
g_object_unref (tls_stream);
} else {
g_prefix_error (

@ -1,13 +0,0 @@
diff -up evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c.CVE-2020-16117 evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c
--- evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c.CVE-2020-16117 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c 2020-09-30 09:10:32.240788043 +0200
@@ -2979,7 +2979,8 @@ connected:
/* See if we got new capabilities
* in the STARTTLS response. */
- imapx_free_capability (is->priv->cinfo);
+ if (is->priv->cinfo)
+ imapx_free_capability (is->priv->cinfo);
is->priv->cinfo = NULL;
if (ic->status->condition == IMAPX_CAPABILITY) {
is->priv->cinfo = ic->status->u.cinfo;

@ -1,13 +0,0 @@
diff -up evolution-data-server-3.28.5/src/calendar/backends/file/e-cal-backend-file.c.calbackendfile-interval-tree-destroy evolution-data-server-3.28.5/src/calendar/backends/file/e-cal-backend-file.c
--- evolution-data-server-3.28.5/src/calendar/backends/file/e-cal-backend-file.c.calbackendfile-interval-tree-destroy 2021-06-16 16:09:19.863360296 +0200
+++ evolution-data-server-3.28.5/src/calendar/backends/file/e-cal-backend-file.c 2021-06-16 16:10:14.225398710 +0200
@@ -298,7 +298,8 @@ free_calendar_data (ECalBackendFile *cbf
g_rec_mutex_lock (&priv->idle_save_rmutex);
- e_intervaltree_destroy (priv->interval_tree);
+ if (priv->interval_tree)
+ e_intervaltree_destroy (priv->interval_tree);
priv->interval_tree = NULL;
free_calendar_components (priv->comp_uid_hash, priv->icalcomp);

@ -1,44 +0,0 @@
diff -up evolution-data-server-3.28.5/cmake/modules/PrintableOptions.cmake.cmake-variable-name-comparison evolution-data-server-3.28.5/cmake/modules/PrintableOptions.cmake
--- evolution-data-server-3.28.5/cmake/modules/PrintableOptions.cmake.cmake-variable-name-comparison 2021-06-16 16:45:58.554763738 +0200
+++ evolution-data-server-3.28.5/cmake/modules/PrintableOptions.cmake 2021-06-16 16:47:13.343021509 +0200
@@ -19,32 +19,32 @@
# prints all the build options previously added with the above functions
macro(add_printable_variable_bare _name)
- if(_name STREQUAL "")
+ if("${_name}" STREQUAL "")
message(FATAL_ERROR "variable name cannot be empty")
- endif(_name STREQUAL "")
+ endif("${_name}" STREQUAL "")
list(APPEND _printable_options ${_name})
endmacro()
macro(add_printable_option _name _description _default_value)
- if(_name STREQUAL "")
+ if("${_name}" STREQUAL "")
message(FATAL_ERROR "option name cannot be empty")
- endif(_name STREQUAL "")
+ endif("${_name}" STREQUAL "")
option(${_name} ${_description} ${_default_value})
add_printable_variable_bare(${_name})
endmacro()
macro(add_printable_variable _name _description _default_value)
- if(_name STREQUAL "")
+ if("${_name}" STREQUAL "")
message(FATAL_ERROR "variable name cannot be empty")
- endif(_name STREQUAL "")
+ endif("${_name}" STREQUAL "")
set(${_name} ${_default_value} CACHE STRING ${_description})
add_printable_variable_bare(${_name})
endmacro()
macro(add_printable_variable_path _name _description _default_value)
- if(_name STREQUAL "")
+ if("${_name}" STREQUAL "")
message(FATAL_ERROR "path variable name cannot be empty")
- endif(_name STREQUAL "")
+ endif("${_name}" STREQUAL "")
set(${_name} ${_default_value} CACHE PATH ${_description})
add_printable_variable_bare(${_name})
endmacro()

@ -1,18 +0,0 @@
diff -up evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c.cve-2019-3890 evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c
--- evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c.cve-2019-3890 2019-04-15 09:25:49.273786456 +0200
+++ evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c 2019-04-15 09:35:00.784778830 +0200
@@ -3147,11 +3147,13 @@ e_util_can_use_collection_as_credential_
if (can_use_collection) {
gchar *method_source, *method_collection;
- /* Also check the method; if different, then rather not use the collection */
+ /* Also check the method; if different, then rather not use the collection.
+ Consider 'none' method on the child as the same as the collection method. */
method_source = e_source_authentication_dup_method (auth_source);
method_collection = e_source_authentication_dup_method (auth_collection);
can_use_collection = !method_source || !method_collection ||
+ g_ascii_strcasecmp (method_source, "none") == 0 ||
g_ascii_strcasecmp (method_source, method_collection) == 0;
g_free (method_source);

@ -1,24 +0,0 @@
diff -up evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c.dav-online-load-href evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c
--- evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c.dav-online-load-href 2018-11-26 12:18:57.874823757 +0100
+++ evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c 2018-11-26 12:20:27.967822511 +0100
@@ -993,6 +993,8 @@ ebb_webdav_load_contact_sync (EBookMetaB
if (!*out_contact) {
success = FALSE;
g_propagate_error (&local_error, EDB_ERROR_EX (E_DATA_BOOK_STATUS_OTHER_ERROR, _("Received object is not a valid vCard")));
+ } else if (out_extra) {
+ *out_extra = g_strdup (href);
}
}
diff -up evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c.dav-online-load-href evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c
--- evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c.dav-online-load-href 2018-11-26 12:19:15.809823509 +0100
+++ evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c 2018-11-26 12:20:03.976822843 +0100
@@ -1135,6 +1135,8 @@ ecb_caldav_load_component_sync (ECalMeta
if (!*out_component) {
success = FALSE;
g_propagate_error (&local_error, EDC_ERROR (InvalidObject));
+ } else if (out_extra) {
+ *out_extra = g_strdup (href);
}
}

@ -1,34 +0,0 @@
diff -up evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c.dav-remove-ignores-not-found evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c
--- evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c.dav-remove-ignores-not-found 2018-11-28 14:31:11.278711852 +0100
+++ evolution-data-server-3.28.5/src/addressbook/backends/webdav/e-book-backend-webdav.c 2018-11-28 14:32:38.231710649 +0100
@@ -1160,6 +1160,13 @@ ebb_webdav_remove_contact_sync (EBookMet
g_object_unref (contact);
g_free (etag);
+ /* Ignore not found errors, this was a delete and the resource is gone.
+ It can be that it had been deleted on the server by other application. */
+ if (g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_NOT_FOUND)) {
+ g_clear_error (&local_error);
+ success = TRUE;
+ }
+
if (local_error) {
ebb_webdav_check_credentials_error (bbdav, webdav, local_error);
g_propagate_error (error, local_error);
diff -up evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c.dav-remove-ignores-not-found evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c
--- evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c.dav-remove-ignores-not-found 2018-11-28 14:30:52.299712114 +0100
+++ evolution-data-server-3.28.5/src/calendar/backends/caldav/e-cal-backend-caldav.c 2018-11-28 14:31:11.279711852 +0100
@@ -1320,6 +1320,13 @@ ecb_caldav_remove_component_sync (ECalMe
icalcomponent_free (icalcomp);
g_free (etag);
+ /* Ignore not found errors, this was a delete and the resource is gone.
+ It can be that it had been deleted on the server by other application. */
+ if (g_error_matches (local_error, SOUP_HTTP_ERROR, SOUP_STATUS_NOT_FOUND)) {
+ g_clear_error (&local_error);
+ success = TRUE;
+ }
+
if (local_error) {
ecb_caldav_check_credentials_error (cbdav, webdav, local_error);
g_propagate_error (error, local_error);

@ -1,125 +0,0 @@
diff -up evolution-data-server-3.28.5/src/libebackend/e-dbus-server.c.delay-new-module-load evolution-data-server-3.28.5/src/libebackend/e-dbus-server.c
--- evolution-data-server-3.28.5/src/libebackend/e-dbus-server.c.delay-new-module-load 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/libebackend/e-dbus-server.c 2020-01-15 13:29:46.090644022 +0100
@@ -75,6 +75,78 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (
EDBusServer, e_dbus_server, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL))
+typedef struct _ModuleLoadData {
+ GWeakRef server_wr;
+ gchar *filename;
+} ModuleLoadData;
+
+static ModuleLoadData *
+module_load_data_new (EDBusServer *server,
+ const gchar *filename)
+{
+ ModuleLoadData *mld;
+
+ mld = g_slice_new0 (ModuleLoadData);
+ g_weak_ref_init (&mld->server_wr, server);
+ mld->filename = g_strdup (filename);
+
+ return mld;
+}
+
+static void
+module_load_data_free (gpointer ptr)
+{
+ ModuleLoadData *mld = ptr;
+
+ if (mld) {
+ g_weak_ref_clear (&mld->server_wr);
+ g_free (mld->filename);
+ g_slice_free (ModuleLoadData, mld);
+ }
+}
+
+static gboolean
+e_dbus_server_load_module_timeout_cb (gpointer user_data)
+{
+ ModuleLoadData *mld = user_data;
+ EDBusServer *server;
+
+ g_return_val_if_fail (mld != NULL, FALSE);
+
+ server = g_weak_ref_get (&mld->server_wr);
+ if (server) {
+ EModule *module;
+
+ e_source_registry_debug_print ("Loading module '%s'\n", mld->filename);
+
+ module = e_module_load_file (mld->filename);
+ if (module) {
+ g_type_module_unuse ((GTypeModule *) module);
+
+ e_dbus_server_quit (server, E_DBUS_SERVER_EXIT_RELOAD);
+ }
+
+ g_object_unref (server);
+ }
+
+ return FALSE;
+}
+
+static void
+e_dbus_server_schedule_module_load (EDBusServer *server,
+ const gchar *filename)
+{
+ g_return_if_fail (E_IS_DBUS_SERVER (server));
+ g_return_if_fail (filename != NULL);
+
+ e_source_registry_debug_print ("Schedule load of module '%s'\n", filename);
+
+ /* Delay the load by 10 seconds, in case the module doesn't have placed
+ all its libraries in the expected directories. */
+ g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, 10, e_dbus_server_load_module_timeout_cb,
+ module_load_data_new (server, filename), module_load_data_free);
+}
+
static void
dbus_server_bus_acquired_cb (GDBusConnection *connection,
const gchar *bus_name,
@@ -552,38 +624,27 @@ dbus_server_module_directory_changed_cb
if (event_type == G_FILE_MONITOR_EVENT_RENAMED && other_file) {
G_LOCK (loaded_modules);
if (!g_hash_table_contains (loaded_modules, filename)) {
+ gchar *other_filename = g_file_get_path (other_file);
+ e_source_registry_debug_print ("Module file '%s' renamed to '%s'\n", filename, other_filename);
g_free (filename);
- filename = g_file_get_path (other_file);
+ filename = other_filename;
event_type = G_FILE_MONITOR_EVENT_CREATED;
}
G_UNLOCK (loaded_modules);
}
if (filename && g_str_has_suffix (filename, "." G_MODULE_SUFFIX)) {
- gboolean any_loaded = FALSE;
-
if (event_type == G_FILE_MONITOR_EVENT_CREATED ||
event_type == G_FILE_MONITOR_EVENT_MOVED_IN) {
G_LOCK (loaded_modules);
if (!g_hash_table_contains (loaded_modules, filename)) {
- EModule *module;
-
g_hash_table_add (loaded_modules, g_strdup (filename));
-
- module = e_module_load_file (filename);
- if (module) {
- any_loaded = TRUE;
-
- g_type_module_unuse ((GTypeModule *) module);
- }
+ e_dbus_server_schedule_module_load (server, filename);
}
G_UNLOCK (loaded_modules);
}
-
- if (any_loaded)
- e_dbus_server_quit (server, E_DBUS_SERVER_EXIT_RELOAD);
}
g_free (filename);

@ -1,42 +0,0 @@
diff -up evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c.imapx-icloud-mail evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c
--- evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c.imapx-icloud-mail 2021-04-23 09:30:07.734875376 +0200
+++ evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c 2021-04-23 09:31:45.321718451 +0200
@@ -629,6 +629,12 @@ imapx_server_stash_command_arguments (Ca
if (CAMEL_IMAPX_HAVE_CAPABILITY (is->priv->cinfo, SPECIAL_USE) || CAMEL_IMAPX_HAVE_CAPABILITY (is->priv->cinfo, X_GM_EXT_1))
g_string_append_printf (buffer, " SPECIAL-USE");
is->priv->list_return_opts = g_string_free (buffer, FALSE);
+ } else if (!is->priv->is_broken_cyrus && CAMEL_IMAPX_HAVE_CAPABILITY (is->priv->cinfo, LIST_STATUS)) {
+ buffer = g_string_new ("");
+ g_string_append_printf (
+ buffer, "STATUS (%s)",
+ is->priv->status_data_items);
+ is->priv->list_return_opts = g_string_free (buffer, FALSE);
} else {
is->priv->list_return_opts = NULL;
}
@@ -6208,7 +6214,7 @@ camel_imapx_server_list_sync (CamelIMAPX
camel_imapx_command_unref (ic);
- if (success && !is->priv->list_return_opts) {
+ if (success && (!is->priv->list_return_opts || CAMEL_IMAPX_LACK_CAPABILITY (is->priv->cinfo, LIST_EXTENDED))) {
ic = camel_imapx_command_new (is, CAMEL_IMAPX_JOB_LSUB, "LSUB \"\" %s",
pattern);
diff -up evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c.imapx-icloud-mail evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c
--- evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c.imapx-icloud-mail 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c 2021-04-23 09:30:07.736875373 +0200
@@ -580,13 +580,6 @@ imapx_parse_capability (CamelIMAPXInputS
stream, &token, &len, cancellable, &local_error);
}
- /* Some capabilities are extensions of other capabilities.
- * Make sure all prerequisite capability flags are present. */
-
- /* LIST-STATUS is an extension of LIST-EXTENDED. */
- if (CAMEL_IMAPX_HAVE_CAPABILITY (cinfo, LIST_STATUS))
- cinfo->capa |= imapx_lookup_capability ("LIST-EXTENDED");
-
if (local_error != NULL) {
g_propagate_error (error, local_error);
imapx_free_capability (cinfo);

@ -1,55 +0,0 @@
From 6022b2b7816fea84919eef5993363f636bf734dc Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Mon, 3 Sep 2018 09:43:50 +0200
Subject: evo-I#86 - Quoting of plain text mail into HTML mode mangles deeper
levels
Related to https://gitlab.gnome.org/GNOME/evolution/issues/86
diff --git a/src/camel/camel-mime-filter-tohtml.c b/src/camel/camel-mime-filter-tohtml.c
index 07024aa1a..df6283655 100644
--- a/src/camel/camel-mime-filter-tohtml.c
+++ b/src/camel/camel-mime-filter-tohtml.c
@@ -303,6 +303,7 @@ html_convert (CamelMimeFilter *mime_filter,
outend = mime_filter->outbuf + mime_filter->outsize;
if (priv->flags & CAMEL_MIME_FILTER_TOHTML_PRE && !priv->pre_open) {
+ outptr = check_size (mime_filter, outptr, &outend, 6);
outptr = g_stpcpy (outptr, "<pre>");
priv->pre_open = TRUE;
}
@@ -339,13 +340,13 @@ html_convert (CamelMimeFilter *mime_filter,
depth = citation_depth (start, inend, &skip);
while (priv->blockquote_depth < depth) {
- outptr = check_size (mime_filter, outptr, &outend, 30);
- outptr = g_stpcpy (outptr, "<blockquote type=\"cite\">\n");
+ outptr = check_size (mime_filter, outptr, &outend, 25);
+ outptr = g_stpcpy (outptr, "<blockquote type=\"cite\">");
priv->blockquote_depth++;
}
while (priv->blockquote_depth > depth) {
- outptr = check_size (mime_filter, outptr, &outend, 15);
- outptr = g_stpcpy (outptr, "</blockquote>\n");
+ outptr = check_size (mime_filter, outptr, &outend, 14);
+ outptr = g_stpcpy (outptr, "</blockquote>");
priv->blockquote_depth--;
}
#if FOOLISHLY_UNMUNGE_FROM
@@ -463,14 +464,14 @@ html_convert (CamelMimeFilter *mime_filter,
outptr, &outend);
while (priv->blockquote_depth > 0) {
- outptr = check_size (mime_filter, outptr, &outend, 15);
+ outptr = check_size (mime_filter, outptr, &outend, 14);
outptr = g_stpcpy (outptr, "</blockquote>");
priv->blockquote_depth--;
}
if (priv->pre_open) {
/* close the pre-tag */
- outptr = check_size (mime_filter, outptr, &outend, 10);
+ outptr = check_size (mime_filter, outptr, &outend, 7);
outptr = g_stpcpy (outptr, "</pre>");
priv->pre_open = FALSE;
}

@ -1,26 +0,0 @@
diff -up evolution-data-server-3.28.5/src/camel/camel-folder-summary.c.nonstandard-uuencode-encoding evolution-data-server-3.28.5/src/camel/camel-folder-summary.c
--- evolution-data-server-3.28.5/src/camel/camel-folder-summary.c.nonstandard-uuencode-encoding 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/camel-folder-summary.c 2021-09-30 17:30:47.674951472 +0200
@@ -3153,7 +3153,8 @@ summary_traverse_content_with_parser (Ca
else
camel_mime_filter_reset (summary->priv->filter_qp);
enc_id = camel_mime_parser_filter_add (mp, summary->priv->filter_qp);
- } else if (!g_ascii_strcasecmp (encoding, "x-uuencode")) {
+ } else if (!g_ascii_strcasecmp (encoding, "x-uuencode") ||
+ !g_ascii_strcasecmp (encoding, "uuencode")) {
d (printf (" decoding x-uuencode\n"));
if (summary->priv->filter_uu == NULL)
summary->priv->filter_uu = camel_mime_filter_basic_new (CAMEL_MIME_FILTER_BASIC_UU_DEC);
diff -up evolution-data-server-3.28.5/src/camel/camel-mime-utils.c.nonstandard-uuencode-encoding evolution-data-server-3.28.5/src/camel/camel-mime-utils.c
--- evolution-data-server-3.28.5/src/camel/camel-mime-utils.c.nonstandard-uuencode-encoding 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/camel/camel-mime-utils.c 2021-09-30 17:30:47.674951472 +0200
@@ -3268,6 +3268,9 @@ camel_transfer_encoding_from_string (con
for (i = 0; i < G_N_ELEMENTS (encodings); i++)
if (!g_ascii_strcasecmp (string, encodings[i]))
return i;
+
+ if (!g_ascii_strcasecmp (string, "uuencode"))
+ return CAMEL_TRANSFER_ENCODING_UUENCODE;
}
return CAMEL_TRANSFER_ENCODING_DEFAULT;

@ -1,117 +0,0 @@
diff -up evolution-data-server-3.28.5/tests/libedata-cal/components/event-7.ics.test-cal-meta-backend-without-evolution evolution-data-server-3.28.5/tests/libedata-cal/components/event-7.ics
--- evolution-data-server-3.28.5/tests/libedata-cal/components/event-7.ics.test-cal-meta-backend-without-evolution 2020-01-16 08:28:52.842204524 +0100
+++ evolution-data-server-3.28.5/tests/libedata-cal/components/event-7.ics 2020-01-16 08:30:30.726203170 +0100
@@ -6,7 +6,7 @@ DTEND;TZID=/freeassociation.sourceforge.
SEQUENCE:1
SUMMARY:With attachment
TRANSP:OPAQUE
-ATTACH:file:///usr/share/icons/hicolor/48x48/apps/evolution.png
+ATTACH:$EVENT1URI$
CLASS:PUBLIC
CREATED:20170221T125054Z
LAST-MODIFIED:20170221T125054Z
diff -up evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.c.test-cal-meta-backend-without-evolution evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.c
--- evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.c.test-cal-meta-backend-without-evolution 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.c 2020-01-16 08:28:52.842204524 +0100
@@ -114,13 +114,10 @@ tcu_fixture_teardown (TCUFixture *fixtur
}
gchar *
-tcu_new_icalstring_from_test_case (const gchar *case_name)
+tcu_get_test_case_filename (const gchar *case_name)
{
gchar *filename;
gchar *case_filename;
- GFile * file;
- GError *error = NULL;
- gchar *icalstring = NULL;
case_filename = g_strdup_printf ("%s.ics", case_name);
@@ -132,16 +129,48 @@ tcu_new_icalstring_from_test_case (const
else
filename = g_build_filename (SRCDIR, "..", "libedata-cal", "components", case_filename, NULL);
+ g_free (case_filename);
+
+ return filename;
+}
+
+gchar *
+tcu_new_icalstring_from_test_case (const gchar *case_name)
+{
+ gchar *filename;
+ GFile * file;
+ GError *error = NULL;
+ gchar *icalstring = NULL, *uripart;
+
+ filename = tcu_get_test_case_filename (case_name);
+
file = g_file_new_for_path (filename);
if (!g_file_load_contents (file, NULL, &icalstring, NULL, NULL, &error))
g_error (
"Failed to read test iCal string file '%s': %s",
filename, error->message);
- g_free (case_filename);
g_free (filename);
g_object_unref (file);
+ uripart = strstr (icalstring, "$EVENT1URI$");
+ if (uripart) {
+ gchar *uri;
+ GString *str;
+
+ filename = tcu_get_test_case_filename ("event-1");
+ uri = g_filename_to_uri (filename, NULL, NULL);
+ g_free (filename);
+
+ str = g_string_new_len (icalstring, uripart - icalstring);
+ g_string_append (str, uri);
+ g_string_append (str, uripart + 11);
+ g_free (icalstring);
+ g_free (uri);
+
+ icalstring = g_string_free (str, FALSE);
+ }
+
return icalstring;
}
diff -up evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.h.test-cal-meta-backend-without-evolution evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.h
--- evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.h.test-cal-meta-backend-without-evolution 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/tests/libedata-cal/test-cal-cache-utils.h 2020-01-16 08:28:52.842204524 +0100
@@ -46,6 +46,7 @@ ECalComponent * tcu_new_component_from_t
void tcu_add_component_from_test_case (TCUFixture *fixture,
const gchar *case_name,
ECalComponent **out_component);
+gchar * tcu_get_test_case_filename (const gchar *case_name);
G_END_DECLS
diff -up evolution-data-server-3.28.5/tests/libedata-cal/test-cal-meta-backend.c.test-cal-meta-backend-without-evolution evolution-data-server-3.28.5/tests/libedata-cal/test-cal-meta-backend.c
--- evolution-data-server-3.28.5/tests/libedata-cal/test-cal-meta-backend.c.test-cal-meta-backend-without-evolution 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/tests/libedata-cal/test-cal-meta-backend.c 2020-01-16 08:28:52.842204524 +0100
@@ -1274,6 +1274,7 @@ static void
test_get_attachment_uris (ECalMetaBackend *meta_backend)
{
ECalBackendSyncClass *backend_class;
+ gchar *expected_uri, *filename;
GSList *uris = NULL;
GError *error = NULL;
@@ -1306,7 +1307,13 @@ test_get_attachment_uris (ECalMetaBacken
g_assert_no_error (error);
g_assert_nonnull (uris);
g_assert_cmpint (g_slist_length (uris), ==, 1);
- g_assert_cmpstr (uris->data, ==, "file:///usr/share/icons/hicolor/48x48/apps/evolution.png");
+
+ filename = tcu_get_test_case_filename ("event-1");
+ expected_uri = g_filename_to_uri (filename, NULL, NULL);
+ g_free (filename);
+
+ g_assert_cmpstr (uris->data, ==, expected_uri);
+ g_free (expected_uri);
g_slist_free_full (uris, g_free);
}

@ -1,100 +0,0 @@
diff -up evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c.test-cal-client-get-revision evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c
--- evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c 2019-05-23 19:31:07.484064234 +0200
@@ -1856,6 +1856,12 @@ e_data_book_report_backend_property_chan
g_strfreev (strv);
}
+ /* Ensure the property change signal on the D-Bus is invoked immediately, not on idle */
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (dbus_interface));
+
+ if (book->priv->connection && !g_dbus_connection_is_closed (book->priv->connection))
+ g_dbus_connection_flush_sync (book->priv->connection, NULL, NULL);
+
/* Disregard anything else. */
}
diff -up evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c.test-cal-client-get-revision evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c
--- evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c 2019-05-23 19:31:07.485064234 +0200
@@ -2470,6 +2470,12 @@ e_data_cal_report_backend_property_chang
if (g_str_equal (prop_name, CAL_BACKEND_PROPERTY_DEFAULT_OBJECT))
e_dbus_calendar_set_default_object (dbus_interface, prop_value);
+ /* Ensure the property change signal on the D-Bus is invoked immediately, not on idle */
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (dbus_interface));
+
+ if (cal->priv->connection && !g_dbus_connection_is_closed (cal->priv->connection))
+ g_dbus_connection_flush_sync (cal->priv->connection, NULL, NULL);
+
/* Disregard anything else. */
}
diff -up evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c.test-cal-client-get-revision evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c
--- evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c 2019-05-23 19:31:07.485064234 +0200
@@ -48,9 +48,22 @@ get_revision_compare_cycle (EBookClient
if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error))
g_error ("Error getting book revision: %s", error->message);
+ /* Sometimes, kind of rarely, the D-Bus property change is not delivered on time,
+ thus give it some time to be received and processed. */
+ if (g_strcmp0 (revision_before, revision_after) == 0) {
+ g_message (" D-Bus property 'revision' change not received yet, trying to wait a bit");
+
+ g_usleep (G_USEC_PER_SEC / 2);
+
+ g_clear_pointer (&revision_after, g_free);
+
+ if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error))
+ g_error ("Error getting book revision: %s", error->message);
+ }
+
g_assert (revision_before);
g_assert (revision_after);
- g_assert (strcmp (revision_before, revision_after) != 0);
+ g_assert_cmpstr (revision_before, !=, revision_after);
g_message (
"Passed cycle, revision before '%s' revision after '%s'",
diff -up evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c.test-cal-client-get-revision evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c
--- evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c 2019-05-23 19:31:07.485064234 +0200
@@ -42,18 +42,34 @@ get_revision_compare_cycle (ECalClient *
if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION,
&revision_before, NULL, &error))
- g_error ("Error getting book revision: %s", error->message);
+ g_error ("Error getting calendar revision: %s", error->message);
if (!e_cal_client_create_object_sync (client, icalcomp, &uid, NULL, &error))
g_error ("Error creating object: %s", error->message);
+ if (!e_cal_client_remove_object_sync (client, uid, NULL, E_CAL_OBJ_MOD_ALL, NULL, &error))
+ g_error ("Error removing created object: %s", error->message);
+
if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION,
&revision_after, NULL, &error))
- g_error ("Error getting book revision: %s", error->message);
+ g_error ("Error getting calendar revision: %s", error->message);
+
+ /* Sometimes, kind of rarely, the D-Bus property change is not delivered on time,
+ thus give it some time to be received and processed. */
+ if (g_strcmp0 (revision_before, revision_after) == 0) {
+ g_message (" D-Bus property 'revision' change not received yet, trying to wait a bit");
+
+ g_usleep (G_USEC_PER_SEC / 2);
+
+ g_clear_pointer (&revision_after, g_free);
+
+ if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error))
+ g_error ("Error getting book revision: %s", error->message);
+ }
g_assert (revision_before);
g_assert (revision_after);
- g_assert (strcmp (revision_before, revision_after) != 0);
+ g_assert_cmpstr (revision_before, !=, revision_after);
g_message (
"Passed cycle, revision before '%s' revision after '%s'",

@ -1,341 +0,0 @@
diff -up evolution-data-server-3.28.5/src/libebackend/e-data-factory.c.tests-retry-client-open evolution-data-server-3.28.5/src/libebackend/e-data-factory.c
--- evolution-data-server-3.28.5/src/libebackend/e-data-factory.c.tests-retry-client-open 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/libebackend/e-data-factory.c 2018-12-04 10:42:29.837599599 +0100
@@ -1278,6 +1278,13 @@ data_factory_spawn_subprocess_backend (E
priv = data_factory->priv;
source = e_source_registry_ref_source (priv->registry, uid);
+
+ if (!source) {
+ g_set_error (
+ &error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND,
+ _("No such source for UID “%s”"), uid);
+ }
+
if (source && e_source_has_extension (source, extension_name)) {
ESourceBackend *extension;
@@ -1372,7 +1379,7 @@ data_factory_spawn_subprocess_backend (E
NULL);
g_object_unref (subprocess);
- } else {
+ } else if (!error) {
error = g_error_new (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
_("Backend factory for source “%s” and extension “%s” cannot be found."),
uid, extension_name);
diff -up evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-free-busy.c.tests-retry-client-open evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-free-busy.c
--- evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-free-busy.c.tests-retry-client-open 2018-12-04 10:43:10.449599037 +0100
+++ evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-free-busy.c 2018-12-04 10:43:19.837598907 +0100
@@ -94,6 +94,49 @@ teardown_fixture (ETestServerFixture *fi
}
static void
+add_component_sync (ECalClient *cal_client)
+{
+ const gchar *comp_str =
+ "BEGIN:VEVENT\r\n"
+ "UID:test-fb-event-1\r\n"
+ "DTSTAMP:20040212T000000Z\r\n"
+ "DTSTART:20040213T060000Z\r\n"
+ "DTEND:20040213T080000Z\r\n"
+ "SUMMARY:Test event\r\n"
+ "TRANSP:OPAQUE\r\n"
+ "CLASS:PUBLIC\r\n"
+ "CREATED:20040211T080000Z\r\n"
+ "LAST-MODIFIED:20040211T080000Z\r\n"
+ "END:VEVENT\r\n";
+ icalcomponent *icalcomp;
+ GError *error = NULL;
+
+ icalcomp = icalcomponent_new_from_string (comp_str);
+ g_assert_nonnull (icalcomp);
+
+ if (!e_cal_client_create_object_sync (cal_client, icalcomp, NULL, NULL, &error))
+ g_error ("Failed to add component: %s", error ? error->message : "Unknown error");
+
+ icalcomponent_free (icalcomp);
+ g_clear_error (&error);
+}
+
+static void
+wait_for_dbus_signal (GMainLoop *loop)
+{
+ GMainContext *main_context;
+ gint retries = 0;
+
+ main_context = g_main_loop_get_context (loop);
+
+ while (!received_free_busy_data && retries < 5) {
+ retries++;
+
+ g_main_context_iteration (main_context, TRUE);
+ }
+}
+
+static void
free_busy_data_cb (ECalClient *client,
const GSList *free_busy,
const gchar *func_name)
@@ -114,9 +157,13 @@ test_get_free_busy_sync (ETestServerFixt
cal_client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient);
+ add_component_sync (cal_client);
+
/* This is set by the free-busy-data callback */
received_free_busy_data = FALSE;
+ g_signal_connect (cal_client, "free-busy-data", G_CALLBACK (free_busy_data_cb), (gpointer) G_STRFUNC);
+
utc = icaltimezone_get_utc_timezone ();
start = time_from_isodate ("20040212T000000Z");
end = time_add_day_with_zone (start, 2, utc);
@@ -127,6 +174,9 @@ test_get_free_busy_sync (ETestServerFixt
g_slist_free (users);
+ wait_for_dbus_signal (fixture->loop);
+
+ g_assert (received_free_busy_data);
g_assert (freebusy_data);
g_slist_free_full (freebusy_data, g_object_unref);
@@ -147,6 +197,8 @@ async_get_free_busy_result_ready (GObjec
if (!e_cal_client_get_free_busy_finish (cal_client, result, &freebusy_data, &error))
g_error ("create object finish: %s", error->message);
+ wait_for_dbus_signal (loop);
+
g_assert (received_free_busy_data);
g_assert (freebusy_data);
@@ -166,6 +218,8 @@ test_get_free_busy_async (ETestServerFix
cal_client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient);
+ add_component_sync (cal_client);
+
/* This is set by the free-busy-data callback */
received_free_busy_data = FALSE;
diff -up evolution-data-server-3.28.5/tests/test-server-utils/e-test-server-utils.c.tests-retry-client-open evolution-data-server-3.28.5/tests/test-server-utils/e-test-server-utils.c
--- evolution-data-server-3.28.5/tests/test-server-utils/e-test-server-utils.c.tests-retry-client-open 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/tests/test-server-utils/e-test-server-utils.c 2018-12-04 10:43:19.838598907 +0100
@@ -199,6 +199,7 @@ assert_object_finalized (ETestServerFixt
typedef struct {
ETestServerFixture *fixture;
ETestServerClosure *closure;
+ guint retries;
} FixturePair;
static gboolean
@@ -332,12 +333,15 @@ e_test_server_utils_bootstrap_timeout (F
return FALSE;
}
+static gboolean e_test_server_utils_retry_open_client_cb (gpointer user_data);
+
static void
e_test_server_utils_client_ready (GObject *source_object,
GAsyncResult *res,
gpointer user_data)
{
FixturePair *pair = (FixturePair *) user_data;
+ gboolean need_retry = FALSE;
GError *error = NULL;
switch (pair->closure->type) {
@@ -345,7 +349,10 @@ e_test_server_utils_client_ready (GObjec
pair->fixture->service.book_client = (EBookClient *)
e_book_client_connect_finish (res, &error);
- if (!pair->fixture->service.book_client)
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else if (!pair->fixture->service.book_client)
g_error ("Unable to create the test book: %s", error->message);
break;
@@ -353,7 +360,10 @@ e_test_server_utils_client_ready (GObjec
pair->fixture->service.book_client = (EBookClient *)
e_book_client_connect_direct_finish (res, &error);
- if (!pair->fixture->service.book_client)
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else if (!pair->fixture->service.book_client)
g_error ("Unable to create the test book: %s", error->message);
break;
@@ -361,7 +371,10 @@ e_test_server_utils_client_ready (GObjec
pair->fixture->service.calendar_client = (ECalClient *)
e_cal_client_connect_finish (res, &error);
- if (!pair->fixture->service.calendar_client)
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else if (!pair->fixture->service.calendar_client)
g_error ("Unable to create the test calendar: %s", error->message);
break;
@@ -371,6 +384,14 @@ e_test_server_utils_client_ready (GObjec
g_assert_not_reached ();
}
+ g_clear_error (&error);
+
+ if (need_retry) {
+ pair->retries++;
+ g_timeout_add_seconds (1, e_test_server_utils_retry_open_client_cb, pair);
+ return;
+ }
+
/* Track ref counts now that we have a client */
add_weak_ref (pair->fixture, pair->closure->type);
@@ -382,6 +403,7 @@ e_test_server_utils_source_added (ESourc
ESource *source,
FixturePair *pair)
{
+ gboolean need_retry = FALSE;
GError *error = NULL;
if (g_strcmp0 (e_source_get_uid (source), pair->fixture->source_name) != 0)
@@ -409,8 +431,13 @@ e_test_server_utils_source_added (ESourc
}
if (!pair->closure->use_async_connect &&
- !pair->fixture->service.book_client)
- g_error ("Unable to create the test book: %s", error ? error->message : "Unknown error");
+ !pair->fixture->service.book_client) {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else
+ g_error ("Unable to create the test book: %s", error ? error->message : "Unknown error");
+ }
break;
@@ -418,11 +445,23 @@ e_test_server_utils_source_added (ESourc
/* Dont bother testing the Async apis for deprecated APIs */
pair->fixture->service.book = e_book_new (source, &error);
- if (!pair->fixture->service.book)
- g_error ("Unable to create the test book: %s", error->message);
+ if (!pair->fixture->service.book) {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else
+ g_error ("Unable to create the test book: %s", error->message);
+
+ break;
+ }
- if (!e_book_open (pair->fixture->service.book, FALSE, &error))
- g_error ("Unable to open book: %s", error->message);
+ if (!e_book_open (pair->fixture->service.book, FALSE, &error)) {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else
+ g_error ("Unable to open book: %s", error->message);
+ }
break;
@@ -439,8 +478,13 @@ e_test_server_utils_source_added (ESourc
e_cal_client_connect_sync (
source,
pair->closure->calendar_source_type, (guint32) -1, NULL, &error);
- if (!pair->fixture->service.calendar_client)
- g_error ("Unable to create the test calendar: %s", error->message);
+ if (!pair->fixture->service.calendar_client) {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else
+ g_error ("Unable to create the test calendar: %s", error->message);
+ }
}
break;
@@ -449,11 +493,22 @@ e_test_server_utils_source_added (ESourc
/* Dont bother testing the Async apis for deprecated APIs */
pair->fixture->service.calendar = e_cal_new (source, pair->closure->calendar_source_type);
- if (!pair->fixture->service.calendar)
- g_error ("Unable to create the test calendar");
+ if (!pair->fixture->service.calendar) {
+ if (pair->retries < 3)
+ need_retry = TRUE;
+ else
+ g_error ("Unable to create the test calendar");
- if (!e_cal_open (pair->fixture->service.calendar, FALSE, &error))
- g_error ("Unable to open calendar: %s", error->message);
+ break;
+ }
+
+ if (!e_cal_open (pair->fixture->service.calendar, FALSE, &error)) {
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
+ pair->retries < 3)
+ need_retry = TRUE;
+ else
+ g_error ("Unable to open calendar: %s", error->message);
+ }
break;
@@ -461,6 +516,14 @@ e_test_server_utils_source_added (ESourc
return;
}
+ g_clear_error (&error);
+
+ if (need_retry) {
+ pair->retries++;
+ g_timeout_add_seconds (1, e_test_server_utils_retry_open_client_cb, pair);
+ return;
+ }
+
/* Add the weak ref now if we just created it */
if (pair->closure->type != E_TEST_SERVER_NONE &&
pair->closure->use_async_connect == FALSE)
@@ -471,6 +534,22 @@ e_test_server_utils_source_added (ESourc
}
static gboolean
+e_test_server_utils_retry_open_client_cb (gpointer user_data)
+{
+ FixturePair *pair = user_data;
+ ESource *source;
+
+ source = e_source_registry_ref_source (pair->fixture->registry, pair->fixture->source_name);
+
+ g_assert (E_IS_SOURCE (source));
+
+ e_test_server_utils_source_added (pair->fixture->registry, source, pair);
+ g_object_unref (source);
+
+ return FALSE;
+}
+
+static gboolean
e_test_server_utils_bootstrap_idle (FixturePair *pair)
{
ESourceBackend *backend = NULL;
@@ -578,7 +657,7 @@ e_test_server_utils_setup (ETestServerFi
gconstpointer user_data)
{
ETestServerClosure *closure = (ETestServerClosure *) user_data;
- FixturePair pair = { fixture, closure };
+ FixturePair pair = { fixture, closure, 0 };
/* Create work directory */
if (!test_installed_services ())

@ -1,179 +0,0 @@
diff --git a/src/addressbook/libebook-contacts/e-vcard.c b/src/addressbook/libebook-contacts/e-vcard.c
index e44b7fdcf..680cf85af 100644
--- a/src/addressbook/libebook-contacts/e-vcard.c
+++ b/src/addressbook/libebook-contacts/e-vcard.c
@@ -120,6 +120,14 @@
G_DEFINE_TYPE (EVCard, e_vcard, G_TYPE_OBJECT)
+static EVCardAttribute *e_vcard_attribute_ref (EVCardAttribute *attr);
+static void e_vcard_attribute_unref (EVCardAttribute *attr);
+static EVCardAttributeParam *e_vcard_attribute_param_ref (EVCardAttributeParam *param);
+static void e_vcard_attribute_param_unref (EVCardAttributeParam *param);
+
+G_DEFINE_BOXED_TYPE (EVCardAttribute, e_vcard_attribute, e_vcard_attribute_ref, e_vcard_attribute_unref)
+G_DEFINE_BOXED_TYPE (EVCardAttributeParam, e_vcard_attribute_param, e_vcard_attribute_param_ref, e_vcard_attribute_param_unref)
+
/* Encoding used in v-card
* Note: v-card spec defines additional 7BIT 8BIT and X- encoding
*/
@@ -135,6 +143,7 @@ struct _EVCardPrivate {
};
struct _EVCardAttribute {
+ gint ref_count;
gchar *group;
gchar *name;
GList *params; /* EVCardParam */
@@ -145,6 +154,7 @@ struct _EVCardAttribute {
};
struct _EVCardAttributeParam {
+ gint ref_count;
gchar *name;
GList *values; /* GList of gchar *'s */
};
@@ -1555,6 +1565,7 @@ e_vcard_attribute_new (const gchar *attr_group,
if (attr_group != NULL && *attr_group == '\0')
attr_group = NULL;
+ attr->ref_count = 1;
attr->group = g_strdup (attr_group);
attr->name = g_strdup (attr_name);
@@ -1572,14 +1583,34 @@ e_vcard_attribute_free (EVCardAttribute *attr)
{
g_return_if_fail (attr != NULL);
- g_free (attr->group);
- g_free (attr->name);
+ e_vcard_attribute_unref (attr);
+}
- e_vcard_attribute_remove_values (attr);
+static EVCardAttribute *
+e_vcard_attribute_ref (EVCardAttribute *attr)
+{
+ g_return_val_if_fail (attr != NULL, NULL);
- e_vcard_attribute_remove_params (attr);
+ g_atomic_int_inc (&attr->ref_count);
- g_slice_free (EVCardAttribute, attr);
+ return attr;
+}
+
+static void
+e_vcard_attribute_unref (EVCardAttribute *attr)
+{
+ g_return_if_fail (attr != NULL);
+
+ if (g_atomic_int_dec_and_test (&attr->ref_count)) {
+ g_free (attr->group);
+ g_free (attr->name);
+
+ e_vcard_attribute_remove_values (attr);
+
+ e_vcard_attribute_remove_params (attr);
+
+ g_slice_free (EVCardAttribute, attr);
+ }
}
/**
@@ -1609,25 +1640,6 @@ e_vcard_attribute_copy (EVCardAttribute *attr)
return a;
}
-GType
-e_vcard_attribute_get_type (void)
-{
- static volatile gsize type_id__volatile = 0;
-
- if (g_once_init_enter (&type_id__volatile)) {
- GType type_id;
-
- type_id = g_boxed_type_register_static (
- "EVCardAttribute",
- (GBoxedCopyFunc) e_vcard_attribute_copy,
- (GBoxedFreeFunc) e_vcard_attribute_free);
-
- g_once_init_leave (&type_id__volatile, type_id);
- }
-
- return type_id__volatile;
-}
-
/**
* e_vcard_remove_attributes:
* @evc: vcard object
@@ -2068,25 +2080,6 @@ e_vcard_attribute_remove_params (EVCardAttribute *attr)
attr->encoding = EVC_ENCODING_RAW;
}
-GType
-e_vcard_attribute_param_get_type (void)
-{
- static volatile gsize type_id__volatile = 0;
-
- if (g_once_init_enter (&type_id__volatile)) {
- GType type_id;
-
- type_id = g_boxed_type_register_static (
- "EVCardAttributeParam",
- (GBoxedCopyFunc) e_vcard_attribute_param_copy,
- (GBoxedFreeFunc) e_vcard_attribute_param_free);
-
- g_once_init_leave (&type_id__volatile, type_id);
- }
-
- return type_id__volatile;
-}
-
/**
* e_vcard_attribute_param_new:
* @name: the name of the new parameter
@@ -2099,6 +2092,8 @@ EVCardAttributeParam *
e_vcard_attribute_param_new (const gchar *name)
{
EVCardAttributeParam *param = g_slice_new (EVCardAttributeParam);
+
+ param->ref_count = 1;
param->values = NULL;
param->name = g_strdup (name);
@@ -2116,11 +2111,31 @@ e_vcard_attribute_param_free (EVCardAttributeParam *param)
{
g_return_if_fail (param != NULL);
- g_free (param->name);
+ e_vcard_attribute_param_unref (param);
+}
+
+static EVCardAttributeParam *
+e_vcard_attribute_param_ref (EVCardAttributeParam *param)
+{
+ g_return_val_if_fail (param != NULL, NULL);
+
+ g_atomic_int_inc (&param->ref_count);
+
+ return param;
+}
+
+static void
+e_vcard_attribute_param_unref (EVCardAttributeParam *param)
+{
+ g_return_if_fail (param != NULL);
+
+ if (g_atomic_int_dec_and_test (&param->ref_count)) {
+ g_free (param->name);
- e_vcard_attribute_param_remove_values (param);
+ e_vcard_attribute_param_remove_values (param);
- g_slice_free (EVCardAttributeParam, param);
+ g_slice_free (EVCardAttributeParam, param);
+ }
}
/**

@ -1,14 +0,0 @@
diff --git a/src/addressbook/libebook-contacts/e-vcard.c b/src/addressbook/libebook-contacts/e-vcard.c
index f11a17d77..e44b7fdcf 100644
--- a/src/addressbook/libebook-contacts/e-vcard.c
+++ b/src/addressbook/libebook-contacts/e-vcard.c
@@ -2395,8 +2395,8 @@ e_vcard_attribute_remove_param_value (EVCardAttribute *attr,
return;
}
- param->values = g_list_delete_link (param->values, l);
g_free (l->data);
+ param->values = g_list_delete_link (param->values, l);
if (param->values == NULL) {
e_vcard_attribute_param_free (param);

@ -0,0 +1,36 @@
From ad616bafcf7df22d265f7254c82ec285252bf1e7 Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Tue, 24 May 2022 18:27:09 +0200
Subject: [PATCH] I#359 - CalDAV: Crash on calendar update
Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/359
---
src/calendar/backends/caldav/e-cal-backend-caldav.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/calendar/backends/caldav/e-cal-backend-caldav.c b/src/calendar/backends/caldav/e-cal-backend-caldav.c
index c8aeb8205..2aeed3c91 100644
--- a/src/calendar/backends/caldav/e-cal-backend-caldav.c
+++ b/src/calendar/backends/caldav/e-cal-backend-caldav.c
@@ -545,7 +545,8 @@ ecb_caldav_multiget_from_sets_sync (ECalBackendCalDAV *cbdav,
link = *in_link;
while (link && left_to_go > 0) {
- ECalMetaBackendInfo *nfo = link->data;
+ GSList *nfo_link = link;
+ ECalMetaBackendInfo *nfo = nfo_link->data;
link = g_slist_next (link);
if (!link) {
@@ -635,7 +636,7 @@ ecb_caldav_multiget_from_sets_sync (ECalBackendCalDAV *cbdav,
else
e_cal_meta_backend_info_free (nfo);
- link->data = NULL;
+ nfo_link->data = NULL;
g_clear_error (&local_error);
continue;
} else if (local_error) {
--
2.35.1

@ -1,6 +1,18 @@
diff -up evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google.c.google-oauth2 evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google.c
--- evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google.c.google-oauth2 2018-07-30 15:17:06.000000000 +0200
+++ evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google.c 2022-05-04 18:57:08.059385307 +0200
From 08ec37272bb945625daed7e6ae7ed2bd663cdabd Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Wed, 4 May 2022 15:30:49 +0200
Subject: [PATCH] I#388 - Google OAuth out-of-band (oob) flow will be
deprecated
Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/388
---
src/libedataserver/e-oauth2-service-google.c | 62 +++++++++++++++++---
1 file changed, 55 insertions(+), 7 deletions(-)
diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
index 4d262d32f..93af1cb0b 100644
--- a/src/libedataserver/e-oauth2-service-google.c
+++ b/src/libedataserver/e-oauth2-service-google.c
@@ -24,6 +24,7 @@
#include "e-oauth2-service-google.h"
@ -9,7 +21,7 @@ diff -up evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google
/* Forward Declarations */
static void e_oauth2_service_google_oauth2_service_init (EOAuth2ServiceInterface *iface);
@@ -74,14 +75,60 @@ static const gchar *
@@ -122,14 +123,60 @@ static const gchar *
eos_google_get_authentication_uri (EOAuth2Service *service,
ESource *source)
{
@ -72,7 +84,7 @@ diff -up evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google
}
static void
@@ -143,13 +190,13 @@ eos_google_extract_authorization_code (E
@@ -191,13 +238,13 @@ eos_google_extract_authorization_code (EOAuth2Service *service,
params = soup_form_decode (query);
if (params) {
@ -91,7 +103,7 @@ diff -up evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google
known = TRUE;
}
@@ -177,6 +224,7 @@ e_oauth2_service_google_oauth2_service_i
@@ -225,6 +272,7 @@ e_oauth2_service_google_oauth2_service_init (EOAuth2ServiceInterface *iface)
iface->get_client_secret = eos_google_get_client_secret;
iface->get_authentication_uri = eos_google_get_authentication_uri;
iface->get_refresh_uri = eos_google_get_refresh_uri;
@ -99,3 +111,6 @@ diff -up evolution-data-server-3.28.5/src/libedataserver/e-oauth2-service-google
iface->prepare_authentication_uri_query = eos_google_prepare_authentication_uri_query;
iface->extract_authorization_code = eos_google_extract_authorization_code;
}
--
2.35.1

@ -0,0 +1,49 @@
diff --git a/src/calendar/backends/file/e-cal-backend-file.c b/src/calendar/backends/file/e-cal-backend-file.c
index f40bf807c..79ae53632 100644
--- a/src/calendar/backends/file/e-cal-backend-file.c
+++ b/src/calendar/backends/file/e-cal-backend-file.c
@@ -904,6 +904,7 @@ scan_vcalendar (ECalBackendFile *cbfile)
if (e_cal_component_set_icalcomponent (comp, icomp)) {
/* Thus it's not freed while being used in the 'comp' */
g_object_ref (icomp);
+ i_cal_object_set_owner (I_CAL_OBJECT (icomp), G_OBJECT (priv->vcalendar));
check_dup_uid (cbfile, comp);
diff --git a/src/calendar/backends/http/e-cal-backend-http.c b/src/calendar/backends/http/e-cal-backend-http.c
index a7e930ca0..bfe9b4554 100644
--- a/src/calendar/backends/http/e-cal-backend-http.c
+++ b/src/calendar/backends/http/e-cal-backend-http.c
@@ -477,13 +477,18 @@ ecb_http_get_changes_sync (ECalMetaBackend *meta_backend,
} else {
iter = i_cal_component_begin_component (maincomp, I_CAL_VCALENDAR_COMPONENT);
subcomp = i_cal_comp_iter_deref (iter);
+ if (subcomp)
+ i_cal_object_set_owner (I_CAL_OBJECT (subcomp), G_OBJECT (maincomp));
}
while (subcomp && success) {
ICalComponent *next_subcomp = NULL;
- if (iter)
+ if (iter) {
next_subcomp = i_cal_comp_iter_next (iter);
+ if (next_subcomp)
+ i_cal_object_set_owner (I_CAL_OBJECT (next_subcomp), G_OBJECT (maincomp));
+ }
if (i_cal_component_isa (subcomp) == I_CAL_VCALENDAR_COMPONENT) {
success = e_cal_meta_backend_gather_timezones_sync (meta_backend, subcomp, TRUE, cancellable, error);
diff --git a/src/calendar/libecal/e-cal-component.c b/src/calendar/libecal/e-cal-component.c
index a3dddcc8f..c7629813a 100644
--- a/src/calendar/libecal/e-cal-component.c
+++ b/src/calendar/libecal/e-cal-component.c
@@ -95,6 +95,8 @@ foreach_subcomponent (ICalComponent *icalcomp,
while (subcomp) {
ICalComponent *next_subcomp;
+ i_cal_object_set_owner (I_CAL_OBJECT (subcomp), G_OBJECT (icalcomp));
+
next_subcomp = i_cal_comp_iter_next (iter);
if (!func (icalcomp, subcomp, user_data)) {

@ -1,25 +1,34 @@
%undefine __cmake_in_source_build
%define ldap_support 1
%define static_ldap 0
%define krb5_support 1
%define largefile_support 1
# enabled only for Fedora
%global phonenum_support 0%{?fedora}
# Coverity scan can override this to 0, to skip checking in gtk-doc generated code
%{!?with_docs: %global with_docs 1}
%define glib2_version 2.46.0
%define gtk3_version 3.10.0
%if 0%{?flatpak}
%global with_docs 0
%endif
%define glib2_version 2.46
%define gtk3_version 3.16
%define gcr_version 3.4
%define gtk_doc_version 1.9
%define goa_version 3.8
%define intltool_version 0.35.5
%define libsecret_version 0.5
%define libgdata_version 0.10.0
%define libgweather_version 3.5.0
%define libical_version 2.0
%define libsoup_version 2.42
%define libgdata_version 0.15.1
%define libgweather_version 3.10
%define libical_version 3.0.7
%define libsoup_version 2.58
%define nss_version 3.14
%define sqlite_version 3.5
%define webkit2gtk_version 2.11.91
%define sqlite_version 3.7.17
%define webkit2gtk_version 2.28.0
%define json_glib_version 1.0.4
%define credential_modules_dir %{_libdir}/evolution-data-server/credential-modules
@ -27,91 +36,49 @@
%define ebook_backends_dir %{_libdir}/evolution-data-server/addressbook-backends
%define ecal_backends_dir %{_libdir}/evolution-data-server/calendar-backends
%define modules_dir %{_libdir}/evolution-data-server/registry-modules
%define uimodules_dir %{_libdir}/evolution-data-server/ui-modules
%global dbus_service_name_address_book org.gnome.evolution.dataserver.AddressBook10
%global dbus_service_name_calendar org.gnome.evolution.dataserver.Calendar8
%global dbus_service_name_sources org.gnome.evolution.dataserver.Sources5
%global dbus_service_name_user_prompter org.gnome.evolution.dataserver.UserPrompter0
%if "%{?_eds_dbus_services_prefix}" != ""
%global dbus_service_name_address_book %{?_eds_dbus_services_prefix}.%{dbus_service_name_address_book}
%global dbus_service_name_calendar %{?_eds_dbus_services_prefix}.%{dbus_service_name_calendar}
%global dbus_service_name_sources %{?_eds_dbus_services_prefix}.%{dbus_service_name_sources}
%global dbus_service_name_user_prompter %{?_eds_dbus_services_prefix}.%{dbus_service_name_user_prompter}
%endif
### Abstract ###
Name: evolution-data-server
Version: 3.28.5
Release: 20%{?dist}.inferit.1
Group: System Environment/Libraries
Version: 3.40.4
Release: 6%{?dist}
Summary: Backend data server for Evolution
License: LGPLv2+
URL: https://wiki.gnome.org/Apps/Evolution
Source: http://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz
Source: http://download.gnome.org/sources/%{name}/3.40/%{name}-%{version}.tar.xz
Patch01: evolution-data-server-3.40.4-icalcompiter.patch
Patch02: evolution-data-server-3.40.4-secret-monitor-warnings.patch
Patch03: evolution-data-server-3.40.4-google-contacts-to-carddav.patch
Patch04: evolution-data-server-3.40.4-google-oauth2.patch
Patch05: evolution-data-server-3.40.4-caldav-crash.patch
Provides: evolution-webcal = %{version}
Obsoletes: evolution-webcal < 2.24.0
# RH-bug #1362477
Recommends: pinentry-gtk
Recommends: pinentry-gui
%if 0%{?fedora}
# From rhughes-f20-gnome-3-12 copr
Obsoletes: compat-evolution-data-server310-libcamel < 3.12
%endif
### Patches ###
# RH bug #1624835
Patch01: evolution-data-server-3.28.5-mangled-deeper-html-quotes.patch
# RH bug #1653232
Patch02: evolution-data-server-3.28.5-dav-online-load-href.patch
# RH bug #1654203
Patch03: evolution-data-server-3.28.5-tests-retry-client-open.patch
# RH bug #1654310
Patch04: evolution-data-server-3.28.5-dav-remove-ignores-not-found.patch
# RH bug #1654720
Patch05: evolution-data-server-3.28.5-vcard-remove-param-value.patch
# RH bug #1654783
Patch06: evolution-data-server-3.28.5-tests-cal-client-get-revision.patch
# RH bug #1655030
Patch07: evolution-data-server-3.28.5-vcard-attr-param-struct-reff.patch
# RH bug #1696763
Patch08: evolution-data-server-3.28.5-cve-2019-3890.patch
# RH bug #1788478
Patch09: evolution-data-server-3.28.5-delay-new-module-load.patch
# RH bug #1791547
Patch10: evolution-data-server-3.28.5-test-cal-meta-backend-without-evolution.patch
# RH bug #1859141
Patch11: evolution-data-server-3.28.5-CVE-2020-14928.patch
# RH bug #1862403
Patch12: evolution-data-server-3.28.5-CVE-2020-16117.patch
# RH bug #1952792
Patch13: evolution-data-server-3.28.5-imapx-icloud-mail.patch
# RH bug #1972749
Patch14: evolution-data-server-3.28.5-cmake-variable-name-comparison.patch
# RH bug #1971676
Patch15: evolution-data-server-3.28.5-calbackendfile-interval-tree-destroy.patch
# RH bug #2008217
Patch16: evolution-data-server-3.28.5-nonstandard-uuencode-encoding.patch
# RH bug #1938533
Patch17: evolution-data-server-3.28.5-secret-monitor-warnings.patch
# RH bug #2081746
Patch18: evolution-data-server-3.28.5-google-oauth2.patch
# MSVSphere
Patch100: 0001-Updated-Russian-translation.patch
### Dependencies ###
Requires: dconf
Requires: %{name}-langpacks = %{version}-%{release}
### Build Dependencies ###
@ -121,14 +88,12 @@ BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: gperf
%if %{with_docs}
BuildRequires: gtk-doc >= %{gtk_doc_version}
%endif
BuildRequires: intltool >= %{intltool_version}
BuildRequires: libdb-devel
BuildRequires: perl-generators
BuildRequires: %{_bindir}/python3
BuildRequires: make
BuildRequires: vala
BuildRequires: vala-tools
BuildRequires: sendmail
BuildRequires: systemd
BuildRequires: pkgconfig(gcr-3) >= %{gcr_version}
@ -141,7 +106,7 @@ BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version}
BuildRequires: pkgconfig(goa-1.0) >= %{goa_version}
BuildRequires: pkgconfig(libgdata) >= %{libgdata_version}
BuildRequires: pkgconfig(gweather-3.0) >= %{libgweather_version}
BuildRequires: pkgconfig(libical) >= %{libical_version}
BuildRequires: pkgconfig(libical-glib) >= %{libical_version}
BuildRequires: pkgconfig(libsecret-unstable) >= %{libsecret_version}
BuildRequires: pkgconfig(libsoup-2.4) >= %{libsoup_version}
BuildRequires: pkgconfig(libxml-2.0)
@ -150,6 +115,7 @@ BuildRequires: pkgconfig(nss) >= %{nss_version}
BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version}
BuildRequires: pkgconfig(webkit2gtk-4.0) >= %{webkit2gtk_version}
BuildRequires: pkgconfig(json-glib-1.0) >= %{json_glib_version}
BuildRequires: pkgconfig(libcanberra-gtk3)
%if %{ldap_support}
BuildRequires: openldap-devel >= 2.0.11
@ -162,6 +128,12 @@ BuildRequires: pkgconfig(openssl)
BuildRequires: krb5-devel >= 1.11
%endif
%if %{phonenum_support}
BuildRequires: libphonenumber-devel
BuildRequires: protobuf-devel
BuildRequires: boost-devel
%endif
%description
The %{name} package provides a unified backend for programs that work
with contacts, tasks, and calendar information.
@ -171,13 +143,12 @@ by other packages.
%package devel
Summary: Development files for building against %{name}
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig(goa-1.0) >= %{goa_version}
Requires: pkgconfig(libgdata) >= %{libgdata_version}
Requires: pkgconfig(gweather-3.0) >= %{libgweather_version}
Requires: pkgconfig(libical) >= %{libical_version}
Requires: pkgconfig(libical-glib) >= %{libical_version}
Requires: pkgconfig(libsecret-unstable) >= %{libsecret_version}
Requires: pkgconfig(libsoup-2.4) >= %{libsoup_version}
Requires: pkgconfig(sqlite3) >= %{sqlite_version}
@ -199,7 +170,6 @@ This package contains translations for %{name}.
%package doc
Summary: Documentation files for %{name}
Group: Development/Libraries
BuildArch: noarch
%description doc
@ -209,16 +179,15 @@ This package contains developer documentation for %{name}.
%endif
%package perl
Group: Applications/Productivity
Summary: Supplemental utilities that require Perl
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: perl-interpreter
%description perl
This package contains supplemental utilities for %{name} that require Perl.
%package tests
Summary: Tests for the %{name} package
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
%description tests
@ -226,33 +195,10 @@ The %{name}-tests package contains tests that can be used to verify
the functionality of the installed %{name} package.
%prep
%setup -q
%patch01 -p1 -b .mangled-deeper-html-quotes
%patch02 -p1 -b .dav-online-load-href
%patch03 -p1 -b .tests-retry-client-open
%patch04 -p1 -b .dav-remove-ignores-not-found
%patch05 -p1 -b .vcard-remove-param-value
%patch06 -p1 -b .tests-cal-client-get-revision
%patch07 -p1 -b .vcard-attr-param-struct-reff
%patch08 -p1 -b .cve-2019-3890
%patch09 -p1 -b .delay-new-module-load
%patch10 -p1 -b .test-cal-meta-backend-without-evolution
%patch11 -p1 -b .CVE-2020-14928
%patch12 -p1 -b .CVE-2020-16117
%patch13 -p1 -b .imapx-icloud-mail
%patch14 -p1 -b .cmake-variable-name-comparison
%patch15 -p1 -b .calbackendfile-interval-tree-destroy
%patch16 -p1 -b .nonstandard-uuencode-encoding
%patch17 -p1 -b .secret-monitor-warnings
%patch18 -p1 -b .google-oauth2
%patch100 -p1
%autosetup -p1 -S gendiff
%build
mkdir -p _build
cd _build
%if %{ldap_support}
%if %{static_ldap}
@ -291,6 +237,12 @@ fi
%define largefile_flags -DENABLE_LARGEFILE=OFF
%endif
%if %{phonenum_support}
%define phonenum_flags -DWITH_PHONENUMBER=ON
%else
%define phonenum_flags -DWITH_PHONENUMBER=OFF
%endif
%define ssl_flags -DENABLE_SMIME=ON
%if %{with_docs}
@ -307,62 +259,64 @@ fi
export CPPFLAGS="-I%{_includedir}/et"
export CFLAGS="$RPM_OPT_FLAGS -DLDAP_DEPRECATED -fPIC -I%{_includedir}/et -Wno-deprecated-declarations"
# See Ross Burton's blog entry for why we want --with-libdb.
# http://www.burtonini.com/blog//computers/eds-libdb-2006-07-18-10-40
%cmake -G "Unix Makefiles" \
-DENABLE_MAINTAINER_MODE=OFF \
-DENABLE_UOA=OFF \
-DWITH_LIBDB=/usr \
-DWITH_LIBDB=OFF \
-DENABLE_FILE_LOCKING=fcntl \
-DENABLE_DOT_LOCKING=OFF \
-DENABLE_INTROSPECTION=ON \
-DENABLE_VALA_BINDINGS=ON \
-DENABLE_INSTALLED_TESTS=ON \
-DWITH_SYSTEMDUSERUNITDIR=%{_userunitdir} \
%if "%{?_eds_dbus_services_prefix}" != ""
-DDBUS_SERVICES_PREFIX=%{?_eds_dbus_services_prefix} \
%endif
%ldap_flags %krb5_flags %ssl_flags \
%largefile_flags %gtkdoc_flags \
..
%largefile_flags %gtkdoc_flags %phonenum_flags \
%{nil}
make %{?_smp_mflags}
%cmake_build
%install
cd _build
rm -rf $RPM_BUILD_ROOT
%cmake_install
make DESTDIR=$RPM_BUILD_ROOT install
# make sure the directory exists, because it's owned by eds
mkdir $RPM_BUILD_ROOT/%{uimodules_dir} || :
# give the libraries some executable bits
find $RPM_BUILD_ROOT -name '*.so.*' -exec chmod +x {} \;
%find_lang %{name}
%post -p /sbin/ldconfig
%postun
/sbin/ldconfig
if [ $1 -eq 0 ] ; then
glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
fi
%posttrans
glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
%files
%license COPYING
%doc README ChangeLog NEWS
%{_libdir}/libcamel-1.2.so.*
%{_libdir}/libebackend-1.2.so.*
%{_libdir}/libebook-1.2.so.*
%{_libdir}/libebook-contacts-1.2.so.*
%{_libdir}/libecal-1.2.so.*
%{_libdir}/libedata-book-1.2.so.*
%{_libdir}/libedata-cal-1.2.so.*
%{_libdir}/libedataserver-1.2.so.*
%{_libdir}/libedataserverui-1.2.so.*
%{_libdir}/libcamel-1.2.so.62
%{_libdir}/libcamel-1.2.so.62.0.0
%{_libdir}/libebackend-1.2.so.10
%{_libdir}/libebackend-1.2.so.10.0.0
%{_libdir}/libebook-1.2.so.20
%{_libdir}/libebook-1.2.so.20.1.3
%{_libdir}/libebook-contacts-1.2.so.3
%{_libdir}/libebook-contacts-1.2.so.3.0.0
%{_libdir}/libecal-2.0.so.1
%{_libdir}/libecal-2.0.so.1.0.0
%{_libdir}/libedata-book-1.2.so.26
%{_libdir}/libedata-book-1.2.so.26.0.0
%{_libdir}/libedata-cal-2.0.so.1
%{_libdir}/libedata-cal-2.0.so.1.0.0
%{_libdir}/libedataserver-1.2.so.26
%{_libdir}/libedataserver-1.2.so.26.0.0
%{_libdir}/libedataserverui-1.2.so.3
%{_libdir}/libedataserverui-1.2.so.3.0.0
%{_libdir}/girepository-1.0/Camel-1.2.typelib
%{_libdir}/girepository-1.0/EBackend-1.2.typelib
%{_libdir}/girepository-1.0/EBook-1.2.typelib
%{_libdir}/girepository-1.0/EBookContacts-1.2.typelib
%{_libdir}/girepository-1.0/ECal-2.0.typelib
%{_libdir}/girepository-1.0/EDataBook-1.2.typelib
%{_libdir}/girepository-1.0/EDataCal-2.0.typelib
%{_libdir}/girepository-1.0/EDataServer-1.2.typelib
%{_libdir}/girepository-1.0/EDataServerUI-1.2.typelib
@ -379,8 +333,12 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
%dir %{_libexecdir}/evolution-data-server
%{_libexecdir}/evolution-data-server/addressbook-export
%{_libexecdir}/evolution-data-server/evolution-alarm-notify
%{_libexecdir}/evolution-data-server/list-sources
%{_sysconfdir}/xdg/autostart/org.gnome.Evolution-alarm-notify.desktop
%{_datadir}/applications/org.gnome.Evolution-alarm-notify.desktop
# GSettings schemas:
%{_datadir}/GConf/gsettings/evolution-data-server.convert
%{_datadir}/glib-2.0/schemas/org.gnome.Evolution.DefaultSources.gschema.xml
@ -391,10 +349,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
%{_datadir}/glib-2.0/schemas/org.gnome.evolution.shell.network-config.gschema.xml
%{_datadir}/evolution-data-server
%{_datadir}/dbus-1/services/org.gnome.evolution.dataserver.AddressBook.service
%{_datadir}/dbus-1/services/org.gnome.evolution.dataserver.Calendar.service
%{_datadir}/dbus-1/services/org.gnome.evolution.dataserver.Sources.service
%{_datadir}/dbus-1/services/org.gnome.evolution.dataserver.UserPrompter.service
%{_datadir}/dbus-1/services/%{dbus_service_name_address_book}.service
%{_datadir}/dbus-1/services/%{dbus_service_name_calendar}.service
%{_datadir}/dbus-1/services/%{dbus_service_name_sources}.service
%{_datadir}/dbus-1/services/%{dbus_service_name_user_prompter}.service
%{_datadir}/pixmaps/evolution-data-server
%{_userunitdir}/evolution-addressbook-factory.service
@ -408,6 +366,7 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
%dir %{ebook_backends_dir}
%dir %{ecal_backends_dir}
%dir %{modules_dir}
%dir %{uimodules_dir}
%{_libdir}/evolution-data-server/libedbus-private.so
@ -432,16 +391,16 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
# e-d-s extensions:
%{credential_modules_dir}/module-credentials-goa.so
%{ebook_backends_dir}/libebookbackendcarddav.so
%{ebook_backends_dir}/libebookbackendfile.so
%{ebook_backends_dir}/libebookbackendgoogle.so
%{ebook_backends_dir}/libebookbackendldap.so
%{ebook_backends_dir}/libebookbackendwebdav.so
%{ecal_backends_dir}/libecalbackendcaldav.so
%{ecal_backends_dir}/libecalbackendcontacts.so
%{ecal_backends_dir}/libecalbackendfile.so
%{ecal_backends_dir}/libecalbackendgtasks.so
%{ecal_backends_dir}/libecalbackendhttp.so
%{ecal_backends_dir}/libecalbackendweather.so
%{ecal_backends_dir}/libecalbackendwebdavnotes.so
%{modules_dir}/module-cache-reaper.so
%{modules_dir}/module-google-backend.so
%{modules_dir}/module-gnome-online-accounts.so
@ -458,9 +417,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
%{_libdir}/libebackend-1.2.so
%{_libdir}/libebook-1.2.so
%{_libdir}/libebook-contacts-1.2.so
%{_libdir}/libecal-1.2.so
%{_libdir}/libecal-2.0.so
%{_libdir}/libedata-book-1.2.so
%{_libdir}/libedata-cal-1.2.so
%{_libdir}/libedata-cal-2.0.so
%{_libdir}/libedataserver-1.2.so
%{_libdir}/libedataserverui-1.2.so
%{_libdir}/pkgconfig/camel-1.2.pc
@ -468,28 +427,40 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
%{_libdir}/pkgconfig/libebackend-1.2.pc
%{_libdir}/pkgconfig/libebook-1.2.pc
%{_libdir}/pkgconfig/libebook-contacts-1.2.pc
%{_libdir}/pkgconfig/libecal-1.2.pc
%{_libdir}/pkgconfig/libecal-2.0.pc
%{_libdir}/pkgconfig/libedata-book-1.2.pc
%{_libdir}/pkgconfig/libedata-cal-1.2.pc
%{_libdir}/pkgconfig/libedata-cal-2.0.pc
%{_libdir}/pkgconfig/libedataserver-1.2.pc
%{_libdir}/pkgconfig/libedataserverui-1.2.pc
%{_datadir}/gir-1.0/Camel-1.2.gir
%{_datadir}/gir-1.0/EBackend-1.2.gir
%{_datadir}/gir-1.0/EBook-1.2.gir
%{_datadir}/gir-1.0/EBookContacts-1.2.gir
%{_datadir}/gir-1.0/ECal-2.0.gir
%{_datadir}/gir-1.0/EDataBook-1.2.gir
%{_datadir}/gir-1.0/EDataCal-2.0.gir
%{_datadir}/gir-1.0/EDataServer-1.2.gir
%{_datadir}/gir-1.0/EDataServerUI-1.2.gir
%{_datadir}/vala/vapi/camel-1.2.deps
%{_datadir}/vala/vapi/camel-1.2.vapi
%{_datadir}/vala/vapi/libebackend-1.2.deps
%{_datadir}/vala/vapi/libebackend-1.2.vapi
%{_datadir}/vala/vapi/libebook-1.2.deps
%{_datadir}/vala/vapi/libebook-1.2.vapi
%{_datadir}/vala/vapi/libebook-contacts-1.2.deps
%{_datadir}/vala/vapi/libebook-contacts-1.2.vapi
%{_datadir}/vala/vapi/libecal-2.0.deps
%{_datadir}/vala/vapi/libecal-2.0.vapi
%{_datadir}/vala/vapi/libedata-book-1.2.deps
%{_datadir}/vala/vapi/libedata-book-1.2.vapi
%{_datadir}/vala/vapi/libedata-cal-2.0.deps
%{_datadir}/vala/vapi/libedata-cal-2.0.vapi
%{_datadir}/vala/vapi/libedataserver-1.2.deps
%{_datadir}/vala/vapi/libedataserver-1.2.vapi
%{_datadir}/vala/vapi/libedataserverui-1.2.deps
%{_datadir}/vala/vapi/libedataserverui-1.2.vapi
%files langpacks -f _build/%{name}.lang
%files langpacks -f %{name}.lang
%if %{with_docs}
@ -503,84 +474,270 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
%files tests
%{_libdir}/libetestserverutils.so
%{_libdir}/libetestserverutils.so.*
%{_libdir}/libetestserverutils.so.0
%{_libdir}/libetestserverutils.so.0.0.0
%{_libexecdir}/%{name}/installed-tests
%{_datadir}/installed-tests
%changelog
* Fri Dec 29 2023 Sergey Cherevko <s.cherevko@msvsphere-os.ru> - 3.28.5-20.inferit.1
- Updated Russian translation
- Rebuilt for MSVSphere 8.9
* Tue May 24 2022 Milan Crha <mcrha@redhat.com> - 3.40.4-6
- Resolves: #2089902 (CalDAV: Crash on calendar update)
* Wed May 04 2022 Milan Crha <mcrha@redhat.com> - 3.40.4-5
- Resolves: #2081747 (Backport patch for Google OAuth2 change)
* Tue Apr 05 2022 Milan Crha <mcrha@redhat.com> - 3.40.4-4
- Resolves: #2071893 (Addressbook: Switch from GData Contacts API to CardDAV API for Google books)
* Mon Nov 22 2021 Milan Crha <mcrha@redhat.com> - 3.40.4-3
- Resolves: #2025480 (secret-monitor: Turn runtime warnings into debug prints)
* Mon Nov 08 2021 Milan Crha <mcrha@redhat.com> - 3.40.4-2
- Resolves: #2021055 (Add patch to correct ICalCompIter component's usage)
* Fri Aug 13 2021 Milan Crha <mcrha@redhat.com> - 3.40.4-1
- Related: #1992450 (Update to 3.40.4)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.40.3-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Jul 12 2021 Milan Crha <mcrha@redhat.com> - 3.40.3-1
- Related: #1981215 (Update to 3.40.3)
* Fri Jun 04 2021 Milan Crha <mcrha@redhat.com> - 3.40.2-1
- Related: #1967855 (Update to 3.40.2)
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 3.40.0-4
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Mon Mar 29 2021 Milan Crha <mcrha@redhat.com> - 3.40.0-3
- Resolves: #1943818 (ESourceWebDAV: Fallback to SHA1 on SSL trust verification if needed)
* Fri Mar 26 2021 Kalev Lember <klember@redhat.com> - 3.40.0-2
- Drop unnecessary requires on dconf
* Fri Mar 19 2021 Milan Crha <mcrha@redhat.com> - 3.40.0-1
- Update to 3.40.0
* Fri Mar 12 2021 Milan Crha <mcrha@redhat.com> - 3.39.3-1
- Update to 3.39.3
* Sat Feb 13 2021 Kalev Lember <klember@redhat.com> - 3.39.2-3
- Drop temporary ABI compat
* Fri Feb 12 2021 Kalev Lember <klember@redhat.com> - 3.39.2-2
- Keep temporary ABI compat with previous soname
* Fri Feb 12 2021 Milan Crha <mcrha@redhat.com> - 3.39.2-1
- Update to 3.39.2
* Fri Feb 05 2021 Kalev Lember <klember@redhat.com> - 3.39.1-3
- Recommend pinentry-gui virtual provide, rather than pinentry-gtk
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.39.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 08 2021 Milan Crha <mcrha@redhat.com> - 3.39.1-1
- Update to 3.39.1
* Fri Nov 20 2020 Milan Crha <mcrha@redhat.com> - 3.38.2-1
- Update to 3.38.2
* Mon Oct 05 2020 Milan Crha <mcrha@redhat.com> - 3.38.1-2
- Correct D-Bus service file name - it can change when _eds_dbus_services_prefix is defined
- Replace perl-generators build time dependency with perl-interpreter install time dependency
* Fri Oct 02 2020 Milan Crha <mcrha@redhat.com> - 3.38.1-1
- Update to 3.38.1
* Sat Sep 26 2020 Adrian Reber <adrian@lisas.de> - 3.38.0-2
- Rebuilt for protobuf 3.13
* Fri Sep 11 2020 Milan Crha <mcrha@redhat.com> - 3.38.0-1
- Update to 3.38.0
* Fri Sep 04 2020 Milan Crha <mcrha@redhat.com> - 3.37.92-1
- Update to 3.37.92
* Fri Aug 07 2020 Milan Crha <mcrha@redhat.com> - 3.37.90-1
- Update to 3.37.90
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.37.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 14 2020 Milan Crha <mcrha@redhat.com> - 3.37.3-3
- Rebuild in a side tag for bodhi, to be able to create an update
* Fri Jul 03 2020 Milan Crha <mcrha@redhat.com> - 3.37.3-2
- Add a patch for missing G_BEGIN_DECLS in e-soup-logger.h
* Fri Jul 03 2020 Milan Crha <mcrha@redhat.com> - 3.37.3-1
- Update to 3.37.3
* Tue Jun 23 2020 Adam Williamson <awilliam@redhat.com> - 3.37.2-2
- Rebuild with newer protobuf and libphonenumber
- Backport several fixes for annoying bugs from mainline
* Fri May 29 2020 Milan Crha <mcrha@redhat.com> - 3.37.2-1
- Update to 3.37.2
* Sun May 17 2020 Pete Walter <pwalter@fedoraproject.org> - 3.37.1-2
- Rebuild for ICU 67
* Fri Apr 24 2020 Milan Crha <mcrha@redhat.com> - 3.37.1-1
- Update to 3.37.1
* Wed Apr 01 2020 Nikhil Jha <hi@nikhiljha.com> - 3.36.1-3
- Build with phonenumber support
* Mon Mar 30 2020 Milan Crha <mcrha@redhat.com> - 3.36.1-2
- Remove libdb dependency
* Fri Mar 27 2020 Milan Crha <mcrha@redhat.com> - 3.36.1-1
- Update to 3.36.1
* Fri Mar 06 2020 Milan Crha <mcrha@redhat.com> - 3.36.0-1
- Update to 3.36.0
* Fri Feb 28 2020 Milan Crha <mcrha@redhat.com> - 3.35.92-1
- Update to 3.35.92
* Fri Feb 14 2020 Milan Crha <mcrha@redhat.com> - 3.35.91-1
- Update to 3.35.91
* Fri Jan 31 2020 Milan Crha <mcrha@redhat.com> - 3.35.90-1
- Update to 3.35.90
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.35.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Jan 07 2020 Milan Crha <mcrha@redhat.com> - 3.35.3-2
- Add patch for RH bug #1754321 (alarm-notify: Double-free with certain types of the reminder)
* Fri Jan 03 2020 Milan Crha <mcrha@redhat.com> - 3.35.3-1
- Update to 3.35.3
* Fri Nov 22 2019 Milan Crha <mcrha@redhat.com> - 3.35.2-1
- Update to 3.35.2
* Fri Nov 01 2019 Pete Walter <pwalter@fedoraproject.org> - 3.35.1-2
- Rebuild for ICU 65
* Fri Oct 11 2019 Milan Crha <mcrha@redhat.com> - 3.35.1-1
- Update to 3.35.1
* Mon Oct 07 2019 Milan Crha <mcrha@redhat.com> - 3.34.1-1
- Update to 3.34.1
* Mon Sep 09 2019 Milan Crha <mcrha@redhat.com> - 3.34.0-1
- Update to 3.34.0
* Mon Sep 02 2019 Milan Crha <mcrha@redhat.com> - 3.33.92-1
- Update to 3.33.92
* Mon Aug 19 2019 Milan Crha <mcrha@redhat.com> - 3.33.91-1
- Update to 3.33.91
* Mon Aug 05 2019 Milan Crha <mcrha@redhat.com> - 3.33.90-1
- Update to 3.33.90
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.33.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jul 15 2019 Milan Crha <mcrha@redhat.com> - 3.33.4-1
- Update to 3.33.4
* Mon Jul 08 2019 Kalev Lember <klember@redhat.com> - 3.33.3-2
- Rebuilt for libgweather soname bump
* Mon Jun 17 2019 Milan Crha <mcrha@redhat.com> - 3.33.3-1
- Update to 3.33.3
* Mon May 20 2019 Milan Crha <mcrha@redhat.com> - 3.33.2-1
- Update to 3.33.2
* Mon Apr 22 2019 Milan Crha <mcrha@redhat.com> - 3.33.1-1
- Update to 3.33.1
* Mon Apr 08 2019 Milan Crha <mcrha@redhat.com> - 3.32.1-1
- Update to 3.32.1
* Mon Mar 11 2019 Milan Crha <mcrha@redhat.com> - 3.32.0-1
- Update to 3.32.0
* Mon Mar 04 2019 Milan Crha <mcrha@redhat.com> - 3.31.92-1
- Update to 3.31.92
* Wed May 04 2022 Milan Crha <mcrha@redhat.com> - 3.28.5-20
- Resolves: #2081746 (Backport patch for Google OAuth2 change)
* Mon Feb 18 2019 Milan Crha <mcrha@redhat.com> - 3.31.91-1
- Update to 3.31.91
* Mon Nov 22 2021 Milan Crha <mcrha@redhat.com> - 3.28.5-19
- Resolves: #1938533 (secret-monitor: Turn runtime warnings into debug prints)
* Mon Feb 04 2019 Kalev Lember <klember@redhat.com> - 3.31.90-2
- Update BRs for vala packaging changes
* Thu Sep 30 2021 Milan Crha <mcrha@redhat.com> - 3.28.5-18
- Resolves: #2008217 (Camel: Understand non-standard "Content-Transfer-Encoding: uuencode")
* Mon Feb 04 2019 Milan Crha <mcrha@redhat.com> - 3.31.90-1
- Update to 3.31.90
* Wed Jun 16 2021 Milan Crha <mcrha@redhat.com> - 3.28.5-17
- Resolves: #1972749 (PrintableOptions.cmake: Correct variable name comparison)
- Resolves: #1971676 (ECalBackendFile: Free interval tree only when being allocated)
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.31.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Apr 23 2021 Milan Crha <mcrha@redhat.com> - 3.28.5-16
- Resolves: #1952792 (IMAPx: Fix connect to iCloud mail server)
* Wed Jan 23 2019 Pete Walter <pwalter@fedoraproject.org> - 3.31.4-3
- Rebuild for ICU 63
* Wed Sep 30 2020 Milan Crha <mcrha@redhat.com> - 3.28.5-15
- Resolves: #1862403 (CVE-2020-16117: Crash on malformed server response with minimal capabilities)
* Mon Jan 07 2019 Milan Crha <mcrha@redhat.com> - 3.31.4-2
- Fix typo in the latest Igor Gnatenko's commit (Remove obsolete scriptlets)
* Thu Jul 23 2020 Milan Crha <mcrha@redhat.com> - 3.28.5-14
- Resolves: #1859141 (CVE-2020-14928: Response Injection via STARTTLS in SMTP and POP3)
* Mon Jan 07 2019 Milan Crha <mcrha@redhat.com> - 3.31.4-1
- Update to 3.31.4
* Thu Jan 16 2020 Milan Crha <mcrha@redhat.com> - 3.28.5-13
- Resolves: #1791547 (test-cal-meta-backend cannot run without installed Evolution)
* Mon Dec 10 2018 Milan Crha <mcrha@redhat.com> - 3.31.3-1
- Update to 3.31.3
* Wed Jan 15 2020 Milan Crha <mcrha@redhat.com> - 3.28.5-12
- Add patch for RH bug #1788478 (EDBusServer: Delay new module load)
* Mon Nov 12 2018 Milan Crha <mcrha@redhat.com> - 3.31.2-1
- Update to 3.31.2
* Mon May 27 2019 Milan Crha <mcrha@redhat.com> - 3.28.5-11
- Update patch for RH bug #1713619 (test-cal-client-get-revision could fail due to delayed D-Bus property change notification)
* Mon Oct 08 2018 Milan Crha <mcrha@redhat.com> - 3.31.1-1
- Update to 3.31.1
* Mon Apr 15 2019 Milan Crha <mcrha@redhat.com> - 3.28.5-10
- Add patch related to evolution-ews' CVE-2019-3890 (RH bug #1696763)
* Mon Sep 24 2018 Milan Crha <mcrha@redhat.com> - 3.30.1-1
- Update to 3.30.1
- Remove patch for GNOME Evolution issue #86 (fixed upstream)
* Tue Dec 04 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-9
- Update patch for RH bug #1654203 (Make tests retry when factory doesn't know about added ESource yet)
* Mon Sep 03 2018 Milan Crha <mcrha@redhat.com> - 3.30.0-1
- Update to 3.30.0
- Add patch for GNOME Evolution issue #86 (Quoting of plain text mail into HTML mode mangles deeper levels)
* Fri Nov 30 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-8
- Add patch for RH bug #1655030 (Make EVCardAttribute/EVCardAttributeParam structures ref-counted internally)
* Mon Aug 27 2018 Milan Crha <mcrha@redhat.com> - 3.29.92-1
- Update to 3.29.92
* Thu Nov 29 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-7
- Add patch for RH bug #1654720 (Correct use-after-free in e_vcard_attribute_remove_param_value())
- Add patch for RH bug #1654783 (test-cal-client-get-revision could fail due to delayed D-Bus property change notification)
* Mon Aug 13 2018 Milan Crha <mcrha@redhat.com> - 3.29.91-1
- Update to 3.29.91
* Wed Nov 28 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-6
- Add patch for RH bug #1654310 ([CalDAV/CardDAV] Ignore Not Found error on resource delete)
* Mon Jul 30 2018 Milan Crha <mcrha@redhat.com> - 3.29.90-1
- Update to 3.29.90
* Wed Nov 28 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-5
- Add patch for RH bug #1654203 (Make tests retry when factory doesn't know about added ESource yet)
* Mon Jul 16 2018 Milan Crha <mcrha@redhat.com> - 3.29.4-1
- Update to 3.29.4
* Mon Nov 26 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-4
- Add patch for RH bug #1653232 ([CalDAV/CardDAV] Can add component to local cache with incomplete info)
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.29.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Sep 03 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-3
- Add patch for RH bug #1624835 (Quoting of plain text mail into HTML mode mangles deeper levels)
* Tue Jul 10 2018 Pete Walter <pwalter@fedoraproject.org> - 3.29.3-2
- Rebuild for ICU 62
* Tue Aug 14 2018 Petr Viktorin <pviktori@redhat.com> - 3.28.5-2
- Fix BuildRequires for /usr/bin/python3
- Resolves: #1615515
* Mon Jun 18 2018 Milan Crha <mcrha@redhat.com> - 3.29.3-1
- Update to 3.29.3
* Mon Jul 30 2018 Milan Crha <mcrha@redhat.com> - 3.28.5-1
- Update to 3.28.5
* Mon May 21 2018 Milan Crha <mcrha@redhat.com> - 3.29.2-1
- Update to 3.29.2
* Mon Jul 16 2018 Milan Crha <mcrha@redhat.com> - 3.28.4-1
- Update to 3.28.4
* Mon Apr 30 2018 Pete Walter <pwalter@fedoraproject.org> - 3.29.1-2
- Rebuild for ICU 61.1
* Mon Jun 18 2018 Milan Crha <mcrha@redhat.com> - 3.28.3-1
- Update to 3.28.3
- Remove fix to strip closing > from URLs when linkifying (fixed upstream)
* Mon Apr 16 2018 Milan Crha <mcrha@redhat.com> - 3.29.1-1
- Update to 3.29.1
- Remove fix to strip closing > from URLs when linkifying (BGO#795108) (Fixed upstream)
- Drop build dependency on python
* Tue Apr 10 2018 Adam Williamson <awilliam@redhat.com> - 3.28.1-2
- Backport fix to strip closing > from URLs when linkifying (BGO#795108)

Loading…
Cancel
Save