diff --git a/evolution-data-server.spec b/evolution-data-server.spec index a2fca0f..d462844 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -58,7 +58,7 @@ Name: evolution-data-server Version: 3.47.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Backend data server for Evolution License: LGPL-2.0-or-later URL: https://wiki.gnome.org/Apps/Evolution @@ -66,6 +66,8 @@ Source: http://download.gnome.org/sources/%{name}/3.47/%{name}-%{version}.tar.xz # https://gitlab.gnome.org/GNOME/evolution-data-server/-/merge_requests/112 Patch0: webkitgtk-2.39.5.patch +# https://gitlab.gnome.org/GNOME/evolution-data-server/-/merge_requests/114 +Patch1: webkitgtk-2.39.6.patch Provides: evolution-webcal = %{version} Obsoletes: evolution-webcal < 2.24.0 @@ -491,6 +493,9 @@ find $RPM_BUILD_ROOT -name '*.so.*' -exec chmod +x {} \; %{_datadir}/installed-tests %changelog +* Wed Feb 01 2023 Michael Catanzaro - 3.47.1-4 +- Build against WebKitGTK 2.39.6 + * Fri Jan 20 2023 Michael Catanzaro - 3.47.1-3 - Build against WebKitGTK 2.39.5 diff --git a/webkitgtk-2.39.6.patch b/webkitgtk-2.39.6.patch new file mode 100644 index 0000000..d0a59e1 --- /dev/null +++ b/webkitgtk-2.39.6.patch @@ -0,0 +1,148 @@ +From 816deda308279c3e5a8a816ae2d94542c9084555 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Wed, 1 Feb 2023 13:36:21 -0600 +Subject: [PATCH 1/2] M!114 - OAuth2: stop trying to disable WebKit plugins + +WebKitGTK removed support for plugins in 2.32, but evolution-data-server +already requires 2.34 at least. This property is gone in 2.39.5. +--- + src/libedataserverui/e-credentials-prompter-impl-oauth2.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c +index 7e116fc7f..7a1f40e10 100644 +--- a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c ++++ b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c +@@ -1205,7 +1205,6 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 * + "enable-html5-local-storage", FALSE, + "enable-offline-web-application-cache", FALSE, + "enable-page-cache", FALSE, +- "enable-plugins", FALSE, + "media-playback-allows-inline", FALSE, + "hardware-acceleration-policy", WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER, + NULL); +-- +GitLab + + +From 02703b28d798931afccebf79c842b54625a8dcd0 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Wed, 1 Feb 2023 13:46:15 -0600 +Subject: [PATCH 2/2] M!114 - OAuth2: use WebKitNetworkSession to manage proxy + settings + +With WebKitGTK 2.39.6, network proxy settings moved from +WebKitWebsiteDataManager to WebKitNetworkSession. +--- + .../e-credentials-prompter-impl-oauth2.c | 40 +++++++++++++++++-- + 1 file changed, 36 insertions(+), 4 deletions(-) + +diff --git a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c +index 7a1f40e10..9a3918b61 100644 +--- a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c ++++ b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c +@@ -679,7 +679,12 @@ credentials_prompter_impl_oauth2_sanitize_host (gchar *host) + } + + static void +-credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context, ++credentials_prompter_impl_oauth2_set_proxy ( ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ WebKitNetworkSession *network_session, ++#else ++ WebKitWebsiteDataManager *data_manager, ++#endif + ESourceRegistry *registry, + ESource *auth_source) + { +@@ -704,7 +709,6 @@ credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context, + + if (proxy_source && e_source_has_extension (proxy_source, E_SOURCE_EXTENSION_PROXY)) { + ESourceProxy *proxy; +- WebKitWebsiteDataManager *data_manager; + WebKitNetworkProxySettings *proxy_settings = NULL; + GUri *guri; + gchar **ignore_hosts = NULL; +@@ -712,11 +716,14 @@ credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context, + guint16 port; + + proxy = e_source_get_extension (proxy_source, E_SOURCE_EXTENSION_PROXY); +- data_manager = webkit_web_context_get_website_data_manager (web_context); + + switch (e_source_proxy_get_method (proxy)) { + case E_PROXY_METHOD_DEFAULT: ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ webkit_network_session_set_proxy_settings (network_session, WEBKIT_NETWORK_PROXY_MODE_DEFAULT, NULL); ++#else + webkit_website_data_manager_set_network_proxy_settings (data_manager, WEBKIT_NETWORK_PROXY_MODE_DEFAULT, NULL); ++#endif + break; + case E_PROXY_METHOD_MANUAL: + ignore_hosts = e_source_proxy_dup_ignore_hosts (proxy); +@@ -770,13 +777,21 @@ credentials_prompter_impl_oauth2_set_proxy (WebKitWebContext *web_context, + } + g_free (tmp); + ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ webkit_network_session_set_proxy_settings (network_session, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, proxy_settings); ++#else + webkit_website_data_manager_set_network_proxy_settings (data_manager, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, proxy_settings); ++#endif + break; + case E_PROXY_METHOD_AUTO: + /* not supported by WebKitGTK */ + break; + case E_PROXY_METHOD_NONE: ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ webkit_network_session_set_proxy_settings (network_session, WEBKIT_NETWORK_PROXY_MODE_NO_PROXY, proxy_settings); ++#else + webkit_website_data_manager_set_network_proxy_settings (data_manager, WEBKIT_NETWORK_PROXY_MODE_NO_PROXY, NULL); ++#endif + break; + } + +@@ -899,6 +914,11 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 * + GtkWidget *progress_bar; + WebKitSettings *webkit_settings; + WebKitWebContext *web_context; ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ WebKitNetworkSession *network_session; ++#else ++ WebKitWebsiteDataManager *data_manager; ++#endif + #endif /* WITH_WEBKITGTK */ + gchar *title, *uri; + GString *info_markup; +@@ -1213,9 +1233,18 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 * + #if !GTK_CHECK_VERSION(4, 0, 0) || !WEBKIT_CHECK_VERSION(2, 39, 5) + webkit_web_context_set_sandbox_enabled (web_context, TRUE); + #endif +- credentials_prompter_impl_oauth2_set_proxy (web_context, e_credentials_prompter_get_registry (prompter), prompter_oauth2->priv->auth_source); ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ network_session = webkit_network_session_new (NULL, NULL); ++ credentials_prompter_impl_oauth2_set_proxy (network_session, e_credentials_prompter_get_registry (prompter), prompter_oauth2->priv->auth_source); ++#else ++ data_manager = webkit_web_context_get_website_data_manager (web_context); ++ credentials_prompter_impl_oauth2_set_proxy (data_manager, e_credentials_prompter_get_registry (prompter), prompter_oauth2->priv->auth_source); ++#endif + + widget = g_object_new (WEBKIT_TYPE_WEB_VIEW, ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ "network-session", network_session, ++#endif + "settings", webkit_settings, + "web-context", web_context, + NULL); +@@ -1231,6 +1260,9 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 * + gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window), widget); + #else + gtk_container_add (GTK_CONTAINER (scrolled_window), widget); ++#endif ++#if GTK_CHECK_VERSION(4, 0, 0) && WEBKIT_CHECK_VERSION(2, 39, 6) ++ g_object_unref (network_session); + #endif + g_object_unref (webkit_settings); + g_object_unref (web_context); +-- +GitLab +