summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch')
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch351
1 files changed, 351 insertions, 0 deletions
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch
new file mode 100644
index 0000000000..11fc96bc28
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Use-GUri-instead-of-SoupURI.patch
@@ -0,0 +1,351 @@
+From 5a5abbedb171986dbf6f5a37577ec6afa892b66b Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <cgarcia@igalia.com>
+Date: Mon, 7 Jun 2021 16:31:18 +0200
+Subject: [PATCH 1/2] Use GUri instead of SoupURI
+
+In preparation for libsoup3 where SoupURI has been removed in favor of
+GUri.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/merge_requests/73]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ src/goabackend/goaoauth2provider.c | 11 +--
+ src/goabackend/goaoauthprovider.c | 8 +-
+ src/goabackend/goaowncloudprovider.c | 107 ++++++++++++++++-----------
+ src/goabackend/goawebview.c | 9 +--
+ 5 files changed, 80 insertions(+), 57 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1f88bbd..7c0b39d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -90,7 +90,7 @@ GTK_DOC_CHECK([1.3])
+ # Libraries
+ #
+
+-PKG_CHECK_MODULES(GLIB, [glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52])
++PKG_CHECK_MODULES(GLIB, [glib-2.0 gio-2.0 gio-unix-2.0 >= 2.67.4])
+ AC_SUBST(GLIB_CFLAGS)
+ AC_SUBST(GLIB_LIBS)
+
+diff --git a/src/goabackend/goaoauth2provider.c b/src/goabackend/goaoauth2provider.c
+index 3715431..2757838 100644
+--- a/src/goabackend/goaoauth2provider.c
++++ b/src/goabackend/goaoauth2provider.c
+@@ -763,7 +763,7 @@ on_web_view_decide_policy (WebKitWebView *web_view,
+ GHashTable *key_value_pairs;
+ WebKitNavigationAction *action;
+ WebKitURIRequest *request;
+- SoupURI *uri;
++ GUri *uri;
+ const gchar *fragment;
+ const gchar *oauth2_error;
+ const gchar *query;
+@@ -793,9 +793,9 @@ on_web_view_decide_policy (WebKitWebView *web_view,
+ if (!g_str_has_prefix (requested_uri, redirect_uri))
+ goto default_behaviour;
+
+- uri = soup_uri_new (requested_uri);
+- fragment = soup_uri_get_fragment (uri);
+- query = soup_uri_get_query (uri);
++ uri = g_uri_parse (requested_uri, G_URI_FLAGS_ENCODED, NULL);
++ fragment = g_uri_get_fragment (uri);
++ query = g_uri_get_query (uri);
+
+ /* Three cases:
+ * 1) we can either have the backend handle the URI for us, or
+@@ -808,7 +808,7 @@ on_web_view_decide_policy (WebKitWebView *web_view,
+ {
+ gchar *url;
+
+- url = soup_uri_to_string (uri, FALSE);
++ url = g_uri_to_string (uri);
+ if (!goa_oauth2_provider_process_redirect_url (self, url, &priv->access_token, &priv->error))
+ {
+ g_prefix_error (&priv->error, _("Authorization response: "));
+@@ -889,6 +889,7 @@ on_web_view_decide_policy (WebKitWebView *web_view,
+ goto ignore_request;
+
+ ignore_request:
++ g_uri_unref (uri);
+ g_assert (response_id != GTK_RESPONSE_NONE);
+ if (response_id < 0)
+ gtk_dialog_response (priv->dialog, response_id);
+diff --git a/src/goabackend/goaoauthprovider.c b/src/goabackend/goaoauthprovider.c
+index 0bfab6b..ff0927e 100644
+--- a/src/goabackend/goaoauthprovider.c
++++ b/src/goabackend/goaoauthprovider.c
+@@ -643,7 +643,7 @@ on_web_view_decide_policy (WebKitWebView *web_view,
+ {
+ GHashTable *key_value_pairs;
+ IdentifyData *data = user_data;
+- SoupURI *uri;
++ GUri *uri;
+ WebKitNavigationAction *action;
+ WebKitURIRequest *request;
+ const gchar *query;
+@@ -664,8 +664,8 @@ on_web_view_decide_policy (WebKitWebView *web_view,
+ if (!g_str_has_prefix (requested_uri, redirect_uri))
+ goto default_behaviour;
+
+- uri = soup_uri_new (requested_uri);
+- query = soup_uri_get_query (uri);
++ uri = g_uri_parse (requested_uri, G_URI_FLAGS_ENCODED, NULL);
++ query = g_uri_get_query (uri);
+
+ if (query != NULL)
+ {
+@@ -678,6 +678,8 @@ on_web_view_decide_policy (WebKitWebView *web_view,
+ g_hash_table_unref (key_value_pairs);
+ }
+
++ g_uri_unref (uri);
++
+ if (data->oauth_verifier != NULL)
+ goto ignore_request;
+
+diff --git a/src/goabackend/goaowncloudprovider.c b/src/goabackend/goaowncloudprovider.c
+index d142966..10734be 100644
+--- a/src/goabackend/goaowncloudprovider.c
++++ b/src/goabackend/goaowncloudprovider.c
+@@ -22,8 +22,6 @@
+
+ #include <glib/gi18n-lib.h>
+
+-#include <libsoup/soup.h>
+-
+ #include "goahttpclient.h"
+ #include "goaprovider.h"
+ #include "goaowncloudprovider.h"
+@@ -78,45 +76,42 @@ get_provider_features (GoaProvider *provider)
+ /* ---------------------------------------------------------------------------------------------------- */
+
+ static char *
+-uri_to_string_with_path (SoupURI *soup_uri, const gchar *path)
++uri_to_string_with_path (GUri *uri, const gchar *path)
+ {
+ gchar *uri_string;
+ gchar *uri_tmp;
+
+- if (soup_uri == NULL)
++ if (uri == NULL)
+ return NULL;
+
+- uri_tmp = soup_uri_to_string (soup_uri, FALSE);
++ uri_tmp = g_uri_to_string (uri);
+ uri_string = g_strconcat (uri_tmp, path, NULL);
+ g_free (uri_tmp);
+
+ return uri_string;
+ }
+
+-static char *get_webdav_uri (SoupURI *soup_uri)
++static char *get_webdav_uri (GUri *uri)
+ {
+- SoupURI *uri_tmp;
++ GUri *uri_tmp;
+ gchar *uri_webdav;
+ const gchar *scheme;
+- guint port;
+
+- if (soup_uri == NULL)
++ if (uri == NULL)
+ return NULL;
+
+- scheme = soup_uri_get_scheme (soup_uri);
+- port = soup_uri_get_port (soup_uri);
+- uri_tmp = soup_uri_copy (soup_uri);
+-
+- if (g_strcmp0 (scheme, SOUP_URI_SCHEME_HTTPS) == 0)
+- soup_uri_set_scheme (uri_tmp, "davs");
+- else
+- soup_uri_set_scheme (uri_tmp, "dav");
+-
+- if (!soup_uri_uses_default_port (soup_uri))
+- soup_uri_set_port (uri_tmp, port);
++ scheme = g_uri_get_scheme (uri);
++ uri_tmp = g_uri_build (g_uri_get_flags (uri),
++ g_strcmp0 (scheme, "https") == 0 ? "davs" : "dav",
++ g_uri_get_userinfo (uri),
++ g_uri_get_host (uri),
++ g_uri_get_port (uri),
++ g_uri_get_path (uri),
++ g_uri_get_query (uri),
++ g_uri_get_fragment (uri));
+
+ uri_webdav = uri_to_string_with_path (uri_tmp, WEBDAV_ENDPOINT);
+- soup_uri_free (uri_tmp);
++ g_uri_unref (uri_tmp);
+
+ return uri_webdav;
+ }
+@@ -140,7 +135,7 @@ build_object (GoaProvider *provider,
+ gchar *uri_carddav;
+ gchar *uri_webdav;
+ GoaPasswordBased *password_based = NULL;
+- SoupURI *uri = NULL;
++ GUri *uri = NULL;
+ gboolean accept_ssl_errors;
+ gboolean calendar_enabled;
+ gboolean contacts_enabled;
+@@ -176,9 +171,24 @@ build_object (GoaProvider *provider,
+ account = goa_object_get_account (GOA_OBJECT (object));
+ identity = goa_account_get_identity (account);
+ uri_string = g_key_file_get_string (key_file, group, "Uri", NULL);
+- uri = soup_uri_new (uri_string);
++ uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED, NULL);
+ if (uri != NULL)
+- soup_uri_set_user (uri, identity);
++ {
++ GUri *tmp_uri;
++
++ tmp_uri = g_uri_build_with_user (g_uri_get_flags (uri),
++ g_uri_get_scheme (uri),
++ identity,
++ g_uri_get_password (uri),
++ g_uri_get_auth_params (uri),
++ g_uri_get_host (uri),
++ g_uri_get_port (uri),
++ g_uri_get_path (uri),
++ g_uri_get_query (uri),
++ g_uri_get_fragment (uri));
++ g_uri_unref (uri);
++ uri = tmp_uri;
++ }
+
+ accept_ssl_errors = g_key_file_get_boolean (key_file, group, "AcceptSslErrors", NULL);
+
+@@ -224,7 +234,7 @@ build_object (GoaProvider *provider,
+
+ out:
+ g_clear_object (&password_based);
+- g_clear_pointer (&uri, soup_uri_free);
++ g_clear_pointer (&uri, g_uri_unref);
+ g_free (uri_string);
+ return ret;
+ }
+@@ -354,8 +364,11 @@ add_entry (GtkWidget *grid,
+ static gchar *
+ normalize_uri (const gchar *address, gchar **server)
+ {
+- SoupURI *uri = NULL;
++ GUri *uri = NULL;
++ GUri *uri_tmp = NULL;
+ const gchar *path;
++ const gchar *new_scheme;
++ gchar *new_path = NULL;
+ gchar *ret = NULL;
+ gchar *scheme = NULL;
+ gchar *uri_string = NULL;
+@@ -384,48 +397,56 @@ normalize_uri (const gchar *address, gchar **server)
+ else
+ goto out;
+
+- uri = soup_uri_new (uri_string);
++ uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED, NULL);
+ if (uri == NULL)
+ goto out;
+
+ if (g_strcmp0 (scheme, "dav") == 0)
+- soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTP);
++ new_scheme = "http";
+ else if (g_strcmp0 (scheme, "davs") == 0)
+- soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTPS);
++ new_scheme = "https";
++ else
++ new_scheme = g_uri_get_scheme (uri);
+
+- path = soup_uri_get_path (uri);
++ path = g_uri_get_path (uri);
+ if (!g_str_has_suffix (path, "/"))
+- {
+- gchar *new_path;
+-
+ new_path = g_strconcat (path, "/", NULL);
+- soup_uri_set_path (uri, new_path);
+- path = soup_uri_get_path (uri);
+- g_free (new_path);
+- }
++
++ uri_tmp = g_uri_build (g_uri_get_flags (uri),
++ new_scheme,
++ g_uri_get_userinfo (uri),
++ g_uri_get_host (uri),
++ g_uri_get_port (uri),
++ new_path ? new_path : path,
++ g_uri_get_query (uri),
++ g_uri_get_fragment (uri));
++ g_free (new_path);
++ g_uri_unref (uri);
++ uri = uri_tmp;
++ path = g_uri_get_path (uri);
+
+ if (server != NULL)
+ {
+ gchar *port_string;
+ gchar *pretty_path;
+- guint port;
++ gint port;
+
+- port = soup_uri_get_port (uri);
+- port_string = g_strdup_printf (":%u", port);
++ port = g_uri_get_port (uri);
++ port_string = g_strdup_printf (":%d", port);
+
+ pretty_path = g_strdup (path);
+ pretty_path[strlen(pretty_path) - 1] = '\0';
+
+- *server = g_strconcat (soup_uri_get_host (uri), (port == std_port) ? "" : port_string, pretty_path, NULL);
++ *server = g_strconcat (g_uri_get_host (uri), (port == std_port || port == -1) ? "" : port_string, pretty_path, NULL);
+
+ g_free (port_string);
+ g_free (pretty_path);
+ }
+
+- ret = soup_uri_to_string (uri, FALSE);
++ ret = g_uri_to_string (uri);
+
+ out:
+- g_clear_pointer (&uri, soup_uri_free);
++ g_clear_pointer (&uri, g_uri_unref);
+ g_free (scheme);
+ g_free (uri_string);
+ return ret;
+diff --git a/src/goabackend/goawebview.c b/src/goabackend/goawebview.c
+index 2438e0c..3df600e 100644
+--- a/src/goabackend/goawebview.c
++++ b/src/goabackend/goawebview.c
+@@ -25,7 +25,6 @@
+ #include <glib.h>
+ #include <glib/gi18n-lib.h>
+ #include <jsc/jsc.h>
+-#include <libsoup/soup.h>
+ #include <webkit2/webkit2.h>
+
+ #include "goawebview.h"
+@@ -77,17 +76,17 @@ web_view_clear_notify_progress_cb (gpointer user_data)
+ static char *
+ web_view_create_loading_title (const gchar *url)
+ {
+- SoupURI *uri;
++ GUri *uri;
+ const gchar *hostname;
+ gchar *title;
+
+ g_return_val_if_fail (url != NULL && url[0] != '\0', NULL);
+
+- uri = soup_uri_new (url);
+- hostname = soup_uri_get_host (uri);
++ uri = g_uri_parse (url, G_URI_FLAGS_NONE, NULL);
++ hostname = g_uri_get_host (uri);
+ /* translators: %s here is the address of the web page */
+ title = g_strdup_printf (_("Loading ā€œ%sā€ā€¦"), hostname);
+- soup_uri_free (uri);
++ g_uri_unref (uri);
+
+ return title;
+ }
+--
+2.33.1
+