summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2017-03-15 11:20:48 +0200
committerMart Raudsepp <leio@gentoo.org>2017-03-15 13:40:43 +0200
commit42ce46249599eefbc9233b0bf26ad78cb7cd1188 (patch)
treedb01cc73376d2ec90c9778f78a9cb0ea5c779a34 /dev-libs/libgdata
parentgnome-extra/evolution-data-server: bump to 3.22.6 (diff)
downloadgentoo-42ce46249599eefbc9233b0bf26ad78cb7cd1188.tar.gz
gentoo-42ce46249599eefbc9233b0bf26ad78cb7cd1188.tar.bz2
gentoo-42ce46249599eefbc9233b0bf26ad78cb7cd1188.zip
dev-libs/libgdata-0.17.7: make test-suite pass
Package-Manager: Portage-2.3.4, Repoman-2.3.1
Diffstat (limited to 'dev-libs/libgdata')
-rw-r--r--dev-libs/libgdata/files/0.17.7-fix-x86-tests.patch29
-rw-r--r--dev-libs/libgdata/files/0.17.7-streams-https-tests.patch204
-rw-r--r--dev-libs/libgdata/libgdata-0.17.7.ebuild5
3 files changed, 238 insertions, 0 deletions
diff --git a/dev-libs/libgdata/files/0.17.7-fix-x86-tests.patch b/dev-libs/libgdata/files/0.17.7-fix-x86-tests.patch
new file mode 100644
index 000000000000..fc74f44c07b1
--- /dev/null
+++ b/dev-libs/libgdata/files/0.17.7-fix-x86-tests.patch
@@ -0,0 +1,29 @@
+From 2e1bd073426b42a7e207314f1cef1402509ce12a Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Mon, 6 Mar 2017 06:28:32 +0100
+Subject: tests: Fix setting properties on i686
+
+Without the cast, an integer literal will have to wrong size for a
+64-bit integer parameter.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=779641
+---
+ gdata/tests/general.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gdata/tests/general.c b/gdata/tests/general.c
+index 6b41f25..75232de 100644
+--- a/gdata/tests/general.c
++++ b/gdata/tests/general.c
+@@ -1309,7 +1309,7 @@ test_query_properties (void)
+ g_assert_##cmptype (gdata_query_get_##name_underscores (query), ==, new_val); \
+ \
+ notification_received = FALSE; \
+- g_object_set (query, name_hyphens, new_val2, NULL); \
++ g_object_set (query, name_hyphens, (val_type) new_val2, NULL); \
+ g_assert (notification_received == TRUE); \
+ \
+ g_assert_##cmptype (gdata_query_get_##name_underscores (query), ==, new_val2); \
+--
+cgit v0.12
+
diff --git a/dev-libs/libgdata/files/0.17.7-streams-https-tests.patch b/dev-libs/libgdata/files/0.17.7-streams-https-tests.patch
new file mode 100644
index 000000000000..3d958a79f58c
--- /dev/null
+++ b/dev-libs/libgdata/files/0.17.7-streams-https-tests.patch
@@ -0,0 +1,204 @@
+From 106937d394fe3b8edbfb506273ae429d7ded2c2c Mon Sep 17 00:00:00 2001
+From: Philip Withnall <philip.withnall@collabora.co.uk>
+Date: Tue, 20 Sep 2016 17:04:33 -0700
+Subject: core: Assert that all downloads, uploads and queries are HTTPS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All callers should be using HTTPS already — for peace of mind, let’s
+assert that’s the case.
+---
+ gdata/gdata-download-stream.c | 7 ++++---
+ gdata/gdata-service.c | 4 +++-
+ gdata/gdata-upload-stream.c | 10 ++++++++--
+ gdata/tests/general.c | 6 +++---
+ gdata/tests/streams.c | 26 ++++++++++++++++++++------
+ 5 files changed, 38 insertions(+), 15 deletions(-)
+
+diff --git a/gdata/gdata-download-stream.c b/gdata/gdata-download-stream.c
+index 67a3514..7613fd2 100644
+--- a/gdata/gdata-download-stream.c
++++ b/gdata/gdata-download-stream.c
+@@ -233,7 +233,7 @@ gdata_download_stream_class_init (GDataDownloadStreamClass *klass)
+ /**
+ * GDataDownloadStream:download-uri:
+ *
+- * The URI of the file to download.
++ * The URI of the file to download. This must be HTTPS.
+ *
+ * Since: 0.5.0
+ **/
+@@ -355,9 +355,10 @@ gdata_download_stream_constructor (GType type, guint n_construct_params, GObject
+ priv->cancellable = g_cancellable_new ();
+ priv->network_cancellable_id = g_cancellable_connect (priv->cancellable, (GCallback) cancellable_cancel_cb, priv->network_cancellable, NULL);
+
+- /* Build the message */
++ /* Build the message. The URI must be HTTPS. */
+ _uri = soup_uri_new (priv->download_uri);
+ soup_uri_set_port (_uri, _gdata_service_get_https_port ());
++ g_assert_cmpstr (soup_uri_get_scheme (_uri), ==, SOUP_URI_SCHEME_HTTPS);
+ priv->message = soup_message_new_from_uri (SOUP_METHOD_GET, _uri);
+ soup_uri_free (_uri);
+
+@@ -928,7 +929,7 @@ reset_network_thread (GDataDownloadStream *self)
+ * gdata_download_stream_new:
+ * @service: a #GDataService
+ * @domain: (allow-none): the #GDataAuthorizationDomain to authorize the download, or %NULL
+- * @download_uri: the URI to download
++ * @download_uri: the URI to download; this must be HTTPS
+ * @cancellable: (allow-none): a #GCancellable for the entire download stream, or %NULL
+ *
+ * Creates a new #GDataDownloadStream, allowing a file to be downloaded from a GData service using standard #GInputStream API.
+diff --git a/gdata/gdata-service.c b/gdata/gdata-service.c
+index 2433339..9db75ba 100644
+--- a/gdata/gdata-service.c
++++ b/gdata/gdata-service.c
+@@ -581,9 +581,11 @@ _gdata_service_build_message (GDataService *self, GDataAuthorizationDomain *doma
+ GDataServiceClass *klass;
+ SoupURI *_uri;
+
+- /* Create the message. Allow changing the HTTPS port just for testing. */
++ /* Create the message. Allow changing the HTTPS port just for testing,
++ * but require that the URI is always HTTPS for privacy. */
+ _uri = soup_uri_new (uri);
+ soup_uri_set_port (_uri, _gdata_service_get_https_port ());
++ g_assert_cmpstr (soup_uri_get_scheme (_uri), ==, SOUP_URI_SCHEME_HTTPS);
+ message = soup_message_new_from_uri (method, _uri);
+ soup_uri_free (_uri);
+
+diff --git a/gdata/gdata-upload-stream.c b/gdata/gdata-upload-stream.c
+index bb52ac8..c8340be 100644
+--- a/gdata/gdata-upload-stream.c
++++ b/gdata/gdata-upload-stream.c
+@@ -307,7 +307,7 @@ gdata_upload_stream_class_init (GDataUploadStreamClass *klass)
+ /**
+ * GDataUploadStream:upload-uri:
+ *
+- * The URI to upload the data and metadata to.
++ * The URI to upload the data and metadata to. This must be HTTPS.
+ *
+ * Since: 0.5.0
+ **/
+@@ -428,11 +428,17 @@ gdata_upload_stream_constructed (GObject *object)
+ {
+ GDataUploadStreamPrivate *priv;
+ GDataServiceClass *service_klass;
++ SoupURI *uri = NULL;
+
+ /* Chain up to the parent class */
+ G_OBJECT_CLASS (gdata_upload_stream_parent_class)->constructed (object);
+ priv = GDATA_UPLOAD_STREAM (object)->priv;
+
++ /* The upload URI must be HTTPS. */
++ uri = soup_uri_new (priv->upload_uri);
++ g_assert_cmpstr (soup_uri_get_scheme (uri), ==, SOUP_URI_SCHEME_HTTPS);
++ soup_uri_free (uri);
++
+ /* Create a #GCancellable for the entire upload operation if one wasn't specified for #GDataUploadStream:cancellable during construction */
+ if (priv->cancellable == NULL)
+ priv->cancellable = g_cancellable_new ();
+@@ -1300,7 +1306,7 @@ create_network_thread (GDataUploadStream *self, GError **error)
+ * @service: a #GDataService
+ * @domain: (allow-none): the #GDataAuthorizationDomain to authorize the upload, or %NULL
+ * @method: the HTTP method to use
+- * @upload_uri: the URI to upload
++ * @upload_uri: the URI to upload, which must be HTTPS
+ * @entry: (allow-none): the entry to upload as metadata, or %NULL
+ * @slug: the file's slug (filename)
+ * @content_type: the content type of the file being uploaded
+diff --git a/gdata/tests/general.c b/gdata/tests/general.c
+index 070d34c..2420629 100644
+--- a/gdata/tests/general.c
++++ b/gdata/tests/general.c
+@@ -1425,7 +1425,7 @@ test_service_network_error (void)
+ service = g_object_new (GDATA_TYPE_SERVICE, NULL);
+
+ /* Try a query which should always fail due to errors resolving the hostname */
+- g_assert (gdata_service_query (service, NULL, "http://thisshouldnotexist.invalid", NULL, GDATA_TYPE_ENTRY,
++ g_assert (gdata_service_query (service, NULL, "https://thisshouldnotexist.invalid", NULL, GDATA_TYPE_ENTRY,
+ NULL, NULL, NULL, &error) == NULL);
+ g_assert_error (error, GDATA_SERVICE_ERROR, GDATA_SERVICE_ERROR_NETWORK_ERROR);
+ g_clear_error (&error);
+@@ -1434,11 +1434,11 @@ test_service_network_error (void)
+ * Filed as bgo#632354. */
+ #if 0
+ /* Try one with a bad proxy set */
+- proxy_uri = soup_uri_new ("http://thisshouldalsonotexist.invalid/proxy");
++ proxy_uri = soup_uri_new ("https://thisshouldalsonotexist.invalid/proxy");
+ gdata_service_set_proxy_uri (service, proxy_uri);
+ soup_uri_free (proxy_uri);
+
+- g_assert (gdata_service_query (service, "http://google.com", NULL, GDATA_TYPE_ENTRY, NULL, NULL, NULL, &error) == NULL);
++ g_assert (gdata_service_query (service, "https://google.com", NULL, GDATA_TYPE_ENTRY, NULL, NULL, NULL, &error) == NULL);
+ g_assert_error (error, GDATA_SERVICE_ERROR, GDATA_SERVICE_ERROR_PROXY_ERROR);
+ g_clear_error (&error);
+ #endif
+diff --git a/gdata/tests/streams.c b/gdata/tests/streams.c
+index 91b35c6..1de8e50 100644
+--- a/gdata/tests/streams.c
++++ b/gdata/tests/streams.c
+@@ -161,6 +161,7 @@ create_server (SoupServerCallback callback, gpointer user_data, GMainLoop **main
+ GMainContext *context;
+ SoupServer *server;
+ #ifdef HAVE_LIBSOUP_2_47_3
++ gchar *cert_path = NULL, *key_path = NULL;
+ GError *error = NULL;
+ #else /* if !HAVE_LIBSOUP_2_47_3 */
+ union {
+@@ -178,12 +179,21 @@ create_server (SoupServerCallback callback, gpointer user_data, GMainLoop **main
+ #ifdef HAVE_LIBSOUP_2_47_3
+ server = soup_server_new (NULL, NULL);
+
++ cert_path = g_test_build_filename (G_TEST_DIST, "cert.pem", NULL);
++ key_path = g_test_build_filename (G_TEST_DIST, "key.pem", NULL);
++
++ soup_server_set_ssl_cert_file (server, cert_path, key_path, &error);
++ g_assert_no_error (error);
++
++ g_free (key_path);
++ g_free (cert_path);
++
+ soup_server_add_handler (server, NULL, callback, user_data, NULL);
+
+ g_main_context_push_thread_default (context);
+
+ soup_server_listen_local (server, 0 /* random port */,
+- 0 /* no options */, &error);
++ SOUP_SERVER_LISTEN_HTTPS, &error);
+ g_assert_no_error (error);
+
+ g_main_context_pop_thread_default (context);
+@@ -216,20 +226,24 @@ build_server_uri (SoupServer *server)
+ {
+ #ifdef HAVE_LIBSOUP_2_47_3
+ GSList *uris; /* owned */
++ GSList *l; /* unowned */
+ gchar *retval = NULL; /* owned */
+
+ uris = soup_server_get_uris (server);
+- if (uris == NULL) {
+- return NULL;
+- }
+
+- retval = soup_uri_to_string (uris->data, FALSE);
++ for (l = uris; l != NULL && retval == NULL; l = l->next) {
++ if (soup_uri_get_scheme (l->data) == SOUP_URI_SCHEME_HTTPS) {
++ retval = soup_uri_to_string (l->data, FALSE);
++ }
++ }
+
+ g_slist_free_full (uris, (GDestroyNotify) soup_uri_free);
+
++ g_assert (retval != NULL);
++
+ return retval;
+ #else /* if !HAVE_LIBSOUP_2_47_3 */
+- return g_strdup_printf ("http://%s:%u/",
++ return g_strdup_printf ("https://%s:%u/",
+ soup_address_get_physical (soup_socket_get_local_address (soup_server_get_listener (server))),
+ soup_server_get_port (server));
+ #endif /* !HAVE_LIBSOUP_2_47_3 */
+--
+cgit v0.12
+
diff --git a/dev-libs/libgdata/libgdata-0.17.7.ebuild b/dev-libs/libgdata/libgdata-0.17.7.ebuild
index 5e6ee2b3e54d..ce01bdd4863c 100644
--- a/dev-libs/libgdata/libgdata-0.17.7.ebuild
+++ b/dev-libs/libgdata/libgdata-0.17.7.ebuild
@@ -41,6 +41,11 @@ DEPEND="${RDEPEND}
"
src_prepare() {
+ # https://bugzilla.gnome.org/show_bug.cgi?id=780081
+ eapply -R "${FILESDIR}/${PV}"-streams-https-tests.patch
+ # x86 test fix from upstream git post-0.17.7
+ eapply "${FILESDIR}/${PV}"-fix-x86-tests.patch
+
use vala && vala_src_prepare
gnome2_src_prepare
}