From 2f4aa38aad8630818caee04c7d769a66488967b3 Mon Sep 17 00:00:00 2001
From: Kei Kebreau
Date: Fri, 26 May 2017 01:13:23 -0400
Subject: [PATCH 2/3] 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.
---
gnu/local.mk | 2 +
gnu/packages/gnome.scm | 52 +++-
gnu/packages/patches/libgdata-fix-tests.patch | 325 +++++++++++++++++++++
.../patches/libgdata-glib-duplicate-tests.patch | 16 +
4 files changed, 394 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/libgdata-fix-tests.patch
create mode 100644 gnu/packages/patches/libgdata-glib-duplicate-tests.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 6847b6190..26a839ad3 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 299f11b2d..6ffa10b25 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2015, 2016 Efraim Flashner
;;; Copyright © 2016, 2017 Rene Saavedra
;;; Copyright © 2016 Jochem Raat
-;;; Copyright © 2016 Kei Kebreau
+;;; Copyright © 2016, 2017 Kei Kebreau
;;; Copyright © 2016 Jan Nieuwenhuizen
;;; Copyright © 2016 Roel Janssen
;;; Copyright © 2016 Leo Famulari
@@ -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 000000000..dc86b3ab5
--- /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
+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)
+ ""
+ ""
+ ""
+- ""
++ ""
+ ""
+@@ -706,7 +706,7 @@ test_event_xml_dates (void)
+ ""
+ ""
+ ""
+- ""
++ ""
+ ""
+ "");
+
+@@ -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)
+ ""
+ ""
+ "Testing unhandled XML"
+- "2009-01-25T14:07:37.000001+00:00"
+- "2009-01-23T14:06:37.000001+00:00"
++ "2009-01-25T14:07:37Z"
++ "2009-01-23T14:06:37Z"
+ "Here we test unhandled XML elements."
+ "Test!"
+ ""
+@@ -569,8 +569,8 @@ test_entry_parse_xml_kind_category (void)
+ ""
+ ""
+ "Testing kind categories"
+- "2009-01-25T14:07:37.000001+00:00"
+- "2009-01-23T14:06:37.000001+00:00"
++ "2009-01-25T14:07:37Z"
++ "2009-01-23T14:06:37Z"
+ "Here we test kind categories."
+ ""
+ "Escaped content & stuff"
+ "http://foo.com/?foo&bar"
+- "2010-12-10T17:21:24.000001+00:00"
+- "2010-12-10T17:21:24.000001+00:00"
++ "2010-12-10T17:21:24Z"
++ "2010-12-10T17:21:24Z"
+ "Summary & stuff"
+ "Free & open source"
+ "Content & things."
+@@ -1106,7 +1106,7 @@ test_feed_escaping (void)
+ ""
+ "Test feed & stuff."
+ "http://foo.com?foo&bar"
+- "2010-12-10T17:49:15.000001+00:00"
++ "2010-12-10T17:49:15Z"
+ "");
+ 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,
+ ""
+ "");
++ "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,
+ ""
+- "");
++ "");
+ g_object_unref (when);
+
+ /* Now parse a time with different information */
+@@ -3258,7 +3258,7 @@ test_gd_when (void)
+ ""
+ ""
+- ""
++ ""
+ ""
+ "");
+ g_object_unref (when);
+@@ -3278,7 +3278,7 @@ test_gd_when_escaping (void)
+ gdata_test_assert_xml (when,
+ ""
+ "");
++ "startTime='2005-06-07T01:00:00Z' valueString='Value string & 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.\"'>"
+ "Judas Priest - Painkiller"
+ "tag:youtube.com,2008:video:JAagedeKdcQ"
+- "2009-03-23T12:46:58.000001+00:00"
+- "2006-05-16T14:06:37.000001+00:00"
++ "2009-03-23T12:46:58Z"
++ "2006-05-16T14:06:37Z"
+ ""
+ ""
+ ""
+@@ -1055,8 +1055,8 @@ test_parsing_yt_access_control (void)
+ "gd:etag='W/\"CEMFSX47eCp7ImA9WxVUGEw.\"'>"
+ "Judas Priest - Painkiller"
+ "tag:youtube.com,2008:video:JAagedeKdcQ"
+- "2009-03-23T12:46:58.000001+00:00"
+- "2006-05-16T14:06:37.000001+00:00"
++ "2009-03-23T12:46:58Z"
++ "2006-05-16T14:06:37Z"
+ ""
+ ""
+ ""
+@@ -1255,8 +1255,8 @@ test_parsing_georss_where (void)
+ "xmlns:gml='http://www.opengis.net/gml'>"
+ "Some video somewhere"
+ "tag:youtube.com,2008:video:JAagedeKdcQ"
+- "2009-03-23T12:46:58.000001+00:00"
+- "2006-05-16T14:06:37.000001+00:00"
++ "2009-03-23T12:46:58Z"
++ "2006-05-16T14:06:37Z"
+ ""
+ ""
+ ""
+@@ -1295,8 +1295,8 @@ test_parsing_georss_where (void)
+ "xmlns:gml='http://www.opengis.net/gml'>"
+ "Some video somewhere"
+ "tag:youtube.com,2008:video:JAagedeKdcQ"
+- "2009-03-23T12:46:58.000001+00:00"
+- "2006-05-16T14:06:37.000001+00:00"
++ "2009-03-23T12:46:58Z"
++ "2006-05-16T14:06:37Z"
+ ""
+ ""
+ ""
+--
+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 000000000..d5d8d064d
--- /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,
--
2.13.0