[gnome-packagekit/glib2: 53/79] moo



commit 872469d34cf44622280096c275e37a7d8b2b0422
Author: Richard Hughes <richard hughsie com>
Date:   Fri Oct 2 13:37:58 2009 +0100

    moo

 contrib/gnome-packagekit.spec.in |    2 -
 src/Makefile.am                  |    2 +-
 src/gpk-application.c            |  373 +++++++++++++++-----------------------
 src/gpk-service-pack.c           |  267 +++++++++++++++++++--------
 src/gpk-update-viewer.c          |  227 +++++++++++-------------
 5 files changed, 432 insertions(+), 439 deletions(-)
---
diff --git a/contrib/gnome-packagekit.spec.in b/contrib/gnome-packagekit.spec.in
index 7b16481..6b76565 100644
--- a/contrib/gnome-packagekit.spec.in
+++ b/contrib/gnome-packagekit.spec.in
@@ -5,7 +5,6 @@
 %define gtk2_version			2.16.0
 %define libnotify_version		0.4.3
 %define unique_version			1.0.0
-%define devicekit_version		003
 %define devicekit_power_version		007
 %define libcanberra_version		0.10
 %define alphatag			#ALPHATAG#
@@ -70,7 +69,6 @@ BuildRequires: xorg-x11-proto-devel
 BuildRequires: fontconfig-devel
 BuildRequires: libcanberra-devel >= %{libcanberra_version}
 BuildRequires: libgudev1-devel
-BuildRequires: DeviceKit-devel >= %{devicekit_version}
 BuildRequires: DeviceKit-power-devel >= %{devicekit_power_version}
 
 %description
diff --git a/src/Makefile.am b/src/Makefile.am
index 8e65269..4bbd08e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -203,7 +203,7 @@ gpk_service_pack_SOURCES =				\
 	$(NULL)
 
 gpk_service_pack_LDADD =				\
-	libgpkshared.a					\
+	$(shared_LIBS)					\
 	libgpkshared.a					\
 	$(NULL)
 
diff --git a/src/gpk-application.c b/src/gpk-application.c
index 4e26a34..a9f7b9b 100644
--- a/src/gpk-application.c
+++ b/src/gpk-application.c
@@ -81,8 +81,7 @@ struct GpkApplicationPrivate
 	GtkListStore		*details_store;
 	EggMarkdown		*markdown;
 	PkControl		*control;
-	PkClient		*client_primary;
-	PkClient		*client_secondary;
+	PkClient		*client;
 	PkControl		*pconnection;
 	PkDesktop		*desktop;
 	gchar			*group;
@@ -98,7 +97,7 @@ struct GpkApplicationPrivate
 	PkSearchType		 search_type;
 	PkSearchMode		 search_mode;
 	PkActionMode		 action;
-	GPtrArray		*package_list;
+	GPtrArray		*package_array;
 	GtkWidget		*image_status;
 	GpkHelperRun		*helper_run;
 #if !PK_CHECK_VERSION(0,5,2)
@@ -232,7 +231,7 @@ gpk_application_state_get_checkbox (PkBitfield state)
 	state_local = state;
 	pk_bitfield_remove (state_local, GPK_STATE_COLLECTION);
 
-	/* installed or in list */
+	/* installed or in array */
 	if (state_local == pk_bitfield_value (GPK_STATE_INSTALLED) ||
 	    state_local == pk_bitfield_value (GPK_STATE_IN_LIST))
 		return TRUE;
@@ -313,7 +312,7 @@ gpk_application_packages_checkbox_invert (GpkApplication *application)
 	checkbox = gpk_application_state_get_checkbox (state);
 
 	/* set new value */
-	gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+	gtk_array_store_set (GTK_LIST_STORE (model), &iter,
 			    PACKAGES_COLUMN_STATE, state,
 			    PACKAGES_COLUMN_CHECKBOX, checkbox,
 			    PACKAGES_COLUMN_IMAGE, icon,
@@ -358,7 +357,7 @@ gpk_application_set_buttons_apply_clear (GpkApplication *application)
 	g_return_if_fail (GPK_IS_APPLICATION (application));
 
 	/* okay to apply? */
-	len = application->priv->package_list->len;
+	len = application->priv->package_array->len;
 	if (len == 0) {
 		widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "button_apply"));
 		gtk_widget_set_sensitive (widget, FALSE);
@@ -377,7 +376,7 @@ gpk_application_set_buttons_apply_clear (GpkApplication *application)
 	model = gtk_tree_view_get_model (treeview);
 	valid = gtk_tree_model_get_iter_first (model, &iter);
 
-	/* for all current items, reset the state if in the list */
+	/* for all current items, reset the state if in the array */
 	while (valid) {
 		gtk_tree_model_get (model, &iter,
 				    PACKAGES_COLUMN_STATE, &state,
@@ -393,7 +392,7 @@ gpk_application_set_buttons_apply_clear (GpkApplication *application)
 		g_free (package_id);
 
 		/* set visible */
-		gtk_list_store_set (GTK_LIST_STORE (model), &iter, PACKAGES_COLUMN_CHECKBOX_VISIBLE, enabled, -1);
+		gtk_array_store_set (GTK_LIST_STORE (model), &iter, PACKAGES_COLUMN_CHECKBOX_VISIBLE, enabled, -1);
 		valid = gtk_tree_model_iter_next (model, &iter);
 	}
 }
@@ -458,10 +457,10 @@ gpk_application_install (GpkApplication *application)
 
 	/* changed mind, or wrong mode */
 	if (application->priv->action == PK_ACTION_REMOVE) {
-		ret = pk_package_list_contains (application->priv->package_list, package_id_selected);
+		ret = pk_package_array_contains (application->priv->package_array, package_id_selected);
 		if (ret) {
-			egg_debug ("removed %s from package list", package_id_selected);
-			g_ptr_array_remove (application->priv->package_list, package_id_selected);
+			egg_debug ("removed %s from package array", package_id_selected);
+			g_ptr_array_remove (application->priv->package_array, package_id_selected);
 
 			/* correct buttons */
 			gpk_application_allow_install (application, FALSE);
@@ -470,12 +469,12 @@ gpk_application_install (GpkApplication *application)
 			gpk_application_set_buttons_apply_clear (application);
 			return TRUE;
 		}
-		egg_warning ("wrong mode and not in list");
+		egg_warning ("wrong mode and not in array");
 		return FALSE;
 	}
 
 	/* already added */
-	ret = !pk_package_list_contains (application->priv->package_list, package_id_selected);
+	ret = !pk_package_array_contains (application->priv->package_array, package_id_selected);
 	if (!ret) {
 		egg_warning ("already added");
 		goto out;
@@ -484,8 +483,8 @@ gpk_application_install (GpkApplication *application)
 	/* set mode */
 	application->priv->action = PK_ACTION_INSTALL;
 
-	/* add to list */
-	g_ptr_array_add_xxxwithrecount (application->priv->package_list, PK_INFO_ENUM_AVAILABLE, package_id_selected, summary_selected);
+	/* add to array */
+	g_ptr_array_add_xxxwithrecount (application->priv->package_array, PK_INFO_ENUM_AVAILABLE, package_id_selected, summary_selected);
 
 	/* correct buttons */
 	gpk_application_allow_install (application, FALSE);
@@ -539,7 +538,7 @@ gpk_application_menu_files_cb (GtkAction *action, GpkApplication *application)
 
 	/* set correct view */
 	package_ids = pk_package_ids_from_id (package_id_selected);
-	ret = pk_client_get_files (application->priv->client_primary, package_ids, &error);
+	ret = pk_client_get_files (application->priv->client, package_ids, &error);
 	if (!ret) {
 		egg_warning ("cannot get file lists for %s: %s", package_id_selected, error->message);
 		g_error_free (error);
@@ -572,10 +571,10 @@ gpk_application_remove (GpkApplication *application)
 
 	/* changed mind, or wrong mode */
 	if (application->priv->action == PK_ACTION_INSTALL) {
-		ret = pk_package_list_contains (application->priv->package_list, package_id_selected);
+		ret = pk_package_array_contains (application->priv->package_array, package_id_selected);
 		if (ret) {
-			egg_debug ("removed %s from package list", package_id_selected);
-			g_ptr_array_remove (application->priv->package_list, package_id_selected);
+			egg_debug ("removed %s from package array", package_id_selected);
+			g_ptr_array_remove (application->priv->package_array, package_id_selected);
 
 			/* correct buttons */
 			gpk_application_allow_install (application, TRUE);
@@ -584,19 +583,19 @@ gpk_application_remove (GpkApplication *application)
 			gpk_application_set_buttons_apply_clear (application);
 			return TRUE;
 		}
-		egg_warning ("wrong mode and not in list");
+		egg_warning ("wrong mode and not in array");
 		return FALSE;
 	}
 
 	/* already added */
-	ret = !pk_package_list_contains (application->priv->package_list, package_id_selected);
+	ret = !pk_package_array_contains (application->priv->package_array, package_id_selected);
 	if (!ret) {
 		egg_warning ("already added");
 		goto out;
 	}
 
 	application->priv->action = PK_ACTION_REMOVE;
-	g_ptr_array_add_xxxwithrecount (application->priv->package_list, PK_INFO_ENUM_AVAILABLE, package_id_selected, summary_selected);
+	g_ptr_array_add_xxxwithrecount (application->priv->package_array, PK_INFO_ENUM_AVAILABLE, package_id_selected, summary_selected);
 
 	/* correct buttons */
 	gpk_application_allow_install (application, TRUE);
@@ -689,7 +688,7 @@ gpk_application_menu_requires_cb (GtkAction *action, GpkApplication *application
 #if !PK_CHECK_VERSION(0,5,2)
 	application->priv->dep_check_info_only = TRUE;
 #endif
-	ret = pk_client_get_requires (application->priv->client_primary, PK_FILTER_ENUM_NONE,
+	ret = pk_client_get_requires (application->priv->client, PK_FILTER_ENUM_NONE,
 				      package_ids, TRUE, &error);
 	if (!ret) {
 		egg_warning ("failed to get requires: %s", error->message);
@@ -724,7 +723,7 @@ gpk_application_menu_depends_cb (GtkAction *action, GpkApplication *application)
 #if !PK_CHECK_VERSION(0,5,2)
 	application->priv->dep_check_info_only = TRUE;
 #endif
-	ret = pk_client_get_depends (application->priv->client_primary, PK_FILTER_ENUM_NONE,
+	ret = pk_client_get_depends (application->priv->client, PK_FILTER_ENUM_NONE,
 				     package_ids, TRUE, &error);
 	if (!ret) {
 		egg_warning ("failed to get depends: %s", error->message);
@@ -751,7 +750,7 @@ gpk_application_get_full_repo_name (GpkApplication *application, const gchar *da
 		return _("Invalid");
 	}
 
-	/* try to find in cached repo list */
+	/* try to find in cached repo array */
 	repo_name = (const gchar *) g_hash_table_lookup (application->priv->repos, data);
 	if (repo_name == NULL) {
 		egg_warning ("no repo name, falling back to %s", data);
@@ -781,8 +780,8 @@ gpk_application_add_detail_item (GpkApplication *application, const gchar *title
 	markup = g_strdup_printf ("<b>%s:</b>", title);
 
 	egg_debug ("%s %s %s", markup, text, uri);
-	gtk_list_store_append (application->priv->details_store, &iter);
-	gtk_list_store_set (application->priv->details_store, &iter,
+	gtk_array_store_append (application->priv->details_store, &iter);
+	gtk_array_store_set (application->priv->details_store, &iter,
 			    DETAIL_COLUMN_TITLE, markup,
 			    DETAIL_COLUMN_TEXT, text,
 			    DETAIL_COLUMN_URI, uri,
@@ -805,7 +804,7 @@ gpk_application_clear_details_really (GpkApplication *application)
 	GtkWidget *widget;
 
 	/* hide details */
-	gtk_list_store_clear (application->priv->details_store);
+	gtk_array_store_clear (application->priv->details_store);
 
 	/* clear the old text */
 	widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "textview_description"));
@@ -837,8 +836,8 @@ gpk_application_clear_details (GpkApplication *application)
 static void
 gpk_application_clear_packages (GpkApplication *application)
 {
-	/* clear existing list */
-	gtk_list_store_clear (application->priv->packages_store);
+	/* clear existing array */
+	gtk_array_store_clear (application->priv->packages_store);
 	application->priv->has_package = FALSE;
 }
 
@@ -875,7 +874,7 @@ gpk_application_details_cb (PkClient *client, PkDetailsObj *details, GpkApplicat
 	widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "scrolledwindow_detail"));
 	gtk_widget_show (widget);
 
-	gtk_list_store_clear (application->priv->details_store);
+	gtk_array_store_clear (application->priv->details_store);
 
 	/* if a collection, mark as such */
 	if (g_strcmp0 (details->id->data, "meta") == 0)
@@ -984,8 +983,8 @@ gpk_application_add_item_to_results (GpkApplication *application, const PkItemPa
 	/* mark as got so we don't warn */
 	application->priv->has_package = TRUE;
 
-	/* are we in the package list? */
-	in_queue = pk_package_list_contains (application->priv->package_list, item->package_id);
+	/* are we in the package array? */
+	in_queue = pk_package_array_contains (application->priv->package_array, item->package_id);
 	installed = (item->info == PK_INFO_ENUM_INSTALLED) || (item->info == PK_INFO_ENUM_COLLECTION_INSTALLED);
 
 	if (installed)
@@ -1012,8 +1011,8 @@ gpk_application_add_item_to_results (GpkApplication *application, const PkItemPa
 	/* can we modify this? */
 	enabled = gpk_application_get_checkbox_enable (application, state);
 
-	gtk_list_store_append (application->priv->packages_store, &iter);
-	gtk_list_store_set (application->priv->packages_store, &iter,
+	gtk_array_store_append (application->priv->packages_store, &iter);
+	gtk_array_store_set (application->priv->packages_store, &iter,
 			    PACKAGES_COLUMN_STATE, state,
 			    PACKAGES_COLUMN_CHECKBOX, installed ^ in_queue,
 			    PACKAGES_COLUMN_CHECKBOX_VISIBLE, enabled,
@@ -1056,7 +1055,7 @@ gpk_application_package_cb (PkClient *client, const PkItemPackage *item, GpkAppl
 	    item->info != PK_INFO_ENUM_COLLECTION_INSTALLED && item->info != PK_INFO_ENUM_COLLECTION_AVAILABLE)
 		return;
 
-	/* add to list */
+	/* add to array */
 	gpk_application_add_item_to_results (application, item);
 }
 
@@ -1109,8 +1108,8 @@ gpk_application_suggest_better_search (GpkApplication *application)
 	}
 
 	text = g_strdup_printf ("%s\n%s", title, message);
-	gtk_list_store_append (application->priv->packages_store, &iter);
-	gtk_list_store_set (application->priv->packages_store, &iter,
+	gtk_array_store_append (application->priv->packages_store, &iter);
+	gtk_array_store_set (application->priv->packages_store, &iter,
 			    PACKAGES_COLUMN_STATE, state,
 			    PACKAGES_COLUMN_CHECKBOX, FALSE,
 			    PACKAGES_COLUMN_CHECKBOX_VISIBLE, FALSE,
@@ -1125,7 +1124,7 @@ gpk_application_suggest_better_search (GpkApplication *application)
  * gpk_application_finished_get_depends:
  **/
 static void
-gpk_application_finished_get_depends (GpkApplication *application, GPtrArray *list)
+gpk_application_finished_get_depends (GpkApplication *application, GPtrArray *array)
 {
 	GtkWindow *window;
 	gchar *name = NULL;
@@ -1143,9 +1142,9 @@ gpk_application_finished_get_depends (GpkApplication *application, GPtrArray *li
 		goto out;
 	}
 
-	/* empty list */
+	/* empty array */
 	window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
-	if (list->len == 0) {
+	if (array->len == 0) {
 		gpk_error_dialog_modal (window,
 					/* TRANSLATORS: no packages returned */
 					_("No packages"),
@@ -1159,17 +1158,17 @@ gpk_application_finished_get_depends (GpkApplication *application, GPtrArray *li
 	/* TRANSLATORS: title: show the number of other packages we depend on */
 	title = g_strdup_printf (ngettext ("%i additional package is required for %s",
 					   "%i additional packages are required for %s",
-					   list->len), list->len, name);
+					   array->len), array->len, name);
 
-	/* TRANSLATORS: message: show the list of dependant packages for this package */
+	/* TRANSLATORS: message: show the array of dependant packages for this package */
 	message = g_strdup_printf (ngettext ("Packages listed below are required for %s to function correctly.",
 					     "Packages listed below are required for %s to function correctly.",
-					     list->len), name);
+					     array->len), name);
 
 	dialog = gtk_message_dialog_new (window, GTK_DIALOG_DESTROY_WITH_PARENT,
 					 GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", title);
 	gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog), "%s", message);
-	gpk_dialog_embed_package_list_widget (GTK_DIALOG (dialog), list);
+	gpk_dialog_embed_package_array_widget (GTK_DIALOG (dialog), array);
 
 	gtk_dialog_run (GTK_DIALOG (dialog));
 	gtk_widget_destroy (GTK_WIDGET (dialog));
@@ -1185,7 +1184,7 @@ out:
  * gpk_application_finished_get_requires:
  **/
 static void
-gpk_application_finished_get_requires (GpkApplication *application, GPtrArray *list)
+gpk_application_finished_get_requires (GpkApplication *application, GPtrArray *array)
 {
 	GtkWindow *window;
 	gchar *name = NULL;
@@ -1203,9 +1202,9 @@ gpk_application_finished_get_requires (GpkApplication *application, GPtrArray *l
 		goto out;
 	}
 
-	/* empty list */
+	/* empty array */
 	window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
-	if (list->len == 0) {
+	if (array->len == 0) {
 		gpk_error_dialog_modal (window,
 					/* TRANSLATORS: no packages returned */
 					_("No packages"),
@@ -1219,17 +1218,17 @@ gpk_application_finished_get_requires (GpkApplication *application, GPtrArray *l
 	/* TRANSLATORS: title: how many packages require this package */
 	title = g_strdup_printf (ngettext ("%i package requires %s",
 					   "%i packages require %s",
-					   list->len), length, name);
+					   array->len), length, name);
 
-	/* TRANSLATORS: show a list of packages for the package */
+	/* TRANSLATORS: show a array of packages for the package */
 	message = g_strdup_printf (ngettext ("Packages listed below require %s to function correctly.",
 					     "Packages listed below require %s to function correctly.",
-					     list->len), name);
+					     array->len), name);
 
 	dialog = gtk_message_dialog_new (window, GTK_DIALOG_DESTROY_WITH_PARENT,
 					 GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", title);
 	gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog), "%s", message);
-	gpk_dialog_embed_package_list_widget (GTK_DIALOG (dialog), list);
+	gpk_dialog_embed_package_array_widget (GTK_DIALOG (dialog), array);
 
 	gtk_dialog_run (GTK_DIALOG (dialog));
 	gtk_widget_destroy (GTK_WIDGET (dialog));
@@ -1271,7 +1270,7 @@ gpk_application_select_exact_match (GpkApplication *application, const gchar *te
 
 	g_return_if_fail (GPK_IS_APPLICATION (application));
 
-	/* get the first iter in the list */
+	/* get the first iter in the array */
 	treeview = GTK_TREE_VIEW (gtk_builder_get_object (application->priv->builder, "treeview_packages"));
 	model = gtk_tree_view_get_model (treeview);
 	valid = gtk_tree_model_get_iter_first (model, &iter);
@@ -1310,17 +1309,17 @@ gpk_application_run_installed (GpkApplication *application)
 {
 	guint i;
 	guint len;
-	GPtrArray *list;
+	GPtrArray *array;
 	const PkItemPackage *item;
 	GPtrArray *array;
 	gchar **package_ids = NULL;
 
-	/* get the package list and filter on INSTALLED */
+	/* get the package array and filter on INSTALLED */
 	array = g_ptr_array_new_with_free_func (g_free);
-	list = pk_results_get_package_array (application->priv->client_primary);
-	len = list->len;
+	array = pk_results_get_package_array (application->priv->client);
+	len = array->len;
 	for (i=0; i<len; i++) {
-		item = g_ptr_array_index (list, i);
+		item = g_ptr_array_index (array, i);
 		if (item->info == PK_INFO_ENUM_INSTALLING)
 			g_ptr_array_add (array, g_strdup (item->package_id));
 	}
@@ -1337,7 +1336,7 @@ gpk_application_run_installed (GpkApplication *application)
 
 out:
 	g_strfreev (package_ids);
-	g_object_unref (list);
+	g_object_unref (array);
 	g_ptr_array_unref (array);
 }
 
@@ -1349,7 +1348,7 @@ gpk_application_finished_cb (PkClient *client, PkExitEnum exit_enum, guint runti
 {
 	GtkWidget *widget;
 	PkRoleEnum role;
-	GPtrArray *list;
+	GPtrArray *array;
 
 	g_return_if_fail (GPK_IS_APPLICATION (application));
 
@@ -1376,24 +1375,24 @@ gpk_application_finished_cb (PkClient *client, PkExitEnum exit_enum, guint runti
 	gpk_application_set_buttons_apply_clear (application);
 
 	if (role == PK_ROLE_ENUM_GET_CATEGORIES) {
-		/* get complex group list */
+		/* get complex group array */
 		gpk_application_categories_finished (application);
 	}
 
 	/* get deps */
 	if (role == PK_ROLE_ENUM_GET_DEPENDS &&
 	    exit_enum == PK_EXIT_ENUM_SUCCESS) {
-		list = pk_results_get_package_array (application->priv->client_primary);
-		gpk_application_finished_get_depends (application, list);
-		g_object_unref (list);
+		array = pk_results_get_package_array (application->priv->client);
+		gpk_application_finished_get_depends (application, array);
+		g_object_unref (array);
 	}
 
 	/* get reqs */
 	if (role == PK_ROLE_ENUM_GET_REQUIRES &&
 	    exit_enum == PK_EXIT_ENUM_SUCCESS) {
-		list = pk_results_get_package_array (application->priv->client_primary);
-		gpk_application_finished_get_requires (application, list);
-		g_object_unref (list);
+		array = pk_results_get_package_array (application->priv->client);
+		gpk_application_finished_get_requires (application, array);
+		g_object_unref (array);
 	}
 
 	/* we've just agreed to auth or a EULA */
@@ -1415,7 +1414,7 @@ gpk_application_finished_cb (PkClient *client, PkExitEnum exit_enum, guint runti
 			gpk_application_run_installed (application);
 
 			/* clear if success */
-			pk_item_list_clear (application->priv->package_list);
+			g_ptr_array_set_size (application->priv->package_array, 0);
 			application->priv->action = PK_ACTION_NONE;
 			gpk_application_set_buttons_apply_clear (application);
 		}
@@ -1457,7 +1456,7 @@ gpk_application_cancel_cb (GtkWidget *button_widget, GpkApplication *application
 
 	g_return_if_fail (GPK_IS_APPLICATION (application));
 
-	ret = g_cancellable_cancel (application->priv->client_primary, NULL);
+	ret = g_cancellable_cancel (application->priv->client, NULL);
 	egg_debug ("canceled? %i", ret);
 
 	/* switch buttons around */
@@ -1503,15 +1502,15 @@ gpk_application_perform_search_name_details_file (GpkApplication *application)
 
 	/* do the search */
 	if (application->priv->search_type == PK_SEARCH_NAME) {
-		ret = pk_client_search_name (application->priv->client_primary,
+		ret = pk_client_search_name (application->priv->client,
 					     application->priv->filters_current,
 					     application->priv->search_text, &error);
 	} else if (application->priv->search_type == PK_SEARCH_DETAILS) {
-		ret = pk_client_search_details (application->priv->client_primary,
+		ret = pk_client_search_details (application->priv->client,
 					     application->priv->filters_current,
 					     application->priv->search_text, &error);
 	} else if (application->priv->search_type == PK_SEARCH_FILE) {
-		ret = pk_client_search_file (application->priv->client_primary,
+		ret = pk_client_search_file (application->priv->client,
 					     application->priv->filters_current,
 					     application->priv->search_text, &error);
 	} else {
@@ -1547,11 +1546,11 @@ gpk_application_perform_search_others (GpkApplication *application)
 	g_return_val_if_fail (application->priv->group != NULL, FALSE);
 
 	if (application->priv->search_mode == PK_MODE_GROUP) {
-		ret = pk_client_search_group (application->priv->client_primary,
+		ret = pk_client_search_group (application->priv->client,
 					      application->priv->filters_current,
 					      application->priv->group, &error);
 	} else {
-		ret = pk_client_get_packages (application->priv->client_primary,
+		ret = pk_client_get_packages (application->priv->client,
 					      application->priv->filters_current, &error);
 	}
 
@@ -1577,11 +1576,11 @@ gpk_application_populate_selected (GpkApplication *application)
 {
 	guint i;
 	guint len;
-	GPtrArray *list;
+	GPtrArray *array;
 	const PkItemPackage *item;
 
-	list = application->priv->package_list;
-	len = list->len;
+	array = application->priv->package_array;
+	len = array->len;
 
 	/* nothing in queue */
 	if (len == 0) {
@@ -1591,7 +1590,7 @@ gpk_application_populate_selected (GpkApplication *application)
 
 	/* dump queue to package window */
 	for (i=0; i<len; i++) {
-		item = g_ptr_array_index (list, i);
+		item = g_ptr_array_index (array, i);
 		gpk_application_add_item_to_results (application, item);
 	}
 out:
@@ -1653,7 +1652,7 @@ gpk_application_quit (GpkApplication *application)
 	g_return_val_if_fail (GPK_IS_APPLICATION (application), FALSE);
 
 	/* do we have any items queued for removal or installation? */
-	len = application->priv->package_list->len;
+	len = application->priv->package_array->len;
 	if (len != 0) {
 		window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
 		dialog = gtk_message_dialog_new (window, GTK_DIALOG_MODAL,
@@ -1676,13 +1675,7 @@ gpk_application_quit (GpkApplication *application)
 	}
 
 	/* we might have visual stuff running, close them down */
-	ret = g_cancellable_cancel (application->priv->client_primary, &error);
-	if (!ret) {
-		egg_warning ("failed to cancel client: %s", error->message);
-		g_error_free (error);
-		error = NULL;
-	}
-	ret = g_cancellable_cancel (application->priv->client_secondary, &error);
+	ret = g_cancellable_cancel (application->priv->client, &error);
 	if (!ret) {
 		egg_warning ("failed to cancel client: %s", error->message);
 		g_error_free (error);
@@ -1818,12 +1811,12 @@ gpk_application_button_clear_cb (GtkWidget *widget_button, GpkApplication *appli
 
 	g_return_if_fail (GPK_IS_APPLICATION (application));
 
-	/* get the first iter in the list */
+	/* get the first iter in the array */
 	treeview = GTK_TREE_VIEW (gtk_builder_get_object (application->priv->builder, "treeview_packages"));
 	model = gtk_tree_view_get_model (treeview);
 	valid = gtk_tree_model_get_iter_first (model, &iter);
 
-	/* for all current items, reset the state if in the list */
+	/* for all current items, reset the state if in the array */
 	while (valid) {
 		gtk_tree_model_get (model, &iter, PACKAGES_COLUMN_STATE, &state, -1);
 		ret = pk_bitfield_contain (state, GPK_STATE_IN_LIST);
@@ -1834,7 +1827,7 @@ gpk_application_button_clear_cb (GtkWidget *widget_button, GpkApplication *appli
 			checkbox = gpk_application_state_get_checkbox (state);
 
 			/* set new value */
-			gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+			gtk_array_store_set (GTK_LIST_STORE (model), &iter,
 					    PACKAGES_COLUMN_STATE, state,
 					    PACKAGES_COLUMN_CHECKBOX, checkbox,
 					    PACKAGES_COLUMN_IMAGE, icon,
@@ -1844,7 +1837,7 @@ gpk_application_button_clear_cb (GtkWidget *widget_button, GpkApplication *appli
 	}
 
 	/* clear queue */
-	pk_item_list_clear (application->priv->package_list);
+	g_ptr_array_set_size (application->priv->package_array, 0);
 
 	/* force a button refresh */
 	selection = gtk_tree_view_get_selection (treeview);
@@ -1865,32 +1858,32 @@ gpk_application_button_apply_cb (GtkWidget *widget, GpkApplication *application)
 
 	g_return_if_fail (GPK_IS_APPLICATION (application));
 
-	package_ids = pk_package_array_to_strv (application->priv->package_list);
+	package_ids = pk_package_array_to_strv (application->priv->package_array);
 	if (application->priv->action == PK_ACTION_INSTALL) {
 
 		/* install */
-		ret = pk_client_install_packages (application->priv->client_primary, package_ids, &error);
+		ret = pk_client_install_packages (application->priv->client, package_ids, &error);
 		if (!ret) {
 			egg_warning ("failed to get depends: %s", error->message);
 			g_error_free (error);
 			goto out;
 		}
 
-		/* make package list insensitive */
+		/* make package array insensitive */
 		widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "treeview_packages"));
 		gtk_widget_set_sensitive (widget, FALSE);
 	}
 	if (application->priv->action == PK_ACTION_REMOVE) {
 
 		/* install */
-		ret = pk_client_remove_packages (application->priv->client_primary, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, TRUE, &error);
+		ret = pk_client_remove_packages (application->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids, TRUE, &error);
 		if (!ret) {
 			egg_warning ("failed to get requires: %s", error->message);
 			g_error_free (error);
 			goto out;
 		}
 
-		/* make package list insensitive */
+		/* make package array insensitive */
 		widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "treeview_packages"));
 		gtk_widget_set_sensitive (widget, FALSE);
 	}
@@ -1977,7 +1970,7 @@ gpk_application_groups_treeview_changed_cb (GtkTreeSelection *selection, GpkAppl
 	gpk_application_clear_details (application);
 	gpk_application_clear_packages (application);
 
-	/* clear the search text if we clicked the group list */
+	/* clear the search text if we clicked the group array */
 	entry = GTK_ENTRY (gtk_builder_get_object (application->priv->builder, "entry_text"));
 	gtk_entry_set_text (entry, "");
 
@@ -2084,7 +2077,7 @@ gpk_application_packages_treeview_clicked_cb (GtkTreeSelection *selection, GpkAp
 
 	/* get the details */
 	package_ids = pk_package_ids_from_id (package_id);
-	ret = pk_client_get_details (application->priv->client_primary, package_ids, &error);
+	ret = pk_client_get_details (application->priv->client, package_ids, &error);
 	if (!ret) {
 		egg_warning ("failed to get details: %s", error->message);
 		g_error_free (error);
@@ -2480,7 +2473,7 @@ gpk_application_menu_refresh_cb (GtkAction *action, GpkApplication *application)
 	g_return_if_fail (GPK_IS_APPLICATION (application));
 
 	/* set correct view */
-	ret = pk_client_refresh_cache (application->priv->client_primary, TRUE, &error);
+	ret = pk_client_refresh_cache (application->priv->client, TRUE, &error);
 	if (!ret) {
 		egg_warning ("cannot get refresh cache: %s", error->message);
 		g_error_free (error);
@@ -2833,69 +2826,6 @@ gpk_application_allow_cancel_cb (PkClient *client, gboolean allow_cancel, GpkApp
 }
 
 /**
- * gpk_application_deps_remove_event_cb:
- **/
-static void
-gpk_application_deps_remove_event_cb (GpkHelperDepsRemove *helper_deps_remove, GtkResponseType type, GpkApplication *application)
-{
-	gboolean ret;
-	GError *error = NULL;
-	gchar **package_ids = NULL;
-	GtkWidget *widget;
-
-	if (type != GTK_RESPONSE_YES) {
-		goto out;
-	}
-
-	/* actually remove packages this time */
-	package_ids = pk_package_array_to_strv (application->priv->package_list);
-	ret = pk_client_remove_packages (application->priv->client_primary, package_ids, TRUE, FALSE, &error);
-	if (!ret) {
-		egg_warning ("cannot remove packages: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* make package list insensitive */
-	widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "treeview_packages"));
-	gtk_widget_set_sensitive (widget, FALSE);
-out:
-	g_strfreev (package_ids);
-}
-
-/**
- * gpk_application_deps_install_event_cb:
- **/
-static void
-gpk_application_deps_install_event_cb (GpkHelperDepsInstall *helper_deps_install, GtkResponseType type, GpkApplication *application)
-{
-	gboolean ret;
-	GError *error = NULL;
-	gchar **package_ids = NULL;
-	GtkWidget *widget;
-
-	if (type != GTK_RESPONSE_YES) {
-		goto out;
-	}
-
-	/* actually remove packages this time */
-	package_ids = pk_package_array_to_strv (application->priv->package_list);
-	ret = pk_client_install_packages (application->priv->client_primary, TRUE, package_ids, &error);
-	if (!ret) {
-		egg_warning ("cannot install packages: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* make package list insensitive */
-	widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "treeview_packages"));
-	gtk_widget_set_sensitive (widget, FALSE);
-
-out:
-	g_strfreev (package_ids);
-}
-
-/**
  * gpk_application_package_row_activated_cb:
  **/
 static void
@@ -3020,17 +2950,17 @@ gpk_application_add_welcome (GpkApplication *application)
 	PkBitfield state = 0;
 
 	gpk_application_clear_packages (application);
-	gtk_list_store_append (application->priv->packages_store, &iter);
+	gtk_array_store_append (application->priv->packages_store, &iter);
 
 	/* enter something nice */
 	if (pk_bitfield_contain (application->priv->roles, PK_ROLE_ENUM_SEARCH_GROUP)) {
-		/* TRANSLATORS: welcome text if we can click the group list */
+		/* TRANSLATORS: welcome text if we can click the group array */
 		welcome = _("Enter a package name and then click find, or click a group to get started.");
 	} else {
 		/* TRANSLATORS: welcome text if we have to search by name */
 		welcome = _("Enter a package name and then click find to get started.");
 	}
-	gtk_list_store_set (application->priv->packages_store, &iter,
+	gtk_array_store_set (application->priv->packages_store, &iter,
 			    PACKAGES_COLUMN_STATE, state,
 			    PACKAGES_COLUMN_CHECKBOX, FALSE,
 			    PACKAGES_COLUMN_CHECKBOX_VISIBLE, FALSE,
@@ -3042,10 +2972,10 @@ gpk_application_add_welcome (GpkApplication *application)
 }
 
 /**
- * gpk_application_create_group_list_enum:
+ * gpk_application_create_group_array_enum:
  **/
 static gboolean
-gpk_application_create_group_list_enum (GpkApplication *application)
+gpk_application_create_group_array_enum (GpkApplication *application)
 {
 	GtkWidget *widget;
 	guint i;
@@ -3075,7 +3005,7 @@ gpk_application_create_group_list_enum (GpkApplication *application)
 	if (application->priv->groups == 0)
 		return FALSE;
 
-	/* add these at the top of the list */
+	/* add these at the top of the array */
 	if (pk_bitfield_contain (application->priv->groups, PK_GROUP_ENUM_COLLECTIONS))
 		gpk_application_group_add_data (application, PK_GROUP_ENUM_COLLECTIONS);
 	if (pk_bitfield_contain (application->priv->groups, PK_GROUP_ENUM_NEWEST))
@@ -3112,7 +3042,7 @@ gpk_application_create_group_list_enum (GpkApplication *application)
 static void
 gpk_application_categories_finished (GpkApplication *application)
 {
-	GPtrArray *list;
+	GPtrArray *array;
 	const PkCategoryObj *item;
 	const PkCategoryObj *item2;
 	GtkTreeIter iter;
@@ -3140,7 +3070,7 @@ gpk_application_categories_finished (GpkApplication *application)
 				    GROUPS_COLUMN_ICON, icon_name, -1);
 	}
 
-	/* add these at the top of the list */
+	/* add these at the top of the array */
 	if (pk_bitfield_contain (application->priv->groups, PK_GROUP_ENUM_COLLECTIONS))
 		gpk_application_group_add_data (application, PK_GROUP_ENUM_COLLECTIONS);
 	if (pk_bitfield_contain (application->priv->groups, PK_GROUP_ENUM_NEWEST))
@@ -3157,14 +3087,14 @@ gpk_application_categories_finished (GpkApplication *application)
 					      gpk_application_group_row_separator_func, NULL, NULL);
 
 	/* get return values */
-	list = pk_client_get_category_list (application->priv->client_primary);
-	if (list->len == 0) {
+	array = pk_client_get_category_array (application->priv->client);
+	if (array->len == 0) {
 		egg_warning ("no results from GetCategories");
 		goto out;
 	}
 
-	for (i=0; i < list->len; i++) {
-		item = g_ptr_array_index (list, i);
+	for (i=0; i < array->len; i++) {
+		item = g_ptr_array_index (array, i);
 
 		gtk_tree_store_append (application->priv->groups_store, &iter, NULL);
 		gtk_tree_store_set (application->priv->groups_store, &iter,
@@ -3177,7 +3107,7 @@ gpk_application_categories_finished (GpkApplication *application)
 		j = 0;
 		do {
 			/* only allows groups two layers deep */
-			item2 = g_ptr_array_index (list, j);
+			item2 = g_ptr_array_index (array, j);
 			if (g_strcmp0 (item2->parent_id, item->cat_id) == 0) {
 				gtk_tree_store_append (application->priv->groups_store, &iter2, &iter);
 				gtk_tree_store_set (application->priv->groups_store, &iter2,
@@ -3187,24 +3117,24 @@ gpk_application_categories_finished (GpkApplication *application)
 						    GROUPS_COLUMN_ICON, item2->icon,
 						    GROUPS_COLUMN_ACTIVE, TRUE,
 						    -1);
-				pk_item_list_remove (list, item2);
+				pk_item_array_remove (array, item2);
 			} else
 				j++;
-		} while (j < list->len);
+		} while (j < array->len);
 	}
 
 	/* open all expanders */
 	gtk_tree_view_collapse_all (treeview);
-	g_object_unref (list);
+	g_object_unref (array);
 out:
 	return;
 }
 
 /**
- * gpk_application_create_group_list_categories:
+ * gpk_application_create_group_array_categories:
  **/
 static gboolean
-gpk_application_create_group_list_categories (GpkApplication *application)
+gpk_application_create_group_array_categories (GpkApplication *application)
 {
 	GError *error = NULL;
 	gboolean ret = FALSE;
@@ -3216,7 +3146,7 @@ gpk_application_create_group_list_categories (GpkApplication *application)
 	}
 
 	/* get categories supported */
-	ret = pk_client_get_categories (application->priv->client_primary, &error);
+	ret = pk_client_get_categories (application->priv->client, &error);
 	if (!ret) {
 		egg_warning ("failed to get categories: %s", error->message);
 		g_error_free (error);
@@ -3247,9 +3177,9 @@ gpk_application_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfE
 		ret = gconf_value_get_bool (value);
 		gtk_tree_store_clear (application->priv->groups_store);
 		if (ret)
-			gpk_application_create_group_list_categories (application);
+			gpk_application_create_group_array_categories (application);
 		else
-			gpk_application_create_group_list_enum (application);
+			gpk_application_create_group_array_enum (application);
 	} else if (g_strcmp0 (gconf_entry->key, GPK_CONF_AUTOCOMPLETE) == 0) {
 		ret = gconf_value_get_bool (value);
 		entry = GTK_ENTRY (gtk_builder_get_object (application->priv->builder, "entry_text"));
@@ -3304,7 +3234,7 @@ gpk_application_files_cb (PkClient *client, const gchar *package_id,
 	window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
 	dialog = gtk_message_dialog_new (window, GTK_DIALOG_DESTROY_WITH_PARENT,
 					 GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", title);
-	gpk_dialog_embed_file_list_widget (GTK_DIALOG (dialog), array);
+	gpk_dialog_embed_file_array_widget (GTK_DIALOG (dialog), array);
 	gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
 	gtk_window_set_default_size (GTK_WINDOW (dialog), 600, 250);
 
@@ -3349,7 +3279,7 @@ pk_backend_status_get_properties_cb (GObject *object, GAsyncResult *res, GMainLo
 		      "groups", &application->priv->groups,
 		      NULL);
 
-	/* Remove description/file list if needed. */
+	/* Remove description/file array if needed. */
 	if (pk_bitfield_contain (application->priv->roles, PK_ROLE_ENUM_GET_DETAILS) == FALSE) {
 		widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "scrolledwindow2"));
 		gtk_widget_hide (widget);
@@ -3450,14 +3380,14 @@ pk_backend_status_get_properties_cb (GObject *object, GAsyncResult *res, GMainLo
 		gtk_widget_hide (widget);
 	}
 
-	/* simple list or category tree? */
+	/* simple array or category tree? */
 	ret = gconf_client_get_bool (application->priv->gconf_client, GPK_CONF_APPLICATION_CATEGORY_GROUPS, NULL);
 	if (ret)
-		ret = gpk_application_create_group_list_categories (application);
+		ret = gpk_application_create_group_array_categories (application);
 
-	/* fallback to creating a simple list if we can't do category list */
+	/* fallback to creating a simple array if we can't do category array */
 	if (!ret)
-		gpk_application_create_group_list_enum (application);
+		gpk_application_create_group_array_enum (application);
 out:
 	return;
 }
@@ -3478,7 +3408,7 @@ gpk_application_init (GpkApplication *application)
 	gboolean ret;
 	gchar *mode;
 	GError *error = NULL;
-	GSList *list;
+	GSList *array;
 	guint retval;
 	GtkBox *box;
 
@@ -3493,7 +3423,7 @@ gpk_application_init (GpkApplication *application)
 	application->priv->details_event_id = 0;
 	application->priv->status_id = 0;
 	application->priv->status_last = PK_STATUS_ENUM_UNKNOWN;
-	application->priv->package_list = g_ptr_array_new_with_free_func_xxx ();
+	application->priv->package_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_package_unref);
 
 	application->priv->gconf_client = gconf_client_get_default ();
 	application->priv->repos = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
@@ -3512,8 +3442,8 @@ gpk_application_init (GpkApplication *application)
 				 (GConfClientNotifyFunc) gpk_application_gconf_key_changed_cb,
 				 application, NULL, NULL);
 
-	/* create list stores */
-	application->priv->packages_store = gtk_list_store_new (PACKAGES_COLUMN_LAST,
+	/* create array stores */
+	application->priv->packages_store = gtk_array_store_new (PACKAGES_COLUMN_LAST,
 							        G_TYPE_STRING,
 								G_TYPE_UINT64,
 							        G_TYPE_BOOLEAN,
@@ -3527,7 +3457,7 @@ gpk_application_init (GpkApplication *application)
 							      G_TYPE_STRING,
 							      G_TYPE_STRING,
 							      G_TYPE_BOOLEAN);
-	application->priv->details_store = gtk_list_store_new (DETAIL_COLUMN_LAST,
+	application->priv->details_store = gtk_array_store_new (DETAIL_COLUMN_LAST,
 							       G_TYPE_STRING,
 							       G_TYPE_STRING,
 							       G_TYPE_STRING);
@@ -3541,38 +3471,30 @@ gpk_application_init (GpkApplication *application)
 	application->priv->control = pk_control_new ();
 
 	/* this is what we use mainly */
-	application->priv->client_primary = pk_client_new ();
-	g_signal_connect (application->priv->client_primary, "files",
+	application->priv->client = pk_client_new ();
+	g_signal_connect (application->priv->client, "files",
 			  G_CALLBACK (gpk_application_files_cb), application);
-	g_signal_connect (application->priv->client_primary, "package",
+	g_signal_connect (application->priv->client, "package",
 			  G_CALLBACK (gpk_application_package_cb), application);
-	g_signal_connect (application->priv->client_primary, "details",
+	g_signal_connect (application->priv->client, "details",
 			  G_CALLBACK (gpk_application_details_cb), application);
-	g_signal_connect (application->priv->client_primary, "error-code",
+	g_signal_connect (application->priv->client, "error-code",
 			  G_CALLBACK (gpk_application_error_code_cb), application);
-	g_signal_connect (application->priv->client_primary, "finished",
+	g_signal_connect (application->priv->client, "finished",
 			  G_CALLBACK (gpk_application_finished_cb), application);
-	g_signal_connect (application->priv->client_primary, "status-changed",
+	g_signal_connect (application->priv->client, "status-changed",
 			  G_CALLBACK (gpk_application_status_changed_cb), application);
-	g_signal_connect (application->priv->client_primary, "allow-cancel",
+	g_signal_connect (application->priv->client, "allow-cancel",
 			  G_CALLBACK (gpk_application_allow_cancel_cb), application);
-	g_signal_connect (application->priv->client_primary, "repo-detail",
+	g_signal_connect (application->priv->client, "repo-detail",
 			  G_CALLBACK (pk_application_repo_detail_cb), application);
-	g_signal_connect (application->priv->client_primary, "repo-signature-required",
+	g_signal_connect (application->priv->client, "repo-signature-required",
 			  G_CALLBACK (gpk_application_repo_signature_required_cb), application);
-	g_signal_connect (application->priv->client_primary, "eula-required",
+	g_signal_connect (application->priv->client, "eula-required",
 			  G_CALLBACK (gpk_application_eula_required_cb), application);
-	g_signal_connect (application->priv->client_primary, "media-change-required",
+	g_signal_connect (application->priv->client, "media-change-required",
 			  G_CALLBACK (gpk_application_media_change_required_cb), application);
 
-	/* this is for auth and eula callbacks */
-	application->priv->client_secondary = pk_client_new ();
-	pk_client_set_use_buffer (application->priv->client_secondary, TRUE, NULL);
-	g_signal_connect (application->priv->client_secondary, "error-code",
-			  G_CALLBACK (gpk_application_error_code_cb), application);
-	g_signal_connect (application->priv->client_secondary, "finished",
-			  G_CALLBACK (gpk_application_finished_cb), application);
-
 	/* get properties */
 	pk_control_get_properties_async (application->priv->control, NULL, (GAsyncReadyCallback) pk_backend_status_get_properties_cb, loop);
 	g_signal_connect (application->priv->control, "connection-changed",
@@ -3606,14 +3528,6 @@ gpk_application_init (GpkApplication *application)
 	application->priv->helper_run = gpk_helper_run_new ();
 	gpk_helper_run_set_parent (application->priv->helper_run, GTK_WINDOW (main_window));
 
-	application->priv->helper_deps_remove = gpk_helper_deps_remove_new ();
-	g_signal_connect (application->priv->helper_deps_remove, "event", G_CALLBACK (gpk_application_deps_remove_event_cb), application);
-	gpk_helper_deps_remove_set_parent (application->priv->helper_deps_remove, GTK_WINDOW (main_window));
-
-	application->priv->helper_deps_install = gpk_helper_deps_install_new ();
-	g_signal_connect (application->priv->helper_deps_install, "event", G_CALLBACK (gpk_application_deps_install_event_cb), application);
-	gpk_helper_deps_install_set_parent (application->priv->helper_deps_install, GTK_WINDOW (main_window));
-
 	/* Hide window first so that the dialogue resizes itself without redrawing */
 	gtk_widget_hide (main_window);
 	gtk_window_set_icon_name (GTK_WINDOW (main_window), GPK_ICON_SOFTWARE_INSTALLER);
@@ -3637,9 +3551,9 @@ gpk_application_init (GpkApplication *application)
 
 	/* set F1 = contents */
 	widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "menu_about"));
-	list = gtk_accel_groups_from_object (G_OBJECT (main_window));
-	if (list != NULL)
-		gtk_menu_set_accel_group (GTK_MENU (widget), GTK_ACCEL_GROUP (list->data));
+	array = gtk_accel_groups_from_object (G_OBJECT (main_window));
+	if (array != NULL)
+		gtk_menu_set_accel_group (GTK_MENU (widget), GTK_ACCEL_GROUP (array->data));
 
 	widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "menuitem_help"));
 	gtk_menu_item_set_accel_path (GTK_MENU_ITEM (widget),
@@ -3848,7 +3762,7 @@ gpk_application_init (GpkApplication *application)
 	g_signal_connect (GTK_TREE_VIEW (widget), "row-activated",
 			  G_CALLBACK (gpk_application_package_row_activated_cb), application);
 
-	/* use a list store for the extra data */
+	/* use a array store for the extra data */
 	widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "treeview_detail"));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (application->priv->details_store));
 
@@ -3887,9 +3801,9 @@ gpk_application_init (GpkApplication *application)
 			  G_CALLBACK (gpk_application_groups_treeview_changed_cb), application);
 
 	/* get repos, so we can show the full name in the software source box */
-	ret = pk_client_get_repo_list (application->priv->client_primary, PK_FILTER_ENUM_NONE, &error);
+	ret = pk_client_get_repo_array (application->priv->client, PK_FILTER_ENUM_NONE, &error);
 	if (!ret) {
-		egg_warning ("failed to get repo list: %s", error->message);
+		egg_warning ("failed to get repo array: %s", error->message);
 		g_error_free (error);
 	}
 
@@ -3962,16 +3876,13 @@ gpk_application_finalize (GObject *object)
 	g_object_unref (application->priv->packages_store);
 	g_object_unref (application->priv->details_store);
 	g_object_unref (application->priv->control);
-	g_object_unref (application->priv->client_primary);
-	g_object_unref (application->priv->client_secondary);
+	g_object_unref (application->priv->client);
 	g_object_unref (application->priv->pconnection);
 	g_object_unref (application->priv->desktop);
 	g_object_unref (application->priv->gconf_client);
 	g_object_unref (application->priv->markdown);
 	g_object_unref (application->priv->builder);
 	g_object_unref (application->priv->helper_run);
-	g_object_unref (application->priv->helper_deps_remove);
-	g_object_unref (application->priv->helper_deps_install);
 
 	if (application->priv->status_id > 0)
 		g_source_remove (application->priv->status_id);
diff --git a/src/gpk-service-pack.c b/src/gpk-service-pack.c
index e4f410d..718db8c 100644
--- a/src/gpk-service-pack.c
+++ b/src/gpk-service-pack.c
@@ -88,7 +88,7 @@ gpk_pack_get_default_filename (const gchar *directory)
 		filename = g_strdup_printf ("%s/%s-%s.servicepack", directory, package, distro_id);
 	} else if (action == GPK_ACTION_ENUM_COPY) {
 		nodename = pk_get_node_name ();
-		filename = g_strdup_printf ("%s/%s.package-list", directory, nodename);
+		filename = g_strdup_printf ("%s/%s.package-array", directory, nodename);
 	} else if (action == GPK_ACTION_ENUM_UPDATES) {
 		iso_time = pk_iso8601_present ();
 		/* don't include the time, just use the date prefix */
@@ -217,40 +217,42 @@ gpk_pack_progress_changed_cb (PkClient *_client, guint percentage, guint subperc
 static gchar *
 gpk_pack_resolve_package_id (const gchar *package)
 {
-	GPtrArray *list = NULL;
+	GPtrArray *array = NULL;
 	gchar *package_id = NULL;
 	gchar **packages = NULL;
 	GError *error = NULL;
 	const PkItemPackage *item;
-	gboolean ret = FALSE;
+	PkResults *results;
 
-	/* get package list */
+	/* get package array */
 	packages = g_strsplit (package, ";", 0);
-	ret = pk_client_resolve_async (client, pk_bitfield_value (PK_FILTER_ENUM_NEWEST), packages, &error);
-	if (!ret) {
+	results = pk_client_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NEWEST), packages, NULL, NULL, NULL, &error);
+	if (results == NULL) {
 		egg_warning ("failed to resolve: %s", error->message);
 		g_error_free (error);
 		goto out;
 	}
 
 	/* get the deps */
-	list = pk_results_get_package_array (client);
+	array = pk_results_get_package_array (results);
 
 	/* no matches */
-	if (list->len == 0)
+	if (array->len == 0)
 		goto out;
 
 	/* display warning if not exactly one match */
-	if (list->len > 1)
+	if (array->len > 1)
 		egg_warning ("More than one possible package for '%s' found!", package);
 
 	/* convert to a text package id */
-	item = g_ptr_array_index (list, 0);
+	item = g_ptr_array_index (array, 0);
 	package_id = g_strdup (item->package_id);
 
 out:
-	if (list != NULL)
-		g_object_unref (list);
+	if (array != NULL)
+		g_ptr_array_unref (array);
+	if (results != NULL)
+		g_object_unref (results);
 	g_strfreev (packages);
 	return package_id;
 }
@@ -308,41 +310,158 @@ out:
 }
 
 /**
+ * gpk_pack_package_array_to_string:
+ **/
+static gchar *
+gpk_pack_package_array_to_string (GPtrArray *array)
+{
+	guint i;
+	const PkItemPackage *item;
+	GString *string;
+
+	string = g_string_new ("");
+	for (i=0; i<array->len; i++) {
+		item = g_ptr_array_index (array, i);
+		g_string_append_printf (string, "%s\t%s\t%s\n",
+					pk_info_enum_to_text (item->info),
+					item->package_id, item->summary);
+	}
+
+	/* remove trailing newline */
+	if (string->len != 0)
+		g_string_set_size (string, string->len-1);
+	return g_string_free (string, FALSE);
+}
+
+/**
  * gpk_pack_copy_package_lists:
  **/
 static gboolean
 gpk_pack_copy_package_lists (const gchar *filename, GError **error)
 {
 	gboolean ret = FALSE;
-	GPtrArray *list = NULL;
+	GPtrArray *array = NULL;
 	GError *error_local = NULL;
-
-	/* get package list */
-	ret = pk_client_get_packages_async (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), &error_local);
-	if (!ret) {
-		/* TRANSLATORS: cannot get package list */
-		*error = g_error_new (1, 0, _("Could not get list of installed packages: %s"), error_local->message);
+	PkResults *results;
+	gchar *data = NULL;
+
+	/* get package array */
+	results = pk_client_get_packages (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), NULL, NULL, NULL, &error_local);
+	if (results == NULL) {
+		/* TRANSLATORS: cannot get package array */
+		*error = g_error_new (1, 0, _("Could not get array of installed packages: %s"), error_local->message);
 		g_error_free (error_local);
 		goto out;
 	}
 
 	/* get the deps */
-	list = pk_results_get_package_array (client);
+	array = pk_results_get_package_array (results);
 
-	/* write new file : FIXME: return a GError */
-	ret = pk_item_list_to_file (list, filename);
+	/* convert to a file */
+	data = gpk_pack_package_array_to_string (array);
+	ret = g_file_set_contents (PK_SYSTEM_PACKAGE_LIST_FILENAME, data, -1, &error_local);
 	if (!ret) {
-		/* TRANSLATORS: we could not write to the destination directory for some reason */
-		*error = g_error_new (1, 0, _("Could not write package list"));
+		*error = g_error_new (1, 0, _("Could not save to file: %s"), error_local->message);
+		g_error_free (error_local);
 		goto out;
 	}
 out:
-	if (list != NULL)
-		g_object_unref (list);
+	if (array != NULL)
+		g_ptr_array_unref (array);
+	if (results != NULL)
+		g_object_unref (results);
+	g_free (data);
 	return ret;
 }
 
 /**
+ * gpk_pack_ready_cb:
+ **/
+static void
+gpk_pack_ready_cb (GObject *object, GAsyncResult *res, gpointer userdata)
+{
+	GtkWidget *widget;
+	PkServicePack *pack = PK_SERVICE_PACK (object);
+	GError *error = NULL;
+	gboolean ret;
+
+	/* get the results */
+	ret = pk_service_pack_generic_finish (pack, res, &error);
+	if (!ret) {
+		widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_pack"));
+		/* TRANSLATORS: we could not create the pack file, generic error */
+		gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), _("Cannot create service pack"), error->message);
+		g_error_free (error);
+	}
+
+	/* stop the action */
+	gpk_pack_widgets_activate (TRUE);
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "frame_progress"));
+	gtk_widget_hide (widget);
+	gpk_pack_set_percentage (100);
+
+	/* blank */
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "progressbar_percentage"));
+	gtk_progress_bar_set_text (GTK_PROGRESS_BAR (widget), "");
+}
+
+
+/**
+ * gpk_pack_progress_cb:
+ **/
+static void
+gpk_pack_progress_cb (PkProgress *progress, PkProgressType type, gpointer userdata)
+{
+	PkStatusEnum status;
+	if (type == PK_PROGRESS_TYPE_STATUS) {
+		g_object_get (progress,
+			      "status", &status,
+			      NULL);
+		egg_debug ("now %s", pk_status_enum_to_text (status));
+	}
+}
+
+/**
+ * gpk_pack_get_excludes_for_filename:
+ **/
+static gchar **
+gpk_pack_get_excludes_for_filename (const gchar *filename, GError **error)
+{
+	gboolean ret;
+	gchar *data = NULL;
+	gchar **split = NULL;
+	gchar **lines = NULL;
+	gchar **exclude_ids = NULL;
+	GPtrArray *array = NULL;
+	guint i;
+
+	/* get contents */
+	ret = g_file_get_contents (filename, &data, NULL, error);
+	if (!ret)
+		goto out;
+
+	/* split into lines */
+	array = g_ptr_array_new_with_free_func (g_free);
+	lines = g_strsplit (data, "\n", -1);
+	for (i=0; lines[i] != NULL; i++) {
+		/* split into sections */
+		split = g_strsplit (lines[i], "\t", -1);
+		if (g_strv_length (split) == 3)
+			g_ptr_array_add (array, g_strdup (split[1]));
+		g_strfreev (split);
+	}
+
+	/* convert to a string array */
+	exclude_ids = pk_ptr_array_to_strv (array);
+out:
+	if (array != NULL)
+		g_ptr_array_unref (array);
+	g_free (data);
+	g_strfreev (lines);
+	return exclude_ids;
+}
+
+/**
  * gpk_pack_button_create_cb:
  **/
 static void
@@ -355,8 +474,8 @@ gpk_pack_button_create_cb (GtkWidget *widget2, gpointer data)
 	gchar *exclude = NULL;
 	gchar **packages = NULL;
 	gchar **package_ids = NULL;
+	gchar **exclude_ids = NULL;
 	PkServicePack *pack;
-	GPtrArray *list = NULL;
 	GError *error = NULL;
 	gboolean ret;
 	gboolean use_default = FALSE;
@@ -373,19 +492,19 @@ gpk_pack_button_create_cb (GtkWidget *widget2, gpointer data)
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "frame_progress"));
 	gtk_widget_show (widget);
 
-	/* copy the system package list */
+	/* copy the system package array */
 	if (action == GPK_ACTION_ENUM_COPY) {
 		ret = gpk_pack_copy_package_lists (filename, &error);
 		if (!ret) {
 			widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_pack"));
-			/* TRANSLATORS: Could not create package list */
-			gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), _("Cannot copy system package list"), error->message);
+			/* TRANSLATORS: Could not create package array */
+			gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), _("Cannot copy system package array"), error->message);
 			g_error_free (error);
 		}
 		goto out;
 	}
 
-	/* get the exclude list, and fall back to the system copy */
+	/* get the exclude array, and fall back to the system copy */
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "filechooserbutton_exclude"));
 	exclude = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(widget));
 	if (exclude == NULL) {
@@ -399,84 +518,72 @@ gpk_pack_button_create_cb (GtkWidget *widget2, gpointer data)
 		package = gtk_entry_get_text (GTK_ENTRY(widget));
 		if (egg_strzero (package)) {
 			widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_pack"));
-			/* TRANSLATORS: Could not create package list */
+			/* TRANSLATORS: Could not create package array */
 			gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), _("No package name selected"), NULL);
 			goto out;
 		}
-		/* split the package list with common delimiters */
+		/* split the package array with common delimiters */
 		packages = g_strsplit_set (package, ";, ", 0);
 		package_ids = gpk_pack_resolve_package_ids (packages, &error);
 		if (package_ids == NULL) {
 			widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_pack"));
-			/* TRANSLATORS: Could not create package list */
+			/* TRANSLATORS: Could not create package array */
 			gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), error->message, NULL);
 			g_error_free (error);
 			goto out;
 		}
 	}
 
-	/* if we're using the default list, and it doesn't exist, refresh and create it */
+	/* if we're using the default array, and it doesn't exist, refresh and create it */
 	if (use_default && !g_file_test (exclude, G_FILE_TEST_EXISTS)) {
+		PkResults *results;
 
 		/* tell the user what we are doing */
 		progress_bar = GTK_PROGRESS_BAR (gtk_builder_get_object (builder, "progressbar_percentage"));
 		/* TRANSLATORS: progressbar text */
-		gtk_progress_bar_set_text (progress_bar, _("Refreshing system package list"));
+		gtk_progress_bar_set_text (progress_bar, _("Refreshing system package array"));
 
-		/* refresh package list */
-		ret = pk_client_refresh_cache_async (client, TRUE, &error);
-		if (!ret) {
+		/* refresh package array */
+		results = pk_client_refresh_cache (client, TRUE, NULL, NULL, NULL, &error);
+		if (results == NULL) {
 			widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_pack"));
 			/* TRANSLATORS: we could not reset internal state */
-			gpk_error_dialog_modal (GTK_WINDOW (widget), _("Refresh error"), _("Could not refresh package list"), error->message);
+			gpk_error_dialog_modal (GTK_WINDOW (widget), _("Refresh error"), _("Could not refresh package array"), error->message);
 			g_error_free (error);
 			goto out;
 		}
+		g_object_unref (results);
 	}
 
-	/* add the exclude list */
-	list = g_ptr_array_new_with_free_func_xxx ();
-	ret = pk_item_list_from_file (list, exclude);
-	if (!ret) {
+	/* add the exclude array */
+	exclude_ids = gpk_pack_get_excludes_for_filename (exclude, &error);
+	if (exclude_ids == NULL) {
 		widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_pack"));
-		/* TRANSLATORS: we could not read the file list for the destination computer */
-		gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), _("Cannot read destination package list"), NULL);
+		/* TRANSLATORS: we could not read the file array for the destination computer */
+		gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), _("Cannot read destination package array"), error->message);
+		g_error_free (error);
 		goto out;
 	}
 
 	/* create pack and set initial values */
 	pack = pk_service_pack_new ();
-	g_signal_connect (pack, "package", G_CALLBACK (gpk_pack_package_cb), pack);
-	g_signal_connect (pack, "percentage", G_CALLBACK (gpk_pack_percentage_cb), pack);
 	pk_service_pack_set_temp_directory (pack, NULL);
 
-	if (action == GPK_ACTION_ENUM_UPDATES)
-		ret = pk_service_pack_create_for_updates_async (pack, filename, list, &error);
-	else if (action == GPK_ACTION_ENUM_PACKAGE)
-		ret = pk_service_pack_create_for_package_ids_async (pack, filename, package_ids, list, &error);
-	if (!ret) {
-		widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_pack"));
-		/* TRANSLATORS: we could not create the pack file, generic error */
-		gpk_error_dialog_modal (GTK_WINDOW (widget), _("Create error"), _("Cannot create service pack"), error->message);
-		g_error_free (error);
+	if (action == GPK_ACTION_ENUM_UPDATES) {
+		pk_service_pack_create_for_updates_async (pack, filename, exclude_ids, NULL,
+							  (PkProgressCallback) gpk_pack_progress_cb, NULL,
+							  (GAsyncReadyCallback) gpk_pack_ready_cb, NULL);
+	} else if (action == GPK_ACTION_ENUM_PACKAGE) {
+		pk_service_pack_create_for_package_ids_async (pack, filename, package_ids, exclude_ids, NULL,
+							      (PkProgressCallback) gpk_pack_progress_cb, NULL,
+							      (GAsyncReadyCallback) gpk_pack_ready_cb, NULL);
 	}
 	g_object_unref (pack);
 
 out:
-	/* stop the action */
-	gpk_pack_widgets_activate (TRUE);
-	widget = GTK_WIDGET (gtk_builder_get_object (builder, "frame_progress"));
-	gtk_widget_hide (widget);
-	gpk_pack_set_percentage (100);
-
-	/* blank */
-	widget = GTK_WIDGET (gtk_builder_get_object (builder, "progressbar_percentage"));
-	gtk_progress_bar_set_text (GTK_PROGRESS_BAR (widget), "");
-
-	if (list != NULL)
-		g_object_unref (list);
 	g_strfreev (packages);
 	g_strfreev (package_ids);
+	g_strfreev (exclude_ids);
 	g_free (directory);
 	g_free (exclude);
 }
@@ -556,7 +663,7 @@ main (int argc, char *argv[])
 	GConfClient *gconf_client = NULL;
 	gchar *option = NULL;
 	gchar *package = NULL;
-	gchar *with_list = NULL;
+	gchar *with_array = NULL;
 	gchar *output = NULL;
 	guint retval;
 	GError *error = NULL;
@@ -566,13 +673,13 @@ main (int argc, char *argv[])
 		  _("Show extra debugging information"), NULL },
 		{ "option", 'o', 0, G_OPTION_ARG_STRING, &option,
 		  /* TRANSLATORS: the constants should not be translated */
-		  _("Set the option, allowable values are 'list', 'updates' and 'package'"), NULL },
+		  _("Set the option, allowable values are 'array', 'updates' and 'package'"), NULL },
 		{ "package", 'p', 0, G_OPTION_ARG_STRING, &package,
 		  /* TRANSLATORS: this refers to the GtkTextEntry in gpk-service-pack */
 		  _("Add the package name to the text entry box"), NULL },
-		{ "with-list", 'p', 0, G_OPTION_ARG_STRING, &with_list,
-		  /* TRANSLATORS: this is the destination computer package list */
-		  _("Set the remote package list filename"), NULL },
+		{ "with-array", 'p', 0, G_OPTION_ARG_STRING, &with_array,
+		  /* TRANSLATORS: this is the destination computer package array */
+		  _("Set the remote package array filename"), NULL },
 		{ "output", 'p', 0, G_OPTION_ARG_STRING, &output,
 		  /* TRANSLATORS: this is the file output directory */
 		  _("Set the default output directory"), NULL },
@@ -632,8 +739,8 @@ main (int argc, char *argv[])
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "filechooserbutton_exclude"));
 	filter = gtk_file_filter_new ();
 	/* TRANSLATORS: file search type, lists of packages */
-	gtk_file_filter_set_name (filter, _("Package list files"));
-	gtk_file_filter_add_pattern (filter, "*.package-list");
+	gtk_file_filter_set_name (filter, _("Package array files"));
+	gtk_file_filter_add_pattern (filter, "*.package-array");
 	gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(widget), filter);
 
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "filechooserbutton_directory"));
@@ -673,7 +780,7 @@ main (int argc, char *argv[])
 
 	/* if command line arguments are set, then setup UI */
 	if (option != NULL) {
-		if (g_strcmp0 (option, "list") == 0) {
+		if (g_strcmp0 (option, "array") == 0) {
 			widget = GTK_WIDGET (gtk_builder_get_object (builder, "radiobutton_copy"));
 			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
 		} else if (g_strcmp0 (option, "updates") == 0) {
@@ -688,9 +795,9 @@ main (int argc, char *argv[])
 		widget = GTK_WIDGET (gtk_builder_get_object (builder, "entry_package"));
 		gtk_entry_set_text (GTK_ENTRY(widget), package);
 	}
-	if (with_list != NULL) {
+	if (with_array != NULL) {
 		widget = GTK_WIDGET (gtk_builder_get_object (builder, "filechooserbutton_exclude"));
-		gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), with_list);
+		gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), with_array);
 	}
 	if (output != NULL) {
 		widget = GTK_WIDGET (gtk_builder_get_object (builder, "filechooserbutton_directory"));
@@ -712,7 +819,7 @@ out_unique:
 		g_object_unref (client);
 	g_free (option);
 	g_free (package);
-	g_free (with_list);
+	g_free (with_array);
 	g_free (output);
 
 	return 0;
diff --git a/src/gpk-update-viewer.c b/src/gpk-update-viewer.c
index e864547..5030dd4 100644
--- a/src/gpk-update-viewer.c
+++ b/src/gpk-update-viewer.c
@@ -60,13 +60,11 @@
 static guint auto_shutdown_id = 0;
 static GMainLoop *loop = NULL;
 static GtkBuilder *builder = NULL;
-static GtkListStore *list_store_updates = NULL;
+static GtkListStore *array_store_updates = NULL;
 static GtkTextBuffer *text_buffer = NULL;
-static PkClient *client_primary = NULL;
-static PkClient *client_secondary = NULL;
+static PkClient *client = NULL;
 static PkControl *control = NULL;
-static GPtrArray *update_list = NULL;
-static GpkHelperDepsUpdate *helper_deps_update = NULL;
+static GPtrArray *update_array = NULL;
 static EggMarkdown *markdown = NULL;
 static gchar *package_id_last = NULL;
 static PkRestartEnum restart_update = PK_RESTART_ENUM_NONE;
@@ -93,7 +91,7 @@ enum {
 	GPK_UPDATES_COLUMN_LAST
 };
 
-static gboolean gpk_update_viewer_get_new_update_list (void);
+static gboolean gpk_update_viewer_get_new_update_array (void);
 
 /**
  * gpk_update_viewer_logout:
@@ -171,7 +169,7 @@ gpk_update_viewer_quit (void)
 	GtkResponseType response;
 
 	/* are we in a transaction */
-	ret = pk_client_get_role (client_primary, &role, NULL, &error);
+	ret = pk_client_get_role (client, &role, NULL, &error);
 	if (!ret) {
 		egg_warning ("failed to get role: %s", error->message);
 		g_error_free (error);
@@ -181,7 +179,7 @@ gpk_update_viewer_quit (void)
 		egg_debug ("no role, so quitting");
 		goto out;
 	}
-	ret = pk_client_get_status (client_primary, &status, &error);
+	ret = pk_client_get_status (client, &status, &error);
 	if (!ret) {
 		egg_warning ("failed to get status: %s", error->message);
 		g_error_free (error);
@@ -193,7 +191,7 @@ gpk_update_viewer_quit (void)
 	}
 
 	/* can we easily cancel */
-	ret = pk_client_get_allow_cancel (client_primary, &allow_cancel, &error);
+	ret = pk_client_get_allow_cancel (client, &allow_cancel, &error);
 	if (!ret) {
 		egg_warning ("failed to get allow cancel state: %s", error->message);
 		g_error_free (error);
@@ -202,7 +200,7 @@ gpk_update_viewer_quit (void)
 
 	/* cancel the transaction */
 	if (allow_cancel) {
-		ret = g_cancellable_cancel (client_primary, &error);
+		ret = g_cancellable_cancel (client, &error);
 		if (!ret) {
 			egg_warning ("failed to cancel client: %s", error->message);
 			g_error_free (error);
@@ -260,7 +258,7 @@ gpk_update_viewer_undisable_packages ()
 	/* set all the checkboxes sensitive */
 	valid = gtk_tree_model_get_iter_first (model, &iter);
 	while (valid) {
-		gtk_list_store_set (list_store_updates, &iter,
+		gtk_array_store_set (array_store_updates, &iter,
 				    GPK_UPDATES_COLUMN_SENSITIVE, TRUE,
 				    GPK_UPDATES_COLUMN_CLICKABLE, TRUE,
 				    -1);
@@ -366,7 +364,7 @@ gpk_update_viewer_button_install_cb (GtkWidget *widget, gpointer data)
 	treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "treeview_updates"));
 	model = gtk_tree_view_get_model (treeview);
 
-	/* get the first iter in the list */
+	/* get the first iter in the array */
 	valid = gtk_tree_model_get_iter_first (model, &iter);
 
 	/* find out how many we should update */
@@ -377,7 +375,7 @@ gpk_update_viewer_button_install_cb (GtkWidget *widget, gpointer data)
 				    GPK_UPDATES_COLUMN_ID, &package_id, -1);
 
 		/* set all the checkboxes insensitive */
-		gtk_list_store_set (list_store_updates, &iter,
+		gtk_array_store_set (array_store_updates, &iter,
 				    GPK_UPDATES_COLUMN_CLICKABLE, FALSE,
 				    GPK_UPDATES_COLUMN_SENSITIVE, FALSE, -1);
 
@@ -419,7 +417,7 @@ gpk_update_viewer_button_install_cb (GtkWidget *widget, gpointer data)
 	install_package_ids = g_strdupv (package_ids);
 
 	/* get packages that also have to be updated */
-	ret = pk_client_update_packages (client_primary, package_ids, &error);
+	ret = pk_client_update_packages (client, package_ids, &error);
 	if (!ret) {
 		egg_warning ("cannot get depends for updates: %s", error->message);
 		g_error_free (error);
@@ -519,14 +517,14 @@ gpk_update_viewer_details_cb (PkClient *client, const PkDetailsObj *item, gpoint
 
 	gtk_tree_model_get_iter (model, &iter, path);
 	gtk_tree_path_free (path);
-	gtk_list_store_set (list_store_updates, &iter,
+	gtk_array_store_set (array_store_updates, &iter,
 			    GPK_UPDATES_COLUMN_DETAILS_OBJ, (gpointer) pk_details_item_copy (item),
 			    GPK_UPDATES_COLUMN_SIZE, (gint)item->size,
 			    GPK_UPDATES_COLUMN_SIZE_DISPLAY, (gint)item->size,
 			    -1);
 	/* in cache */
 	if (item->size == 0)
-		gtk_list_store_set (list_store_updates, &iter,
+		gtk_array_store_set (array_store_updates, &iter,
 				    GPK_UPDATES_COLUMN_STATUS, GPK_INFO_ENUM_DOWNLOADED, -1);
 }
 
@@ -607,7 +605,7 @@ gpk_update_viewer_package_cb (PkClient *client, const PkItemPackage *item, gpoin
 		} else {
 			info = item->info;
 		}
-		gtk_list_store_set (list_store_updates, &iter,
+		gtk_array_store_set (array_store_updates, &iter,
 				    GPK_UPDATES_COLUMN_STATUS, info, -1);
 
 		gtk_tree_path_free (path);
@@ -619,11 +617,11 @@ gpk_update_viewer_package_cb (PkClient *client, const PkItemPackage *item, gpoin
 		goto out;
 	}
 
-	/* add to list store */
+	/* add to array store */
 	text = gpk_package_id_format_twoline (item->package_id, item->summary);
 	selected = (item->info != PK_INFO_ENUM_BLOCKED);
-	gtk_list_store_append (list_store_updates, &iter);
-	gtk_list_store_set (list_store_updates, &iter,
+	gtk_array_store_append (array_store_updates, &iter);
+	gtk_array_store_set (array_store_updates, &iter,
 			    GPK_UPDATES_COLUMN_TEXT, text,
 			    GPK_UPDATES_COLUMN_ID, package_id,
 			    GPK_UPDATES_COLUMN_INFO, item->info,
@@ -663,7 +661,7 @@ gpk_update_viewer_update_detail_cb (PkClient *client, const PkUpdateDetailObj *i
 
 	gtk_tree_model_get_iter (model, &iter, path);
 	gtk_tree_path_free (path);
-	gtk_list_store_set (list_store_updates, &iter,
+	gtk_array_store_set (array_store_updates, &iter,
 			    GPK_UPDATES_COLUMN_UPDATE_DETAIL_OBJ, (gpointer) pk_update_detail_item_copy (item),
 			    GPK_UPDATES_COLUMN_RESTART, item->restart, -1);
 }
@@ -738,7 +736,7 @@ gpk_update_viewer_reconsider_info (GtkTreeModel *model)
 	gtk_button_set_label (GTK_BUTTON (widget), title);
 
 	/* no updates */
-	len = update_list->len;
+	len = update_array->len;
 	if (len == 0) {
 		/* hide close button */
 		widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_quit"));
@@ -881,8 +879,8 @@ gpk_update_viewer_status_changed_cb (PkClient *client, PkStatusEnum status, gpoi
 		goto out;
 	}
 	if (status == PK_STATUS_ENUM_QUERY || status == PK_STATUS_ENUM_SETUP) {
-		/* TRANSLATORS: querying update list */
-		text = _("Getting the list of updates");
+		/* TRANSLATORS: querying update array */
+		text = _("Getting the array of updates");
 	} else {
 		text = gpk_status_enum_to_localised_text (status);
 	}
@@ -922,7 +920,7 @@ gpk_update_viewer_treeview_update_toggled (GtkCellRendererToggle *cell, gchar *p
 	g_free (package_id);
 
 	/* set new value */
-	gtk_list_store_set (GTK_LIST_STORE (model), &iter, GPK_UPDATES_COLUMN_SELECT, update, -1);
+	gtk_array_store_set (GTK_LIST_STORE (model), &iter, GPK_UPDATES_COLUMN_SELECT, update, -1);
 
 	/* clean up */
 	gtk_tree_path_free (path);
@@ -1278,7 +1276,7 @@ gpk_update_viewer_populate_details (const PkUpdateDetailObj *item)
 	/* add all the links */
 	if (!egg_strzero (item->vendor_url)) {
 		array = gpk_update_viewer_get_uris (item->vendor_url);
-		/* TRANSLATORS: this is a list of vendor URLs */
+		/* TRANSLATORS: this is a array of vendor URLs */
 		title = ngettext ("For more information about this update please visit this website:",
 				  "For more information about this update please visit these websites:", array->len);
 		gpk_update_viewer_add_description_link_item (text_buffer, &iter, title, array);
@@ -1286,7 +1284,7 @@ gpk_update_viewer_populate_details (const PkUpdateDetailObj *item)
 	}
 	if (!egg_strzero (item->bugzilla_url)) {
 		array = gpk_update_viewer_get_uris (item->bugzilla_url);
-		/* TRANSLATORS: this is a list of bugzilla URLs */
+		/* TRANSLATORS: this is a array of bugzilla URLs */
 		title = ngettext ("For more information about bugs fixed by this update please visit this website:",
 				  "For more information about bugs fixed by this update please visit these websites:", array->len);
 		gpk_update_viewer_add_description_link_item (text_buffer, &iter, title, array);
@@ -1294,7 +1292,7 @@ gpk_update_viewer_populate_details (const PkUpdateDetailObj *item)
 	}
 	if (!egg_strzero (item->cve_url)) {
 		array = gpk_update_viewer_get_uris (item->cve_url);
-		/* TRANSLATORS: this is a list of CVE (security) URLs */
+		/* TRANSLATORS: this is a array of CVE (security) URLs */
 		title = ngettext ("For more information about this security update please visit this website:",
 				  "For more information about this security update please visit these websites:", array->len);
 		gpk_update_viewer_add_description_link_item (text_buffer, &iter, title, array);
@@ -1369,7 +1367,7 @@ gpk_packages_treeview_clicked_cb (GtkTreeSelection *selection, gpointer data)
  * gpk_update_viewer_check_blocked_packages:
  **/
 static void
-gpk_update_viewer_check_blocked_packages (GPtrArray *list)
+gpk_update_viewer_check_blocked_packages (GPtrArray *array)
 {
 	guint i;
 	guint length;
@@ -1382,8 +1380,8 @@ gpk_update_viewer_check_blocked_packages (GPtrArray *list)
 	string = g_string_new ("");
 
 	/* find any that are blocked */
-	for (i=0;i<list->len;i++) {
-		item = g_ptr_array_index (list, i);
+	for (i=0;i<array->len;i++) {
+		item = g_ptr_array_index (array, i);
 		if (item->info == PK_INFO_ENUM_BLOCKED) {
 			text = gpk_package_id_format_oneline (item->package_id, item->summary);
 			g_string_append_printf (string, "%s\n", text);
@@ -1415,15 +1413,15 @@ out:
  * gpk_update_viewer_finished_get_details_cb:
  **/
 static gboolean
-gpk_update_viewer_finished_get_details_cb (GPtrArray *list)
+gpk_update_viewer_finished_get_details_cb (GPtrArray *array)
 {
 	gboolean ret;
 	gchar **package_ids;
 	GError *error = NULL;
-	package_ids = pk_package_array_to_strv (list);
+	package_ids = pk_package_array_to_strv (array);
 
 	/* get the details of all the packages */
-	ret = pk_client_get_details (client_primary, package_ids, &error);
+	ret = pk_client_get_details (client, package_ids, &error);
 	if (!ret) {
 		egg_error ("cannot get details: %s", error->message);
 		g_error_free (error);
@@ -1431,7 +1429,7 @@ gpk_update_viewer_finished_get_details_cb (GPtrArray *list)
 	}
 out:
 	g_strfreev (package_ids);
-	g_object_unref (list);
+	g_object_unref (array);
 	return FALSE;
 }
 
@@ -1439,15 +1437,15 @@ out:
  * gpk_update_viewer_finished_get_update_details_cb:
  **/
 static gboolean
-gpk_update_viewer_finished_get_update_details_cb (GPtrArray *list)
+gpk_update_viewer_finished_get_update_details_cb (GPtrArray *array)
 {
 	gboolean ret;
 	gchar **package_ids;
 	GError *error = NULL;
-	package_ids = pk_package_array_to_strv (list);
+	package_ids = pk_package_array_to_strv (array);
 
 	/* get the details of all the packages */
-	ret = pk_client_get_update_detail (client_primary, package_ids, &error);
+	ret = pk_client_get_update_detail (client, package_ids, &error);
 	if (!ret) {
 		egg_error ("cannot get details: %s", error->message);
 		g_error_free (error);
@@ -1455,7 +1453,7 @@ gpk_update_viewer_finished_get_update_details_cb (GPtrArray *list)
 	}
 out:
 	g_strfreev (package_ids);
-	g_object_unref (list);
+	g_object_unref (array);
 	return FALSE;
 }
 
@@ -1469,7 +1467,7 @@ gpk_update_viewer_finished_get_distro_upgrades_cb (gpointer data)
 	GError *error = NULL;
 
 	/* get the details of all the packages */
-	ret = pk_client_get_distro_upgrades (client_primary, &error);
+	ret = pk_client_get_distro_upgrades (client, &error);
 	if (!ret) {
 		egg_error ("cannot get details: %s", error->message);
 		g_error_free (error);
@@ -1569,7 +1567,7 @@ out:
  * gpk_update_viewer_deps_update_event_cb:
  **/
 static void
-gpk_update_viewer_deps_update_event_cb (GpkHelperDepsUpdate *helper, GtkResponseType type, GPtrArray *deps_list, gpointer data)
+gpk_update_viewer_deps_update_event_cb (GpkHelperDepsUpdate *helper, GtkResponseType type, GPtrArray *deps_array, gpointer data)
 {
 	gboolean ret;
 	GError *error = NULL;
@@ -1596,10 +1594,10 @@ gpk_update_viewer_deps_update_event_cb (GpkHelperDepsUpdate *helper, GtkResponse
 		goto out;
 	}
 
-	/* need to select or add packages in deps_list */
-	len = deps_list->len;
+	/* need to select or add packages in deps_array */
+	len = deps_array->len;
 	for (i=0; i<len; i++) {
-		item = g_ptr_array_index (deps_list, i);
+		item = g_ptr_array_index (deps_array, i);
 		found = FALSE;
 
 		/* find it and select it */
@@ -1610,7 +1608,7 @@ gpk_update_viewer_deps_update_event_cb (GpkHelperDepsUpdate *helper, GtkResponse
 			/* we found a match */
 			if (g_strcmp0 (package_id_temp, item->package_id)) {
 				egg_debug ("selecting %s", id->name);
-				gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+				gtk_array_store_set (GTK_LIST_STORE (model), &iter,
 						    GPK_UPDATES_COLUMN_SELECT, TRUE, -1);
 				found = TRUE;
 			}
@@ -1623,8 +1621,8 @@ gpk_update_viewer_deps_update_event_cb (GpkHelperDepsUpdate *helper, GtkResponse
 		if (!found) {
 			text = gpk_package_id_format_twoline (item->package_id, item->summary);
 			egg_debug ("adding: id=%s, text=%s", item->package_id, text);
-			gtk_list_store_append (list_store_updates, &iter);
-			gtk_list_store_set (list_store_updates, &iter,
+			gtk_array_store_append (array_store_updates, &iter);
+			gtk_array_store_set (array_store_updates, &iter,
 					    GPK_UPDATES_COLUMN_TEXT, text,
 					    GPK_UPDATES_COLUMN_ID, item->package_id,
 					    GPK_UPDATES_COLUMN_INFO, item->info,
@@ -1647,7 +1645,7 @@ gpk_update_viewer_deps_update_event_cb (GpkHelperDepsUpdate *helper, GtkResponse
 	gpk_update_viewer_reconsider_info (model);
 
 	/* actually install packages this time */
-	ret = pk_client_update_packages (client_primary, TRUE, install_package_ids, &error);
+	ret = pk_client_update_packages (client, TRUE, install_package_ids, &error);
 	if (!ret) {
 		egg_warning ("cannot install packages: %s", error->message);
 		g_error_free (error);
@@ -1670,7 +1668,7 @@ gpk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime,
 	GtkTreeModel *model;
 	GtkTreeSelection *selection;
 	PkRoleEnum role;
-	GPtrArray *list;
+	GPtrArray *array;
 	PkRestartEnum restart;
 	gchar *text;
 
@@ -1688,7 +1686,7 @@ gpk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime,
 	gtk_widget_set_sensitive (widget, TRUE);
 
 	/* if secondary, ignore */
-	if (client == client_primary &&
+	if (client == client &&
 	    (exit == PK_EXIT_ENUM_KEY_REQUIRED ||
 	     exit == PK_EXIT_ENUM_EULA_REQUIRED)) {
 		egg_debug ("ignoring primary sig-required or eula");
@@ -1708,16 +1706,16 @@ gpk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime,
 
 	if (role == PK_ROLE_ENUM_GET_UPDATES) {
 		/* get the download sizes */
-		if (update_list != NULL)
-			g_object_unref (update_list);
-		update_list = pk_results_get_package_array (client_primary);
+		if (update_array != NULL)
+			g_object_unref (update_array);
+		update_array = pk_results_get_package_array (results);
 
 		/* sort by name */
 		gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), GPK_UPDATES_COLUMN_ID, GTK_SORT_ASCENDING);
 
 		/* get the download sizes */
-		if (update_list->len > 0)
-			g_idle_add ((GSourceFunc) gpk_update_viewer_finished_get_update_details_cb, g_object_ref (update_list));
+		if (update_array->len > 0)
+			g_idle_add ((GSourceFunc) gpk_update_viewer_finished_get_update_details_cb, g_object_ref (update_array));
 
 		/* set info */
 		gpk_update_viewer_reconsider_info (model);
@@ -1725,7 +1723,7 @@ gpk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime,
 
 	if (role == PK_ROLE_ENUM_GET_UPDATE_DETAIL) {
 		/* get the restarts */
-		g_idle_add ((GSourceFunc) gpk_update_viewer_finished_get_details_cb, g_object_ref (update_list));
+		g_idle_add ((GSourceFunc) gpk_update_viewer_finished_get_details_cb, g_object_ref (update_array));
 
 		/* are now able to do action */
 		widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_install"));
@@ -1737,7 +1735,7 @@ gpk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime,
 
 	if (role == PK_ROLE_ENUM_GET_DETAILS) {
 
-		/* select the first entry in the updates list now we've got data */
+		/* select the first entry in the updates array now we've got data */
 		widget = GTK_WIDGET (gtk_builder_get_object (builder, "treeview_updates"));
 		selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
 		gtk_tree_selection_unselect_all (selection);
@@ -1778,14 +1776,14 @@ gpk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime,
 				 CA_PROP_EVENT_DESCRIPTION, _("Updated successfully"), NULL);
 
 		/* get the worst restart case */
-		restart = pk_client_get_require_restart (client_primary);
+		restart = pk_client_get_require_restart (client);
 		if (restart > restart_update)
 			restart_update = restart;
 
 		/* check blocked */
-		list = pk_results_get_package_array (client_primary);
-		gpk_update_viewer_check_blocked_packages (list);
-		g_object_unref (list);
+		array = pk_results_get_package_array (results);
+		gpk_update_viewer_check_blocked_packages (array);
+		g_object_unref (array);
 
 		/* check restart */
 		if (restart_update == PK_RESTART_ENUM_SYSTEM ||
@@ -1901,7 +1899,7 @@ gpk_update_viewer_pulse_active_rows (void)
 		if (path) {
 			gtk_tree_model_get_iter (model, &iter, path);
 			gtk_tree_model_get (model, &iter, GPK_UPDATES_COLUMN_PULSE, &val, -1);
-			gtk_list_store_set (GTK_LIST_STORE (model), &iter, GPK_UPDATES_COLUMN_PULSE, val + 1, -1);
+			gtk_array_store_set (GTK_LIST_STORE (model), &iter, GPK_UPDATES_COLUMN_PULSE, val + 1, -1);
 			gtk_tree_path_free (path);
 		}
 	}
@@ -1936,7 +1934,7 @@ gpk_update_viewer_remove_active_row (GtkTreeModel *model, GtkTreePath *path)
 	GtkTreeIter iter;
 
 	gtk_tree_model_get_iter (model, &iter, path);
-	gtk_list_store_set (GTK_LIST_STORE (model), &iter, GPK_UPDATES_COLUMN_PULSE, -1, -1);
+	gtk_array_store_set (GTK_LIST_STORE (model), &iter, GPK_UPDATES_COLUMN_PULSE, -1, -1);
 
 	ref = gtk_tree_row_reference_new (model, path);
 	link = g_slist_find_custom (active_rows, (gconstpointer)ref, (GCompareFunc)gpk_update_viewer_compare_refs);
@@ -2001,7 +1999,7 @@ gpk_update_viewer_progress_changed_cb (PkClient *client, guint percentage, guint
 	}
 
 	size_display = size - ((size * subpercentage) / 100);
-	gtk_list_store_set (list_store_updates, &iter,
+	gtk_array_store_set (array_store_updates, &iter,
 			    GPK_UPDATES_COLUMN_PERCENTAGE, subpercentage,
 			    GPK_UPDATES_COLUMN_SIZE_DISPLAY, size_display,
 			    -1);
@@ -2036,12 +2034,12 @@ gpk_update_viewer_error_code_cb (PkClient *client, PkErrorCodeEnum code, const g
 }
 
 /**
- * gpk_update_viewer_repo_list_changed_cb:
+ * gpk_update_viewer_repo_array_changed_cb:
  **/
 static void
-gpk_update_viewer_repo_list_changed_cb (PkClient *client, gpointer data)
+gpk_update_viewer_repo_array_changed_cb (PkClient *client, gpointer data)
 {
-	gpk_update_viewer_get_new_update_list ();
+	gpk_update_viewer_get_new_update_array ();
 }
 
 /**
@@ -2056,13 +2054,13 @@ gpk_update_viewer_detail_popup_menu_select_all (GtkWidget *menuitem, gpointer us
 	GtkTreeModel *model;
 	PkInfoEnum info;
 
-	/* get the first iter in the list */
+	/* get the first iter in the array */
 	model = gtk_tree_view_get_model (treeview);
 	valid = gtk_tree_model_get_iter_first (model, &iter);
 	while (valid) {
 		gtk_tree_model_get (model, &iter, GPK_UPDATES_COLUMN_INFO, &info, -1);
 		if (info != PK_INFO_ENUM_BLOCKED)
-			gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+			gtk_array_store_set (GTK_LIST_STORE (model), &iter,
 					    GPK_UPDATES_COLUMN_SELECT, TRUE, -1);
 		valid = gtk_tree_model_iter_next (model, &iter);
 	}
@@ -2084,13 +2082,13 @@ gpk_update_viewer_detail_popup_menu_select_security (GtkWidget *menuitem, gpoint
 	GtkTreeModel *model;
 	PkInfoEnum info;
 
-	/* get the first iter in the list */
+	/* get the first iter in the array */
 	model = gtk_tree_view_get_model (treeview);
 	valid = gtk_tree_model_get_iter_first (model, &iter);
 	while (valid) {
 		gtk_tree_model_get (model, &iter, GPK_UPDATES_COLUMN_INFO, &info, -1);
 		ret = (info == PK_INFO_ENUM_SECURITY);
-		gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+		gtk_array_store_set (GTK_LIST_STORE (model), &iter,
 				    GPK_UPDATES_COLUMN_SELECT, ret, -1);
 		valid = gtk_tree_model_iter_next (model, &iter);
 	}
@@ -2110,12 +2108,12 @@ gpk_update_viewer_detail_popup_menu_select_none (GtkWidget *menuitem, gpointer u
 	GtkTreeIter iter;
 	GtkTreeModel *model;
 
-	/* get the first iter in the list */
+	/* get the first iter in the array */
 	model = gtk_tree_view_get_model (treeview);
 	valid = gtk_tree_model_get_iter_first (model, &iter);
 	while (valid) {
 		gtk_tree_model_get (model, &iter, -1);
-		gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+		gtk_array_store_set (GTK_LIST_STORE (model), &iter,
 				    GPK_UPDATES_COLUMN_SELECT, FALSE, -1);
 		valid = gtk_tree_model_iter_next (model, &iter);
 	}
@@ -2137,7 +2135,7 @@ gpk_update_viewer_get_checked_status (gboolean *all_checked, gboolean *none_chec
 	GtkTreeIter iter;
 	GtkTreeModel *model;
 
-	/* get the first iter in the list */
+	/* get the first iter in the array */
 	treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "treeview_updates"));
 	model = gtk_tree_view_get_model (treeview);
 	valid = gtk_tree_model_get_iter_first (model, &iter);
@@ -2271,10 +2269,10 @@ gpk_update_viewer_message_received_cb (UniqueApp *app, UniqueCommand command, Un
 }
 
 /**
- * gpk_update_viewer_get_new_update_list
+ * gpk_update_viewer_get_new_update_array
  **/
 static gboolean
-gpk_update_viewer_get_new_update_list (void)
+gpk_update_viewer_get_new_update_array (void)
 {
 	gboolean ret;
 	GError *error = NULL;
@@ -2283,7 +2281,7 @@ gpk_update_viewer_get_new_update_list (void)
 	PkBitfield filter = PK_FILTER_ENUM_NONE;
 
 	/* clear all widgets */
-	gtk_list_store_clear (list_store_updates);
+	gtk_array_store_clear (array_store_updates);
 	gtk_text_buffer_set_text (text_buffer, "", -1);
 
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_header_title"));
@@ -2298,8 +2296,8 @@ gpk_update_viewer_get_new_update_list (void)
 		filter = pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, -1);
 	}
 
-	/* get new list */
-	ret = pk_client_get_updates (client_primary, filter, &error);
+	/* get new array */
+	ret = pk_client_get_updates (client, filter, &error);
 	if (!ret) {
 		egg_warning ("Failed to get updates: %s", error->message);
 		g_error_free (error);
@@ -2515,9 +2513,9 @@ gpk_update_viewer_textview_visibility_notify_event (GtkWidget *text_view, GdkEve
 static void
 gpk_update_viewer_updates_changed_cb (PkControl *_control, gpointer data)
 {
-	/* now try to get newest update list */
+	/* now try to get newest update array */
 	egg_debug ("updates changed");
-	gpk_update_viewer_get_new_update_list ();
+	gpk_update_viewer_get_new_update_array ();
 }
 
 /**
@@ -2676,43 +2674,36 @@ main (int argc, char *argv[])
 	egg_markdown_set_autocode (markdown, TRUE);
 
 	control = pk_control_new ();
-	g_signal_connect (control, "repo-list-changed",
-			  G_CALLBACK (gpk_update_viewer_repo_list_changed_cb), NULL);
+	g_signal_connect (control, "repo-array-changed",
+			  G_CALLBACK (gpk_update_viewer_repo_array_changed_cb), NULL);
 	g_signal_connect (control, "updates-changed",
 			  G_CALLBACK (gpk_update_viewer_updates_changed_cb), NULL);
 
 	/* this is what we use mainly */
-	client_primary = pk_client_new ();
-	g_signal_connect (client_primary, "package",
+	client = pk_client_new ();
+	g_signal_connect (client, "package",
 			  G_CALLBACK (gpk_update_viewer_package_cb), NULL);
-	g_signal_connect (client_primary, "details",
+	g_signal_connect (client, "details",
 			  G_CALLBACK (gpk_update_viewer_details_cb), NULL);
-	g_signal_connect (client_primary, "finished",
+	g_signal_connect (client, "finished",
 			  G_CALLBACK (gpk_update_viewer_finished_cb), NULL);
-	g_signal_connect (client_primary, "progress-changed",
+	g_signal_connect (client, "progress-changed",
 			  G_CALLBACK (gpk_update_viewer_progress_changed_cb), NULL);
-	g_signal_connect (client_primary, "update-detail",
+	g_signal_connect (client, "update-detail",
 			  G_CALLBACK (gpk_update_viewer_update_detail_cb), NULL);
-	g_signal_connect (client_primary, "status-changed",
+	g_signal_connect (client, "status-changed",
 			  G_CALLBACK (gpk_update_viewer_status_changed_cb), NULL);
-	g_signal_connect (client_primary, "error-code",
+	g_signal_connect (client, "error-code",
 			  G_CALLBACK (gpk_update_viewer_error_code_cb), NULL);
-	g_signal_connect (client_primary, "allow-cancel",
+	g_signal_connect (client, "allow-cancel",
 			  G_CALLBACK (gpk_update_viewer_allow_cancel_cb), NULL);
-	g_signal_connect (client_primary, "repo-signature-required",
+	g_signal_connect (client, "repo-signature-required",
 			  G_CALLBACK (gpk_update_viewer_repo_signature_required_cb), NULL);
-	g_signal_connect (client_primary, "eula-required",
+	g_signal_connect (client, "eula-required",
 			  G_CALLBACK (gpk_update_viewer_eula_required_cb), NULL);
-	g_signal_connect (client_primary, "distro-upgrade",
+	g_signal_connect (client, "distro-upgrade",
 			  G_CALLBACK (pk_client_distro_upgrade_cb), NULL);
 
-	/* this is for auth and eula callbacks */
-	client_secondary = pk_client_new ();
-	g_signal_connect (client_secondary, "error-code",
-			  G_CALLBACK (gpk_update_viewer_error_code_cb), NULL);
-	g_signal_connect (client_secondary, "finished",
-			  G_CALLBACK (gpk_update_viewer_finished_cb), NULL);
-
 	/* get properties */
 	pk_control_get_properties_async (control, NULL, (GAsyncReadyCallback) pk_prefs_get_properties_cb, loop);
 
@@ -2729,13 +2720,8 @@ main (int argc, char *argv[])
 	g_signal_connect (main_window, "delete_event", G_CALLBACK (gpk_update_viewer_button_delete_event_cb), NULL);
 	gtk_window_set_icon_name (GTK_WINDOW (main_window), GPK_ICON_SOFTWARE_INSTALLER);
 
-	/* helpers */
-	helper_deps_update = gpk_helper_deps_update_new ();
-	g_signal_connect (helper_deps_update, "event", G_CALLBACK (gpk_update_viewer_deps_update_event_cb), NULL);
-	gpk_helper_deps_update_set_parent (helper_deps_update, GTK_WINDOW (main_window));
-
-	/* create list stores */
-	list_store_updates = gtk_list_store_new (GPK_UPDATES_COLUMN_LAST, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT,
+	/* create array stores */
+	array_store_updates = gtk_array_store_new (GPK_UPDATES_COLUMN_LAST, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT,
 						 G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
 						 G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT,
 						 G_TYPE_UINT, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_INT);
@@ -2768,7 +2754,7 @@ main (int argc, char *argv[])
 	gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (widget), gpk_update_viewer_search_equal_func, NULL, NULL);
 	gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
-				 GTK_TREE_MODEL (list_store_updates));
+				 GTK_TREE_MODEL (array_store_updates));
 	gpk_update_viewer_treeview_add_columns_update (GTK_TREE_VIEW (widget));
 	g_signal_connect (widget, "popup-menu",
 			  G_CALLBACK (gpk_update_viewer_detail_popup_menu), NULL);
@@ -2839,42 +2825,33 @@ main (int argc, char *argv[])
 			  G_CALLBACK (gpk_update_viewer_vpaned_realized_cb), NULL);
 
 	/* coldplug */
-	gpk_update_viewer_get_new_update_list ();
+	gpk_update_viewer_get_new_update_array ();
 
 	/* wait */
 	loop = g_main_loop_new (NULL, FALSE);
 	g_main_loop_run (loop);
 
 	/* we might have visual stuff running, close it down */
-	ret = g_cancellable_cancel (client_primary, &error);
+	ret = g_cancellable_cancel (client, &error);
 	if (!ret) {
 		egg_warning ("failed to cancel client: %s", error->message);
 		g_clear_error (&error);
 	}
 
-	/* we might have visual stuff running, close it down */
-	ret = g_cancellable_cancel (client_secondary, &error);
-	if (!ret) {
-		egg_warning ("failed to cancel client: %s", error->message);
-		g_error_free (error);
-	}
-
 	g_main_loop_unref (loop);
 
-	if (update_list != NULL)
-		g_object_unref (update_list);
+	if (update_array != NULL)
+		g_object_unref (update_array);
 
 	g_strfreev (install_package_ids);
-	g_object_unref (helper_deps_update);
-	g_object_unref (list_store_updates);
+	g_object_unref (array_store_updates);
 	g_object_unref (text_buffer);
 	g_free (package_id_last);
 out_build:
 	g_object_unref (gconf_client);
 	g_object_unref (control);
 	g_object_unref (markdown);
-	g_object_unref (client_primary);
-	g_object_unref (client_secondary);
+	g_object_unref (client);
 	g_object_unref (console);
 	g_object_unref (builder);
 unique_out:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]