diff options
Diffstat (limited to 'extra/gnome-online-accounts')
4 files changed, 6 insertions, 429 deletions
diff --git a/extra/gnome-online-accounts/PKGBUILD b/extra/gnome-online-accounts/PKGBUILD index 29e966f2f..06c9e5c77 100644 --- a/extra/gnome-online-accounts/PKGBUILD +++ b/extra/gnome-online-accounts/PKGBUILD @@ -1,37 +1,23 @@ -# $Id: PKGBUILD 193766 2013-08-30 14:31:41Z heftig $ +# $Id: PKGBUILD 196071 2013-10-07 11:51:42Z jgc $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=gnome-online-accounts -pkgver=3.8.3 +pkgver=3.10.0 pkgrel=1 pkgdesc="GNOME service to access online accounts" arch=(i686 x86_64) url="http://www.gnome.org" license=('GPL') -depends=('webkitgtk3' 'json-glib' 'libnotify' 'rest' 'hicolor-icon-theme' 'libsecret') +depends=('webkitgtk' 'json-glib' 'libnotify' 'rest' 'hicolor-icon-theme' 'libsecret' 'telepathy-glib') makedepends=('intltool' 'libxslt' 'gobject-introspection' 'docbook-xsl') options=(!libtool) install=$pkgname.install -source=(http://download.gnome.org/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz - drop-google-password-interface-1.patch - drop-google-password-interface-2.patch - drop-google-password-interface-3.patch) -sha256sums=('9e5e55c5097b8d7c32c0dfb7d94448795c627723b133e8edd0b846adde63a44b' - '33435c10aa1ba3fbb6fd633dc098cd1da50629f1d602521ca83be5379f2ebe48' - 'c837f9be4e5e072a06ea44076e6b9a1519c66c95b16d7a55b1dba105fded317f' - '18dfad8ed978af1068fd057bbe323006c349ac4ea77c742aa06f1011dc92326e') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz) +sha256sums=('bba85366632cf5ce777b6889eab505d98d7593c37f7859a312dc57dde05a0feb') -prepare() { - cd $pkgname-$pkgver - # Backport from Ubuntu - patch -Np1 -i ../drop-google-password-interface-1.patch - patch -Np1 -i ../drop-google-password-interface-2.patch - patch -Np1 -i ../drop-google-password-interface-3.patch -} - build() { cd $pkgname-$pkgver - ./configure --prefix=/usr --libexec=/usr/lib/gnome-online-accounts + ./configure --prefix=/usr --libexecdir=/usr/lib/$pkgname make } diff --git a/extra/gnome-online-accounts/drop-google-password-interface-1.patch b/extra/gnome-online-accounts/drop-google-password-interface-1.patch deleted file mode 100644 index 1bd5c8c0f..000000000 --- a/extra/gnome-online-accounts/drop-google-password-interface-1.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 9182fb378614abb2ff0245fe71a753f22eaaa906 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray <debarshir@gnome.org> -Date: Tue, 11 Jun 2013 14:58:21 +0000 -Subject: google: Bump credentials generation - -Access to the following were turned on in the Google APIs Console: - - Calendar API - - Google Calendar CalDAV API - - Google Contacts CardDAV API - -Of these, only the last two are new. We were already requesting the -scope for Calendar API, but looks like the APIs Console is the way -to go now. Interestingly the APIs Console does not list all the other -services that we are interested in, or it is does but is not obvious -to me. - -In any case we need access to their new CalDAV API which works with -OAuth2 because that would let us work with 2-factor authenticated -accounts again. - -See: https://bugzilla.gnome.org/show_bug.cgi?id=686804 - https://bugzilla.gnome.org/show_bug.cgi?id=688364 ---- -(limited to 'src/goabackend/goagoogleprovider.c') - -diff --git a/src/goabackend/goagoogleprovider.c b/src/goabackend/goagoogleprovider.c -index 8271711..79f5f73 100644 ---- a/src/goabackend/goagoogleprovider.c -+++ b/src/goabackend/goagoogleprovider.c -@@ -148,7 +148,7 @@ get_scope (GoaOAuth2Provider *provider) - static guint - get_credentials_generation (GoaProvider *provider) - { -- return 3; -+ return 4; - } - - static const gchar * - diff --git a/extra/gnome-online-accounts/drop-google-password-interface-2.patch b/extra/gnome-online-accounts/drop-google-password-interface-2.patch deleted file mode 100644 index 9aa1ce28e..000000000 --- a/extra/gnome-online-accounts/drop-google-password-interface-2.patch +++ /dev/null @@ -1,74 +0,0 @@ -From a0fd4cd595bd0fe6eb4015ea9050170319b16546 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray <debarshir@gnome.org> -Date: Wed, 19 Jun 2013 15:04:38 +0000 -Subject: google: Export CalDAV and CardDAV endpoints - -According to: -https://developers.google.com/google-apps/calendar/caldav/v2/guide/ -https://developers.google.com/google-apps/carddav/ - -See: https://bugzilla.gnome.org/show_bug.cgi?id=686804 - https://bugzilla.gnome.org/show_bug.cgi?id=688364 ---- -(limited to 'src/goabackend/goagoogleprovider.c') - -diff --git a/src/goabackend/goagoogleprovider.c b/src/goabackend/goagoogleprovider.c -index 79f5f73..740c08e 100644 ---- a/src/goabackend/goagoogleprovider.c -+++ b/src/goabackend/goagoogleprovider.c -@@ -385,6 +385,7 @@ build_object (GoaProvider *provider, - gboolean contacts_enabled; - gboolean chat_enabled; - gboolean documents_enabled; -+ const gchar *email_address; - - account = NULL; - mail = NULL; -@@ -419,6 +420,7 @@ build_object (GoaProvider *provider, - } - - account = goa_object_get_account (GOA_OBJECT (object)); -+ email_address = goa_account_get_identity (account); - - /* Email */ - mail = goa_object_get_mail (GOA_OBJECT (object)); -@@ -427,8 +429,6 @@ build_object (GoaProvider *provider, - { - if (mail == NULL) - { -- const gchar *email_address; -- email_address = goa_account_get_identity (account); - mail = goa_mail_skeleton_new (); - g_object_set (G_OBJECT (mail), - "email-address", email_address, -@@ -457,8 +457,19 @@ build_object (GoaProvider *provider, - { - if (calendar == NULL) - { -+ gchar *uri_caldav; -+ -+ uri_caldav = g_strconcat ("https://apidata.googleusercontent.com/caldav/v2/", -+ email_address, -+ "/user", -+ NULL); -+ - calendar = goa_calendar_skeleton_new (); -+ g_object_set (G_OBJECT (calendar), -+ "uri", uri_caldav, -+ NULL); - goa_object_skeleton_set_calendar (object, calendar); -+ g_free (uri_caldav); - } - } - else -@@ -475,6 +486,9 @@ build_object (GoaProvider *provider, - if (contacts == NULL) - { - contacts = goa_contacts_skeleton_new (); -+ g_object_set (G_OBJECT (contacts), -+ "uri", "https://www.googleapis.com/.well-known/carddav", -+ NULL); - goa_object_skeleton_set_contacts (object, contacts); - } - } - diff --git a/extra/gnome-online-accounts/drop-google-password-interface-3.patch b/extra/gnome-online-accounts/drop-google-password-interface-3.patch deleted file mode 100644 index 487132b32..000000000 --- a/extra/gnome-online-accounts/drop-google-password-interface-3.patch +++ /dev/null @@ -1,296 +0,0 @@ -From 365a5a92909fce8dcdd851b5a2b9caf34e0da926 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray <debarshir@gnome.org> -Date: Fri, 28 Jun 2013 12:22:07 +0000 -Subject: google: Don't offer a PasswordBased interface - -This was a temporary measure back when Google did not support OAuth2 -for CalDAV. Now that they do, we can drop this. - -In any case, the workaround didn't work with accounts using 2-factor -authentication. This will make those people happy. - -This reverts 89c335479c1bb8409af8296c99ffea602a28b71f - -See: https://bugzilla.gnome.org/show_bug.cgi?id=686804 - https://bugzilla.gnome.org/show_bug.cgi?id=688364 ---- -(limited to 'src/goabackend/goagoogleprovider.c') - -Index: gnome-online-accounts-3.8.2/src/goabackend/goagoogleprovider.c -=================================================================== ---- gnome-online-accounts-3.8.2.orig/src/goabackend/goagoogleprovider.c 2013-07-10 13:29:35.381448621 -0400 -+++ gnome-online-accounts-3.8.2/src/goabackend/goagoogleprovider.c 2013-07-10 13:29:35.377448621 -0400 -@@ -32,8 +32,6 @@ - #include "goaprovider-priv.h" - #include "goaoauth2provider.h" - #include "goagoogleprovider.h" --#include "goahttpclient.h" --#include "goautils.h" - - /** - * GoaGoogleProvider: -@@ -71,8 +69,6 @@ - - /* ---------------------------------------------------------------------------------------------------- */ - --static const gchar *CALDAV_ENDPOINT = "https://www.google.com/calendar/dav/%s/events/"; -- - static const gchar * - get_provider_type (GoaProvider *_provider) - { -@@ -310,48 +306,8 @@ - return ret; - } - --static gboolean --is_password_node (GoaOAuth2Provider *provider, WebKitDOMHTMLInputElement *element) --{ -- gboolean ret; -- gchar *element_type; -- gchar *id; -- gchar *name; -- -- element_type = NULL; -- id = NULL; -- name = NULL; -- -- ret = FALSE; -- -- g_object_get (element, "type", &element_type, NULL); -- if (g_strcmp0 (element_type, "password") != 0) -- goto out; -- -- id = webkit_dom_html_element_get_id (WEBKIT_DOM_HTML_ELEMENT (element)); -- if (g_strcmp0 (id, "Passwd") != 0) -- goto out; -- -- name = webkit_dom_html_input_element_get_name (element); -- if (g_strcmp0 (name, "Passwd") != 0) -- goto out; -- -- ret = TRUE; -- -- out: -- g_free (element_type); -- g_free (id); -- g_free (name); -- return ret; --} -- - /* ---------------------------------------------------------------------------------------------------- */ - --static gboolean on_handle_get_password (GoaPasswordBased *interface, -- GDBusMethodInvocation *invocation, -- const gchar *id, -- gpointer user_data); -- - static gboolean - build_object (GoaProvider *provider, - GoaObjectSkeleton *object, -@@ -367,7 +323,6 @@ - GoaContacts *contacts; - GoaChat *chat; - GoaDocuments *documents; -- GoaPasswordBased *password_based; - gboolean ret; - gboolean mail_enabled; - gboolean calendar_enabled; -@@ -394,20 +349,6 @@ - error)) - goto out; - -- password_based = goa_object_get_password_based (GOA_OBJECT (object)); -- if (password_based == NULL) -- { -- password_based = goa_password_based_skeleton_new (); -- /* Ensure D-Bus method invocations run in their own thread */ -- g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (password_based), -- G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); -- goa_object_skeleton_set_password_based (object, password_based); -- g_signal_connect (password_based, -- "handle-get-password", -- G_CALLBACK (on_handle_get_password), -- NULL); -- } -- - account = goa_object_get_account (GOA_OBJECT (object)); - email_address = goa_account_get_identity (account); - -@@ -567,103 +508,6 @@ - /* ---------------------------------------------------------------------------------------------------- */ - - static gboolean --ensure_credentials_sync (GoaProvider *provider, -- GoaObject *object, -- gint *out_expires_in, -- GCancellable *cancellable, -- GError **error) --{ -- GVariant *credentials; -- GoaAccount *account; -- GoaHttpClient *http_client; -- gboolean ret; -- const gchar *username; -- gchar *password; -- gchar *uri_caldav; -- -- credentials = NULL; -- http_client = NULL; -- password = NULL; -- uri_caldav = NULL; -- -- ret = FALSE; -- -- /* Chain up */ -- if (!GOA_PROVIDER_CLASS (goa_google_provider_parent_class)->ensure_credentials_sync (provider, -- object, -- out_expires_in, -- cancellable, -- error)) -- goto out; -- -- credentials = goa_utils_lookup_credentials_sync (provider, -- object, -- cancellable, -- error); -- if (credentials == NULL) -- { -- if (error != NULL) -- { -- (*error)->domain = GOA_ERROR; -- (*error)->code = GOA_ERROR_NOT_AUTHORIZED; -- } -- goto out; -- } -- -- account = goa_object_peek_account (object); -- username = goa_account_get_presentation_identity (account); -- uri_caldav = g_strdup_printf (CALDAV_ENDPOINT, username); -- -- if (!g_variant_lookup (credentials, "password", "s", &password)) -- { -- if (error != NULL) -- { -- *error = g_error_new (GOA_ERROR, -- GOA_ERROR_NOT_AUTHORIZED, -- _("Did not find password with identity `%s' in credentials"), -- username); -- } -- goto out; -- } -- -- http_client = goa_http_client_new (); -- ret = goa_http_client_check_sync (http_client, -- uri_caldav, -- username, -- password, -- FALSE, -- cancellable, -- error); -- if (!ret) -- { -- if (error != NULL) -- { -- g_prefix_error (error, -- /* Translators: the first %s is the username -- * (eg., debarshi.ray@gmail.com or rishi), and the -- * (%s, %d) is the error domain and code. -- */ -- _("Invalid password with username `%s' (%s, %d): "), -- username, -- g_quark_to_string ((*error)->domain), -- (*error)->code); -- (*error)->domain = GOA_ERROR; -- (*error)->code = GOA_ERROR_NOT_AUTHORIZED; -- } -- goto out; -- } -- -- out: -- g_clear_object (&http_client); -- g_free (password); -- g_free (uri_caldav); -- g_clear_pointer (&credentials, (GDestroyNotify) g_variant_unref); -- return ret; --} -- --/* ---------------------------------------------------------------------------------------------------- */ -- --static gboolean - get_use_mobile_browser (GoaOAuth2Provider *provider) - { - return TRUE; -@@ -744,7 +588,6 @@ - provider_class->get_provider_name = get_provider_name; - provider_class->get_provider_group = get_provider_group; - provider_class->build_object = build_object; -- provider_class->ensure_credentials_sync = ensure_credentials_sync; - provider_class->show_account = show_account; - provider_class->get_credentials_generation = get_credentials_generation; - -@@ -758,65 +601,7 @@ - oauth2_class->get_scope = get_scope; - oauth2_class->is_deny_node = is_deny_node; - oauth2_class->is_identity_node = is_identity_node; -- oauth2_class->is_password_node = is_password_node; - oauth2_class->get_token_uri = get_token_uri; - oauth2_class->get_use_mobile_browser = get_use_mobile_browser; - oauth2_class->add_account_key_values = add_account_key_values; - } -- --/* ---------------------------------------------------------------------------------------------------- */ -- --/* runs in a thread dedicated to handling @invocation */ --static gboolean --on_handle_get_password (GoaPasswordBased *interface, -- GDBusMethodInvocation *invocation, -- const gchar *id, /* unused */ -- gpointer user_data) --{ -- GoaObject *object; -- GoaAccount *account; -- GoaProvider *provider; -- GError *error; -- GVariant *credentials; -- const gchar *identity; -- gchar *password; -- -- /* TODO: maybe log what app is requesting access */ -- -- password = NULL; -- credentials = NULL; -- -- object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (interface))); -- account = goa_object_peek_account (object); -- identity = goa_account_get_identity (account); -- provider = goa_provider_get_for_provider_type (goa_account_get_provider_type (account)); -- -- error = NULL; -- credentials = goa_utils_lookup_credentials_sync (provider, -- object, -- NULL, /* GCancellable* */ -- &error); -- if (credentials == NULL) -- { -- g_dbus_method_invocation_take_error (invocation, error); -- goto out; -- } -- -- if (!g_variant_lookup (credentials, "password", "s", &password)) -- { -- g_dbus_method_invocation_return_error (invocation, -- GOA_ERROR, -- GOA_ERROR_FAILED, /* TODO: more specific */ -- _("Did not find password with identity `%s' in credentials"), -- identity); -- goto out; -- } -- -- goa_password_based_complete_get_password (interface, invocation, password); -- -- out: -- g_free (password); -- g_clear_pointer (&credentials, (GDestroyNotify) g_variant_unref); -- g_object_unref (provider); -- return TRUE; /* invocation was handled */ --} |