r41407 - in /desktop/unstable/gnome-control-center/debian: changelog control control.in patches/0001-online-accounts-Accept-requests-for-account-creation.patch patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch patches/series

pochu at users.alioth.debian.org pochu at users.alioth.debian.org
Sat Apr 26 09:36:05 UTC 2014


Author: pochu
Date: Sat Apr 26 09:36:05 2014
New Revision: 41407

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=41407
Log:
* d/p/0001-online-accounts-Accept-requests-for-account-creation.patch,
  d/p/0001-online-accounts-use-the-async-function-to-get-all-th.patch:
  + Backport patches from upstream, modified to apply on 3.8, to fix
    the build with gnome-online-accounts 3.12.
* debian/control.in:
  + Build depend on goa 3.12.

Added:
    desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-Accept-requests-for-account-creation.patch
    desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch
Modified:
    desktop/unstable/gnome-control-center/debian/changelog
    desktop/unstable/gnome-control-center/debian/control
    desktop/unstable/gnome-control-center/debian/control.in
    desktop/unstable/gnome-control-center/debian/patches/series

Modified: desktop/unstable/gnome-control-center/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-control-center/debian/changelog?rev=41407&op=diff
==============================================================================
--- desktop/unstable/gnome-control-center/debian/changelog	[utf-8] (original)
+++ desktop/unstable/gnome-control-center/debian/changelog	[utf-8] Sat Apr 26 09:36:05 2014
@@ -1,3 +1,14 @@
+gnome-control-center (1:3.8.3-6) UNRELEASED; urgency=medium
+
+  * d/p/0001-online-accounts-Accept-requests-for-account-creation.patch,
+    d/p/0001-online-accounts-use-the-async-function-to-get-all-th.patch:
+    + Backport patches from upstream, modified to apply on 3.8, to fix
+      the build with gnome-online-accounts 3.12.
+  * debian/control.in:
+    + Build depend on goa 3.12.
+
+ -- Emilio Pozuelo Monfort <pochu at debian.org>  Thu, 03 Apr 2014 21:51:42 +0200
+
 gnome-control-center (1:3.8.3-5) unstable; urgency=medium
 
   * debian/patches/07-vpn-plugin-properties-paths.patch:

Modified: desktop/unstable/gnome-control-center/debian/control
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-control-center/debian/control?rev=41407&op=diff
==============================================================================
--- desktop/unstable/gnome-control-center/debian/control	[utf-8] (original)
+++ desktop/unstable/gnome-control-center/debian/control	[utf-8] Sat Apr 26 09:36:05 2014
@@ -37,7 +37,7 @@
                libgnome-menu-3-dev,
                libgnomekbd-dev (>= 2.91.91),
                libibus-1.0-dev (>= 1.5.2),
-               libgoa-1.0-dev (>= 3.8.1),
+               libgoa-1.0-dev (>= 3.12),
                libgtk-3-dev (>= 3.7.7),
                libgtop2-dev,
                libnm-glib-dev (>= 0.9.8) [linux-any],

Modified: desktop/unstable/gnome-control-center/debian/control.in
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-control-center/debian/control.in?rev=41407&op=diff
==============================================================================
--- desktop/unstable/gnome-control-center/debian/control.in	[utf-8] (original)
+++ desktop/unstable/gnome-control-center/debian/control.in	[utf-8] Sat Apr 26 09:36:05 2014
@@ -32,7 +32,7 @@
                libgnome-menu-3-dev,
                libgnomekbd-dev (>= 2.91.91),
                libibus-1.0-dev (>= 1.5.2),
-               libgoa-1.0-dev (>= 3.8.1),
+               libgoa-1.0-dev (>= 3.12),
                libgtk-3-dev (>= 3.7.7),
                libgtop2-dev,
                libnm-glib-dev (>= 0.9.8) [linux-any],

Added: desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-Accept-requests-for-account-creation.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-Accept-requests-for-account-creation.patch?rev=41407&op=file
==============================================================================
--- desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-Accept-requests-for-account-creation.patch	(added)
+++ desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-Accept-requests-for-account-creation.patch	[utf-8] Sat Apr 26 09:36:05 2014
@@ -0,0 +1,258 @@
+From 8762e2f8dc16e169986be7d6630e0814834c5d15 Mon Sep 17 00:00:00 2001
+From: Emanuele Aina <emanuele.aina at collabora.com>
+Date: Fri, 1 Mar 2013 12:11:14 +0100
+Subject: [PATCH] online-accounts: Accept requests for account creation on
+ DBus/cmdline
+
+Also accepts additional data to pre-seed the GOA dialog, in particular
+the provider name (eg. 'google') and provider-specific data encoded in a
+a GVariant dict ('a{sv}') to eg. pass cookies from an existing web
+session (this is only available from DBus activation).
+
+It can be run from the command line as:
+ $ gnome-control-center online-accounts add google
+
+https://bugzilla.gnome.org/show_bug.cgi?id=694315
+---
+ .../cc-online-accounts-add-account-dialog.c        | 33 ++++++++-
+ .../cc-online-accounts-add-account-dialog.h        |  4 ++
+ panels/online-accounts/cc-online-accounts-panel.c  | 81 ++++++++++++++++++----
+ 3 files changed, 101 insertions(+), 17 deletions(-)
+
+diff --git a/panels/online-accounts/cc-online-accounts-add-account-dialog.c b/panels/online-accounts/cc-online-accounts-add-account-dialog.c
+index 5c2e9c8..c0b0e0b 100644
+--- a/panels/online-accounts/cc-online-accounts-add-account-dialog.c
++++ b/panels/online-accounts/cc-online-accounts-add-account-dialog.c
+@@ -45,6 +45,7 @@ struct _GoaPanelAddAccountDialogPrivate
+   GError *error;
+   GoaClient *client;
+   GoaObject *object;
++  GoaProvider *provider;
+   GtkListStore *list_store;
+   GtkWidget *contacts_grid;
+   GtkWidget *mail_grid;
+@@ -72,7 +73,8 @@ enum
+ G_DEFINE_TYPE (GoaPanelAddAccountDialog, goa_panel_add_account_dialog, GTK_TYPE_DIALOG)
+ 
+ static void
+-add_account_dialog_add_account (GoaPanelAddAccountDialog *add_account, GoaProvider *provider)
++add_account_dialog_add_account (GoaPanelAddAccountDialog *add_account,
++                                GoaProvider *provider)
+ {
+   GoaPanelAddAccountDialogPrivate *priv = add_account->priv;
+   GList *children;
+@@ -91,6 +93,7 @@ add_account_dialog_add_account (GoaPanelAddAccountDialog *add_account, GoaProvid
+     }
+   g_list_free (children);
+ 
++  /* This spins gtk_dialog_run() */
+   priv->object = goa_provider_add_account (provider,
+                                            priv->client,
+                                            GTK_DIALOG (add_account),
+@@ -111,7 +114,6 @@ list_box_child_activated_cb (GoaPanelAddAccountDialog *add_account, GtkWidget *c
+     }
+ 
+   add_account_dialog_add_account (add_account, provider);
+-  gtk_dialog_response (GTK_DIALOG (add_account), GTK_RESPONSE_OK);
+ }
+ 
+ static void
+@@ -240,6 +242,7 @@ goa_panel_add_account_dialog_dispose (GObject *object)
+ 
+   g_clear_object (&priv->object);
+   g_clear_object (&priv->client);
++  g_clear_object (&priv->provider);
+ 
+   G_OBJECT_CLASS (goa_panel_add_account_dialog_parent_class)->dispose (object);
+ }
+@@ -378,6 +381,22 @@ goa_panel_add_account_dialog_new (GoaClient *client)
+ }
+ 
+ void
++goa_panel_add_account_dialog_set_preseed_data (GoaPanelAddAccountDialog *add_account,
++                                               GoaProvider *provider,
++                                               GVariant *preseed)
++{
++  GoaPanelAddAccountDialogPrivate *priv = add_account->priv;
++
++  g_clear_object (&priv->provider);
++
++  if (provider != NULL)
++    {
++      priv->provider = g_object_ref (provider);
++      goa_provider_set_preseed_data (provider, preseed);
++    }
++}
++
++void
+ goa_panel_add_account_dialog_add_provider (GoaPanelAddAccountDialog *add_account, GoaProvider *provider)
+ {
+   GoaPanelAddAccountDialogPrivate *priv = add_account->priv;
+@@ -431,6 +450,16 @@ goa_panel_add_account_dialog_add_provider (GoaPanelAddAccountDialog *add_account
+     }
+ }
+ 
++void
++goa_panel_add_account_dialog_run (GoaPanelAddAccountDialog *add_account)
++{
++  GoaPanelAddAccountDialogPrivate *priv = add_account->priv;
++  if (priv->provider != NULL)
++    add_account_dialog_add_account (add_account, priv->provider);
++  else
++    gtk_dialog_run (GTK_DIALOG (add_account));
++}
++
+ GoaObject *
+ goa_panel_add_account_dialog_get_account (GoaPanelAddAccountDialog *add_account, GError **error)
+ {
+diff --git a/panels/online-accounts/cc-online-accounts-add-account-dialog.h b/panels/online-accounts/cc-online-accounts-add-account-dialog.h
+index 0f503cb..9338575 100644
+--- a/panels/online-accounts/cc-online-accounts-add-account-dialog.h
++++ b/panels/online-accounts/cc-online-accounts-add-account-dialog.h
+@@ -54,6 +54,10 @@ GType                  goa_panel_add_account_dialog_get_type               (void
+ GtkWidget             *goa_panel_add_account_dialog_new                    (GoaClient *client);
+ void                   goa_panel_add_account_dialog_add_provider           (GoaPanelAddAccountDialog *add_account,
+                                                                             GoaProvider              *provider);
++void                   goa_panel_add_account_dialog_set_preseed_data       (GoaPanelAddAccountDialog *add_account,
++                                                                            GoaProvider              *provider,
++                                                                            GVariant                 *preseed);
++void                   goa_panel_add_account_dialog_run                    (GoaPanelAddAccountDialog *add_account);
+ GoaObject             *goa_panel_add_account_dialog_get_account            (GoaPanelAddAccountDialog *add_account,
+                                                                             GError                   **error);
+ 
+diff --git a/panels/online-accounts/cc-online-accounts-panel.c b/panels/online-accounts/cc-online-accounts-panel.c
+index 52fb054..acaff10 100644
+--- a/panels/online-accounts/cc-online-accounts-panel.c
++++ b/panels/online-accounts/cc-online-accounts-panel.c
+@@ -86,6 +86,9 @@ static void on_account_changed (GoaClient  *client,
+ 
+ static gboolean select_account_by_id (CcGoaPanel    *panel,
+                                       const gchar *account_id);
++static void     add_account          (CcGoaPanel *panel,
++                                      GoaProvider *provider,
++                                      GVariant *preseed);
+ 
+ CC_PANEL_REGISTER (CcGoaPanel, cc_goa_panel);
+ 
+@@ -95,6 +98,56 @@ enum {
+ };
+ 
+ static void
++command_add (CcGoaPanel *panel,
++             GVariant   *parameters)
++{
++  GVariant *v, *preseed = NULL;
++  GoaProvider *provider = NULL;
++  const gchar *provider_name = NULL;
++
++  g_assert (panel != NULL);
++  g_assert (parameters != NULL);
++
++  switch (g_variant_n_children (parameters))
++    {
++      case 4:
++        g_variant_get_child (parameters, 3, "v", &preseed);
++      case 3:
++        g_variant_get_child (parameters, 2, "v", &v);
++        if (g_variant_is_of_type (v, G_VARIANT_TYPE_STRING))
++          provider_name = g_variant_get_string (v, NULL);
++        else
++          g_warning ("Wrong type for the second argument (provider name) GVariant, expected 's' but got '%s'",
++                     (gchar *)g_variant_get_type (v));
++        g_variant_unref (v);
++      case 2:
++        /* Nothing to see here, move along */
++      case 1:
++        /* No flag to handle here */
++        break;
++      default:
++        g_warning ("Unexpected parameters found, ignore request");
++        goto out;
++    }
++
++  if (provider_name != NULL)
++    {
++      provider = goa_provider_get_for_provider_type (provider_name);
++      if (provider == NULL)
++        {
++          g_warning ("Unable to get a provider for type '%s'", provider_name);
++          goto out;
++        }
++    }
++
++  add_account (panel, provider, preseed);
++
++out:
++  g_clear_object (&provider);
++  g_clear_pointer (&preseed, g_variant_unref);
++}
++
++static void
+ cc_goa_panel_set_property (GObject *object,
+                         guint property_id,
+                         const GValue *value,
+@@ -628,18 +683,17 @@ on_model_row_inserted (GtkTreeModel *tree_model,
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+ static void
+-add_account (CcGoaPanel *panel)
++add_account (CcGoaPanel *panel,
++             GoaProvider *provider,
++             GVariant *preseed)
+ {
+   GtkWindow *parent;
+   GtkWidget *dialog;
+-  gint response;
+   GList *providers;
+   GList *l;
+   GoaObject *object;
+   GError *error;
+ 
+-  providers = NULL;
+-
+   parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (panel))));
+ 
+   dialog = goa_panel_add_account_dialog_new (panel->client);
+@@ -649,18 +703,16 @@ add_account (CcGoaPanel *panel)
+   for (l = providers; l != NULL; l = l->next)
+     {
+       GoaProvider *provider;
+-
+       provider = GOA_PROVIDER (l->data);
++
+       goa_panel_add_account_dialog_add_provider (GOA_PANEL_ADD_ACCOUNT_DIALOG (dialog), provider);
+     }
+ 
++  goa_panel_add_account_dialog_set_preseed_data (GOA_PANEL_ADD_ACCOUNT_DIALOG (dialog),
++                                                 provider, preseed);
++
+   gtk_widget_show_all (dialog);
+-  response = gtk_dialog_run (GTK_DIALOG (dialog));
+-  if (response != GTK_RESPONSE_OK)
+-    {
+-      gtk_widget_destroy (dialog);
+-      goto out;
+-    }
++  goa_panel_add_account_dialog_run (GOA_PANEL_ADD_ACCOUNT_DIALOG (dialog));
+ 
+   error = NULL;
+   object = goa_panel_add_account_dialog_get_account (GOA_PANEL_ADD_ACCOUNT_DIALOG (dialog), &error);
+@@ -714,7 +765,7 @@ on_toolbar_add_button_clicked (GtkToolButton *button,
+                                gpointer       user_data)
+ {
+   CcGoaPanel *panel = CC_GOA_PANEL (user_data);
+-  add_account (panel);
++  add_account (panel, NULL, NULL);
+ }
+ 
+ static void
+@@ -795,5 +846,5 @@ on_add_button_clicked (GtkButton *button,
+                        gpointer   user_data)
+ {
+   CcGoaPanel *panel = CC_GOA_PANEL (user_data);
+-  add_account (panel);
++  add_account (panel, NULL, NULL);
+ }
+-- 
+1.9.0
+

Added: desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch?rev=41407&op=file
==============================================================================
--- desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch	(added)
+++ desktop/unstable/gnome-control-center/debian/patches/0001-online-accounts-use-the-async-function-to-get-all-th.patch	[utf-8] Sat Apr 26 09:36:05 2014
@@ -0,0 +1,108 @@
+From 82e6777cb1a32edb9c85b85c0c3768f9ca62c4c2 Mon Sep 17 00:00:00 2001
+From: Marco Barisione <marco.barisione at collabora.co.uk>
+Date: Wed, 21 Aug 2013 11:48:25 +0100
+Subject: [PATCH] online-accounts: use the async function to get all the
+ providers
+
+https://bugzilla.gnome.org/show_bug.cgi?id=706148
+---
+ panels/online-accounts/cc-online-accounts-panel.c | 49 ++++++++++++++++++-----
+ 1 file changed, 40 insertions(+), 9 deletions(-)
+
+--- a/panels/online-accounts/cc-online-accounts-panel.c
++++ b/panels/online-accounts/cc-online-accounts-panel.c
+@@ -669,11 +669,19 @@
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
++typedef struct
++{
++  CcGoaPanel *panel;
++  GoaProvider *provider;
++  GVariant *preseed;
++} AddAccountData;
++
+ static void
+-add_account (CcGoaPanel *panel,
+-             GoaProvider *provider,
+-             GVariant *preseed)
++get_all_providers_cb (GObject      *source,
++                      GAsyncResult *res,
++                      gpointer      user_data)
+ {
++  AddAccountData *data = user_data;
+   GtkWindow *parent;
+   GtkWidget *dialog;
+   GList *providers;
+@@ -681,12 +689,15 @@
+   GoaObject *object;
+   GError *error;
+ 
+-  parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (panel))));
++  providers = NULL;
++  if (!goa_provider_get_all_finish (&providers, res, NULL))
++    goto out;
++
++  parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (data->panel))));
+ 
+-  dialog = goa_panel_add_account_dialog_new (panel->client);
++  dialog = goa_panel_add_account_dialog_new (data->panel->client);
+   gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
+ 
+-  providers = goa_provider_get_all ();
+   for (l = providers; l != NULL; l = l->next)
+     {
+       GoaProvider *provider;
+@@ -696,7 +707,7 @@
+     }
+ 
+   goa_panel_add_account_dialog_set_preseed_data (GOA_PANEL_ADD_ACCOUNT_DIALOG (dialog),
+-                                                 provider, preseed);
++                                                 data->provider, data->preseed);
+ 
+   gtk_widget_show_all (dialog);
+   goa_panel_add_account_dialog_run (GOA_PANEL_ADD_ACCOUNT_DIALOG (dialog));
+@@ -713,11 +724,11 @@
+     {
+       GtkTreeIter iter;
+       /* navigate to newly created object */
+-      if (goa_panel_accounts_model_get_iter_for_object (panel->accounts_model,
++      if (goa_panel_accounts_model_get_iter_for_object (data->panel->accounts_model,
+                                                         object,
+                                                         &iter))
+         {
+-          gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (panel->accounts_treeview)),
++          gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->panel->accounts_treeview)),
+                                           &iter);
+         }
+       g_object_unref (object);
+@@ -742,9 +753,28 @@
+       g_error_free (error);
+     }
+ 
+- out:
+   g_list_foreach (providers, (GFunc) g_object_unref, NULL);
+   g_list_free (providers);
++
++out:
++  g_clear_object (&data->panel);
++  g_clear_object (&data->provider);
++  g_clear_pointer (&data->preseed, g_variant_unref);
++  g_slice_free (AddAccountData, data);
++}
++
++static void
++add_account (CcGoaPanel *panel,
++             GoaProvider *provider,
++             GVariant *preseed)
++{
++  AddAccountData *data;
++
++  data = g_slice_new0 (AddAccountData);
++  data->panel = g_object_ref_sink (panel);
++  data->provider = (provider != NULL ? g_object_ref (provider) : NULL);
++  data->preseed = (preseed != NULL ? g_variant_ref (preseed) : NULL);
++  goa_provider_get_all (get_all_providers_cb, data);
+ }
+ 
+ /* ---------------------------------------------------------------------------------------------------- */

Modified: desktop/unstable/gnome-control-center/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-control-center/debian/patches/series?rev=41407&op=diff
==============================================================================
--- desktop/unstable/gnome-control-center/debian/patches/series	[utf-8] (original)
+++ desktop/unstable/gnome-control-center/debian/patches/series	[utf-8] Sat Apr 26 09:36:05 2014
@@ -1,3 +1,5 @@
 01_menu_category.patch
 06_handle_passwd_with_ldap.patch
 07-vpn-plugin-properties-paths.patch
+0001-online-accounts-Accept-requests-for-account-creation.patch
+0001-online-accounts-use-the-async-function-to-get-all-th.patch




More information about the pkg-gnome-commits mailing list