summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorKei Kebreau <kei@openmailbox.org>2017-05-26 01:13:23 -0400
committerKei Kebreau <kei@openmailbox.org>2017-05-30 13:13:16 -0400
commitadc5cb1b499d4878be5663e1aea2b290898f82d0 (patch)
tree557b396e9d78b597e02fd4c68653dd53c1103a90 /gnu
parent6f8cda185e3439777e1c3252cb3d75f0b19376fe (diff)
downloadguix-adc5cb1b499d4878be5663e1aea2b290898f82d0.tar.gz
gnu: Add libgdata.
* gnu/packages/gnome.scm (libgdata): New variable.
* gnu/packages/patches/libgdata-fix-tests.patch,
gnu/packages/patches/libgdata-glib-duplicate-tests.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
Diffstat (limited to 'gnu')
-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,