From adc5cb1b499d4878be5663e1aea2b290898f82d0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 26 May 2017 01:13:23 -0400 Subject: [PATCH] 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 ++++++++++++++++++ .../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 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 ;;; 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 @@ (define-public dia 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 +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 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,