aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/gnome.scm52
-rw-r--r--gnu/packages/patches/libgdata-fix-tests.patch325
-rw-r--r--gnu/packages/patches/libgdata-glib-duplicate-tests.patch16
4 files changed, 394 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index e08146f3b2..922c33aca3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -729,6 +729,8 @@ dist_patch_DATA = \
%D%/packages/patches/libevent-2.1-dns-tests.patch \
%D%/packages/patches/libevent-2.1-skip-failing-test.patch \
%D%/packages/patches/libextractor-ffmpeg-3.patch \
+ %D%/packages/patches/libgdata-fix-tests.patch \
+ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \
%D%/packages/patches/libgit2-use-after-free.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 299f11b2d2..6ffa10b252 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
-;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
@@ -238,6 +238,56 @@ relationship modeling, and network diagrams. The program supports various file
formats like PNG, SVG, PDF and EPS.")
(license license:gpl2+))))
+(define-public libgdata
+ (package
+ (name "libgdata")
+ (version "0.16.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "09q8h1129xjpw33rvzz7856drygxwlm0s64z9cm0vbmjxiqy0h47"))
+ (patches
+ (search-patches "libgdata-fix-tests.patch"
+ "libgdata-glib-duplicate-tests.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'use-empty-ssl-cert-file
+ (lambda _
+ ;; The ca-certificates.crt is not available in the build
+ ;; environment.
+ (setenv "SSL_CERT_FILE" "/dev/null")
+ #t)))))
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)
+ ("uhttpmock" ,uhttpmock)))
+ (inputs
+ `(("cyrus-sasl" ,cyrus-sasl)
+ ("glib" ,glib)
+ ("glib-networking" ,glib-networking)
+ ("json-glib" ,json-glib)
+ ("libsoup" ,libsoup)))
+ (propagated-inputs
+ `(("gcr" ,gcr)
+ ("gnome-online-accounts" ,gnome-online-accounts)
+ ("liboauth" ,liboauth)
+ ("libxml2" ,libxml2)))
+ (home-page "https://wiki.gnome.org/Projects/libgdata")
+ (synopsis "Library for accessing online service APIs")
+ (description
+ "libgdata is a GLib-based library for accessing online service APIs using
+the GData protocol — most notably, Google's services. It provides APIs to
+access the common Google services, and has full asynchronous support.")
+ (license license:lgpl2.1+)))
+
(define-public gnome-common
(package
(name "gnome-common")
diff --git a/gnu/packages/patches/libgdata-fix-tests.patch b/gnu/packages/patches/libgdata-fix-tests.patch
new file mode 100644
index 0000000000..dc86b3ab5a
--- /dev/null
+++ b/gnu/packages/patches/libgdata-fix-tests.patch
@@ -0,0 +1,325 @@
+From c87a112246e0bcbd5c3a8aa484a50c617d710dbf Mon Sep 17 00:00:00 2001
+From: Philip Withnall <philip.withnall@collabora.co.uk>
+Date: Fri, 12 Dec 2014 17:31:01 +0000
+Subject: [PATCH] tests: Eliminate ISO 8601 formatting workaround for dates
+
+Follow up to commit 732017e4e5235e28c578cc3367fa0c4548b65495.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=739956
+---
+ gdata/tests/calendar.c | 20 ++++++++++----------
+ gdata/tests/general.c | 34 +++++++++++++++++-----------------
+ gdata/tests/tasks.c | 34 +++++++++++++++++-----------------
+ gdata/tests/youtube.c | 16 ++++++++--------
+ 4 files changed, 52 insertions(+), 52 deletions(-)
+
+diff --git a/gdata/tests/calendar.c b/gdata/tests/calendar.c
+index bb1d609..c54ddda 100644
+--- a/gdata/tests/calendar.c
++++ b/gdata/tests/calendar.c
+@@ -620,7 +620,7 @@ test_event_xml (void)
+ "<gCal:guestsCanInviteOthers value='false'/>"
+ "<gCal:guestsCanSeeGuests value='false'/>"
+ "<gCal:anyoneCanAddSelf value='false'/>"
+- "<gd:when startTime='2009-04-17T15:00:00.000001+00:00' endTime='2009-04-17T17:00:00.000001+00:00'/>"
++ "<gd:when startTime='2009-04-17T15:00:00Z' endTime='2009-04-17T17:00:00Z'/>"
+ "<gd:who email='john.smith@example.com' "
+ "rel='http://schemas.google.com/g/2005#event.organizer' "
+ "valueString='John Smith\342\200\275'/>"
+@@ -706,7 +706,7 @@ test_event_xml_dates (void)
+ "<gCal:guestsCanSeeGuests value='false'/>"
+ "<gCal:anyoneCanAddSelf value='false'/>"
+ "<gd:when startTime='2009-04-17'/>"
+- "<gd:when startTime='2009-04-17T15:00:00.000001+00:00'/>"
++ "<gd:when startTime='2009-04-17T15:00:00Z'/>"
+ "<gd:when startTime='2009-04-27' endTime='2009-05-06'/>"
+ "</entry>");
+
+@@ -934,25 +934,25 @@ test_query_uri (void)
+
+ /* Check the built query URI with a normal feed URI */
+ query_uri = gdata_query_get_query_uri (GDATA_QUERY (query), "http://example.com");
+- g_assert_cmpstr (query_uri, ==, "http://example.com?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00.000001+00:00"
+- "&recurrence-expansion-end=2010-04-17T15:00:00.000001+00:00&singleevents=true&sortorder=descending"
+- "&start-min=2009-04-17T15:00:00.000001+00:00&start-max=2010-04-17T15:00:00.000001+00:00&ctz=America%2FLos_Angeles&max-attendees=15"
++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00Z"
++ "&recurrence-expansion-end=2010-04-17T15:00:00Z&singleevents=true&sortorder=descending"
++ "&start-min=2009-04-17T15:00:00Z&start-max=2010-04-17T15:00:00Z&ctz=America%2FLos_Angeles&max-attendees=15"
+ "&showdeleted=true");
+ g_free (query_uri);
+
+ /* …with a feed URI with a trailing slash */
+ query_uri = gdata_query_get_query_uri (GDATA_QUERY (query), "http://example.com/");
+- g_assert_cmpstr (query_uri, ==, "http://example.com/?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00.000001+00:00"
+- "&recurrence-expansion-end=2010-04-17T15:00:00.000001+00:00&singleevents=true&sortorder=descending"
+- "&start-min=2009-04-17T15:00:00.000001+00:00&start-max=2010-04-17T15:00:00.000001+00:00&ctz=America%2FLos_Angeles&max-attendees=15"
++ g_assert_cmpstr (query_uri, ==, "http://example.com/?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00Z"
++ "&recurrence-expansion-end=2010-04-17T15:00:00Z&singleevents=true&sortorder=descending"
++ "&start-min=2009-04-17T15:00:00Z&start-max=2010-04-17T15:00:00Z&ctz=America%2FLos_Angeles&max-attendees=15"
+ "&showdeleted=true");
+ g_free (query_uri);
+
+ /* …with a feed URI with pre-existing arguments */
+ query_uri = gdata_query_get_query_uri (GDATA_QUERY (query), "http://example.com/bar/?test=test&this=that");
+ g_assert_cmpstr (query_uri, ==, "http://example.com/bar/?test=test&this=that&q=q&futureevents=true&orderby=starttime"
+- "&recurrence-expansion-start=2009-04-17T15:00:00.000001+00:00&recurrence-expansion-end=2010-04-17T15:00:00.000001+00:00"
+- "&singleevents=true&sortorder=descending&start-min=2009-04-17T15:00:00.000001+00:00&start-max=2010-04-17T15:00:00.000001+00:00"
++ "&recurrence-expansion-start=2009-04-17T15:00:00Z&recurrence-expansion-end=2010-04-17T15:00:00Z"
++ "&singleevents=true&sortorder=descending&start-min=2009-04-17T15:00:00Z&start-max=2010-04-17T15:00:00Z"
+ "&ctz=America%2FLos_Angeles&max-attendees=15&showdeleted=true");
+ g_free (query_uri);
+
+diff --git a/gdata/tests/general.c b/gdata/tests/general.c
+index 237a908..f828d2e 100644
+--- a/gdata/tests/general.c
++++ b/gdata/tests/general.c
+@@ -528,8 +528,8 @@ test_entry_parse_xml (void)
+ "<?xml version='1.0' encoding='UTF-8'?>"
+ "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' xmlns:ns='http://example.com/'>"
+ "<title type='text'>Testing unhandled XML</title>"
+- "<updated>2009-01-25T14:07:37.000001+00:00</updated>"
+- "<published>2009-01-23T14:06:37.000001+00:00</published>"
++ "<updated>2009-01-25T14:07:37Z</updated>"
++ "<published>2009-01-23T14:06:37Z</published>"
+ "<content type='text'>Here we test unhandled XML elements.</content>"
+ "<foobar>Test!</foobar>"
+ "<barfoo shizzle=\"zing\"/>"
+@@ -569,8 +569,8 @@ test_entry_parse_xml_kind_category (void)
+ "<?xml version='1.0' encoding='UTF-8'?>"
+ "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'>"
+ "<title type='text'>Testing kind categories</title>"
+- "<updated>2009-01-25T14:07:37.000001+00:00</updated>"
+- "<published>2009-01-23T14:06:37.000001+00:00</published>"
++ "<updated>2009-01-25T14:07:37Z</updated>"
++ "<published>2009-01-23T14:06:37Z</published>"
+ "<content type='text'>Here we test kind categories.</content>"
+ "<category term='http://schemas.google.com/docs/2007#file' "
+ "scheme='http://schemas.google.com/g/2005#kind' "
+@@ -620,7 +620,7 @@ test_entry_parse_json (void)
+ "{"
+ "\"title\":\"A title\","
+ "\"id\":\"some-id\","
+- "\"updated\":\"2009-01-25T14:07:37.000001+00:00\","
++ "\"updated\":\"2009-01-25T14:07:37Z\","
+ "\"etag\":\"some-etag\","
+ "\"selfLink\":\"http://example.com/\","
+ "\"kind\":\"kind#kind\","
+@@ -760,8 +760,8 @@ test_entry_escaping (void)
+ "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'>"
+ "<title type='text'>Escaped content &amp; stuff</title>"
+ "<id>http://foo.com/?foo&amp;bar</id>"
+- "<updated>2010-12-10T17:21:24.000001+00:00</updated>"
+- "<published>2010-12-10T17:21:24.000001+00:00</published>"
++ "<updated>2010-12-10T17:21:24Z</updated>"
++ "<published>2010-12-10T17:21:24Z</published>"
+ "<summary type='text'>Summary &amp; stuff</summary>"
+ "<rights>Free &amp; open source</rights>"
+ "<content type='text'>Content &amp; things.</content>"
+@@ -1106,7 +1106,7 @@ test_feed_escaping (void)
+ "<feed xmlns='http://www.w3.org/2005/Atom'>"
+ "<title type='text'>Test feed &amp; stuff.</title>"
+ "<id>http://foo.com?foo&amp;bar</id>"
+- "<updated>2010-12-10T17:49:15.000001+00:00</updated>"
++ "<updated>2010-12-10T17:49:15Z</updated>"
+ "</feed>");
+ g_object_unref (feed);
+ }
+@@ -1157,28 +1157,28 @@ test_query_dates (void)
+ /* updated-min */
+ gdata_query_set_updated_min (query, 1373280114); /* 2013-07-08T10:41:54Z */
+ query_uri = gdata_query_get_query_uri (query, "http://example.com");
+- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-min=2013-07-08T10:41:54.000001+00:00");
++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-min=2013-07-08T10:41:54Z");
+ g_free (query_uri);
+ gdata_query_set_updated_min (query, -1);
+
+ /* updated-max */
+ gdata_query_set_updated_max (query, 1373280114); /* 2013-07-08T10:41:54Z */
+ query_uri = gdata_query_get_query_uri (query, "http://example.com");
+- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-max=2013-07-08T10:41:54.000001+00:00");
++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-max=2013-07-08T10:41:54Z");
+ g_free (query_uri);
+ gdata_query_set_updated_max (query, -1);
+
+ /* published-min */
+ gdata_query_set_published_min (query, 1373280114); /* 2013-07-08T10:41:54Z */
+ query_uri = gdata_query_get_query_uri (query, "http://example.com");
+- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-min=2013-07-08T10:41:54.000001+00:00");
++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-min=2013-07-08T10:41:54Z");
+ g_free (query_uri);
+ gdata_query_set_published_min (query, -1);
+
+ /* published-max */
+ gdata_query_set_published_max (query, 1373280114); /* 2013-07-08T10:41:54Z */
+ query_uri = gdata_query_get_query_uri (query, "http://example.com");
+- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-max=2013-07-08T10:41:54.000001+00:00");
++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-max=2013-07-08T10:41:54Z");
+ g_free (query_uri);
+ gdata_query_set_published_max (query, -1);
+
+@@ -3127,7 +3127,7 @@ test_gd_reminder (void)
+ gdata_test_assert_xml (reminder,
+ "<?xml version='1.0' encoding='UTF-8'?>"
+ "<gd:reminder xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' "
+- "absoluteTime='2005-06-07T00:55:00.000001+00:00' method='alert'/>");
++ "absoluteTime='2005-06-07T00:55:00Z' method='alert'/>");
+ g_object_unref (reminder);
+ }
+
+@@ -3218,8 +3218,8 @@ test_gd_when (void)
+ /* Check the outputted XML is the same */
+ gdata_test_assert_xml (when,
+ "<?xml version='1.0' encoding='UTF-8'?>"
+- "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' startTime='2005-06-07T01:00:00.000001+00:00' "
+- "endTime='2005-06-07T02:00:00.000001+00:00'/>");
++ "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' startTime='2005-06-07T01:00:00Z' "
++ "endTime='2005-06-07T02:00:00Z'/>");
+ g_object_unref (when);
+
+ /* Now parse a time with different information */
+@@ -3258,7 +3258,7 @@ test_gd_when (void)
+ "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' startTime='2005-06-06' "
+ "endTime='2005-06-08' valueString='This weekend'>"
+ "<gd:reminder minutes='15'/>"
+- "<gd:reminder absoluteTime='2005-06-06T00:00:00.000001+00:00' method='alert'/>"
++ "<gd:reminder absoluteTime='2005-06-06T00:00:00Z' method='alert'/>"
+ "<foobar/>"
+ "</gd:when>");
+ g_object_unref (when);
+@@ -3278,7 +3278,7 @@ test_gd_when_escaping (void)
+ gdata_test_assert_xml (when,
+ "<?xml version='1.0' encoding='UTF-8'?>"
+ "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' "
+- "startTime='2005-06-07T01:00:00.000001+00:00' valueString='Value string &amp; stuff!'/>");
++ "startTime='2005-06-07T01:00:00Z' valueString='Value string &amp; stuff!'/>");
+ g_object_unref (when);
+ }
+
+diff --git a/gdata/tests/tasks.c b/gdata/tests/tasks.c
+index 7a5bc7e..7bf3174 100644
+--- a/gdata/tests/tasks.c
++++ b/gdata/tests/tasks.c
+@@ -122,11 +122,11 @@ test_query_uri (void)
+ g_assert_cmpstr (query_uri, ==,
+ "http://example.com"
+ "?maxResults=10"
+- "&updatedMin=1970-01-01T01:53:09.000001+00:00"
+- "&completedMin=1970-01-01T01:34:38.000001+00:00"
+- "&completedMax=1970-01-01T00:20:34.000001+00:00"
+- "&dueMin=1970-01-01T00:39:05.000001+00:00"
+- "&dueMax=1970-01-01T00:57:36.000001+00:00"
++ "&updatedMin=1970-01-01T01:53:09Z"
++ "&completedMin=1970-01-01T01:34:38Z"
++ "&completedMax=1970-01-01T00:20:34Z"
++ "&dueMin=1970-01-01T00:39:05Z"
++ "&dueMax=1970-01-01T00:57:36Z"
+ "&showCompleted=true"
+ "&showDeleted=true"
+ "&showHidden=true");
+@@ -148,11 +148,11 @@ test_query_uri (void)
+ g_assert_cmpstr (query_uri, ==,
+ "http://example.com"
+ "?maxResults=10"
+- "&updatedMin=1970-01-01T01:53:09.000001+00:00"
+- "&completedMin=1970-01-01T01:34:38.000001+00:00"
+- "&completedMax=1970-01-01T00:20:34.000001+00:00"
+- "&dueMin=1970-01-01T00:39:05.000001+00:00"
+- "&dueMax=1970-01-01T00:57:36.000001+00:00"
++ "&updatedMin=1970-01-01T01:53:09Z"
++ "&completedMin=1970-01-01T01:34:38Z"
++ "&completedMax=1970-01-01T00:20:34Z"
++ "&dueMin=1970-01-01T00:39:05Z"
++ "&dueMax=1970-01-01T00:57:36Z"
+ "&showCompleted=false"
+ "&showDeleted=false"
+ "&showHidden=false");
+@@ -317,8 +317,8 @@ test_task_properties (void)
+ "\"title\": \"some-other-title\","
+ "\"notes\": \"more-notes\","
+ "\"status\": \"completed\","
+- "\"due\": \"2014-08-30T17:20:00.000001+00:00\","
+- "\"completed\": \"2014-08-30T17:20:00.000001+00:00\","
++ "\"due\": \"2014-08-30T17:20:00Z\","
++ "\"completed\": \"2014-08-30T17:20:00Z\","
+ "\"deleted\": true,"
+ "\"hidden\": false"
+ "}");
+@@ -332,8 +332,8 @@ test_task_properties (void)
+ "\"title\": \"some-other-title\","
+ "\"notes\": \"more-notes\","
+ "\"status\": \"completed\","
+- "\"due\": \"2014-08-30T17:20:00.000001+00:00\","
+- "\"completed\": \"2014-08-30T17:20:00.000001+00:00\","
++ "\"due\": \"2014-08-30T17:20:00Z\","
++ "\"completed\": \"2014-08-30T17:20:00Z\","
+ "\"deleted\": false,"
+ "\"hidden\": false"
+ "}");
+@@ -496,14 +496,14 @@ test_task_parser_normal (void)
+ "\"id\": \"some-id\","
+ "\"etag\": \"some-etag\","
+ "\"title\": \"some-title \\\"with quotes\\\"\","
+- "\"updated\": \"2014-08-30T19:40:00.000001+00:00\","
++ "\"updated\": \"2014-08-30T19:40:00Z\","
+ "\"selfLink\": \"http://some-uri/\","
+ "\"parent\": \"some-parent-id\","
+ "\"position\": \"some-position\","
+ "\"notes\": \"Some notes!\","
+ "\"status\": \"needsAction\","
+- "\"due\": \"2014-08-30T20:00:00.000001+00:00\","
+- "\"completed\": \"2014-08-30T20:10:05.000001+00:00\","
++ "\"due\": \"2014-08-30T20:00:00Z\","
++ "\"completed\": \"2014-08-30T20:10:05Z\","
+ "\"deleted\": false,"
+ "\"hidden\": true,"
+ /* Unhandled for the moment: */
+diff --git a/gdata/tests/youtube.c b/gdata/tests/youtube.c
+index a1e070a..1195bc3 100644
+--- a/gdata/tests/youtube.c
++++ b/gdata/tests/youtube.c
+@@ -967,8 +967,8 @@ test_parsing_yt_recorded (void)
+ "gd:etag='W/\"CEMFSX47eCp7ImA9WxVUGEw.\"'>"
+ "<title type='text'>Judas Priest - Painkiller</title>"
+ "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>"
+- "<updated>2009-03-23T12:46:58.000001+00:00</updated>"
+- "<published>2006-05-16T14:06:37.000001+00:00</published>"
++ "<updated>2009-03-23T12:46:58Z</updated>"
++ "<published>2006-05-16T14:06:37Z</published>"
+ "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>"
+ "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>"
+ "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>"
+@@ -1055,8 +1055,8 @@ test_parsing_yt_access_control (void)
+ "gd:etag='W/\"CEMFSX47eCp7ImA9WxVUGEw.\"'>"
+ "<title type='text'>Judas Priest - Painkiller</title>"
+ "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>"
+- "<updated>2009-03-23T12:46:58.000001+00:00</updated>"
+- "<published>2006-05-16T14:06:37.000001+00:00</published>"
++ "<updated>2009-03-23T12:46:58Z</updated>"
++ "<published>2006-05-16T14:06:37Z</published>"
+ "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>"
+ "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>"
+ "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>"
+@@ -1255,8 +1255,8 @@ test_parsing_georss_where (void)
+ "xmlns:gml='http://www.opengis.net/gml'>"
+ "<title type='text'>Some video somewhere</title>"
+ "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>"
+- "<updated>2009-03-23T12:46:58.000001+00:00</updated>"
+- "<published>2006-05-16T14:06:37.000001+00:00</published>"
++ "<updated>2009-03-23T12:46:58Z</updated>"
++ "<published>2006-05-16T14:06:37Z</published>"
+ "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>"
+ "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>"
+ "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>"
+@@ -1295,8 +1295,8 @@ test_parsing_georss_where (void)
+ "xmlns:gml='http://www.opengis.net/gml'>"
+ "<title type='text'>Some video somewhere</title>"
+ "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>"
+- "<updated>2009-03-23T12:46:58.000001+00:00</updated>"
+- "<published>2006-05-16T14:06:37.000001+00:00</published>"
++ "<updated>2009-03-23T12:46:58Z</updated>"
++ "<published>2006-05-16T14:06:37Z</published>"
+ "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>"
+ "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>"
+ "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>"
+--
+1.9.3
diff --git a/gnu/packages/patches/libgdata-glib-duplicate-tests.patch b/gnu/packages/patches/libgdata-glib-duplicate-tests.patch
new file mode 100644
index 0000000000..d5d8d064de
--- /dev/null
+++ b/gnu/packages/patches/libgdata-glib-duplicate-tests.patch
@@ -0,0 +1,16 @@
+diff -ur a/gdata/tests/oauth1-authorizer.c b/gdata/tests/oauth1-authorizer.c
+--- a/gdata/tests/oauth1-authorizer.c 1969-12-31 19:00:00.000000000 -0500
++++ b/gdata/tests/oauth1-authorizer.c 2017-05-27 19:35:30.551725678 -0400
+@@ -1045,10 +1045,10 @@
+ /* Sync request-authentication-uri tests */
+ g_test_add ("/oauth1-authorizer/request-authentication-uri/sync", OAuth1AuthorizerData, NULL, set_up_oauth1_authorizer_data,
+ test_oauth1_authorizer_request_authentication_uri_sync, tear_down_oauth1_authorizer_data);
+- g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains", OAuth1AuthorizerData, NULL,
++ g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains1", OAuth1AuthorizerData, NULL,
+ set_up_oauth1_authorizer_data_multiple_domains, test_oauth1_authorizer_request_authentication_uri_sync,
+ tear_down_oauth1_authorizer_data);
+- g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains", OAuth1AuthorizerData, NULL,
++ g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains2", OAuth1AuthorizerData, NULL,
+ set_up_oauth1_authorizer_data_locale, test_oauth1_authorizer_request_authentication_uri_sync,
+ tear_down_oauth1_authorizer_data);
+ g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/cancellation", OAuth1AuthorizerData, NULL,