i9c-beta
changed/i9c-beta/evolution-data-server-3.40.4-9.el9
commit
bd4673da30
@ -0,0 +1 @@
|
|||||||
|
0c5875d6617a7e3a4614494fe2359a8ebb321c4b SOURCES/evolution-data-server-3.40.4.tar.xz
|
@ -0,0 +1 @@
|
|||||||
|
SOURCES/evolution-data-server-3.40.4.tar.xz
|
@ -0,0 +1,33 @@
|
|||||||
|
diff -up evolution-data-server-3.40.4/src/libedataserverui/e-credentials-prompter-impl-oauth2.c.7 evolution-data-server-3.40.4/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
|
||||||
|
--- evolution-data-server-3.40.4/src/libedataserverui/e-credentials-prompter-impl-oauth2.c.7 2021-08-13 11:44:41.000000000 +0200
|
||||||
|
+++ evolution-data-server-3.40.4/src/libedataserverui/e-credentials-prompter-impl-oauth2.c 2024-01-11 15:28:03.245950925 +0100
|
||||||
|
@@ -573,6 +573,7 @@ e_credentials_prompter_impl_oauth2_show_
|
||||||
|
GtkScrolledWindow *scrolled_window;
|
||||||
|
GtkWindow *dialog_parent;
|
||||||
|
ECredentialsPrompter *prompter;
|
||||||
|
+ WebKitCookieManager *cookie_manager;
|
||||||
|
WebKitSettings *webkit_settings;
|
||||||
|
WebKitWebContext *web_context;
|
||||||
|
gchar *title, *uri;
|
||||||
|
@@ -725,9 +726,9 @@ e_credentials_prompter_impl_oauth2_show_
|
||||||
|
webkit_settings = webkit_settings_new_with_settings (
|
||||||
|
"auto-load-images", TRUE,
|
||||||
|
"default-charset", "utf-8",
|
||||||
|
- "enable-html5-database", FALSE,
|
||||||
|
"enable-dns-prefetching", FALSE,
|
||||||
|
- "enable-html5-local-storage", FALSE,
|
||||||
|
+ "enable-html5-database", TRUE,
|
||||||
|
+ "enable-html5-local-storage", TRUE,
|
||||||
|
"enable-offline-web-application-cache", FALSE,
|
||||||
|
"enable-page-cache", FALSE,
|
||||||
|
"enable-plugins", FALSE,
|
||||||
|
@@ -737,6 +738,9 @@ e_credentials_prompter_impl_oauth2_show_
|
||||||
|
web_context = webkit_web_context_new ();
|
||||||
|
webkit_web_context_set_sandbox_enabled (web_context, TRUE);
|
||||||
|
|
||||||
|
+ cookie_manager = webkit_web_context_get_cookie_manager (web_context);
|
||||||
|
+ webkit_cookie_manager_set_accept_policy (cookie_manager, WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS);
|
||||||
|
+
|
||||||
|
widget = g_object_new (WEBKIT_TYPE_WEB_VIEW,
|
||||||
|
"settings", webkit_settings,
|
||||||
|
"web-context", web_context,
|
@ -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
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,116 @@
|
|||||||
|
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"
|
||||||
|
|
||||||
|
/* https://developers.google.com/identity/protocols/OAuth2InstalledApp */
|
||||||
|
+/* https://developers.google.com/identity/protocols/oauth2/native-app */
|
||||||
|
|
||||||
|
/* Forward Declarations */
|
||||||
|
static void e_oauth2_service_google_oauth2_service_init (EOAuth2ServiceInterface *iface);
|
||||||
|
@@ -122,14 +123,60 @@ static const gchar *
|
||||||
|
eos_google_get_authentication_uri (EOAuth2Service *service,
|
||||||
|
ESource *source)
|
||||||
|
{
|
||||||
|
- return "https://accounts.google.com/o/oauth2/auth";
|
||||||
|
+ return "https://accounts.google.com/o/oauth2/v2/auth";
|
||||||
|
}
|
||||||
|
|
||||||
|
static const gchar *
|
||||||
|
eos_google_get_refresh_uri (EOAuth2Service *service,
|
||||||
|
ESource *source)
|
||||||
|
{
|
||||||
|
- return "https://www.googleapis.com/oauth2/v3/token";
|
||||||
|
+ return "https://oauth2.googleapis.com/token";
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static const gchar *
|
||||||
|
+eos_google_get_redirect_uri (EOAuth2Service *service,
|
||||||
|
+ ESource *source)
|
||||||
|
+{
|
||||||
|
+ G_LOCK_DEFINE_STATIC (redirect_uri);
|
||||||
|
+ const gchar *key_name = "oauth2-google-redirect-uri";
|
||||||
|
+ gchar *value;
|
||||||
|
+
|
||||||
|
+ G_LOCK (redirect_uri);
|
||||||
|
+
|
||||||
|
+ value = g_object_get_data (G_OBJECT (service), key_name);
|
||||||
|
+ if (!value) {
|
||||||
|
+ const gchar *client_id = eos_google_get_client_id (service, source);
|
||||||
|
+
|
||||||
|
+ if (client_id) {
|
||||||
|
+ GPtrArray *array;
|
||||||
|
+ gchar **strv;
|
||||||
|
+ gchar *joinstr;
|
||||||
|
+ guint ii;
|
||||||
|
+
|
||||||
|
+ strv = g_strsplit (client_id, ".", -1);
|
||||||
|
+ array = g_ptr_array_new ();
|
||||||
|
+
|
||||||
|
+ for (ii = 0; strv[ii]; ii++) {
|
||||||
|
+ g_ptr_array_insert (array, 0, strv[ii]);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g_ptr_array_add (array, NULL);
|
||||||
|
+
|
||||||
|
+ joinstr = g_strjoinv (".", (gchar **) array->pdata);
|
||||||
|
+ /* Use reverse-DNS of the client ID with the below path */
|
||||||
|
+ value = g_strconcat (joinstr, ":/oauth2redirect", NULL);
|
||||||
|
+
|
||||||
|
+ g_ptr_array_free (array, TRUE);
|
||||||
|
+ g_strfreev (strv);
|
||||||
|
+ g_free (joinstr);
|
||||||
|
+
|
||||||
|
+ g_object_set_data_full (G_OBJECT (service), key_name, value, g_free);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ G_UNLOCK (redirect_uri);
|
||||||
|
+
|
||||||
|
+ return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -191,13 +238,13 @@ eos_google_extract_authorization_code (EOAuth2Service *service,
|
||||||
|
|
||||||
|
params = soup_form_decode (query);
|
||||||
|
if (params) {
|
||||||
|
- const gchar *response;
|
||||||
|
+ const gchar *code;
|
||||||
|
|
||||||
|
- response = g_hash_table_lookup (params, "response");
|
||||||
|
- if (response && g_ascii_strncasecmp (response, "code=", 5) == 0) {
|
||||||
|
- *out_authorization_code = g_strdup (response + 5);
|
||||||
|
+ code = g_hash_table_lookup (params, "code");
|
||||||
|
+ if (code && *code) {
|
||||||
|
+ *out_authorization_code = g_strdup (code);
|
||||||
|
known = TRUE;
|
||||||
|
- } else if (response && g_ascii_strncasecmp (response, "error", 5) == 0) {
|
||||||
|
+ } else if (g_hash_table_lookup (params, "error")) {
|
||||||
|
known = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
+ iface->get_redirect_uri = eos_google_get_redirect_uri;
|
||||||
|
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)) {
|
@ -0,0 +1,71 @@
|
|||||||
|
diff --git a/src/services/evolution-alarm-notify/CMakeLists.txt b/src/services/evolution-alarm-notify/CMakeLists.txt
|
||||||
|
index a4c0a41..a713797 100644
|
||||||
|
--- a/src/services/evolution-alarm-notify/CMakeLists.txt
|
||||||
|
+++ b/src/services/evolution-alarm-notify/CMakeLists.txt
|
||||||
|
@@ -1,9 +1,14 @@
|
||||||
|
set(DEPENDENCIES
|
||||||
|
ecal
|
||||||
|
- edataserverui
|
||||||
|
)
|
||||||
|
|
||||||
|
set(SOURCES
|
||||||
|
+ ../../libedataserverui/libedataserverui-private.h
|
||||||
|
+ ../../libedataserverui/libedataserverui-private.c
|
||||||
|
+ ../../libedataserverui/e-buffer-tagger.h
|
||||||
|
+ ../../libedataserverui/e-buffer-tagger.c
|
||||||
|
+ ../../libedataserverui/e-reminders-widget.h
|
||||||
|
+ ../../libedataserverui/e-reminders-widget.c
|
||||||
|
evolution-alarm-notify.c
|
||||||
|
e-alarm-notify.h
|
||||||
|
e-alarm-notify.c
|
||||||
|
@@ -17,9 +22,15 @@ add_dependencies(evolution-alarm-notify
|
||||||
|
${DEPENDENCIES}
|
||||||
|
)
|
||||||
|
|
||||||
|
+# the -DLIBEDATASERVERUI_COMPILATION is a hackish way to borrow sources from
|
||||||
|
+# the libedataserverui without depending on it (because it can be uninstalled)
|
||||||
|
target_compile_definitions(evolution-alarm-notify PRIVATE
|
||||||
|
-DG_LOG_DOMAIN=\"evolution-alarm-notify\"
|
||||||
|
-DLOCALEDIR=\"${LOCALE_INSTALL_DIR}\"
|
||||||
|
+ -DLIBEDATASERVERUI_COMPILATION
|
||||||
|
+ -DE_DATA_SERVER_PREFIX=\"${CMAKE_INSTALL_PREFIX}\"
|
||||||
|
+ -DE_DATA_SERVER_UIMODULEDIR=\"${uimoduledir}\"
|
||||||
|
+ -DE_DATA_SERVER_ICONDIR=\"${icondir}\"
|
||||||
|
)
|
||||||
|
|
||||||
|
target_compile_options(evolution-alarm-notify PUBLIC
|
||||||
|
@@ -33,6 +44,7 @@ target_include_directories(evolution-alarm-notify PUBLIC
|
||||||
|
${CMAKE_BINARY_DIR}
|
||||||
|
${CMAKE_BINARY_DIR}/src
|
||||||
|
${CMAKE_SOURCE_DIR}/src
|
||||||
|
+ ${CMAKE_SOURCE_DIR}/src/libedataserverui
|
||||||
|
${CANBERRA_INCLUDE_DIRS}
|
||||||
|
${DATA_SERVER_INCLUDE_DIRS}
|
||||||
|
${GNOME_PLATFORM_INCLUDE_DIRS}
|
||||||
|
diff --git a/src/services/evolution-alarm-notify/e-alarm-notify.c b/src/services/evolution-alarm-notify/e-alarm-notify.c
|
||||||
|
index 5c9b479..bf53a86 100644
|
||||||
|
--- a/src/services/evolution-alarm-notify/e-alarm-notify.c
|
||||||
|
+++ b/src/services/evolution-alarm-notify/e-alarm-notify.c
|
||||||
|
@@ -30,7 +30,9 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "libecal/libecal.h"
|
||||||
|
-#include "libedataserverui/libedataserverui.h"
|
||||||
|
+
|
||||||
|
+#include "libedataserverui/e-buffer-tagger.h"
|
||||||
|
+#include "libedataserverui/e-reminders-widget.h"
|
||||||
|
|
||||||
|
#include "e-alarm-notify.h"
|
||||||
|
|
||||||
|
diff --git a/src/services/evolution-alarm-notify/evolution-alarm-notify.c b/src/services/evolution-alarm-notify/evolution-alarm-notify.c
|
||||||
|
index 5467a8d..14a13aa 100644
|
||||||
|
--- a/src/services/evolution-alarm-notify/evolution-alarm-notify.c
|
||||||
|
+++ b/src/services/evolution-alarm-notify/evolution-alarm-notify.c
|
||||||
|
@@ -22,7 +22,6 @@
|
||||||
|
#include <glib/gi18n.h>
|
||||||
|
|
||||||
|
#include <libedataserver/libedataserver.h>
|
||||||
|
-#include <libedataserverui/libedataserverui.h>
|
||||||
|
|
||||||
|
#include "e-alarm-notify.h"
|
||||||
|
|
@ -0,0 +1,21 @@
|
|||||||
|
diff -up evolution-data-server-3.28.5/src/modules/secret-monitor/module-secret-monitor.c.secret-monitor-warnings evolution-data-server-3.28.5/src/modules/secret-monitor/module-secret-monitor.c
|
||||||
|
--- evolution-data-server-3.28.5/src/modules/secret-monitor/module-secret-monitor.c.secret-monitor-warnings 2018-07-30 15:17:06.000000000 +0200
|
||||||
|
+++ evolution-data-server-3.28.5/src/modules/secret-monitor/module-secret-monitor.c 2021-11-22 12:52:08.683986536 +0100
|
||||||
|
@@ -167,7 +167,7 @@ secret_monitor_scan_secrets_thread (gpoi
|
||||||
|
g_list_free_full (list, (GDestroyNotify) g_object_unref);
|
||||||
|
|
||||||
|
if (local_error != NULL) {
|
||||||
|
- g_warning ("%s: %s", G_STRFUNC, local_error->message);
|
||||||
|
+ e_source_registry_debug_print ("%s: %s", G_STRFUNC, local_error->message);
|
||||||
|
g_error_free (local_error);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -206,7 +206,7 @@ secret_monitor_scan_secrets_timeout_cb (
|
||||||
|
g_thread_unref (thread);
|
||||||
|
|
||||||
|
if (local_error != NULL) {
|
||||||
|
- g_warning ("%s: %s", G_STRFUNC, local_error->message);
|
||||||
|
+ e_source_registry_debug_print ("%s: %s", G_STRFUNC, local_error->message);
|
||||||
|
g_error_free (local_error);
|
||||||
|
g_object_unref (server);
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue