Browse Source

initial package creation

Signed-off-by: Toshaan Bharvani <toshaan@powerel.org>
master
Toshaan Bharvani 2 years ago
commit
b53389c523
  1. 116
      SOURCES/evolution-data-server-3.40.4-google-oauth2.patch
  2. 49
      SOURCES/evolution-data-server-3.40.4-icalcompiter.patch
  3. 21
      SOURCES/evolution-data-server-3.40.4-secret-monitor-warnings.patch
  4. 2404
      SPECS/evolution-data-server.spec

116
SOURCES/evolution-data-server-3.40.4-google-oauth2.patch

@ -0,0 +1,116 @@ @@ -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

49
SOURCES/evolution-data-server-3.40.4-icalcompiter.patch

@ -0,0 +1,49 @@ @@ -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)) {

21
SOURCES/evolution-data-server-3.40.4-secret-monitor-warnings.patch

@ -0,0 +1,21 @@ @@ -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);
}

2404
SPECS/evolution-data-server.spec

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save