diff --git a/eds-correct-some-public-headers.patch b/eds-correct-some-public-headers.patch new file mode 100644 index 0000000..97884a5 --- /dev/null +++ b/eds-correct-some-public-headers.patch @@ -0,0 +1,46 @@ +From 3d7ee164c1c598f302729e0bd24a86418f245f2c Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Thu, 26 Apr 2018 13:37:32 +0200 +Subject: Correct some public headers in libedataserverui + +--- + src/libedataserverui/e-trust-prompt.h | 4 ++++ + src/libedataserverui/e-webdav-discover-widget.h | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/libedataserverui/e-trust-prompt.h b/src/libedataserverui/e-trust-prompt.h +index 7f289cb..657775e 100644 +--- a/src/libedataserverui/e-trust-prompt.h ++++ b/src/libedataserverui/e-trust-prompt.h +@@ -29,6 +29,8 @@ + + #include + ++G_BEGIN_DECLS ++ + gchar * e_trust_prompt_describe_certificate_errors + (GTlsCertificateFlags flags); + ETrustPromptResponse +@@ -56,4 +58,6 @@ gboolean e_trust_prompt_run_for_source_finish + ETrustPromptResponse *response, + GError **error); + ++G_END_DECLS ++ + #endif /* E_TRUST_PROMPT_H */ +diff --git a/src/libedataserverui/e-webdav-discover-widget.h b/src/libedataserverui/e-webdav-discover-widget.h +index fdb7ee2..e324026 100644 +--- a/src/libedataserverui/e-webdav-discover-widget.h ++++ b/src/libedataserverui/e-webdav-discover-widget.h +@@ -27,7 +27,7 @@ + #include + + #include +-#include ++#include + + G_BEGIN_DECLS + +-- +cgit v0.12 + diff --git a/eds-fix-fails-to-parse-Google-OAuth2.patch b/eds-fix-fails-to-parse-Google-OAuth2.patch new file mode 100644 index 0000000..cf1212e --- /dev/null +++ b/eds-fix-fails-to-parse-Google-OAuth2.patch @@ -0,0 +1,74 @@ +From 5c6b22b8eb72ccac07c7e5867aa6074347f7fd78 Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Thu, 10 May 2018 13:58:32 +0200 +Subject: Bug 795997 - Fails to parse Google OAuth2 authorization code + +--- + src/libedataserver/e-oauth2-service-google.c | 49 +++++++++++++++++++++++----- + 1 file changed, 41 insertions(+), 8 deletions(-) + +diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c +index 261ba06..c380c61 100644 +--- a/src/libedataserver/e-oauth2-service-google.c ++++ b/src/libedataserver/e-oauth2-service-google.c +@@ -119,16 +119,49 @@ eos_google_extract_authorization_code (EOAuth2Service *service, + + *out_authorization_code = NULL; + +- if (!page_title || !*page_title) +- return FALSE; ++ if (page_title && *page_title) { ++ /* Known response, but no authorization code */ ++ if (g_ascii_strncasecmp (page_title, "Denied ", 7) == 0) ++ return TRUE; ++ ++ if (g_ascii_strncasecmp (page_title, "Success code=", 13) == 0) { ++ *out_authorization_code = g_strdup (page_title + 13); ++ return TRUE; ++ } ++ } ++ ++ if (page_uri && *page_uri) { ++ SoupURI *suri; ++ ++ suri = soup_uri_new (page_uri); ++ if (suri) { ++ const gchar *query = soup_uri_get_query (suri); ++ gboolean known = FALSE; ++ ++ if (query && *query) { ++ GHashTable *params; ++ ++ params = soup_form_decode (query); ++ if (params) { ++ const gchar *response; ++ ++ response = g_hash_table_lookup (params, "response"); ++ if (response && g_ascii_strncasecmp (response, "code=", 5) == 0) { ++ *out_authorization_code = g_strdup (response + 5); ++ known = TRUE; ++ } else if (response && g_ascii_strncasecmp (response, "error", 5) == 0) { ++ known = TRUE; ++ } ++ ++ g_hash_table_destroy (params); ++ } ++ } + +- /* Known response, but no authorization code */ +- if (g_ascii_strncasecmp (page_title, "Denied ", 7) == 0) +- return TRUE; ++ soup_uri_free (suri); + +- if (g_ascii_strncasecmp (page_title, "Success code=", 13) == 0) { +- *out_authorization_code = g_strdup (page_title + 13); +- return TRUE; ++ if (known) ++ return TRUE; ++ } + } + + return FALSE; +-- +cgit v0.12 + diff --git a/evolution-data-server.changes b/evolution-data-server.changes index 125d97d..6c63845 100644 --- a/evolution-data-server.changes +++ b/evolution-data-server.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed May 16 20:36:25 UTC 2018 - bjorn.lie@gmail.com + +- Add eds-fix-fails-to-parse-Google-OAuth2.patch: Fix fails to + parse Google OAuth2 authorization code (bgo#795997). +- Add eds-correct-some-public-headers.patch -- Correct some public + headers in libedataserverui. + ------------------------------------------------------------------- Mon May 7 09:25:10 UTC 2018 - bjorn.lie@gmail.com diff --git a/evolution-data-server.spec b/evolution-data-server.spec index 396395a..5feff6f 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -38,6 +38,11 @@ Group: Development/Libraries/GNOME URL: https://wiki.gnome.org/Apps/Evolution Source0: http://download.gnome.org/sources/evolution-data-server/%{_evo_version}/%{name}-%{version}.tar.xz Source99: baselibs.conf +# PATCH-FIX-UPSTREAM eds-fix-fails-to-parse-Google-OAuth2.patch bgo#795997 -- Fix fails to parse Google OAuth2 authorization code +Patch0: eds-fix-fails-to-parse-Google-OAuth2.patch +# PATCH-FIX-UPSTREAM eds-correct-some-public-headers.patch -- Correct some public headers in libedataserverui +Patch1: eds-correct-some-public-headers.patch + BuildRequires: cmake BuildRequires: db-devel BuildRequires: fdupes @@ -266,7 +271,7 @@ This package contains developer documentation. %lang_package %prep -%setup -q +%autosetup -p1 translation-update-upstream %build